/* ==========================================================
   DineMe Premium
   Layout System v1.0
   File: layout.css
   ========================================================== */

/* ==========================================================
   Container
   ========================================================== */

.container {
    width: min(100% - 2rem, var(--container-width));
    margin-inline: auto;
}

/* ==========================================================
   Sections
   ========================================================== */

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

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

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

/* ==========================================================
   Grid
   ========================================================== */

.grid {
    display: grid;
    gap: var(--space-5);
}

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

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

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

/* ==========================================================
   Flex
   ========================================================== */

.flex {
    display: flex;
}

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

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

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

/* ==========================================================
   Gap Utilities
   ========================================================== */

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

.gap-md {
    gap: var(--space-5);
}

.gap-lg {
    gap: var(--space-7);
}

/* ==========================================================
   Responsive Images
   ========================================================== */

.img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.img-contain {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ==========================================================
   Responsive Layout
   ========================================================== */

@media (max-width: 992px) {

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

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

}

@media (max-width: 768px) {

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

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

}

@media (max-width: 576px) {

    .container {
        width: min(100% - 1.5rem, var(--container-width));
    }

}