/*
Theme Name: ECO PRO ENERGY
Theme URI: https://ecoproenergy.pl
Author: ECO PRO ENERGY
Description: Lekki, dedykowany motyw korporacyjny dla ECO PRO ENERGY — PV, magazyny energii i BESS.
Version: 1.0.1
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Text Domain: eco-pro-energy
*/

:root {
	--eco-green-950: #071f1a;
	--eco-green-900: #0a2d25;
	--eco-green-800: #0d4033;
	--eco-green-700: #145a46;
	--eco-green-500: #27866a;
	--eco-navy-950: #06101f;
	--eco-navy-900: #09172d;
	--eco-navy-800: #102440;
	--eco-blue-600: #245989;
	--eco-ink: #101c28;
	--eco-slate: #526170;
	--eco-muted: #778390;
	--eco-line: #dfe6e4;
	--eco-soft: #f2f6f4;
	--eco-white: #ffffff;
	--eco-accent: #b7d86a;
	--eco-shell: 1240px;
	--eco-radius: 18px;
	--eco-shadow: 0 24px 70px rgba( 6, 25, 28, .12 );
	--eco-transition: 220ms cubic-bezier( .2, .7, .2, 1 );
}

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

html {
	scroll-behavior: smooth;
	scroll-padding-top: 98px;
}

body {
	margin: 0;
	background: var(--eco-white);
	color: var(--eco-ink);
	font-family: Inter, Aptos, "Helvetica Neue", Arial, sans-serif;
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.nav-open {
	overflow: hidden;
}

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

img {
	height: auto;
}

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

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

h1,
h2,
h3,
h4 {
	color: var(--eco-ink);
	font-weight: 650;
	letter-spacing: -.035em;
	line-height: 1.08;
}

h1 {
	font-size: clamp( 3rem, 6vw, 6.4rem );
}

h2 {
	font-size: clamp( 2.1rem, 3.6vw, 4rem );
}

h3 {
	font-size: clamp( 1.28rem, 1.8vw, 1.65rem );
}

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

button,
select {
	cursor: pointer;
}

::selection {
	background: var(--eco-green-700);
	color: var(--eco-white);
}

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

.eco-section {
	padding-block: clamp( 84px, 10vw, 148px );
}

.eco-section--soft {
	background: var(--eco-soft);
}

.eco-section--navy {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient( circle at 82% 14%, rgba( 39, 134, 106, .28 ), transparent 34% ),
		linear-gradient( 135deg, var(--eco-navy-950), var(--eco-navy-900) 70%, #0b2b35 );
	color: rgba( 255, 255, 255, .72 );
}

.eco-section--navy::before {
	position: absolute;
	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: 72px 72px;
	content: "";
	mask-image: linear-gradient( to bottom, rgba( 0, 0, 0, .9 ), transparent );
	pointer-events: none;
}

.eco-section--navy > * {
	position: relative;
}

.eco-eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 20px;
	color: var(--eco-green-700);
	font-size: .73rem;
	font-weight: 750;
	letter-spacing: .18em;
	line-height: 1.2;
	text-transform: uppercase;
}

.eco-eyebrow::before {
	width: 34px;
	height: 2px;
	background: currentColor;
	content: "";
}

.eco-eyebrow--light {
	color: var(--eco-accent);
}

.eco-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 54px;
	padding: 14px 24px;
	border: 1px solid var(--eco-green-800);
	border-radius: 3px;
	background: var(--eco-green-800);
	color: var(--eco-white);
	font-size: .86rem;
	font-weight: 720;
	letter-spacing: .045em;
	line-height: 1.2;
	text-transform: uppercase;
	transition: background var(--eco-transition), border-color var(--eco-transition), color var(--eco-transition), transform var(--eco-transition);
}

.eco-button svg,
.eco-text-link svg,
.eco-project-card__arrow svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	transition: transform var(--eco-transition);
}

.eco-button:hover,
.eco-button:focus-visible {
	border-color: var(--eco-green-700);
	background: var(--eco-green-700);
	transform: translateY( -2px );
}

.eco-button:hover svg,
.eco-text-link:hover svg {
	transform: translateX( 4px );
}

.eco-button--small {
	min-height: 43px;
	padding: 10px 17px;
	font-size: .72rem;
}

.eco-button--light {
	border-color: var(--eco-white);
	background: var(--eco-white);
	color: var(--eco-navy-950);
}

.eco-button--light:hover,
.eco-button--light:focus-visible {
	border-color: var(--eco-accent);
	background: var(--eco-accent);
	color: var(--eco-navy-950);
}

.eco-button--ghost {
	border-color: rgba( 255, 255, 255, .35 );
	background: transparent;
	color: var(--eco-white);
}

.eco-button--ghost:hover,
.eco-button--ghost:focus-visible {
	border-color: var(--eco-white);
	background: rgba( 255, 255, 255, .08 );
}

.eco-button--outline {
	background: transparent;
	color: var(--eco-green-800);
}

.eco-button--outline:hover,
.eco-button--outline:focus-visible {
	color: var(--eco-white);
}

.eco-text-link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--eco-green-700);
	font-size: .82rem;
	font-weight: 740;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.eco-icon {
	display: inline-grid;
	width: 48px;
	height: 48px;
	place-items: center;
	border-radius: 50%;
	background: rgba( 20, 90, 70, .1 );
	color: var(--eco-green-700);
}

.eco-icon svg {
	width: 25px;
	height: 25px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.45;
}

.eco-skip-link {
	position: fixed;
	z-index: 9999;
	top: 10px;
	left: 10px;
	padding: 10px 14px;
	background: var(--eco-white);
	color: var(--eco-navy-950);
	transform: translateY( -160% );
}

.eco-skip-link:focus {
	transform: translateY( 0 );
}

.eco-header {
	position: fixed;
	z-index: 1000;
	top: 0;
	right: 0;
	left: 0;
	border-bottom: 1px solid rgba( 255, 255, 255, .12 );
	background: rgba( 6, 16, 31, .12 );
	color: var(--eco-white);
	transition: background var(--eco-transition), box-shadow var(--eco-transition), color var(--eco-transition), transform var(--eco-transition);
	backdrop-filter: blur( 10px );
}

.admin-bar .eco-header {
	top: 32px;
}

.eco-header.is-scrolled,
body:not( .eco-home ) .eco-header {
	border-bottom-color: rgba( 9, 23, 45, .08 );
	background: rgba( 255, 255, 255, .96 );
	box-shadow: 0 12px 36px rgba( 7, 31, 26, .08 );
	color: var(--eco-ink);
}

.eco-header__inner {
	display: flex;
	min-height: 86px;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	transition: min-height var(--eco-transition);
}

.eco-header.is-scrolled .eco-header__inner {
	min-height: 72px;
}

.eco-header__brand {
	position: relative;
	z-index: 3;
	flex: 0 0 auto;
}

