/* ==========================================================================
   Layout Components
   ========================================================================== */

.container {
    width: 100%;
    max-width: var(--container-2xl);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

.container--sm { max-width: var(--container-sm); }
.container--md { max-width: var(--container-md); }
.container--lg { max-width: var(--container-lg); }
.container--xl { max-width: var(--container-xl); }

/* Grid System - 12 Column */
.grid {
    display: grid;
    gap: var(--space-6);
}

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

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

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

/* ==========================================================================
   Section Spacing
   ========================================================================== */

.section {
    padding-top: var(--space-24);
    padding-bottom: var(--space-24);
}

.section--sm {
    padding-top: var(--space-16);
    padding-bottom: var(--space-16);
}

.section--lg {
    padding-top: var(--space-32);
    padding-bottom: var(--space-32);
}

.section--hero {
    padding-top: var(--space-32);
    padding-bottom: var(--space-32);
    min-height: 80vh;
    display: flex;
    align-items: center;
}

.section--dark {
    background-color: var(--color-primary);
    color: var(--color-white);
}

.section--dark h1,
.section--dark h2,
.section--dark h3,
.section--dark h4 {
    color: var(--color-white);
}

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

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

/* Section Headers */
.section__header {
    text-align: center;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--space-16);
}

.section__label {
    font-family: var(--font-sans);
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    text-transform: uppercase;
    letter-spacing: var(--tracking-widest);
    color: var(--color-secondary);
    margin-bottom: var(--space-4);
    display: block;
}

.section__title {
    margin-bottom: var(--space-6);
}

.section__description {
    font-size: var(--text-lg);
    color: var(--color-gray-600);
    margin-bottom: 0;
}

/* Breadcrumbs */
.breadcrumbs {
    padding: var(--space-4) 0;
    background-color: var(--color-gray-50);
    border-bottom: 1px solid var(--color-gray-100);
}

.breadcrumbs__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
}

.breadcrumbs__item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.breadcrumbs__item::after {
    content: '/';
    color: var(--color-gray-400);
}

.breadcrumbs__item:last-child::after {
    display: none;
}

.breadcrumbs__link {
    color: var(--color-gray-500);
}

.breadcrumbs__link:hover {
    color: var(--color-secondary);
}

.breadcrumbs__current {
    color: var(--color-gray-700);
    font-weight: var(--font-medium);
}
