body {
    min-width: 100%;
    margin: 0;
}

.wrapper {
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    font-weight: bold;
    text-align: center;
}

.wrapper > * {
    padding: 10px;
    flex: 1 100%;
}

.header{
    background: tomato;
}

.navigation{
    background: red;
}

.footer{
    background: lightgreen;
}

.main{
    text-align: left;
    background: deepskyblue;
}

.aside-1{
    background: gold;
}

.aside-2{
    background: hotpink;
}

@media all and (min-width: 600px){
    .aside{
        flex: 1 0 0;
    }
}

@media all and (min-width: 800px){ 
    .aside-1{
        order: 1;
    }
    
    .main{
        flex: 3 10;
        order: 2;
    }

    .aside-2{
        order: 3;
    }

    .footer{
        order: 4;
    }
}