/* ==========================================================
   TECHODEC LAYOUT SYSTEM
   ========================================================== */

/* ----------------------------------------------------------
   CONTAINERS
---------------------------------------------------------- */

.container {
    width: min(1280px, calc(100% - 64px));
    margin-inline: auto;
}
.container-sm {
    width: min(900px, calc(100% - 48px));
    margin-inline: auto;
}

.container-lg {
    width: min(1400px, calc(100% - 48px));
    margin-inline: auto;
}

.container-fluid {
    width: calc(100% - 48px);
    margin-inline: auto;
}

/* ----------------------------------------------------------
   SECTIONS
---------------------------------------------------------- */

.section {
    padding-block: var(--space-2xl);
}

.section-sm {
    padding-block: var(--space-xl);
}

.section-lg {
    padding-block: 6rem;
}

/* ----------------------------------------------------------
   GRID
---------------------------------------------------------- */

.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-auto {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

/* ----------------------------------------------------------
   FLEX
---------------------------------------------------------- */

.flex {
    display: flex;
}

.flex-column {
    display: flex;
    flex-direction: column;
}

.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.flex-around {
    display: flex;
    justify-content: space-around;
    align-items: center;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-gap-sm {
    gap: var(--space-sm);
}

.flex-gap-md {
    gap: var(--space-md);
}

.flex-gap-lg {
    gap: var(--space-lg);
}

/* ----------------------------------------------------------
   STACK
---------------------------------------------------------- */

.stack>*+* {
    margin-top: var(--space-md);
}

.stack-sm>*+* {
    margin-top: var(--space-sm);
}

.stack-lg>*+* {
    margin-top: var(--space-lg);
}

/* ----------------------------------------------------------
   RESPONSIVE
---------------------------------------------------------- */

@media (max-width: 992px) {

    .grid-2,
    .grid-3,
    .grid-4 {

        grid-template-columns: 1fr;

    }

    .flex-between {

        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-lg);

    }

}