.container {
	width: 100%;
	max-width: var(--container-width);
	margin-inline: auto;
	padding-inline: var(--container-padding);
}
.section {
	padding-block: var(--spacing-16);
}
.section-lg {
	padding-block: var(--spacing-24);
}
@media (min-width: 768px) {
	.section { padding-block: var(--spacing-24); }
	.section-lg { padding-block: var(--spacing-32); }
}

.section-dark {
	background-color: var(--color-bg-dark);
	color: var(--color-text-light);
}
.section-dark h2, 
.section-dark h3, 
.section-dark p {
	color: var(--color-text-light);
}
.section-dark .text-secondary {
	color: var(--color-text-muted);
}
.grid {
	display: grid;
	gap: var(--spacing-6);
}
.grid-cols-2 { grid-template-columns: repeat(1, 1fr); }
.grid-cols-3 { grid-template-columns: repeat(1, 1fr); }
.grid-cols-4 { grid-template-columns: repeat(1, 1fr); }

@media (min-width: 768px) {
	.grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
	.grid-cols-3 { grid-template-columns: repeat(2, 1fr); }
	.grid-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
	.grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
	.grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
}

.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }
.gap-2 { gap: var(--spacing-2); }
.gap-4 { gap: var(--spacing-4); }
.gap-6 { gap: var(--spacing-6); }
.gap-8 { gap: var(--spacing-8); }