.eco-header .custom-logo-link {
	display: block;
	width: 220px;
	height: 62px;
	overflow: hidden;
	background: var(--eco-white);
}

.eco-header .custom-logo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 53%;
}

.eco-brand--image {
	display: block;
	width: 220px;
	height: 62px;
	overflow: hidden;
	background: var(--eco-white);
}

.eco-brand--image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 53%;
}

.eco-brand--text {
	display: inline-flex;
	width: 182px;
	flex-direction: column;
	align-items: stretch;
	color: var(--eco-white);
	line-height: 1;
}

.eco-header.is-scrolled .eco-brand--text,
body:not( .eco-home ) .eco-brand--text {
	color: var(--eco-green-900);
}

.eco-brand__top {
	font-size: 1.37rem;
	font-weight: 860;
	letter-spacing: .035em;
}

.eco-brand__bottom {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 7px;
	margin-top: 6px;
	color: #77a9cb;
	font-size: .66rem;
	font-weight: 760;
	letter-spacing: .23em;
}

.eco-header.is-scrolled .eco-brand__bottom,
body:not( .eco-home ) .eco-brand__bottom {
	color: var(--eco-blue-600);
}

.eco-brand__bottom i {
	height: 1px;
	background: currentColor;
}

.eco-nav {
	display: flex;
	align-items: center;
	gap: 24px;
}

.eco-menu,
.eco-footer-menu {
	display: flex;
	align-items: center;
	gap: clamp( 17px, 1.8vw, 29px );
	margin: 0;
	padding: 0;
	list-style: none;
}

.eco-menu a {
	position: relative;
	display: block;
	padding-block: 13px;
	font-size: .81rem;
	font-weight: 630;
	letter-spacing: .02em;
	white-space: nowrap;
}

.eco-menu a::after {
	position: absolute;
	right: 0;
	bottom: 7px;
	left: 0;
	height: 1px;
	background: currentColor;
	content: "";
	transform: scaleX( 0 );
	transform-origin: right;
	transition: transform var(--eco-transition);
}

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

.eco-header:not( .is-scrolled ) .eco-nav__cta {
	border-color: rgba( 255, 255, 255, .55 );
	background: rgba( 255, 255, 255, .12 );
}

.eco-nav-toggle {
	position: relative;
	z-index: 3;
	display: none;
	width: 48px;
	height: 48px;
	padding: 12px;
	border: 1px solid currentColor;
	border-radius: 50%;
	background: transparent;
	color: inherit;
}

.eco-nav-toggle span {
	display: block;
	width: 20px;
	height: 1px;
	margin: 5px auto;
	background: currentColor;
	transition: transform var(--eco-transition), opacity var(--eco-transition);
}

.eco-nav-toggle[aria-expanded="true"] span:nth-child( 1 ) {
	transform: translateY( 6px ) rotate( 45deg );
}

.eco-nav-toggle[aria-expanded="true"] span:nth-child( 2 ) {
	opacity: 0;
}

.eco-nav-toggle[aria-expanded="true"] span:nth-child( 3 ) {
	transform: translateY( -6px ) rotate( -45deg );
}

.eco-hero {
	position: relative;
	overflow: hidden;
	min-height: 910px;
	padding: 176px 0 0;
	background:
		linear-gradient( 115deg, rgba( 6, 16, 31, .98 ), rgba( 9, 23, 45, .93 ) 56%, rgba( 7, 47, 40, .88 ) ),
		var(--eco-navy-950);
	color: var(--eco-white);
}

.eco-hero::before {
	position: absolute;
	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-position: center;
	background-size: 86px 86px;
	content: "";
	mask-image: radial-gradient( ellipse at 72% 42%, black 0, transparent 74% );
}

.eco-hero__glow {
	position: absolute;
	top: -180px;
	right: -160px;
	width: 750px;
	height: 750px;
	border-radius: 50%;
	background: rgba( 39, 134, 106, .26 );
	filter: blur( 120px );
}

.eco-hero__grid {
	position: relative;
	display: grid;
	grid-template-columns: 1.06fr .94fr;
	align-items: center;
	gap: clamp( 54px, 7vw, 104px );
}

.eco-hero__content {
	position: relative;
	z-index: 2;
	padding-bottom: 92px;
}

.eco-hero h1 {
	max-width: 720px;
	margin-bottom: 30px;
	color: var(--eco-white);
	font-size: clamp( 3.8rem, 7.6vw, 7.7rem );
	font-weight: 760;
	letter-spacing: -.062em;
	line-height: .88;
}

.eco-hero h1.eco-hero__brand-title {
	width: min( 100%, 620px );
	height: clamp( 142px, 15vw, 184px );
	overflow: hidden;
	margin-bottom: 30px;
	background: var(--eco-white);
	font-size: 1rem;
	line-height: 1;
}

.eco-hero__brand-title img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 53%;
}

.eco-hero h1 span {
	display: block;
	margin-top: .14em;
	color: #85b7d7;
	font-size: .52em;
	font-weight: 520;
	letter-spacing: .27em;
}

.eco-hero__lead {
	max-width: 670px;
	margin-bottom: 22px;
	color: rgba( 255, 255, 255, .88 );
	font-size: clamp( 1.28rem, 2vw, 1.7rem );
	font-weight: 420;
	line-height: 1.36;
}

.eco-hero__scope {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 11px;
	margin-bottom: 38px;
	color: rgba( 255, 255, 255, .56 );
	font-size: .79rem;
	font-weight: 690;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.eco-hero__scope i {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--eco-accent);
}

.eco-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.eco-hero__visual {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.eco-hero__visual--image {
	height: 620px;
	margin-bottom: 80px;
	border-radius: 2px;
	box-shadow: 0 36px 90px rgba( 0, 0, 0, .35 );
}

.eco-hero__visual--image::after {
	position: absolute;
	inset: 0;
	border: 1px solid rgba( 255, 255, 255, .2 );
	background: linear-gradient( to top, rgba( 6, 16, 31, .46 ), transparent 60% );
	content: "";
}

.eco-hero__visual--image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.eco-tech-card {
	position: relative;
	min-height: 520px;
	padding: 28px;
	border: 1px solid rgba( 255, 255, 255, .18 );
	background: linear-gradient( 145deg, rgba( 255, 255, 255, .11 ), rgba( 255, 255, 255, .025 ) );
	box-shadow: 0 40px 90px rgba( 0, 0, 0, .26 );
	transform: perspective( 1100px ) rotateY( -5deg ) rotateX( 1deg );
	backdrop-filter: blur( 14px );
}

.eco-tech-card::before,
.eco-tech-card::after {
	position: absolute;
	border: 1px solid rgba( 183, 216, 106, .25 );
	content: "";
}

.eco-tech-card::before {
	inset: 52px -28px -28px 52px;
	z-index: -1;
}

.eco-tech-card::after {
	top: -18px;
	right: 46px;
	width: 96px;
	height: 2px;
	border: 0;
	background: var(--eco-accent);
}

.eco-tech-card__header,
.eco-tech-card__footer {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	color: rgba( 255, 255, 255, .55 );
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .68rem;
	letter-spacing: .13em;
}

.eco-tech-card__header span:first-child {
	color: var(--eco-accent);
}

.eco-tech-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 10px;
	margin: 64px 6px 55px;
	transform: perspective( 500px ) rotateX( 56deg );
	transform-origin: center bottom;
}

