/* ==========================================================================
   Layouts CSS - Grid, Flex, Spacing & Container Utilities
   for Time Machine AI Website
   ========================================================================== */

/* ==========================================================================
   1. CONTAINERS
   Max-width wrappers for content sections.
   ========================================================================== */

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.container--sm {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 20px;
}

.container--md {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

.container--lg {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 20px;
}


/* ==========================================================================
   2. GRID UTILITIES
   Responsive grid systems with automatic mobile collapse.
   ========================================================================== */

.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
}

/* Auto-fit grids (responsive without media queries for card-like content) */
.grid-auto-sm {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
}

.grid-auto-md {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 40px;
}

.grid-auto-lg {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 40px;
}

/* Grid alignment helpers */
.grid-center {
    align-items: center;
}

.grid-start {
    align-items: start;
}

/* Grid gap variants */
.gap-sm {
    gap: 20px;
}

.gap-md {
    gap: 40px;
}

.gap-lg {
    gap: 60px;
}

.gap-xl {
    gap: 80px;
}


/* ==========================================================================
   3. FLEX UTILITIES
   Common flex patterns used across pages.
   ========================================================================== */

.flex {
    display: flex;
}

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

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

.flex-start {
    display: flex;
    align-items: start;
}

.flex-col {
    display: flex;
    flex-direction: column;
}

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

.flex-gap-sm {
    gap: 15px;
}

.flex-gap-md {
    gap: 20px;
}

.flex-gap-lg {
    gap: 40px;
}

.flex-gap-xl {
    gap: 60px;
}


/* ==========================================================================
   4. SECTION SPACING
   Consistent vertical padding for page sections.
   ========================================================================== */

.section {
    padding: 100px 20px;
}

.section--sm {
    padding: 60px 20px;
}

.section--lg {
    padding: 120px 20px;
}

/* Background variants for sections */
.section--white {
    background: var(--bg-white);
}

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

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

.section--gradient {
    background: linear-gradient(135deg, var(--primary-blue), var(--dark-navy));
    color: white;
}


/* ==========================================================================
   5. SPACING UTILITIES
   Margin and padding helpers for fine-tuning layouts.
   ========================================================================== */

/* Margin bottom */
.mb-0  { margin-bottom: 0; }
.mb-sm { margin-bottom: 15px; }
.mb-md { margin-bottom: 30px; }
.mb-lg { margin-bottom: 60px; }
.mb-xl { margin-bottom: 80px; }

/* Margin top */
.mt-0  { margin-top: 0; }
.mt-sm { margin-top: 15px; }
.mt-md { margin-top: 30px; }
.mt-lg { margin-top: 60px; }
.mt-xl { margin-top: 80px; }

/* Horizontal centering */
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

/* Padding */
.p-0  { padding: 0; }
.p-sm { padding: 20px; }
.p-md { padding: 40px; }
.p-lg { padding: 60px; }


/* ==========================================================================
   6. TEXT / ALIGNMENT UTILITIES
   ========================================================================== */

.text-center { text-align: center; }
.text-left   { text-align: left; }
.text-right  { text-align: right; }

.max-w-600 { max-width: 600px; }
.max-w-800 { max-width: 800px; }
.max-w-1000 { max-width: 1000px; }
.max-w-1200 { max-width: 1200px; }


/* ==========================================================================
   7. RESPONSIVE GRID OVERRIDES
   ========================================================================== */

@media (max-width: 768px) {
    .grid-2 {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .grid-3 {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .grid-4 {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    /* Section spacing reduction */
    .section {
        padding: 60px 15px;
    }

    .section--lg {
        padding: 80px 15px;
    }

    .gap-lg {
        gap: 30px;
    }

    .gap-xl {
        gap: 40px;
    }

    /* Spacing reductions */
    .mb-lg { margin-bottom: 40px; }
    .mb-xl { margin-bottom: 60px; }
    .mt-lg { margin-top: 40px; }
    .mt-xl { margin-top: 60px; }
}

@media (max-width: 480px) {
    .grid-4 {
        grid-template-columns: 1fr;
    }

    .section {
        padding: 40px 12px;
    }

    .section--lg {
        padding: 60px 12px;
    }
}
