/**
 * Layout — The Way Barbershop
 * Container, grid system, section spacing, utility layout classes
 */

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

/* ── Section spacing ── */
.section {
    padding-top: var(--space-4xl);
    padding-bottom: var(--space-4xl);
}

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

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

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

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

.section--cream h2,
.section--cream h3,
.section--cream h4 {
    color: var(--color-cream-heading);
}

.section--gold-top {
    border-top: 3px solid var(--color-accent);
}

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

.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); }

/* Homepage-specific grids */
.grid--3-services { grid-template-columns: repeat(3, 1fr); }
.grid--5-barbers  { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-xl); }
.grid--5-barbers > * { width: calc((100% - var(--space-xl) * 4) / 5); min-width: 150px; }

/* ── Split Layout (50/50) ── */
.split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-3xl);
    align-items: center;
}

/* ── Spacing Utilities ── */
.mt-xs  { margin-top: var(--space-xs); }
.mt-sm  { margin-top: var(--space-sm); }
.mt-md  { margin-top: var(--space-md); }
.mt-lg  { margin-top: var(--space-lg); }
.mt-xl  { margin-top: var(--space-xl); }
.mt-2xl { margin-top: var(--space-2xl); }
.mt-3xl { margin-top: var(--space-3xl); }

/* ── Flex utilities ── */
.flex        { display: flex; }
.flex-center { display: flex; align-items: center; justify-content: center; }
.flex-between { display: flex; align-items: center; justify-content: space-between; }

/* ── Display utilities ── */
.w-full { width: 100%; }

/* ── Body scroll lock (mobile menu open) ── */
body.no-scroll {
    overflow: hidden;
}
