.imd-flex { display: flex; }
.imd-inline-flex { display: inline-flex; }

/* 1. Fix for Chrome 44 bug.
 * https://code.google.com/p/chromium/issues/detail?id=506893 */
.imd-flex-auto {
    flex: 1 1 auto;
    min-width: 0; /* 1 */
    min-height: 0; /* 1 */
}

.imd-flex-none { flex: none; }

.imd-flex-column  { flex-direction: column; }
.imd-flex-row     { flex-direction: row; }
.imd-flex-wrap    { flex-wrap: wrap; }
.imd-flex-nowrap    { flex-wrap: nowrap; }
.imd-flex-wrap-reverse    { flex-wrap: wrap-reverse; }
.imd-flex-column-reverse  { flex-direction: column-reverse; }
.imd-flex-row-reverse     { flex-direction: row-reverse; }

.imd-items-start    { align-items: flex-start; }
.imd-items-end      { align-items: flex-end; }
.imd-items-center   { align-items: center; }
.imd-items-baseline { align-items: baseline; }
.imd-items-stretch  { align-items: stretch; }

.imd-self-start    { align-self: flex-start; }
.imd-self-end      { align-self: flex-end; }
.imd-self-center   { align-self: center; }
.imd-self-baseline { align-self: baseline; }
.imd-self-stretch  { align-self: stretch; }

.imd-justify-start   { justify-content: flex-start; }
.imd-justify-end     { justify-content: flex-end; }
.imd-justify-center  { justify-content: center; }
.imd-justify-between { justify-content: space-between; }
.imd-justify-around  { justify-content: space-around; }

.imd-content-start   { align-content: flex-start; }
.imd-content-end     { align-content: flex-end; }
.imd-content-center  { align-content: center; }
.imd-content-between { align-content: space-between; }
.imd-content-around  { align-content: space-around; }
.imd-content-stretch { align-content: stretch; }

.imd-order-0 { order: 0; }
.imd-order-1 { order: 1; }
.imd-order-2 { order: 2; }
.imd-order-3 { order: 3; }
.imd-order-4 { order: 4; }
.imd-order-5 { order: 5; }
.imd-order-6 { order: 6; }
.imd-order-7 { order: 7; }
.imd-order-8 { order: 8; }
.imd-order-last { order: 99999; }

@media (min-width: 576px) {
    .imd-flex-xs { display: flex; }
    .imd-inline-flex-xs { display: inline-flex; }

    /* 1. Fix for Chrome 44 bug.
     * https://code.google.com/p/chromium/issues/detail?id=506893 */
    .imd-flex-auto-xs {
        flex: 1 1 auto;
        min-width: 0; /* 1 */
        min-height: 0; /* 1 */
    }

    .imd-flex-none-xs { flex: none; }

    .imd-flex-column-xs  { flex-direction: column; }
    .imd-flex-row-xs     { flex-direction: row; }
    .imd-flex-wrap-xs    { flex-wrap: wrap; }
    .imd-flex-nowrap-xs    { flex-wrap: nowrap; }
    .imd-flex-wrap-reverse-xs    { flex-wrap: wrap-reverse; }
    .imd-flex-column-reverse-xs  { flex-direction: column-reverse; }
    .imd-flex-row-reverse-xs     { flex-direction: row-reverse; }

    .imd-items-start-xs    { align-items: flex-start; }
    .imd-items-end-xs      { align-items: flex-end; }
    .imd-items-center-xs   { align-items: center; }
    .imd-items-baseline-xs { align-items: baseline; }
    .imd-items-stretch-xs  { align-items: stretch; }

    .imd-self-start-xs    { align-self: flex-start; }
    .imd-self-end-xs      { align-self: flex-end; }
    .imd-self-center-xs   { align-self: center; }
    .imd-self-baseline-xs { align-self: baseline; }
    .imd-self-stretch-xs  { align-self: stretch; }

    .imd-justify-start-xs   { justify-content: flex-start; }
    .imd-justify-end-xs     { justify-content: flex-end; }
    .imd-justify-center-xs  { justify-content: center; }
    .imd-justify-between-xs { justify-content: space-between; }
    .imd-justify-around-xs  { justify-content: space-around; }

    .imd-content-start-xs   { align-content: flex-start; }
    .imd-content-end-xs     { align-content: flex-end; }
    .imd-content-center-xs  { align-content: center; }
    .imd-content-between-xs { align-content: space-between; }
    .imd-content-around-xs  { align-content: space-around; }
    .imd-content-stretch-xs { align-content: stretch; }

    .imd-order-0-xs { order: 0; }
    .imd-order-1-xs { order: 1; }
    .imd-order-2-xs { order: 2; }
    .imd-order-3-xs { order: 3; }
    .imd-order-4-xs { order: 4; }
    .imd-order-5-xs { order: 5; }
    .imd-order-6-xs { order: 6; }
    .imd-order-7-xs { order: 7; }
    .imd-order-8-xs { order: 8; }
    .imd-order-last-xs { order: 99999; }
}

