.flex-container {
    display: flex;
    flex-wrap: wrap;

    max-width: 1440px;
    margin: 0 auto;

    gap: 20px;

    align-items: start;
}
.flex-container.w-1200 {
    max-width: 1200px;
}
.flex-container.w-900 {
    max-width: 900px;
}
.flex-container.w-none {
    max-width: unset;
}
.flex-container > .column {
    flex: 1 1 auto;
}
.flex-container > .column.col-1 {
    flex-basis: calc(100% / 12 - 20px);
    max-width: calc(100% / 12);
}
.flex-container > .column.col-2 {
    flex-basis: calc(100% / 12 * 2 - 20px);
    max-width: calc(100% / 12 * 2);
}
.flex-container > .column.col-3 {
    flex-basis: calc(100% / 12 * 3 - 20px);
    max-width: calc(100% / 12 * 3);
}
.flex-container > .column.col-4 {
    flex-basis: calc(100% / 12 * 4 - 20px);
    max-width: calc(100% / 12 * 4);
}
.flex-container > .column.col-5 {
    flex-basis: calc(100% / 12 * 5 - 20px);
    max-width: calc(100% / 12 * 5);
}
.flex-container > .column.col-6 {
    flex-basis: calc(100% / 12 * 6 - 20px);
    max-width: calc(100% / 12 * 6);
}
.flex-container > .column.col-7 {
    flex-basis: calc(100% / 12 * 7 - 20px);
    max-width: calc(100% / 12 * 7);
}
.flex-container > .column.col-8 {
    flex-basis: calc(100% / 12 * 8 - 20px);
    max-width: calc(100% / 12 * 8);
}
.flex-container > .column.col-9 {
    flex-basis: calc(100% / 12 * 9 - 20px);
    max-width: calc(100% / 12 * 9);
}
.flex-container > .column.col-10 {
    flex-basis: calc(100% / 12 * 10 - 20px);
    max-width: calc(100% / 12 * 10);
}
.flex-container > .column.col-11 {
    flex-basis: calc(100% / 12 * 11 - 20px);
    max-width: calc(100% / 12 * 11);
}
.flex-container > .column.col-12 {
    flex-basis: calc(100% / 12 * 12 - 20px);
    max-width: calc(100% / 12 * 12);
}
@media screen and (max-width: 767px) {
    .flex-container {
        padding-right: 20px;
        padding-left: 20px;
    }
    .flex-container > .column,
    .flex-container > .column.col-1,
    .flex-container > .column.col-2,
    .flex-container > .column.col-3,
    .flex-container > .column.col-4,
    .flex-container > .column.col-5,
    .flex-container > .column.col-6,
    .flex-container > .column.col-7,
    .flex-container > .column.col-8,
    .flex-container > .column.col-9,
    .flex-container > .column.col-10,
    .flex-container > .column.col-11,
    .flex-container > .column.col-12 {
        flex-basis: 100%;
        max-width: 100%;
    }
    .flex-container > .column.m-col-1 {
        flex-basis: calc(100% / 12 - 20px);
        max-width: calc(100% / 12);
    }
    .flex-container > .column.m-col-2 {
        flex-basis: calc(100% / 12 * 2 - 20px);
        max-width: calc(100% / 12 * 2);
    }
    .flex-container > .column.m-col-3 {
        flex-basis: calc(100% / 12 * 3 - 20px);
        max-width: calc(100% / 12 * 3);
    }
    .flex-container > .column.m-col-4 {
        flex-basis: calc(100% / 12 * 4 - 20px);
        max-width: calc(100% / 12 * 4);
    }
    .flex-container > .column.m-col-5 {
        flex-basis: calc(100% / 12 * 5 - 20px);
        max-width: calc(100% / 12 * 5);
    }
    .flex-container > .column.m-col-6 {
        flex-basis: calc(100% / 12 * 6 - 20px);
        max-width: calc(100% / 12 * 6);
    }
    .flex-container > .column.m-col-7 {
        flex-basis: calc(100% / 12 * 7 - 20px);
        max-width: calc(100% / 12 * 7);
    }
    .flex-container > .column.m-col-8 {
        flex-basis: calc(100% / 12 * 8 - 20px);
        max-width: calc(100% / 12 * 8);
    }
    .flex-container > .column.m-col-9 {
        flex-basis: calc(100% / 12 * 9 - 20px);
        max-width: calc(100% / 12 * 9);
    }
    .flex-container > .column.m-col-10 {
        flex-basis: calc(100% / 12 * 10 - 20px);
        max-width: calc(100% / 12 * 10);
    }
    .flex-container > .column.m-col-11 {
        flex-basis: calc(100% / 12 * 11 - 20px);
        max-width: calc(100% / 12 * 11);
    }
    .flex-container > .column.m-col-12 {
        flex-basis: calc(100% / 12 * 12 - 20px);
        max-width: calc(100% / 12 * 12);
    }
}

.flex-jc-center {
    justify-content: center;
}
.flex-jc-end {
    justify-content: end;
}
.flex-jc-between {
    justify-content: space-between;
}
.flex-jc-around {
    justify-content: space-around;
}
.flex-ai-center {
    align-items: center;
}
.flex-ai-stretch {
    align-items: stretch;
}