.flex-container
{
    display: flex;
    flex-direction: column;
    justify-content: center;

    &.align-start
    {
        &:not(.horizontal)
        {
            text-align: start;
        }
        align-items: flex-start;
    }

    &.align-center
    {
        &:not(.horizontal)
        {
            text-align: center;
        }
        align-items: center;
    }

    &.align-end
    {
        &:not(.horizontal)
        {
            text-align: end;
        }
        align-items: flex-end;
    }

    &.align-stretch
    {
        align-items: stretch;
    }

    &.justify-start
    {
        justify-content: flex-start;
    }

    &.justify-center
    {
        justify-content: center;
    }

    &.justify-end
    {
        justify-content: flex-end;
    }

    &.justify-stretch
    {
        justify-content: stretch;
    }

    &.horizontal
    {
        flex-direction: row;
    }

    &.horizontal.reverse
    {
        flex-direction: row-reverse;
    }

    &.vertical.reverse
    {
        flex-direction: column-reverse;
    }

    &.v-source .show-vertical
    {
        display: none;
    }
}
@media (max-width: 1360px) {
    .flex-container.horizontal:is(.v-1200)
    {
        &.v-source .hide-vertical { display: none; }
        &.v-source .show-vertical { display: inherit; }
        flex-direction: column;
    }
    .flex-container:is(.a-1200)
    {
        &.align-start, &.align-end
        {
            &:not(.horizontal)
            {
                text-align: center;
            }
            align-items: center;
        }
    }

}
@media (max-width:991px) {
    .flex-container.horizontal:not(.v-768):not(.v-never)
    {
        &.v-source .hide-vertical { display: none; }
        &.v-source .show-vertical { display: inherit; }
        flex-direction: column;
    }
    .flex-container:not(.a-768):not(.a-never)
    {
        &.align-start, &.align-end
        {
            &:not(.horizontal)
            {
                text-align: center;
            }
            align-items: center;
        }
    }

}
@media (max-width: 767px) {
    .flex-container.horizontal:not(.v-never)
    {
        &.v-source .hide-vertical { display: none; }
        &.v-source .show-vertical { display: inherit; }
        flex-direction: column;
    }

    .flex-container:not(.a-never)
    {
        &.align-start, &.align-end
        {
            &:not(.horizontal)
            {
                text-align: center;
            }
            align-items: center;
        }
    }
}