@media (min-width: 768px) {
    .imd-flex-sm { display: flex; }
    .imd-inline-flex-sm { display: inline-flex; }

    /* 1. Fix for Chrome 44 bug.
     * https://code.google.com/p/chromium/issues/detail?id=506893 */
    .imd-flex-auto-sm {
        flex: 1 1 auto;
        min-width: 0; /* 1 */
        min-height: 0; /* 1 */
    }

    .imd-flex-none-sm { flex: none; }

    .imd-flex-column-sm  { flex-direction: column; }
    .imd-flex-row-sm     { flex-direction: row; }
    .imd-flex-wrap-sm    { flex-wrap: wrap; }
    .imd-flex-nowrap-sm    { flex-wrap: nowrap; }
    .imd-flex-wrap-reverse-sm    { flex-wrap: wrap-reverse; }
    .imd-flex-column-reverse-sm  { flex-direction: column-reverse; }
    .imd-flex-row-reverse-sm     { flex-direction: row-reverse; }

    .imd-items-start-sm    { align-items: flex-start; }
    .imd-items-end-sm      { align-items: flex-end; }
    .imd-items-center-sm   { align-items: center; }
    .imd-items-baseline-sm { align-items: baseline; }
    .imd-items-stretch-sm  { align-items: stretch; }

    .imd-self-start-sm    { align-self: flex-start; }
    .imd-self-end-sm      { align-self: flex-end; }
    .imd-self-center-sm   { align-self: center; }
    .imd-self-baseline-sm { align-self: baseline; }
    .imd-self-stretch-sm  { align-self: stretch; }

    .imd-justify-start-sm   { justify-content: flex-start; }
    .imd-justify-end-sm     { justify-content: flex-end; }
    .imd-justify-center-sm  { justify-content: center; }
    .imd-justify-between-sm { justify-content: space-between; }
    .imd-justify-around-sm  { justify-content: space-around; }

    .imd-content-start-sm   { align-content: flex-start; }
    .imd-content-end-sm     { align-content: flex-end; }
    .imd-content-center-sm  { align-content: center; }
    .imd-content-between-sm { align-content: space-between; }
    .imd-content-around-sm  { align-content: space-around; }
    .imd-content-stretch-sm { align-content: stretch; }

    .imd-order-0-sm { order: 0; }
    .imd-order-1-sm { order: 1; }
    .imd-order-2-sm { order: 2; }
    .imd-order-3-sm { order: 3; }
    .imd-order-4-sm { order: 4; }
    .imd-order-5-sm { order: 5; }
    .imd-order-6-sm { order: 6; }
    .imd-order-7-sm { order: 7; }
    .imd-order-8-sm { order: 8; }
    .imd-order-last-sm { order: 99999; }
}