.eco-tech-grid span {
	position: relative;
	height: 94px;
	border: 1px solid rgba( 133, 183, 215, .7 );
	background:
		linear-gradient( 90deg, transparent 49%, rgba( 133, 183, 215, .42 ) 50%, transparent 51% ),
		linear-gradient( transparent 49%, rgba( 133, 183, 215, .42 ) 50%, transparent 51% ),
		linear-gradient( 135deg, rgba( 36, 89, 137, .5 ), rgba( 12, 53, 67, .35 ) );
	background-size: 33.33% 100%, 100% 33.33%, auto;
	box-shadow: 0 12px 26px rgba( 0, 0, 0, .14 );
}

.eco-tech-flow {
	display: grid;
	grid-template-columns: auto 1fr auto 1fr auto;
	align-items: center;
	gap: 12px;
	margin: 0 12px 52px;
	color: rgba( 255, 255, 255, .82 );
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .69rem;
	letter-spacing: .12em;
}

.eco-tech-flow i {
	position: relative;
	height: 1px;
	background: linear-gradient( 90deg, var(--eco-accent), rgba( 183, 216, 106, .18 ) );
}

.eco-tech-flow i::after {
	position: absolute;
	top: -3px;
	right: 0;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--eco-accent);
	box-shadow: 0 0 15px var(--eco-accent);
	content: "";
}

.eco-tech-card__footer {
	justify-content: flex-start;
	gap: 22px;
}

.eco-stats {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
}

.eco-stats--hero {
	position: relative;
	border-top: 1px solid rgba( 255, 255, 255, .14 );
}

.eco-stats > div {
	display: flex;
	min-height: 154px;
	flex-direction: column;
	justify-content: center;
	padding: 30px 44px;
	border-right: 1px solid rgba( 255, 255, 255, .14 );
}

.eco-stats > div:first-child {
	padding-left: 0;
}

.eco-stats > div:last-child {
	border-right: 0;
}

.eco-stats strong {
	color: var(--eco-white);
	font-size: clamp( 2.05rem, 3vw, 3rem );
	font-weight: 650;
	letter-spacing: -.045em;
	line-height: 1;
}

.eco-stats span {
	margin-top: 10px;
	color: rgba( 255, 255, 255, .55 );
	font-size: .76rem;
	font-weight: 620;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.eco-split {
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	gap: clamp( 54px, 9vw, 145px );
}

.eco-split h2 {
	margin-bottom: 0;
}

.eco-split--intro {
	align-items: start;
}

.eco-split--wide {
	grid-template-columns: .8fr 1.2fr;
}

.eco-lead-copy > p,
.eco-prose--lead > p {
	color: var(--eco-slate);
	font-size: clamp( 1.08rem, 1.5vw, 1.3rem );
	line-height: 1.72;
}

.eco-lead-copy > p:first-child,
.eco-prose--lead > p:first-child {
	color: var(--eco-ink);
}

.eco-lead-copy .eco-text-link {
	margin-top: 14px;
}

.eco-section-heading {
	display: grid;
	grid-template-columns: 1.2fr .8fr;
	align-items: end;
	gap: 54px;
	margin-bottom: clamp( 46px, 6vw, 78px );
}

.eco-section-heading h2,
.eco-section-heading p {
	margin-bottom: 0;
}

.eco-section-heading > p {
	max-width: 480px;
	justify-self: end;
	color: var(--eco-slate);
}

.eco-section-heading--light h2 {
	color: var(--eco-white);
}

.eco-section-heading--light > p {
	color: rgba( 255, 255, 255, .62 );
}

.eco-service-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	border-top: 1px solid var(--eco-line);
	border-left: 1px solid var(--eco-line);
}

.eco-service-card {
	position: relative;
	display: flex;
	min-height: 355px;
	flex-direction: column;
	padding: 38px;
	border-right: 1px solid var(--eco-line);
	border-bottom: 1px solid var(--eco-line);
	background: rgba( 255, 255, 255, .55 );
	transition: background var(--eco-transition), box-shadow var(--eco-transition), transform var(--eco-transition);
}

.eco-service-card:hover {
	z-index: 2;
	background: var(--eco-white);
	box-shadow: var(--eco-shadow);
	transform: translateY( -6px );
}

.eco-service-card__no {
	position: absolute;
	top: 34px;
	right: 34px;
	color: var(--eco-muted);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .72rem;
	letter-spacing: .08em;
}

.eco-service-card h3 {
	margin: 54px 0 18px;
}

.eco-service-card p {
	margin-bottom: 28px;
	color: var(--eco-slate);
	font-size: .95rem;
}

.eco-service-card .eco-text-link {
	margin-top: auto;
}

.eco-section-action {
	margin-top: 44px;
	text-align: center;
}

.eco-project-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 24px;
}

.eco-project-grid--archive {
	row-gap: 64px;
}

.eco-project-card__image {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 1.34;
	background:
		linear-gradient( 135deg, rgba( 9, 23, 45, .98 ), rgba( 13, 64, 51, .9 ) ),
		var(--eco-navy-900);
}

.eco-project-card__image::after {
	position: absolute;
	inset: 0;
	background: linear-gradient( to top, rgba( 6, 16, 31, .45 ), transparent 55% );
	content: "";
	opacity: .75;
	transition: opacity var(--eco-transition);
}

.eco-project-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 650ms cubic-bezier( .2, .7, .2, 1 );
}

.eco-project-card:hover .eco-project-card__image img {
	transform: scale( 1.035 );
}

.eco-project-card:hover .eco-project-card__image::after {
	opacity: .4;
}

.eco-project-card__placeholder {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	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: 40px 40px;
	color: rgba( 255, 255, 255, .42 );
}

.eco-project-card__placeholder svg {
	width: 70px;
	height: 70px;
	fill: none;
	stroke: currentColor;
	stroke-width: .7;
}

.eco-project-card__arrow {
	position: absolute;
	z-index: 2;
	right: 20px;
	bottom: 20px;
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	background: var(--eco-white);
	color: var(--eco-navy-950);
	transition: background var(--eco-transition), color var(--eco-transition), transform var(--eco-transition);
}

.eco-project-card:hover .eco-project-card__arrow {
	background: var(--eco-accent);
	transform: translate( 3px, -3px );
}

.eco-project-card__body {
	padding-top: 26px;
}

