* {
    box-sizing: border-box;
}
body {
    margin: 0;
    font-family: sans-serif;
    line-height: 1.5;
}

.basic {
    display: grid;
    grid-template-rows: 4rem minmax(calc(100vh - 4rem - 200px), max-content) 200px;
    grid-template-columns: minmax(10%, 1fr) 1fr 3fr minmax(10%, 1fr);
    grid-template-areas:
        "header header header header"
        ".      nav    main   .     "
        "footer footer footer footer";
}

.basic header {
    grid-area: header;
        
    background: #b0e0f0;
    font-size: 3rem;
    text-align: center;
}
.basic nav {
    grid-area: nav;
}
.basic .main {
    grid-area: main;
}
.basic footer {
    grid-area: footer;
    background: #b0e0f0;
}

.collection {
    display: grid;
    grid-template-columns: repeat(auto-fit, 250px);
    grid-auto-rows: 300px;
    grid-gap: 1rem;
    justify-content: center;

    min-height: 100vh;
}
.collection article {
    font-size: 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid silver;
    background: #f5f5f5;
    box-shadow: 0 2px 10px -5px rgba(0,0,0,0.5);
}
.collection article.wide {
    grid-column-end: span 2;
}
.collection article.tall {
    grid-row-end: span 2;
}
