/**
 * Content Factory — layout
 */

.cf-container {
	width: min(100% - 2.5rem, var(--cf-container));
	margin-inline: auto;
	position: relative;
	z-index: 1;
}

.cf-section {
	padding: clamp(3.5rem, 7vw, 6rem) 0;
}

.cf-section--muted {
	background: linear-gradient(180deg, rgba(238, 243, 248, 0.7), rgba(247, 249, 252, 0.4));
}

.cf-section__header {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 2.75rem;
}

.cf-section__title {
	font-size: clamp(1.75rem, 3.2vw, 2.4rem);
	margin-bottom: 0.65rem;
}

.cf-section__subtitle {
	margin: 0;
	color: var(--cf-text-secondary);
	font-size: 1.05rem;
}

.cf-section__action {
	text-align: center;
	margin-top: 2.25rem;
}

.cf-page-header {
	padding: clamp(3rem, 6vw, 4.5rem) 0 1.5rem;
	background: var(--cf-bg-hero);
	border-bottom: 1px solid var(--cf-border);
}

.cf-page-header__title {
	font-size: clamp(2rem, 4vw, 3rem);
	margin-bottom: 0.5rem;
}

.cf-page-header__subtitle {
	margin: 0;
	max-width: 560px;
	color: var(--cf-text-secondary);
}

.cf-service-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 1.15rem;
}

.cf-process-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
}

.cf-process-grid--page {
	gap: 1.5rem;
}

.cf-pricing-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.35rem;
	align-items: stretch;
}

.cf-post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.cf-value-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
}

.cf-about-grid {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: 3rem;
	align-items: center;
}

.cf-contact-grid {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	gap: 2.5rem;
	align-items: start;
}

.cf-footer__grid {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 2.5rem;
	padding: 3.5rem 0 2rem;
}

@media (max-width: 1100px) {
	.cf-service-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 900px) {
	.cf-service-grid,
	.cf-process-grid,
	.cf-pricing-grid,
	.cf-post-grid,
	.cf-value-grid,
	.cf-about-grid,
	.cf-contact-grid,
	.cf-footer__grid {
		grid-template-columns: 1fr 1fr;
	}

	.cf-about-grid,
	.cf-contact-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.cf-container {
		width: min(100% - 1.5rem, var(--cf-container));
	}

	.cf-service-grid,
	.cf-process-grid,
	.cf-pricing-grid,
	.cf-post-grid,
	.cf-value-grid,
	.cf-footer__grid {
		grid-template-columns: 1fr;
	}
}