.eco-project-card__type {
	margin-bottom: 11px;
	color: var(--eco-green-700);
	font-size: .68rem;
	font-weight: 740;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.eco-project-card h3 {
	margin-bottom: 17px;
	font-size: 1.45rem;
}

.eco-project-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	color: var(--eco-slate);
	font-size: .82rem;
}

.eco-project-card__meta span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.eco-project-card__meta svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: var(--eco-green-700);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}

.eco-empty-projects {
	padding: clamp( 42px, 7vw, 88px );
	border: 1px solid var(--eco-line);
	background:
		linear-gradient( 115deg, rgba( 255, 255, 255, .97 ), rgba( 242, 246, 244, .94 ) ),
		repeating-linear-gradient( 90deg, transparent 0 68px, rgba( 13, 64, 51, .08 ) 68px 69px );
	text-align: center;
}

.eco-empty-projects .eco-eyebrow {
	justify-content: center;
}

.eco-empty-projects h3 {
	max-width: 720px;
	margin-inline: auto;
}

.eco-empty-projects p:last-child {
	max-width: 650px;
	margin: 0 auto;
	color: var(--eco-slate);
}

.eco-empty-projects--large {
	padding-block: clamp( 72px, 10vw, 130px );
}

.eco-empty-projects--large .eco-icon {
	margin: 0 auto 28px;
}

.eco-empty-projects--large h2 {
	max-width: 840px;
	margin-inline: auto;
	font-size: clamp( 1.8rem, 3.2vw, 3rem );
}

.eco-feature-grid {
	display: grid;
	grid-template-columns: repeat( 4, 1fr );
	border-top: 1px solid rgba( 255, 255, 255, .14 );
	border-left: 1px solid rgba( 255, 255, 255, .14 );
}

.eco-feature-grid article {
	min-height: 300px;
	padding: 36px 30px;
	border-right: 1px solid rgba( 255, 255, 255, .14 );
	border-bottom: 1px solid rgba( 255, 255, 255, .14 );
}

.eco-feature-grid article > span {
	color: var(--eco-accent);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .72rem;
}

.eco-feature-grid h3 {
	margin: 70px 0 18px;
	color: var(--eco-white);
	font-size: 1.35rem;
}

.eco-feature-grid p {
	margin: 0;
	color: rgba( 255, 255, 255, .58 );
	font-size: .91rem;
}

.eco-b2b-home {
	overflow: hidden;
}

.eco-b2b-panel {
	display: grid;
	grid-template-columns: 1.12fr .88fr;
	overflow: hidden;
	min-height: 580px;
	background: var(--eco-soft);
}

.eco-b2b-panel__content {
	padding: clamp( 50px, 7vw, 92px );
}

.eco-b2b-panel__content h2 {
	margin-bottom: 28px;
}

.eco-b2b-panel__content > p:not( .eco-eyebrow ) {
	max-width: 670px;
	color: var(--eco-slate);
}

.eco-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin: 34px 0 38px;
}

.eco-chip-list span {
	padding: 8px 12px;
	border: 1px solid var(--eco-line);
	background: var(--eco-white);
	color: var(--eco-green-800);
	font-size: .71rem;
	font-weight: 680;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.eco-b2b-panel__aside {
	position: relative;
	display: grid;
	overflow: hidden;
	place-items: center;
	background:
		linear-gradient( rgba( 255, 255, 255, .04 ) 1px, transparent 1px ),
		linear-gradient( 90deg, rgba( 255, 255, 255, .04 ) 1px, transparent 1px ),
		linear-gradient( 145deg, var(--eco-navy-950), var(--eco-green-900) );
	background-size: 52px 52px, 52px 52px, auto;
}

.eco-b2b-panel__aside::before,
.eco-b2b-panel__aside::after {
	position: absolute;
	width: 430px;
	height: 430px;
	border: 1px solid rgba( 183, 216, 106, .22 );
	border-radius: 50%;
	content: "";
}

.eco-b2b-panel__aside::after {
	width: 290px;
	height: 290px;
	border-color: rgba( 133, 183, 215, .22 );
}

.eco-orbit {
	position: relative;
	z-index: 1;
	display: grid;
	width: 74%;
	grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
	align-items: center;
	gap: 9px;
	color: var(--eco-white);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .09em;
}

.eco-orbit i {
	height: 1px;
	background: linear-gradient( 90deg, var(--eco-accent), rgba( 183, 216, 106, .18 ) );
}

.eco-contact-layout {
	display: grid;
	grid-template-columns: .83fr 1.17fr;
	align-items: start;
	gap: clamp( 54px, 8vw, 120px );
}

.eco-contact-copy {
	position: sticky;
	top: 120px;
}

.eco-contact-copy > p:not( .eco-eyebrow, .eco-data-pending ) {
	color: var(--eco-slate);
	font-size: 1.04rem;
}

.eco-check-list {
	margin: 34px 0 0;
	padding: 0;
	list-style: none;
}

.eco-check-list li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--eco-line);
	font-size: .91rem;
}

.eco-check-list svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: var(--eco-green-700);
	stroke-width: 2;
}

.eco-form-card {
	padding: clamp( 34px, 5vw, 58px );
	border: 1px solid var(--eco-line);
	background: var(--eco-white);
	box-shadow: 0 18px 48px rgba( 6, 31, 26, .06 );
}

.eco-form-card--page h2 {
	margin-bottom: 34px;
	font-size: 2rem;
}

.eco-contact-form {
	display: grid;
	gap: 20px;
}

.eco-form-row {
	display: grid;
	grid-template-columns: repeat( 2, 1fr );
	gap: 18px;
}

.eco-contact-form label:not( .eco-consent ) {
	display: grid;
	gap: 8px;
}

.eco-contact-form label > span:first-child {
	font-size: .74rem;
	font-weight: 710;
	letter-spacing: .055em;
	text-transform: uppercase;
}

.eco-contact-form input,
.eco-contact-form select,
.eco-contact-form textarea {
	width: 100%;
	border: 1px solid #ccd7d3;
	border-radius: 0;
	outline: 0;
	background: #fbfdfc;
	color: var(--eco-ink);
	transition: border-color var(--eco-transition), box-shadow var(--eco-transition), background var(--eco-transition);
}

.eco-contact-form input,
.eco-contact-form select {
	height: 53px;
	padding: 0 14px;
}

.eco-contact-form textarea {
	min-height: 144px;
	padding: 13px 14px;
	resize: vertical;
}

.eco-contact-form input:focus,
.eco-contact-form select:focus,
.eco-contact-form textarea:focus {
	border-color: var(--eco-green-700);
	background: var(--eco-white);
	box-shadow: 0 0 0 3px rgba( 20, 90, 70, .11 );
}

.eco-contact-form ::placeholder {
	color: #8d9895;
}

.eco-consent {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 10px;
	color: var(--eco-slate);
	font-size: .76rem;
	line-height: 1.5;
}

