/* ============================================
   LAYOUT — Containers, Sections, Grid
   ============================================ */

.container {
    width: 100%;
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.container--narrow {
    max-width: var(--container-narrow);
}

/* Sections */
.section {
    padding: var(--space-section) 0;
    position: relative;
}

.section--sm {
    padding: var(--space-section-sm) 0;
}

.section--bg {
    background-color: var(--color-bg);
}

.section--elevated {
    background-color: var(--color-bg-elevated);
}

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

.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--5 { grid-template-columns: repeat(5, 1fr); }

/* Asymmetric layouts */
.grid--55-45 {
    grid-template-columns: 55fr 45fr;
    gap: var(--space-4xl);
    align-items: center;
}

.grid--60-40 {
    grid-template-columns: 60fr 40fr;
    gap: var(--space-4xl);
    align-items: center;
}

/* Section header */
.section__header {
    max-width: 700px;
    margin-bottom: var(--space-3xl);
}

.section__header--center {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

.section__header h2 {
    margin-bottom: var(--space-md);
}

.section__header p {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

/* Utility */
.text-center { text-align: center; }

@media (max-width: 1024px) {
    .grid--5 { grid-template-columns: repeat(3, 1fr); }
    .grid--4 { grid-template-columns: repeat(2, 1fr); }
    .section { padding: var(--space-section-sm) 0; }
}

@media (max-width: 768px) {
    .grid--2, .grid--3, .grid--4, .grid--5 { grid-template-columns: 1fr; }
    .grid--55-45, .grid--60-40 { grid-template-columns: 1fr; }
    .section { padding: 80px 0; }
    .container { padding: 0 var(--space-lg); }
}

@media (max-width: 1024px) and (min-width: 769px) {
    .grid--5 { grid-template-columns: repeat(3, 1fr); }
}