@media (min-width: 992px) {
    .imd-flex-md { display: flex; }
    .imd-inline-flex-md { display: inline-flex; }

    /* 1. Fix for Chrome 44 bug.
     * https://code.google.com/p/chromium/issues/detail?id=506893 */
    .imd-flex-auto-md {
        flex: 1 1 auto;
        min-width: 0; /* 1 */
        min-height: 0; /* 1 */
    }

    .imd-flex-none-md { flex: none; }

    .imd-flex-column-md  { flex-direction: column; }
    .imd-flex-row-md     { flex-direction: row; }
    .imd-flex-wrap-md    { flex-wrap: wrap; }
    .imd-flex-nowrap-md    { flex-wrap: nowrap; }
    .imd-flex-wrap-reverse-md    { flex-wrap: wrap-reverse; }
    .imd-flex-column-reverse-md  { flex-direction: column-reverse; }
    .imd-flex-row-reverse-md     { flex-direction: row-reverse; }

    .imd-items-start-md    { align-items: flex-start; }
    .imd-items-end-md      { align-items: flex-end; }
    .imd-items-center-md   { align-items: center; }
    .imd-items-baseline-md { align-items: baseline; }
    .imd-items-stretch-md  { align-items: stretch; }

    .imd-self-start-md    { align-self: flex-start; }
    .imd-self-end-md      { align-self: flex-end; }
    .imd-self-center-md   { align-self: center; }
    .imd-self-baseline-md { align-self: baseline; }
    .imd-self-stretch-md  { align-self: stretch; }

    .imd-justify-start-md   { justify-content: flex-start; }
    .imd-justify-end-md     { justify-content: flex-end; }
    .imd-justify-center-md  { justify-content: center; }
    .imd-justify-between-md { justify-content: space-between; }
    .imd-justify-around-md  { justify-content: space-around; }

    .imd-content-start-md   { align-content: flex-start; }
    .imd-content-end-md     { align-content: flex-end; }
    .imd-content-center-md  { align-content: center; }
    .imd-content-between-md { align-content: space-between; }
    .imd-content-around-md  { align-content: space-around; }
    .imd-content-stretch-md { align-content: stretch; }

    .imd-order-0-md { order: 0; }
    .imd-order-1-md { order: 1; }
    .imd-order-2-md { order: 2; }
    .imd-order-3-md { order: 3; }
    .imd-order-4-md { order: 4; }
    .imd-order-5-md { order: 5; }
    .imd-order-6-md { order: 6; }
    .imd-order-7-md { order: 7; }
    .imd-order-8-md { order: 8; }
    .imd-order-last-md { order: 99999; }
}

@media (min-width: 1200px) {
    .imd-flex-lg { display: flex; }
    .imd-inline-flex-lg { display: inline-flex; }

    /* 1. Fix for Chrome 44 bug.
     * https://code.google.com/p/chromium/issues/detail?id=506893 */
    .imd-flex-auto-lg {
        flex: 1 1 auto;
        min-width: 0; /* 1 */
        min-height: 0; /* 1 */
    }

    .imd-flex-none-lg { flex: none; }

    .imd-flex-column-lg  { flex-direction: column; }
    .imd-flex-row-lg     { flex-direction: row; }
    .imd-flex-wrap-lg    { flex-wrap: wrap; }
    .imd-flex-nowrap-lg    { flex-wrap: nowrap; }
    .imd-flex-wrap-reverse-lg    { flex-wrap: wrap-reverse; }
    .imd-flex-column-reverse-lg  { flex-direction: column-reverse; }
    .imd-flex-row-reverse-lg     { flex-direction: row-reverse; }

    .imd-items-start-lg    { align-items: flex-start; }
    .imd-items-end-lg      { align-items: flex-end; }
    .imd-items-center-lg   { align-items: center; }
    .imd-items-baseline-lg { align-items: baseline; }
    .imd-items-stretch-lg  { align-items: stretch; }

    .imd-self-start-lg    { align-self: flex-start; }
    .imd-self-end-lg      { align-self: flex-end; }
    .imd-self-center-lg   { align-self: center; }
    .imd-self-baseline-lg { align-self: baseline; }
    .imd-self-stretch-lg  { align-self: stretch; }

    .imd-justify-start-lg   { justify-content: flex-start; }
    .imd-justify-end-lg     { justify-content: flex-end; }
    .imd-justify-center-lg  { justify-content: center; }
    .imd-justify-between-lg { justify-content: space-between; }
    .imd-justify-around-lg  { justify-content: space-around; }

    .imd-content-start-lg   { align-content: flex-start; }
    .imd-content-end-lg     { align-content: flex-end; }
    .imd-content-center-lg  { align-content: center; }
    .imd-content-between-lg { align-content: space-between; }
    .imd-content-around-lg  { align-content: space-around; }
    .imd-content-stretch-lg { align-content: stretch; }

    .imd-order-0-lg { order: 0; }
    .imd-order-1-lg { order: 1; }
    .imd-order-2-lg { order: 2; }
    .imd-order-3-lg { order: 3; }
    .imd-order-4-lg { order: 4; }
    .imd-order-5-lg { order: 5; }
    .imd-order-6-lg { order: 6; }
    .imd-order-7-lg { order: 7; }
    .imd-order-8-lg { order: 8; }
    .imd-order-last-lg { order: 99999; }
}