.eco-consent input {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: var(--eco-green-700);
}

.eco-consent a {
	color: var(--eco-green-700);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.eco-button--submit {
	justify-self: start;
	margin-top: 4px;
}

.eco-honeypot {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.eco-form-message {
	margin-bottom: 24px;
	padding: 15px 17px;
	border-left: 3px solid;
	font-size: .88rem;
}

.eco-form-message--success {
	border-color: var(--eco-green-700);
	background: #eef8f4;
	color: var(--eco-green-900);
}

.eco-form-message--error {
	border-color: #b34545;
	background: #fff4f3;
	color: #772f2f;
}

.eco-page-hero {
	position: relative;
	overflow: hidden;
	padding: 190px 0 112px;
	background:
		radial-gradient( circle at 82% 12%, rgba( 39, 134, 106, .31 ), transparent 33% ),
		linear-gradient( 128deg, var(--eco-navy-950), var(--eco-navy-900) 68%, #0a302e );
	color: rgba( 255, 255, 255, .72 );
}

.eco-page-hero::before {
	position: absolute;
	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: 76px 76px;
	content: "";
	mask-image: linear-gradient( 90deg, transparent 10%, black 75%, transparent );
}

.eco-page-hero .eco-shell {
	position: relative;
}

.eco-page-hero__grid {
	display: grid;
	grid-template-columns: 1.25fr .75fr;
	align-items: end;
	gap: 70px;
}

.eco-page-hero h1 {
	max-width: 920px;
	margin-bottom: 30px;
	color: var(--eco-white);
	font-size: clamp( 3rem, 5.8vw, 5.8rem );
	font-weight: 660;
}

.eco-page-hero p:last-child {
	max-width: 760px;
	margin-bottom: 0;
	font-size: clamp( 1.04rem, 1.6vw, 1.3rem );
}

.eco-page-hero--compact {
	padding-bottom: 90px;
}

.eco-page-hero--compact h1 {
	max-width: 980px;
}

.eco-page-hero__mark {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 17px;
	margin-bottom: 20px;
	color: rgba( 255, 255, 255, .82 );
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .14em;
}

.eco-page-hero__mark i {
	height: 1px;
	background: linear-gradient( 90deg, var(--eco-accent), rgba( 183, 216, 106, .12 ) );
}

.eco-page-hero__mark--stack {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 15px;
	padding: 32px;
	border: 1px solid rgba( 255, 255, 255, .17 );
}

.eco-page-hero__mark--stack i {
	width: 100%;
	background: linear-gradient( 90deg, var(--eco-accent), transparent );
}

.eco-page-hero__metrics {
	display: grid;
	border-top: 1px solid rgba( 255, 255, 255, .2 );
}

.eco-page-hero__metrics span {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	padding: 17px 0;
	border-bottom: 1px solid rgba( 255, 255, 255, .2 );
	font-size: .72rem;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.eco-page-hero__metrics strong {
	color: var(--eco-white);
	font-size: 1.3rem;
	letter-spacing: -.02em;
}

.eco-stats--light {
	margin-top: clamp( 62px, 9vw, 120px );
	border-top: 1px solid var(--eco-line);
	border-bottom: 1px solid var(--eco-line);
}

.eco-stats--light > div {
	border-right-color: var(--eco-line);
}

.eco-stats--light strong {
	color: var(--eco-green-900);
}

.eco-stats--light span {
	color: var(--eco-slate);
}

.eco-process-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	border-top: 1px solid var(--eco-line);
	border-left: 1px solid var(--eco-line);
}

.eco-process-grid article {
	min-height: 300px;
	padding: 38px;
	border-right: 1px solid var(--eco-line);
	border-bottom: 1px solid var(--eco-line);
	background: rgba( 255, 255, 255, .55 );
}

.eco-process-grid article > span,
.eco-b2b-scope-grid article > span {
	color: var(--eco-green-700);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .71rem;
}

.eco-process-grid h3 {
	margin: 68px 0 16px;
}

.eco-process-grid p {
	margin: 0;
	color: var(--eco-slate);
	font-size: .93rem;
}

.eco-capability-panel {
	display: grid;
	grid-template-columns: .86fr 1.14fr;
	gap: clamp( 50px, 8vw, 120px );
	padding: clamp( 50px, 7vw, 90px );
	background: linear-gradient( 135deg, var(--eco-navy-950), var(--eco-green-900) );
	color: rgba( 255, 255, 255, .65 );
}

.eco-capability-panel h2 {
	color: var(--eco-white);
}

.eco-capability-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.eco-capability-list li {
	display: grid;
	grid-template-columns: 42px 1fr;
	gap: 14px;
	padding: 17px 0;
	border-bottom: 1px solid rgba( 255, 255, 255, .15 );
	color: var(--eco-white);
}

.eco-capability-list span {
	color: var(--eco-accent);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .7rem;
}

.eco-offer-nav {
	position: sticky;
	z-index: 20;
	top: 71px;
	border-bottom: 1px solid var(--eco-line);
	background: rgba( 255, 255, 255, .96 );
	backdrop-filter: blur( 12px );
}

.admin-bar .eco-offer-nav {
	top: 103px;
}

.eco-offer-nav .eco-shell {
	display: flex;
	overflow-x: auto;
	gap: 30px;
	scrollbar-width: none;
}

.eco-offer-nav .eco-shell::-webkit-scrollbar {
	display: none;
}

.eco-offer-nav a {
	flex: 0 0 auto;
	padding: 19px 0;
	color: var(--eco-slate);
	font-size: .72rem;
	font-weight: 690;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.eco-offer-nav a:hover {
	color: var(--eco-green-700);
}

.eco-offer-list {
	padding-top: 46px;
}

.eco-offer-row {
	display: grid;
	grid-template-columns: 70px .83fr 1.17fr;
	gap: clamp( 28px, 5vw, 70px );
	padding: clamp( 54px, 7vw, 92px ) 0;
	border-bottom: 1px solid var(--eco-line);
	scroll-margin-top: 150px;
}

.eco-offer-row__number {
	padding-top: 6px;
	color: var(--eco-muted);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .75rem;
}

.eco-offer-row__title .eco-icon {
	margin-bottom: 28px;
}

.eco-offer-row__title h2 {
	font-size: clamp( 1.85rem, 3vw, 3.2rem );
}

.eco-offer-row__copy p {
	color: var(--eco-slate);
	font-size: 1.05rem;
}

.eco-offer-row__copy ul {
	display: grid;
	grid-template-columns: repeat( 2, 1fr );
	gap: 0 28px;
	margin: 30px 0 0;
	padding: 0;
	list-style: none;
}

.eco-offer-row__copy li {
	position: relative;
	padding: 12px 0 12px 18px;
	border-bottom: 1px solid var(--eco-line);
	font-size: .87rem;
}

.eco-offer-row__copy li::before {
	position: absolute;
	top: 21px;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--eco-green-700);
	content: "";
}

.eco-inline-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 70px;
}

.eco-inline-cta h2 {
	margin-bottom: 18px;
	font-size: clamp( 2rem, 3.5vw, 3.6rem );
}

.eco-inline-cta p:last-child {
	max-width: 720px;
	margin-bottom: 0;
	color: var(--eco-slate);
}

.eco-inline-cta .eco-button {
	flex: 0 0 auto;
}

.eco-page-hero--b2b .eco-button {
	margin-top: 26px;
}

.eco-b2b-audience {
	display: grid;
	grid-template-columns: repeat( 2, 1fr );
	border-top: 1px solid rgba( 255, 255, 255, .18 );
	border-left: 1px solid rgba( 255, 255, 255, .18 );
}

.eco-b2b-audience span {
	min-height: 82px;
	padding: 25px 20px;
	border-right: 1px solid rgba( 255, 255, 255, .18 );
	border-bottom: 1px solid rgba( 255, 255, 255, .18 );
	color: rgba( 255, 255, 255, .8 );
	font-size: .78rem;
	font-weight: 660;
	letter-spacing: .045em;
	text-transform: uppercase;
}

.eco-b2b-scope-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	border-top: 1px solid var(--eco-line);
	border-left: 1px solid var(--eco-line);
}

.eco-b2b-scope-grid article {
	min-height: 290px;
	padding: 36px;
	border-right: 1px solid var(--eco-line);
	border-bottom: 1px solid var(--eco-line);
	background: rgba( 255, 255, 255, .55 );
}

.eco-b2b-scope-grid h3 {
	margin: 64px 0 16px;
}

.eco-b2b-scope-grid p {
	margin: 0;
	color: var(--eco-slate);
	font-size: .91rem;
}

.eco-audience-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	border-top: 1px solid rgba( 255, 255, 255, .16 );
	border-left: 1px solid rgba( 255, 255, 255, .16 );
}

