/* Grid System */
.grid { display: grid; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.grid--auto { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.gap-4 { gap: var(--space-4); }
.gap-6 { gap: var(--space-6); }
.gap-8 { gap: var(--space-8); }
.section { padding: var(--space-16) 0; }
.section--sm { padding: var(--space-10) 0; }
.section__header { margin-bottom: var(--space-10); }
.section__title { font-size: var(--text-3xl); font-weight: var(--font-bold); margin-bottom: var(--space-3); }
.section__subtitle { font-size: var(--text-lg); color: var(--color-text-secondary); }
.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(--space-2); }
.gap-3 { gap: var(--space-3); }
.mt-4 { margin-top: var(--space-4); }
.mt-6 { margin-top: var(--space-6); }
.mb-4 { margin-bottom: var(--space-4); }
.mb-6 { margin-bottom: var(--space-6); }
.page-header { padding: var(--space-8) 0 var(--space-6); border-bottom: 1px solid var(--color-border); margin-bottom: var(--space-8); }
.page-title { font-size: var(--text-2xl); font-weight: var(--font-bold); }
.page-subtitle { color: var(--color-text-secondary); margin-top: var(--space-1); }
@media (max-width: 1024px) { .grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .grid--3 { grid-template-columns: repeat(2, 1fr); } .grid--2 { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .grid--3, .grid--4 { grid-template-columns: 1fr; } }
