/*
 * GCT Bhakkar - Layout Section Styles
 * Section patterns and spacing utilities
 */

/* ===== SECTION BASE ===== */

.section {
    padding: var(--space-20) 0;
    position: relative;
}

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

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

/* ===== CONTAINER ===== */

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

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

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

.container-fluid {
    max-width: 100%;
    padding: 0 var(--space-6);
}

/* ===== SECTION BACKGROUNDS ===== */

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

.section-darker {
    background: linear-gradient(135deg, var(--color-secondary-dark), var(--color-primary-dark));
}

.section-gradient {
    background: linear-gradient(135deg,
            var(--color-primary-dark) 0%,
            var(--color-secondary-dark) 50%,
            rgba(37, 99, 235, 0.1) 100%);
}

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

.section-light .section-title {
    color: var(--color-text-dark);
}

.section-light .section-subtitle {
    color: var(--color-tertiary-dark);
}

/* ===== SECTION HEADER ===== */

.section-header {
    text-align: center;
    margin-bottom: var(--space-12);
}

.section-header .section-title {
    margin-bottom: var(--space-4);
}

.section-header .section-subtitle {
    max-width: 600px;
    margin: 0 auto;
}

/* ===== GRID LAYOUTS ===== */

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

/* Auto-fit grids */
.grid-auto-fit {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.grid-auto-fit-sm {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

/* ===== FLEX LAYOUTS ===== */

.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-col {
    flex-direction: column;
}

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

.gap-2 {
    gap: var(--space-2);
}

.gap-3 {
    gap: var(--space-3);
}

.gap-4 {
    gap: var(--space-4);
}

.gap-6 {
    gap: var(--space-6);
}

.gap-8 {
    gap: var(--space-8);
}

/* ===== TWO COLUMN LAYOUT ===== */

.two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12);
    align-items: center;
}

.two-col.reverse {
    direction: rtl;
}

.two-col.reverse>* {
    direction: ltr;
}

/* ===== SPACING UTILITIES ===== */

.mb-0 {
    margin-bottom: 0;
}

.mb-2 {
    margin-bottom: var(--space-2);
}

.mb-4 {
    margin-bottom: var(--space-4);
}

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

.mb-8 {
    margin-bottom: var(--space-8);
}

.mb-12 {
    margin-bottom: var(--space-12);
}

.mb-16 {
    margin-bottom: var(--space-16);
}

.mt-0 {
    margin-top: 0;
}

.mt-4 {
    margin-top: var(--space-4);
}

.mt-8 {
    margin-top: var(--space-8);
}

.mt-12 {
    margin-top: var(--space-12);
}

.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.py-4 {
    padding-top: var(--space-4);
    padding-bottom: var(--space-4);
}

.py-8 {
    padding-top: var(--space-8);
    padding-bottom: var(--space-8);
}

.py-12 {
    padding-top: var(--space-12);
    padding-bottom: var(--space-12);
}

/* ===== DIVIDER ===== */

.divider {
    height: var(--border-width-thin);
    background: var(--color-border-muted);
    margin: var(--space-8) 0;
}

.divider-gradient {
    height: 2px;
    background: linear-gradient(90deg,
            transparent,
            var(--color-accent-primary),
            transparent);
}

/* ===== DECORATIVE ELEMENTS ===== */

.section-pattern {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 1px 1px,
            rgba(255, 255, 255, 0.03) 1px,
            transparent 0);
    background-size: 40px 40px;
    pointer-events: none;
}

/* ===== CTA SECTION ===== */

.section-cta {
    text-align: center;
    background: linear-gradient(135deg, var(--color-accent-primary), #1d4ed8);
    padding: var(--space-16) var(--space-4);
    border-radius: var(--radius-3xl);
    margin: var(--space-4);
}

.section-cta .section-title {
    color: white;
}

.section-cta .section-subtitle {
    color: rgba(255, 255, 255, 0.9);
}

/* ===== RESPONSIVE ===== */

@media (max-width: 991px) {
    .section {
        padding: var(--space-16) 0;
    }

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

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

    .two-col {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }

    .two-col.reverse {
        direction: ltr;
    }
}

@media (max-width: 768px) {
    .section {
        padding: var(--space-12) 0;
    }

    .section-header {
        margin-bottom: var(--space-8);
    }

    .grid-4,
    .grid-3,
    .grid-2 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 576px) {
    .container {
        padding: 0 var(--space-4);
    }

    .section-cta {
        margin: 0;
        border-radius: 0;
    }
}

/* --- Small Mobile (≤480px) --- */
@media (max-width: 480px) {
    .section {
        padding: var(--space-8) 0;
    }

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

    .section-title {
        font-size: 1.75rem;
    }

    .section-subtitle {
        font-size: 0.9rem;
    }

    .section-cta {
        padding: var(--space-8) var(--space-4);
    }

    .section-cta .section-title {
        font-size: 1.5rem;
    }

    .section-cta .section-subtitle {
        font-size: 0.85rem;
    }
}