/* ==========================================
   GLOBAL LAYOUT
========================================== */

:root {
    --container-width: 1200px;
    --container-padding: 20px;
}

/* Container */
.container {
    width: 100%;
    max-width: var(--container-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
}

/* Sections */
.section {
    padding-top: clamp(50px, 6vw, 90px);
    padding-bottom: clamp(50px, 6vw, 90px);
}

.section-sm {
    padding-top: 40px;
    padding-bottom: 40px;
}

/* Grid system */
.grid {
    display: grid;
    gap: 30px;
}

.grid-2 {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.grid-3 {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.grid-4 {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

/* Flex helpers */
.flex {
    display: flex;
}

.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}