.widget-container {
    width: 100%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

@media all and (min-width: 480px) {
    .widget-container > .widget {
        width: 100%;
        flex: 0 0 100%;
    }

    .widget-container[layout="1"] > .widget {

    }

    .widget-container[layout="1/1"] > .widget,
    .widget-container[layout="4"] > .widget,
    .widget-container[layout="6"] > .widget {
        width: 50%;
        flex-basis: 50%;
        max-width: 50%;
    }

    .widget-container[layout="1/2"] > .widget:nth-of-type(even),
    .widget-container[layout="2/1"] > .widget:nth-of-type(odd) {
        width: 66.66667%;
        flex-basis: 66.66667%;
        max-width: 66.66667%;
    }

    .widget-container[layout="1/2"] > .widget:nth-of-type(odd),
    .widget-container[layout="2/1"] > .widget:nth-of-type(even) {
        width: 33.33333%;
        flex-basis: 33.33333%;
        max-width: 33.33333%;
    }

    .widget-container[layout="1/1/1"] > .widget,
    .widget-container[layout="3"] > .widget {
        width: 33.33333%;
        flex-basis: 33.33333%;
        max-width: 33.33333%;
    }
}

@media all and (min-width: 768px) {
    .widget-container[layout="1/2/1"] > .widget:nth-of-type(3n+2) {
        width: 50%;
        flex-basis: 50%;
        max-width: 50%;
    }

    .widget-container[layout="1/2/1"] > .widget:nth-of-type(3n+1),
    .widget-container[layout="1/2/1"] > .widget:nth-of-type(3n) {
        width: 25%;
        flex-basis: 25%;
        max-width: 25%;
    }

    .widget-container[layout="4"] > .widget,
    .widget-container[layout="6"] > .widget {
        width: 33.33333%;
        flex-basis: 33.33333%;
        max-width: 33.33333%;
    }
}

@media all and (min-width: 992px) {
    .widget-container[layout="1/2"] > .widget:nth-of-type(even),
    .widget-container[layout="2/1"] > .widget:nth-of-type(odd) {
        width: 75%;
        flex-basis: 75%;
        max-width: 75%;
    }

    .widget-container[layout="1/2"] > .widget:nth-of-type(odd),
    .widget-container[layout="2/1"] > .widget:nth-of-type(even),
    .widget-container[layout="4"] > .widget,
    .widget-container[layout="6"] > .widget {
        width: 25%;
        flex-basis: 25%;
        max-width: 25%;
    }

    .widget-container[layout="1/2/1"] > .widget:nth-of-type(3n+1),
    .widget-container[layout="1/2/1"] > .widget:nth-of-type(3n) {
        width: 20%;
        flex-basis: 20%;
        max-width: 20%;
    }

    .widget-container[layout="1/2/1"] > .widget:nth-of-type(3n+2) {
        width: 60%;
        flex-basis: 60%;
        max-width: 60%;
    }
}

@media all and (max-width: 479px) {
    .widget-container {
        display: block;
    }

    .widget-container > .widget {
        width: 100% !important;
        max-width: 100% !important;
        flex-basis: auto !important;
    }
}