/* ACTS Home Hero */
.cew-hh{
	--cew-hh-left:50%;
	display:grid;
	grid-template-columns:minmax(0,var(--cew-hh-left)) minmax(0,1fr);
	width:100%;
	margin:0;
	padding:0;
	font-family:"PP Neue Montreal",Arial,sans-serif;
}

.cew-hh,
.cew-hh *{
	box-sizing:border-box;
}

.cew-hh-left{
	display:flex;
	justify-content:center;
	align-items:stretch;
	padding:64px;
	background:#fff;
}

.cew-hh-left-inner{
	display:flex;
	flex-direction:column;
	justify-content:center;
	width:100%;
}

.cew-hh-eyebrow{
	margin:0 0 14px;
	color:#666;
	font-size:13px;
	line-height:1.2;
	font-weight:500;
	letter-spacing:.06em;
	text-transform:uppercase;
}

.cew-hh-heading{
	max-width:560px;
	margin:0 0 20px;
	padding:0;
	color:#033720;
	font-size:46px;
	line-height:1.1;
	font-weight:500;
	letter-spacing:-.035em;
}

.cew-hh-description{
	max-width:590px;
	margin:0 0 32px;
	color:#444;
	font-size:16px;
	line-height:1.42;
	font-weight:400;
}

.cew-hh-buttons{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:8px;
}

.cew-hh-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:16px 26px;
	border:1px solid transparent;
	border-radius:0;
	text-decoration:none;
	font-size:16px;
	line-height:1;
	font-weight:400;
	transition:background .2s ease,color .2s ease,border-color .2s ease;
}

.cew-hh-button:hover,
.cew-hh-button:focus{
	text-decoration:none;
}

.cew-hh-button-primary{
	background:#00371f;
	color:#fff;
}

.cew-hh-button-secondary{
	background:#fff;
	color:#111;
	border-color:#00371f;
}

.cew-hh-media{
	--cew-hh-img-x:50%;
	--cew-hh-img-y:50%;
	position:relative;
	isolation:isolate;
	width:100%;
	aspect-ratio:1 / 1;
	overflow:hidden;
	background:#dfe8e3;
}

.cew-hh-picture,
.cew-hh-image{
	display:block;
	width:100%;
	height:100%;
}

.cew-hh-picture{
	position:absolute;
	inset:0;
	z-index:0;
}

.cew-hh-image{
	object-fit:cover;
	object-position:var(--cew-hh-img-x) var(--cew-hh-img-y);
}

.cew-hh-color-overlay,
.cew-hh-gradient-overlay,
.cew-hh-pattern{
	position:absolute;
	inset:0;
	pointer-events:none;
}

.cew-hh-color-overlay{
	z-index:1;
	background:#c7f8e2;
	opacity:.74;
	mix-blend-mode:color;
}

.cew-hh-gradient-overlay{
	z-index:2;
	--cew-hh-gradient-start:22%;
	--cew-hh-gradient-end:100%;
	background:linear-gradient(
		var(--cew-hh-gradient-angle,90deg),
		var(--cew-hh-gradient-1,rgba(1,54,31,0)) var(--cew-hh-gradient-start),
		var(--cew-hh-gradient-2,rgba(1,42,25,.82)) var(--cew-hh-gradient-end)
	);
}

.cew-hh-pattern{
	z-index:3;
	background-image:var(--cew-hh-texture);
	background-repeat:repeat;
	background-size:240px auto;
	background-position:var(--cew-hh-pattern-x,50%) var(--cew-hh-pattern-y,50%);
	opacity:.24;
	mix-blend-mode:multiply;
	filter:grayscale(1);
}

.cew-hh-stats{
	position:absolute;
	z-index:4;
	left:24px;
	right:24px;
	bottom:24px;
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:6px;
}

.cew-hh-stat{
	--cew-hh-stat-bg:#f7f7f5;
	--cew-hh-stat-value:#00371f;
	--cew-hh-stat-label:#666;
	--cew-hh-stat-icon:#00371f;
	display:flex;
	flex-direction:column;
	justify-content:center;
	min-width:0;
	width:100%;
	height:auto;
	padding:18px 16px;
	background:var(--cew-hh-stat-bg);
}

.cew-hh-stat-top{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:12px;
}

.cew-hh.is-custom-stat-width .cew-hh-stat{
	justify-self:center;
}


.cew-hh-stat-value{
	color:var(--cew-hh-stat-value);
	font-size:31px;
	line-height:1;
	font-weight:500;
	letter-spacing:-.03em;
}

