/* ==========================================================================
   Layout - Containers, Grid, Sections
   ========================================================================== */

/* Container */
.mm-container {
    width: 100%;
    max-width: var(--mm-container);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--mm-container-padding);
    padding-right: var(--mm-container-padding);
}

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

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

/* Section */
.mm-section {
    padding-top: var(--mm-space-section);
    padding-bottom: var(--mm-space-section);
    position: relative;
}

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

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

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

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

.mm-section--gold * {
    color: var(--mm-black);
}

.mm-section--overlay {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.mm-section--overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--mm-overlay);
    z-index: 1;
}

.mm-section--overlay > * {
    position: relative;
    z-index: 2;
}

/* Section Header */
.mm-section-header {
    text-align: center;
    margin-bottom: var(--mm-space-2xl);
}

.mm-section-header__label {
    font-family: var(--mm-font-body);
    font-size: var(--mm-text-xs);
    font-weight: var(--mm-weight-semibold);
    text-transform: uppercase;
    letter-spacing: var(--mm-tracking-widest);
    color: var(--mm-gold);
    display: block;
    margin-bottom: var(--mm-space-sm);
}

.mm-section-header__title {
    font-size: var(--mm-text-2xl);
    font-weight: 700;
    margin-bottom: var(--mm-space-md);
    color: #ffffff;
    letter-spacing: -0.01em;
}

.mm-section-header__line {
    display: block;
    width: 60px;
    height: 2px;
    background: var(--mm-gradient-gold);
    margin: 0 auto var(--mm-space-md);
}

.mm-section-header__desc {
    max-width: 600px;
    margin: 0 auto;
    color: var(--mm-soft-gray);
}

/* Section header - left aligned variant */
.mm-section-header--left {
    text-align: left;
}

.mm-section-header--left .mm-section-header__line {
    margin-left: 0;
}

.mm-section-header--left .mm-section-header__desc {
    margin-left: 0;
}

/* Section header with action */
.mm-section-header--with-action {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--mm-space-lg);
}

.mm-section-header--with-action .mm-section-header__content {
    text-align: left;
}

.mm-section-header--with-action .mm-section-header__line {
    margin-left: 0;
}

/* Grid System */
.mm-grid {
    display: grid;
    gap: var(--mm-space-lg);
}

.mm-grid--2 { grid-template-columns: repeat(2, 1fr); }
.mm-grid--3 { grid-template-columns: repeat(3, 1fr); }
.mm-grid--4 { grid-template-columns: repeat(4, 1fr); }
.mm-grid--5 { grid-template-columns: repeat(5, 1fr); }
.mm-grid--6 { grid-template-columns: repeat(6, 1fr); }

/* Asymmetric grids */
.mm-grid--split {
    grid-template-columns: 1fr 1fr;
    gap: var(--mm-space-2xl);
    align-items: center;
}

.mm-grid--split-wide {
    grid-template-columns: 1.2fr 0.8fr;
    gap: var(--mm-space-2xl);
    align-items: center;
}

.mm-grid--split-narrow {
    grid-template-columns: 0.8fr 1.2fr;
    gap: var(--mm-space-2xl);
    align-items: center;
}

/* Flex utilities */
.mm-flex {
    display: flex;
}

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

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

.mm-flex--gap-sm { gap: var(--mm-space-sm); }
.mm-flex--gap-md { gap: var(--mm-space-md); }
.mm-flex--gap-lg { gap: var(--mm-space-lg); }

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

/* Main content area */
.mm-main {
    min-height: 60vh;
}

/* Two column layout (content + sidebar) */
.mm-layout-sidebar {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: var(--mm-space-2xl);
    align-items: start;
}
