:root {
	--cnc-ink: #151515;
	--cnc-muted: #6c6c6c;
	--cnc-line: #e8e8e8;
	--cnc-accent: #e86f24;
	--cnc-bg: #ffffff;
	--cnc-soft: #f7f7f7;
}

.cnc-home-main {
	background: var(--cnc-bg);
	color: var(--cnc-ink);
}

.cnc-home-shell {
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
	padding: 42px 0 70px;
}

.cnc-section-heading { margin-bottom: 18px; }

.cnc-section-kicker,
.cnc-hero-category,
.cnc-latest-category {
	display: block;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cnc-accent);
}

.cnc-section-heading h1,
.cnc-section-heading h2 {
	margin: 3px 0 0;
	font-size: clamp(28px, 3.2vw, 44px);
	line-height: 1.02;
	letter-spacing: -.035em;
}

.cnc-hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(290px, 1fr);
	grid-template-rows: repeat(3, minmax(0, 1fr));
	gap: 0 30px;
	padding-bottom: 38px;
	border-bottom: 1px solid var(--cnc-line);
}

.cnc-hero-card { min-width: 0; }

.cnc-hero-primary {
	grid-row: 1 / span 3;
	display: flex;
	align-items: flex-end;
	min-height: 430px;
	padding: clamp(28px, 4vw, 52px);
	background: var(--cnc-soft);
	border-top: 5px solid var(--cnc-accent);
}

.cnc-hero-primary .cnc-hero-content { max-width: 760px; }

.cnc-hero-secondary {
	display: flex;
	align-items: center;
	padding: 24px 0;
	border-bottom: 1px solid var(--cnc-line);
}

.cnc-hero-secondary:first-of-type { padding-top: 0; }
.cnc-hero-secondary:last-child { border-bottom: 0; padding-bottom: 0; }

.cnc-hero-title {
	margin: 7px 0 0;
	font-weight: 800;
	letter-spacing: -.028em;
}

.cnc-hero-primary .cnc-hero-title {
	font-size: clamp(34px, 4.2vw, 60px);
	line-height: 1.01;
}

.cnc-hero-secondary .cnc-hero-title {
	font-size: clamp(19px, 1.6vw, 24px);
	line-height: 1.12;
}

.cnc-hero-title a,
.cnc-latest-card h3 a {
	color: inherit;
	text-decoration: none;
}

.cnc-hero-title a:hover,
.cnc-latest-card h3 a:hover { color: var(--cnc-accent); }

.cnc-hero-excerpt {
	margin: 15px 0 0;
	max-width: 680px;
	font-size: 17px;
	line-height: 1.55;
	color: var(--cnc-muted);
}

.cnc-latest { padding-top: 42px; }

.cnc-latest-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 34px;
	border-top: 1px solid var(--cnc-line);
}

.cnc-latest-card {
	padding: 22px 0;
	border-bottom: 1px solid var(--cnc-line);
}

.cnc-latest-content { padding: 0; }

.cnc-latest-card h3 {
	margin: 6px 0 0;
	font-size: clamp(19px, 1.7vw, 24px);
	line-height: 1.16;
	letter-spacing: -.018em;
}

.cnc-home-empty {
	padding: 40px 0;
	border-bottom: 1px solid var(--cnc-line);
}

.cnc-home-empty h1 {
	font-size: clamp(32px, 5vw, 54px);
	margin: 0 0 10px;
}

@media (max-width: 900px) {
	.cnc-home-shell {
		width: min(100% - 28px, 760px);
		padding-top: 28px;
	}

	.cnc-hero-grid {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		gap: 0;
	}

	.cnc-hero-primary {
		grid-row: auto;
		min-height: 330px;
		margin-bottom: 8px;
	}

	.cnc-hero-secondary {
		padding: 22px 0;
	}
}

@media (max-width: 560px) {
	.cnc-home-shell { width: calc(100% - 24px); }

	.cnc-section-heading h1,
	.cnc-section-heading h2 { font-size: 30px; }

	.cnc-hero-primary {
		min-height: 280px;
		padding: 26px 22px;
	}

	.cnc-hero-primary .cnc-hero-title { font-size: 34px; }
	.cnc-hero-secondary .cnc-hero-title { font-size: 19px; }
	.cnc-latest-grid { grid-template-columns: 1fr; }
}