.eco-audience-grid div {
	display: flex;
	min-height: 140px;
	align-items: flex-end;
	padding: 30px;
	border-right: 1px solid rgba( 255, 255, 255, .16 );
	border-bottom: 1px solid rgba( 255, 255, 255, .16 );
	color: var(--eco-white);
	font-size: 1.05rem;
	font-weight: 630;
}

.eco-requirements-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 14px;
}

.eco-requirements-grid div {
	display: flex;
	min-height: 105px;
	align-items: center;
	gap: 20px;
	padding: 22px;
	border: 1px solid var(--eco-line);
}

.eco-requirements-grid span {
	color: var(--eco-green-700);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .69rem;
}

.eco-requirements-grid p {
	margin: 0;
	font-size: .89rem;
	font-weight: 600;
}

.eco-center-cta {
	max-width: 790px;
	margin: 100px auto 0;
	text-align: center;
}

.eco-center-cta h2 {
	margin-bottom: 18px;
}

.eco-center-cta p {
	color: var(--eco-slate);
}

.eco-center-cta .eco-button {
	margin-top: 16px;
}

.eco-contact-layout--page {
	grid-template-columns: .75fr 1.25fr;
}

.eco-contact-cards {
	display: grid;
	gap: 12px;
	margin-top: 36px;
}

.eco-contact-cards > * {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 2px 16px;
	padding: 22px;
	border: 1px solid var(--eco-line);
	background: var(--eco-white);
}

.eco-contact-cards .eco-icon {
	grid-row: 1 / 3;
}

