.flexible-box {
    display: -webkit-flex;
    display: -moz-box;
    display: flex;
}

.flexible-box.flexible-row {
    -webkit-flex-direction: row;
    -ms-flex-direction: row;
    flex-direction: row;
}

.flexible-box.flexible-column {
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
}

.flexible-box.vertical-start {
    align-items: flex-start;
}

.flexible-box.vertical-center {
    align-items: center;
}

.flexible-box.vertical-end {
    align-items: flex-end;
}

.flexible-box.horizontal-start {
    justify-content: flex-start;
}

.flexible-box.horizontal-center {
    justify-content: center;
}

.flexible-box.horizontal-end {
    justify-content: flex-end;
}

.flexible-box.horizontal-space-between {
    justify-content: space-between;
}

.flexible-box.horizontal-space-around {
    justify-content: space-around;
}

    .flexible-box > .flexible-box-item {
        flex: 1;
    }

    .flexible-box > .flexible-box-nonitem {
        flex: 0;
    }

/* ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- */
@media (min-width: 0) {
    .flexible-box-xs {
        display: -webkit-flex;
        display: -moz-box;
        display: flex;
    }

    [class*="flexible-box"].flexible-row-xs {
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
    }

    [class*="flexible-box"].flexible-column-xs {
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    [class*="flexible-box"].vertical-start-xs {
        align-items: flex-start;
    }

    [class*="flexible-box"].vertical-center-xs {
        align-items: center;
    }

    [class*="flexible-box"].vertical-end-xs {
        align-items: flex-end;
    }

    [class*="flexible-box"].horizontal-start-xs {
        justify-content: flex-start;
    }

    [class*="flexible-box"].horizontal-center-xs {
        justify-content: center;
    }

    [class*="flexible-box"].horizontal-end-xs {
        justify-content: flex-end;
    }

    [class*="flexible-box"].horizontal-space-between-xs {
        justify-content: space-between;
    }

    [class*="flexible-box"].horizontal-space-around-xs {
        justify-content: space-around;
    }

        [class*="flexible-box"] > .flexible-box-item-xs {
            flex: 1;
        }

        [class*="flexible-box"] > .flexible-box-nonitem-xs {
            flex: 0;
        }
}

/* ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- */
@media (min-width: 641px) {
    .flexible-box-sm {
        display: -webkit-flex;
        display: -moz-box;
        display: flex;
    }

    [class*="flexible-box"].flexible-row-sm {
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
    }

    [class*="flexible-box"].flexible-column-sm {
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    [class*="flexible-box"].vertical-start-sm {
        align-items: flex-start;
    }

    [class*="flexible-box"].vertical-center-sm {
        align-items: center;
    }

    [class*="flexible-box"].vertical-end-sm {
        align-items: flex-end;
    }

    [class*="flexible-box"].horizontal-start-sm {
        justify-content: flex-start;
    }

    [class*="flexible-box"].horizontal-center-sm {
        justify-content: center;
    }

    [class*="flexible-box"].horizontal-end-sm {
        justify-content: flex-end;
    }

    [class*="flexible-box"].horizontal-space-between-sm {
        justify-content: space-between;
    }

    [class*="flexible-box"].horizontal-space-around-sm {
        justify-content: space-around;
    }

        [class*="flexible-box"] > .flexible-box-item-sm {
            flex: 1;
        }

        [class*="flexible-box"] > .flexible-box-nonitem-sm {
            flex: 0;
        }
}

/* ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- */
@media (min-width: 769px) {
    .flexible-box-md {
        display: -webkit-flex;
        display: -moz-box;
        display: flex;
    }

    [class*="flexible-box"].flexible-row-md {
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
    }

    [class*="flexible-box"].flexible-column-md {
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    [class*="flexible-box"].vertical-start-md {
        align-items: flex-start;
    }

    [class*="flexible-box"].vertical-center-md {
        align-items: center;
    }

    [class*="flexible-box"].vertical-end-md {
        align-items: flex-end;
    }

    [class*="flexible-box"].horizontal-start-md {
        justify-content: flex-start;
    }

    [class*="flexible-box"].horizontal-center-md {
        justify-content: center;
    }

    [class*="flexible-box"].horizontal-end-md {
        justify-content: flex-end;
    }

    [class*="flexible-box"].horizontal-space-between-md {
        justify-content: space-between;
    }

    [class*="flexible-box"].horizontal-space-around-md {
        justify-content: space-around;
    }

        [class*="flexible-box"] > .flexible-box-item-md {
            flex: 1;
        }

        [class*="flexible-box"] > .flexible-box-nonitem-md {
            flex: 0;
        }
}

/* ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- */
@media (min-width: 1025px) {
    .flexible-box-lg {
        display: -webkit-flex;
        display: -moz-box;
        display: flex;
    }

    [class*="flexible-box"].flexible-row-lg {
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
    }

    [class*="flexible-box"].flexible-column-lg {
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    [class*="flexible-box"].vertical-start-lg {
        align-items: flex-start;
    }

    [class*="flexible-box"].vertical-center-lg {
        align-items: center;
    }

    [class*="flexible-box"].vertical-end-lg {
        align-items: flex-end;
    }

    [class*="flexible-box"].horizontal-start-lg {
        justify-content: flex-start;
    }

    [class*="flexible-box"].horizontal-center-lg {
        justify-content: center;
    }

    [class*="flexible-box"].horizontal-end-lg {
        justify-content: flex-end;
    }

    [class*="flexible-box"].horizontal-space-between-lg {
        justify-content: space-between;
    }

    [class*="flexible-box"].horizontal-space-around-lg {
        justify-content: space-around;
    }

        [class*="flexible-box"] > .flexible-box-item-lg {
            flex: 1;
        }

        [class*="flexible-box"] > .flexible-box-nonitem-lg {
            flex: 0;
        }
}

/* ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- */
@media (min-width: 1281px) {
    .flexible-box-xl {
        display: -webkit-flex;
        display: -moz-box;
        display: flex;
    }

    [class*="flexible-box"].flexible-row-xl {
        -webkit-flex-direction: row;
        -ms-flex-direction: row;
        flex-direction: row;
    }

    [class*="flexible-box"].flexible-column-xl {
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
    }

    [class*="flexible-box"].vertical-start-xl {
        align-items: flex-start;
    }

    [class*="flexible-box"].vertical-center-xl {
        align-items: center;
    }

    [class*="flexible-box"].vertical-end-xl {
        align-items: flex-end;
    }

    [class*="flexible-box"].horizontal-start-xl {
        justify-content: flex-start;
    }

    [class*="flexible-box"].horizontal-center-xl {
        justify-content: center;
    }

    [class*="flexible-box"].horizontal-end-xl {
        justify-content: flex-end;
    }

    [class*="flexible-box"].horizontal-space-between-xl {
        justify-content: space-between;
    }

    [class*="flexible-box"].horizontal-space-around-xl {
        justify-content: space-around;
    }

        [class*="flexible-box"] > .flexible-box-item-xl {
            flex: 1;
        }

        [class*="flexible-box"] > .flexible-box-nonitem-xl {
            flex: 0;
        }
}