<body>
  <header class="header">
   This is header
  </header>
  <div class="banner">
      <h1 class="banner__heading">Marshmallow caramels candy</h1>
      <p class="banner__text">Cake chupa chups marshmallow chocolate bar jelly bear claw. Biscuit pie icing carrot cake apple pie gingerbread jujubes jelly brownie. Jelly-o marshmallow powder caramels soufflé cake cheesecake. Candy canes cupcake cake chocolate bar.</p>
  </div>
  <main class="main-content">
    <article class="post">
      <img class="post__image" src="http://via.placeholder.com/140x100/89bebe/004848">
      <h3 class="post__heading">Chupa chups bar</h3>
      <p class="post__excerpt">Cake chupa chups bar jelly bear claw.</p>
    </article>
    <article class="post">
      <img class="post__image" src="http://via.placeholder.com/140x100/89bebe/004848">
      <h3 class="post__heading">Chupa chups bar</h3>
      <p class="post__excerpt">Cake chupa chups bar jelly bear claw.</p>
    </article>
    <article class="post">
      <img class="post__image" src="http://via.placeholder.com/140x100/89bebe/004848">
      <h3 class="post__heading">Chupa chups bar</h3>
      <p class="post__excerpt">Cake chupa chups bar jelly bear claw.</p>
    </article>
    <article class="post">
      <img class="post__image" src="http://via.placeholder.com/140x100/89bebe/004848">
      <h3 class="post__heading">Chupa chups bar</h3>
      <p class="post__excerpt">Cake chupa chups bar jelly bear claw.</p>
    </article>
    <article class="post">
      <img class="post__image" src="http://via.placeholder.com/140x100/89bebe/004848">
      <h3 class="post__heading">Chupa chups bar</h3>
      <p class="post__excerpt">Cake chupa chups bar jelly bear claw.</p>
    </article>
  </main>
  <ul class="menu">
    <li class="menu__item">chocolate</li>
    <li class="menu__item">brownie</li>
    <li class="menu__item">biscuit</li>
    <li class="menu__item">pie</li>
    <li class="menu__item">cupcake</li>
    <li class="menu__item">macaroon</li>
  </ul>
  <footer class="footer">
    This is footer
  </footer>
</body>
:root {
  --body-bg: #1D7A7A; 
  --menu-item-bg: #8FB7B7; 
  --menu-item-bd: #CC7630; 
  --banner-bg: #89BEBE; 
  --content-bg: #89BEBE;
  --menu-bg: #89BEBE;
  --post-bg: #FFE0C7;
  --post-bg: #ABDBAB;
  --post-bd: #CC7630;
  --header-bg: #1D7A7A;
  --footer-bg: #89BEBE;
  --font-primary: #004848;
  --font-secondary: #8FB7B7;
}

body,
* {
  box-sizing: border-box;
  color: var(--font-primary);
  font-family: 'Verdana';
}

body,
h1, 
h3,
p,
ul {
  margin: 0;
}

ul {
  list-style: none;
}

li {
  padding: 5px;
  background-color: var(--menu-item-bg);
  text-align: center;
  text-transform: uppercase;
  box-shadow: 1px 1px 2px;
}

.header, 
.banner,
.main-content,
.menu,
.footer {
  padding: 10px;
  background-color: var(--grid-item-bg);
}

.header {
  background-color: var(--header-bg);
  color: var(--font-secondary);
}

.banner {
  background-color: var(--banner-bg);
}

.main-content {
  background-color: var(--content-bg);
}

.menu {
  background-color: var(--footer-bg);
}

.footer {
  background-color: var(--footer-bg);
}

.banner__heading {
  margin-bottom: 10px;
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.25);
}

/* body grid: */

body {
  display: grid;
  height: 100vh;
  background-color: var(--body-bg);
  grid-template-columns: 5fr minmax(auto, 1fr);
  grid-template-rows: auto auto 1fr auto;
  grid-template-areas:
    "header header"
    "banner menu"
    "content menu"
    "footer footer";
  grid-gap: 3px;
}

.header {
  grid-area: header;
}

.banner {
  grid-area: banner;
  text-align: center;
}

.main-content {
  grid-area: content;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  grid-gap: 10px;
}

.menu {
  grid-area: menu;
  height: 100%;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto;
  grid-gap: 10px;
}

.menu__item {
  display: grid;
  align-content: center;
}

.footer {
  grid-area: footer;
}

@media screen and (max-width: 1000px) {
  body {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto 1fr auto;
    grid-template-areas:
      "header"
      "banner"
      "menu"
      "content"
      "footer";
  }
  .menu {
    grid-template-columns: repeat(6, 1fr); 
  }
}

@media screen and (max-width: 700px) {
  body {
    grid-template-columns: 4fr minmax(auto, 1fr);
    grid-template-rows: auto auto 1fr auto auto;
    grid-template-areas:
      "header header"
      "banner menu"
      "content content"
      "footer footer";
  }
  .menu {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 425px) {
  body {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto 1fr auto auto;
    grid-template-areas:
      "header"
      "banner"
      "content"
      "menu"
      "footer";
  }
}

/* post grid */

.post {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "heading"
    "image"
    "excerpt";
  padding: 10px;
  background-color: var(--post-bg);
  text-align: center;
  grid-gap: 10px;
  align-content: center;
  box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.5);
}

@media screen and (max-width: 700px) {
  .post {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas:
      "image heading"
      "image excerpt"; 
    text-align: left;
  }
}

.post__heading {
  grid-area: heading;
}

.post__image {
  grid-area: image;
  align-self: center;
  justify-self: center;
  box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.5);
}

.post__excerpt {
  grid-area: excerpt;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.