.cew-hh-stat-icon{
	flex:0 0 auto;
	color:var(--cew-hh-stat-icon);
}

.cew-hh-stat-icon svg{
	display:block;
	width:18px;
	height:18px;
	fill:currentColor;
}

.cew-hh-stat-icon i{
	font-size:18px;
}

.cew-hh-stat-label{
	margin-top:10px;
	color:var(--cew-hh-stat-label);
	font-size:14px;
	line-height:1.25;
	font-weight:400;
}

@media(max-width:1024px){
	.cew-hh-left{
		padding:48px 42px;
	}

	.cew-hh-heading{
		font-size:40px;
	}

	.cew-hh-stats{
		left:16px;
		right:16px;
		bottom:16px;
	}

	.cew-hh-stat{
		padding:15px 13px;
	}

	.cew-hh-stat-value{
		font-size:27px;
	}

	.cew-hh-stat-label{
		font-size:12px;
	}
}

@media(max-width:767px){
	.cew-hh{
		display:block;
	}

	.cew-hh-left{
		padding:24px 16px 24px;
	}

	/* Mobile alignment follows "Content Text Align" (default center) */
	.cew-hh-left-inner{
		align-items:var(--cew-hh-ai,center);
		text-align:center;
	}

	.cew-hh-eyebrow{
		margin-bottom:8px;
		font-size:10px;
		line-height:1.25;
		letter-spacing:.08em;
		text-align:inherit;
	}

	.cew-hh-heading{
		max-width:330px;
		margin-left:var(--cew-hh-ml,auto);
		margin-right:var(--cew-hh-mr,auto);
		margin-bottom:12px;
		font-size:29px;
		line-height:1.08;
		text-align:inherit;
	}

	.cew-hh-description{
		max-width:355px;
		margin-left:var(--cew-hh-ml,auto);
		margin-right:var(--cew-hh-mr,auto);
		margin-bottom:18px;
		font-size:14px;
		line-height:1.42;
		text-align:inherit;
	}

	.cew-hh-buttons{
		justify-content:center;
		gap:8px;
		width:100%;
	}

	.cew-hh-button{
		padding:14px 22px;
		font-size:15px;
		line-height:1;
	}

	.cew-hh-media{
		aspect-ratio:.82 / 1;
	}

	.cew-hh-gradient-overlay{
		background:linear-gradient(
			0deg,
			var(--cew-hh-gradient-1,rgba(1,54,31,0)) var(--cew-hh-gradient-start,22%),
			var(--cew-hh-gradient-2,rgba(1,42,25,.82)) var(--cew-hh-gradient-end,100%)
		);
	}

	.cew-hh-stats{
		position:absolute;
		left:16px!important;
		right:16px!important;
		bottom:16px!important;
		z-index:4;
		grid-template-columns:repeat(3,minmax(0,1fr));
		gap:6px;
		margin:0;
		transform:none;
	}

	.cew-hh-stat{
		padding:12px 8px 10px;
	}

	.cew-hh-stat-top{
		align-items:flex-start;
		gap:6px;
	}

	.cew-hh-stat-icon{
		display:block;
		flex:0 0 auto;
	}

	.cew-hh-stat-value{
		font-size:24px;
		line-height:1;
	}

		.cew-hh-stat-label{
		margin-top:8px;
		font-size:11px;
		line-height:1.2;
		white-space:normal;
	}
}

.cew-hh-heading .cew-hh-heading-highlight{
	color:#31A2FF;
}

/* ---------- Hero height modes (desktop & tablet) ---------- */
.admin-bar .cew-hh{--cew-hh-adminbar:32px}
@media(min-width:768px){
	.cew-hh--h-screen{
		min-height:max(var(--cew-hh-min,480px),calc(100vh - var(--cew-hh-offset,100px) - var(--cew-hh-adminbar,0px)));
	}
	@supports(height:100svh){
		.cew-hh--h-screen{
			min-height:max(var(--cew-hh-min,480px),calc(100svh - var(--cew-hh-offset,100px) - var(--cew-hh-adminbar,0px)));
		}
	}
	.cew-hh--h-fixed{min-height:var(--cew-hh-h,610px)}
	/* image follows the hero height instead of its own ratio; content can still grow it if it ever needs more room */
	.cew-hh--h-screen .cew-hh-media,
	.cew-hh--h-fixed .cew-hh-media{
		aspect-ratio:auto!important;
		height:auto;
		min-height:100%;
	}
}