.eco-contact-cards small {
	color: var(--eco-muted);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.eco-contact-cards strong {
	font-size: .94rem;
	font-weight: 620;
}

.eco-data-pending {
	margin-top: 28px;
	padding: 14px 16px;
	border-left: 3px solid var(--eco-green-700);
	background: var(--eco-soft);
	font-size: .86rem;
}

.eco-project-hero {
	position: relative;
	padding: 190px 0 100px;
	background: linear-gradient( 135deg, var(--eco-navy-950), var(--eco-green-900) );
	color: rgba( 255, 255, 255, .7 );
}

.eco-project-hero--image {
	min-height: 720px;
	display: flex;
	align-items: flex-end;
}

.eco-project-hero__media {
	position: absolute;
	inset: 0;
}

.eco-project-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.eco-project-hero__media span {
	position: absolute;
	inset: 0;
	background: linear-gradient( 90deg, rgba( 6, 16, 31, .96 ), rgba( 6, 16, 31, .65 ) 55%, rgba( 6, 16, 31, .3 ) ), linear-gradient( to top, rgba( 6, 16, 31, .7 ), transparent 50% );
}

.eco-project-hero__content {
	position: relative;
	z-index: 1;
}

.eco-project-hero h1 {
	max-width: 900px;
	margin: 20px 0 28px;
	color: var(--eco-white);
	font-size: clamp( 3rem, 6vw, 6rem );
}

.eco-project-hero__content > p:last-child {
	max-width: 680px;
	font-size: 1.18rem;
}

.eco-back-link {
	display: inline-block;
	margin-bottom: 34px;
	color: rgba( 255, 255, 255, .7 );
	font-size: .76rem;
	font-weight: 650;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.eco-project-facts {
	display: grid;
	grid-template-columns: repeat( 4, 1fr );
	margin-bottom: 76px;
	border-top: 1px solid var(--eco-line);
	border-left: 1px solid var(--eco-line);
}

.eco-project-facts > div {
	min-height: 135px;
	padding: 24px;
	border-right: 1px solid var(--eco-line);
	border-bottom: 1px solid var(--eco-line);
}

.eco-project-facts span {
	display: block;
	margin-bottom: 20px;
	color: var(--eco-muted);
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.eco-project-facts strong {
	font-size: 1rem;
	font-weight: 610;
}

.eco-project-facts__scope {
	grid-column: 1 / -1;
}

.eco-project-content {
	max-width: 1000px;
	margin-inline: auto;
}

.eco-prose {
	color: var(--eco-slate);
}

.eco-prose > * {
	max-width: 820px;
	margin-inline: auto;
}

.eco-prose > .alignwide {
	max-width: 1080px;
}

.eco-prose > .alignfull {
	max-width: none;
}

.eco-prose h2,
.eco-prose h3,
.eco-prose h4 {
	margin-top: 2.1em;
	margin-bottom: .75em;
}

.eco-prose h2 {
	font-size: clamp( 1.8rem, 3vw, 2.7rem );
}

.eco-prose a:not( .eco-button ) {
	color: var(--eco-green-700);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.eco-prose ul,
.eco-prose ol {
	padding-left: 1.4em;
}

.eco-prose figure,
.eco-prose .wp-block-gallery,
.eco-project-content figure,
.eco-project-content .wp-block-gallery {
	margin-top: 44px;
	margin-bottom: 44px;
}

.eco-prose--legal {
	max-width: 860px;
}

.eco-prose--legal > * {
	max-width: none;
}

.eco-prose--legal h2 {
	font-size: 1.55rem;
}

.eco-content-grid {
	display: grid;
	gap: 26px;
}

.eco-article-card {
	padding: 34px;
	border: 1px solid var(--eco-line);
}

.eco-article-card__date {
	color: var(--eco-muted);
	font-size: .76rem;
}

.eco-article-card h2 {
	font-size: 2rem;
}

.eco-article-card > p:not( .eco-article-card__date ) {
	color: var(--eco-slate);
}

.eco-error-page {
	display: grid;
	min-height: 82vh;
	padding: 170px 0 100px;
	place-items: center;
	background: var(--eco-soft);
}

.eco-error-page__inner {
	max-width: 820px;
	text-align: center;
}

.eco-error-page__inner .eco-eyebrow {
	justify-content: center;
}

.eco-error-page__code {
	margin-bottom: 8px;
	color: rgba( 13, 64, 51, .12 );
	font-size: clamp( 7rem, 20vw, 15rem );
	font-weight: 800;
	letter-spacing: -.09em;
	line-height: .7;
}

.eco-error-page h1 {
	font-size: clamp( 2.2rem, 4.8vw, 4.7rem );
}

.eco-error-page p:not( .eco-eyebrow, .eco-error-page__code ) {
	color: var(--eco-slate);
}

.eco-error-page .eco-button {
	margin-top: 20px;
}

.eco-footer {
	padding-top: 0;
	background: var(--eco-navy-950);
	color: rgba( 255, 255, 255, .62 );
}

.eco-footer__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 50px;
	padding: 70px 0;
	border-bottom: 1px solid rgba( 255, 255, 255, .14 );
}

.eco-footer__cta h2 {
	max-width: 780px;
	margin-bottom: 0;
	color: var(--eco-white);
	font-size: clamp( 2rem, 3.7vw, 3.8rem );
}

.eco-footer__cta .eco-button {
	flex: 0 0 auto;
}

.eco-footer__grid {
	display: grid;
	grid-template-columns: 1.6fr .72fr .88fr 1fr;
	gap: 60px;
	padding: 75px 0 65px;
}

.eco-footer__brand > .custom-logo-link {
	display: inline-block;
	margin-bottom: 26px;
	width: 260px;
	height: 78px;
	overflow: hidden;
	background: var(--eco-white);
}

.eco-footer__brand .custom-logo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 53%;
}

.eco-footer__brand > .eco-brand--image {
	width: 260px;
	height: 78px;
	margin-bottom: 26px;
}

.eco-brand--footer {
	margin-bottom: 26px;
}

.eco-footer__brand > p {
	max-width: 380px;
	font-size: .87rem;
}

.eco-footer__stats {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 28px;
	margin-top: 28px;
}

.eco-footer__stats span {
	display: flex;
	flex-direction: column;
	font-size: .67rem;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.eco-footer__stats strong {
	margin-bottom: 3px;
	color: var(--eco-white);
	font-size: 1.2rem;
	letter-spacing: -.02em;
}

.eco-footer h3 {
	margin-bottom: 25px;
	color: var(--eco-white);
	font-size: .74rem;
	font-weight: 720;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.eco-footer-menu,
.eco-footer-list {
	display: grid;
	gap: 11px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.eco-footer-menu a,
.eco-footer-list li {
	font-size: .82rem;
}

.eco-footer-menu a:hover,
.eco-footer a:hover {
	color: var(--eco-white);
}

.eco-footer-contact li {
	display: flex;
	align-items: flex-start;
	gap: 9px;
}

.eco-footer-contact svg {
	width: 16px;
	height: 16px;
	margin-top: 4px;
	fill: none;
	stroke: var(--eco-accent);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}

.eco-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	padding: 24px 0 32px;
	border-top: 1px solid rgba( 255, 255, 255, .12 );
	font-size: .7rem;
}

.eco-footer__bottom p {
	margin: 0;
}

.eco-footer__bottom a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.eco-show-mobile {
	display: none;
}

@media ( max-width: 1120px ) {
	.eco-header__inner {
		min-height: 74px;
	}

	.eco-nav-toggle {
		display: block;
	}

	.eco-nav {
		position: fixed;
		inset: 0;
		display: flex;
		visibility: hidden;
		width: 100%;
		height: 100dvh;
		flex-direction: column;
		align-items: stretch;
		justify-content: center;
		padding: 100px max( 24px, calc( ( 100vw - var(--eco-shell) ) / 2 ) );
		background: var(--eco-navy-950);
		color: var(--eco-white);
		opacity: 0;
		transform: translateY( -10px );
		transition: visibility var(--eco-transition), opacity var(--eco-transition), transform var(--eco-transition);
	}

	.eco-nav.is-open {
		visibility: visible;
		opacity: 1;
		transform: translateY( 0 );
	}

	.eco-menu {
		display: grid;
		gap: 0;
		width: 100%;
	}

	.eco-menu li {
		border-bottom: 1px solid rgba( 255, 255, 255, .13 );
	}

	.eco-menu a {
		padding: 14px 0;
		font-size: clamp( 1.45rem, 5vw, 2.2rem );
		font-weight: 570;
		letter-spacing: -.02em;
	}

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

	.eco-nav__cta {
		align-self: flex-start;
		margin-top: 24px;
		border-color: var(--eco-white) !important;
		background: var(--eco-white) !important;
		color: var(--eco-navy-950);
	}

	.nav-open .eco-header,
	.nav-open .eco-header.is-scrolled {
		background: var(--eco-navy-950);
		color: var(--eco-white);
	}

	.nav-open .eco-brand--text,
	.nav-open .eco-brand__top {
		color: var(--eco-white) !important;
	}

	.nav-open .eco-brand__bottom {
		color: #85b7d7 !important;
	}

	.eco-hero {
		min-height: auto;
		padding-top: 150px;
	}

	.eco-hero__grid {
		grid-template-columns: 1fr;
	}

	.eco-hero__content {
		padding-bottom: 20px;
	}

	.eco-hero__visual {
		max-width: 720px;
		margin: 0 auto 70px;
	}

	.eco-hero__visual--image {
		width: 100%;
		height: 500px;
	}

	.eco-tech-card {
		min-height: 460px;
		transform: none;
	}

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

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

	.eco-project-card:last-child:nth-child( 3 ) {
		display: none;
	}

	.eco-footer__grid {
		grid-template-columns: 1.5fr 1fr 1fr;
	}

	.eco-footer__grid > div:last-child {
		grid-column: 2 / -1;
	}
}

@media ( max-width: 900px ) {
	.admin-bar .eco-header {
		top: 46px;
	}

	.eco-section {
		padding-block: 86px;
	}

	.eco-split,
	.eco-split--wide,
	.eco-section-heading,
	.eco-b2b-panel,
	.eco-contact-layout,
	.eco-contact-layout--page,
	.eco-page-hero__grid,
	.eco-capability-panel {
		grid-template-columns: 1fr;
	}

	.eco-section-heading {
		align-items: start;
		gap: 22px;
	}

	.eco-section-heading > p {
		justify-self: start;
	}

	.eco-stats > div {
		padding-inline: 28px;
	}

	.eco-stats > div:first-child {
		padding-left: 0;
	}

	.eco-b2b-panel__aside {
		min-height: 380px;
	}

	.eco-contact-copy {
		position: static;
	}

	.eco-page-hero {
		padding-top: 160px;
		padding-bottom: 84px;
	}

	.eco-page-hero__metrics,
	.eco-b2b-audience,
	.eco-page-hero__mark {
		max-width: 620px;
	}

	.eco-process-grid,
	.eco-b2b-scope-grid,
	.eco-audience-grid,
	.eco-requirements-grid {
		grid-template-columns: repeat( 2, 1fr );
	}

	.eco-offer-row {
		grid-template-columns: 45px 1fr;
	}

	.eco-offer-row__copy {
		grid-column: 2;
	}

	.eco-inline-cta,
	.eco-footer__cta {
		align-items: flex-start;
		flex-direction: column;
		gap: 30px;
	}

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

	.eco-project-hero--image {
		min-height: 630px;
	}
}

@media ( max-width: 680px ) {
	:root {
		--eco-radius: 12px;
	}

	body {
		font-size: 16px;
	}

	.eco-shell {
		width: min( calc( 100% - 32px ), var(--eco-shell) );
	}

	.eco-section {
		padding-block: 68px;
	}

	.eco-header__inner {
		min-height: 68px;
	}

	.eco-header .custom-logo {
		width: 100%;
		height: 100%;
	}

	.eco-header .custom-logo-link,
	.eco-header .eco-brand--image {
		width: 178px;
		height: 50px;
	}

	.eco-brand--text {
		width: 155px;
	}

	.eco-brand__top {
		font-size: 1.17rem;
	}

	.eco-brand__bottom {
		font-size: .56rem;
	}

	.eco-nav-toggle {
		width: 43px;
		height: 43px;
	}

	.eco-hero {
		padding-top: 124px;
	}

	.eco-hero h1.eco-hero__brand-title {
		height: clamp( 112px, 30vw, 142px );
	}

	.eco-hero h1 span {
		font-size: .46em;
		letter-spacing: .2em;
	}

	.eco-hero__lead {
		font-size: 1.18rem;
	}

	.eco-hero__scope {
		font-size: .68rem;
	}

	.eco-actions {
		display: grid;
	}

	.eco-actions .eco-button {
		width: 100%;
	}

	.eco-tech-card {
		min-height: 350px;
		padding: 20px;
	}

	.eco-tech-card::before {
		inset: 35px -12px -12px 35px;
	}

	.eco-tech-grid {
		gap: 6px;
		margin: 36px 0 26px;
	}

	.eco-tech-grid span {
		height: 64px;
	}

	.eco-tech-flow {
		margin-bottom: 32px;
	}

	.eco-tech-card__footer {
		flex-wrap: wrap;
		font-size: .56rem;
	}

	.eco-stats,
	.eco-stats--light {
		grid-template-columns: 1fr;
	}

	.eco-stats > div,
	.eco-stats > div:first-child {
		min-height: 105px;
		padding: 24px 0;
		border-right: 0;
		border-bottom: 1px solid rgba( 255, 255, 255, .14 );
	}

	.eco-stats--light > div {
		border-bottom-color: var(--eco-line);
	}

	.eco-stats > div:last-child {
		border-bottom: 0;
	}

	.eco-service-grid,
	.eco-feature-grid,
	.eco-project-grid,
	.eco-process-grid,
	.eco-b2b-scope-grid,
	.eco-audience-grid,
	.eco-requirements-grid {
		grid-template-columns: 1fr;
	}

	.eco-service-card {
		min-height: 310px;
		padding: 30px;
	}

	.eco-project-card:last-child:nth-child( 3 ) {
		display: block;
	}

	.eco-hide-mobile {
		display: none;
	}

	.eco-show-mobile {
		display: block;
	}

	.eco-feature-grid article {
		min-height: 230px;
	}

	.eco-feature-grid h3 {
		margin-top: 42px;
	}

	.eco-b2b-panel__content {
		padding: 42px 26px;
	}

	.eco-b2b-panel__aside {
		min-height: 300px;
	}

	.eco-orbit {
		width: 84%;
		font-size: .58rem;
	}

	.eco-form-card {
		padding: 28px 20px;
	}

	.eco-form-row {
		grid-template-columns: 1fr;
	}

	.eco-button--submit {
		width: 100%;
	}

	.eco-page-hero {
		padding-top: 135px;
		padding-bottom: 66px;
	}

	.eco-page-hero h1 {
		font-size: clamp( 2.6rem, 12vw, 4.1rem );
	}

	.eco-page-hero__mark--stack {
		padding: 24px;
	}

	.eco-b2b-audience {
		grid-template-columns: 1fr;
	}

	.eco-b2b-audience span {
		min-height: 64px;
	}

	.eco-offer-nav {
		top: 67px;
	}

	.admin-bar .eco-offer-nav {
		top: 113px;
	}

	.eco-offer-row {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.eco-offer-row__copy {
		grid-column: auto;
	}

	.eco-offer-row__copy ul {
		grid-template-columns: 1fr;
	}

	.eco-offer-row__title .eco-icon {
		margin-bottom: 20px;
	}

	.eco-inline-cta .eco-button,
	.eco-footer__cta .eco-button {
		width: 100%;
	}

	.eco-project-hero {
		padding-top: 140px;
	}

	.eco-project-hero--image {
		min-height: 570px;
	}

	.eco-project-hero__media span {
		background: linear-gradient( to top, rgba( 6, 16, 31, .93 ), rgba( 6, 16, 31, .5 ) 70% );
	}

	.eco-project-facts {
		grid-template-columns: 1fr;
	}

	.eco-project-facts__scope {
		grid-column: auto;
	}

	.eco-footer__cta {
		padding: 56px 0;
	}

	.eco-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 48px 28px;
		padding: 58px 0;
	}

	.eco-footer__brand {
		grid-column: 1 / -1;
	}

	.eco-footer__grid > div:last-child {
		grid-column: 1 / -1;
	}

	.eco-footer__bottom {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media print {
	.eco-header,
	.eco-footer,
	.eco-button,
	.eco-offer-nav {
		display: none !important;
	}

	body {
		color: #000;
	}

	.eco-page-hero,
	.eco-section--navy {
		padding: 30px 0;
		background: #fff;
		color: #000;
	}

	.eco-page-hero h1,
	.eco-section--navy h2,
	.eco-section--navy h3 {
		color: #000;
	}
}
