/* Layout utilities */
.layout-container {
	max-width: var(--container-max-width);
	margin: 0 auto;
	padding: 0 var(--container-padding);
}

/* Grid system */
.grid {
	display: grid;
	gap: var(--spacing-xl);
}

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

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

.grid--auto-fit {
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

/* Flexbox utilities */
.flex {
	display: flex;
}

.flex--center {
	align-items: center;
	justify-content: center;
}

.flex--between {
	justify-content: space-between;
}

.flex--column {
	flex-direction: column;
}

.flex--wrap {
	flex-wrap: wrap;
}

/* Responsive utilities */
@media (max-width: 1024px) {
	.layout-container {
		padding: 0 var(--spacing-lg);
	}
	
	.grid--2-cols,
	.grid--3-cols {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.layout-container {
		padding: 0 var(--spacing-md);
	}
}