@font-face {
  font-family: "icomoon";
  src: url("../fonts/icomoon.eot?75xe5u");
  src: url("../fonts/icomoon.eot?75xe5u#iefix") format("embedded-opentype"),
    url("../fonts/icomoon.ttf?75xe5u") format("truetype"), url("fonts/icomoon.woff?75xe5u") format("woff"),
    url("../fonts/icomoon.svg?75xe5u#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"],
[class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: "icomoon" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-facebook2:before {
  content: "\ea91";
}
.icon-instagram:before {
  content: "\ea92";
}
.icon-twitter:before {
  content: "\ea96";
}

html {
  font-size: 62.5%; /*  62.5% of 16px = 10px; 1rem */
  box-sizing: border-box;
}

*,
*::before,
*::after {
  padding: 0;
  margin: 0;
  box-sizing: inherit;
}

body {
  font-size: 1.4rem; /* 14 / 10 = 1.4  */
  font-family: 'Oswald', sans-serif;
  line-height: 2.4rem;
  color: #232323; 
}

html,
body {
  overflow-x: hidden;
}

img {
  display: block;
  width: 100%;
}

p {
  color: #8A8A8A;
}

ul {
  list-style: none;
}

header {
  background-image: linear-gradient(rgba(0,0,0,.5), transparent);
  display: grid;
  grid-template-columns: 7.5rem max-content;
  padding: 1rem 2.5rem;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
overflow-x:hidden;
}

.brand {
  display: block;
}

.brand img {
  display: block;
  width: 100%;
}

/* === Nav Menu === */
#navToggle,
.nav-toggle__icon,
nav {
   position: absolute;
   right: 0;
}

#navToggle {
  width: 5rem;
  height: 5rem;
  opacity: 0;
}

.nav-toggle__icon {
  padding: 2rem;
  cursor: pointer;
  z-index: 11;
  top: 2rem;
}

.nav-toggle__icon-span {
  display: block;
  width: 3.5rem;
  height: 1.5px;
  background-color: #fff;
}

.nav-toggle__icon-span::before,
.nav-toggle__icon-span::after {
  content: "";
  width: 3.5rem;
  height: 1.5px;
  position: absolute;
  background-color: #fff;
}

.nav-toggle__icon-span::before {
  top: 1.2rem;
}

.nav-toggle__icon-span::after {
  bottom: 1.2rem;
}

nav {
  background-color: #d94545;
  width: 30rem;
  height: 100vh;
  display: grid;
  justify-items: center;
  align-items: center;
  z-index: 10;
  transform: translateX(100%);
  transition: all .25s linear;
}

#navToggle:checked ~ nav {
  transform: translateX(0);
  position: fixed;
  top: 0;
}

#navToggle:checked ~ .nav-toggle__icon {
  position: fixed;
}

.nav__links li {
  display: block;
  padding: 1rem;
}

.nav__link {
  color: #fff;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: 0.5px;
  position: relative;
  transition: all .2s linear;
}

.nav__link::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 2px;
  background-color: #fff;
  bottom: -5px;
  left: 0;
  transform: translateX(-100%) scale(0);
  transition: all .2s linear;
}

.nav__link:hover::after {
  transform: translateX(0) scale(1);
}

/* === Banner === */
#banner {
  height: 100vh;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(3, 1fr);
}

.banner__bg-container {
  grid-column: 1 / 4;
  grid-row: 1 / 4;
  overflow-y: hidden;
}

.banner__bg-image {
  height: 100%;
  object-fit: cover;
}

.banner__content {
  grid-column: 1 / 4;
  grid-row: 2 / 3;
  z-index: 2;
  justify-self: center;
  text-align: center;
}

.banner__content--h1 {
  color: #fff;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 4rem;
}

.banner__content--h2 {
  color: #fff;
  font-size: 10rem;
  font-weight: 600;
  text-transform: uppercase;
  line-height: 10.8rem;
}

.btn {
  display: inline-block;
  background: linear-gradient(to bottom right, #d94545, #d96f45);
  font-size: 1.6rem;
  font-weight: 300;
  text-decoration: none;
  text-transform: uppercase;
  padding: 1rem 4.5rem;
  margin: 1.5rem 3rem;
  transition: all. 25s linear;
  color: #fff;
  line-height: 1.6;
  border: none;
}

.btn:hover {
  background: linear-gradient(to bottom right, #f86d6d, #f88e6d);
  box-shadow: 0 12px 24px rgba(0,0,0,0.5);
}

.btn:focus {
  background: #ad3636;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}

.btn:active {
  backgorund: #d94545;
}

.btn-lg {
  font-size: 2.6rem;
}

/* === About ===*/
#about {
  background: url('../img/about-bg.jpg') bottom no-repeat;
  background-size: cover;
  display: grid;
  grid-template-columns: 25rem repeat(2, minmax(0, 1fr)) 25rem;
  grid-template-rows: 20rem 1fr 20rem;
  grid-template-areas: '. title title .'
                        '. content-left content-right .'
                        'figures figures figures figures';
  width: 100%;
  grid-gap: 2rem;
}

.about__content-left {
  grid-area: content-left;
  font-size: 2.6rem;
  line-height: 3.9rem;
}

.about__content-left p {
  color: #232323;
}

.about__content-right {
  grid-area: content-right;
}

.about__figures {
  grid-area: figures;
  display: grid;
  grid-template-columns: repeat(3, 20rem);
  justify-content: space-evenly;
  text-align: center;
}

.about__figure-number {
  font-size: 7rem;
  line-height: 5.6rem;
  font-weight: 300;
}

.about__figure-text {
  margin-top: 2rem;
  font-size: 2rem;
  text-transform: uppercase;
}

#about .section-heading {
  grid-area: title;
  text-align: center;
}

.section-heading {
  color: #232323;
  font-weight: 300;
  text-transform: uppercase;
  font-size: 6rem;
  align-self: center;
  justify-self: center;
  text-align: center;
}

.section-heading__back,
.section-heading__front {
  display: block;
}

.section-heading__back {
  font-family: 'Playfair Display', serif;
  opacity: 0.2;
  font-weight: bold;
  text-transform: capitalize;
  line-height: 4rem;
}

/* === MENU === */
#menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 35vw));
  grid-template-rows: 20rem 1fr 10rem;
  grid-gap: 2rem;
  justify-content: center;
}

#menu .section-heading {
  grid-column: span 2;
}

.menu__item {
  display: grid;
  grid-template-columns: 10rem 1fr min-content;
  grid-column-gap: 1.5rem;
  align-items: center;
}

.menu__item:not(:last-of-type) {
  margin-bottom: 2rem;
}

.menu__item-content--container {
  display: grid;
  grid-template-columns: max-content 1fr;
}

.menu__item-line {
  width: 100%;
  border-bottom: 2px dotted #cfcece;
  align-self: center;
}

.menu__item-title {
  font-size: 1.8rem;
  text-transform: uppercase;
  font-weight: 400;
  letter-spacing: 1px;
}

.menu__item-price {
  color: #d94545;
  font-size: 1.8rem;
}

/* === Subsection - Reserve  === */
.subsection {
  display: grid;
  grid-template-rows: 30rem;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.subsection-reserve {
  background: url('../img/subsection-1.jpg') center no-repeat;
  background-size: cover;
}

.subsection h2 {
  font-size: 4rem;
  text-transform: uppercase;
}

.subsection__sub-heading {
  font-family: 'Playfair Display', serif;
  font-size: 2.6rem;
  margin-top: 1rem;
  font-style: italic;
  text-transform: capitalize;
}

/* === Image Grid === */
#delivery {
  display: grid;
  grid-template-rows: 20rem 1fr 10rem;
}

.image-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(6, 5vw);
  grid-gap: 1rem;
  /* grid-auto-flow: dense; */
}

.image-grid img {
  height: 100%;
  object-fit: cover;
}

.img1 {
  grid-column: span 2;
  grid-row: span 2;
}

.img2 {
  grid-column: span 2;
  grid-row: span 3;
}

.img3 {
  grid-column: span 2;
  grid-row: span 4;
}

.img4 {
  grid-column: span 2;
  grid-row: span 4;
}

.img7,
.img8  {
  grid-column: span 2;
  grid-row: span 2;
}

.delivery-partners {
  display: grid;
  grid-template-columns: repeat(2, 5rem) 10rem 15rem;
  grid-gap: 2rem;
  margin-top: 2rem;
}

.subsection-delivery {
  background: url('../img/subsection-2.jpg') center no-repeat;
  background-size: cover;
}

.subsection-delivery h2 {
  font-weight: 300;
  font-size: 2.6rem;
  line-height: 1.4;
}

#news {
  display: grid;
  grid-template-rows: 20rem 1fr 10rem;
  justify-content: center;
}

.blog {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 2rem;
}

.blog article {
  display: grid;
  grid-template-rows: auto 1fr;
  max-width: 35rem;
}

.blog__body {
  padding: 2rem;
}

.blog__title {
  font-size: 2.2rem;
  line-height: 3.2rem;
  margin-bottom: 1rem;
}

.blog__excerpt {
  color: #8a8a8a;
  font-size: 1.4rem;
  line-height: 2.5rem;
  margin-bottom: 1rem;
}

.read-more {
  color: #d94545;
  text-transform: uppercase;
  text-decoration: none;
}

.blog__img {
  position: relative;
}

.blog__share-btn {
  position: absolute;
  right: 20px;
  bottom: -20px;
  cursor: pointer;
}

.blog__flipped .blog__img {
  grid-row: 2 / 3;
}

.blog__flipped .blog__share-btn {
  top: -20px;
  bottom: unset;
}

/*  === Contact section === */
#contact {
  display: grid;
  grid-template-columns: repeat(2, 60rem);
  grid-template-rows: 1fr 5rem;
  grid-gap: 2rem;
  justify-content: center;
}

.form {
  border: 1px solid #dedede;
  padding: 2rem 4rem;
  text-align: center;
}

.form h2 {
  font-size: 2.6rem;
  font-weight: 300;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

fieldset {
  border: none;
}

legend {
  color: #8a8a8a;
  margin: 0 auto 3rem auto;
}

input,
textarea {
  font-family: 'Oswald', snas-serif;
  font-size: 1.6rem;
  color: #232323;
  padding: 1rem;
  width: 100%;
  border: none;
  border-bottom: 1px solid #dedede;
}

label {
  display: block;
  margin-bottom: 1.5rem;
}

.contact-images {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 25rem 20rem;
  grid-gap: 1rem;
}

.contact-images img:first-child {
  grid-column: span 2;
}

.contact-images img {
  height: 100%;
  object-fit: cover;
}

.footer-top {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: url('../img/footer.jpg') center no-repeat;
  background-size: cover;
  justify-items: center;
  align-items: center;
  padding: 2rem;
}

.footer__logo {
  width: 7.5rem;
}

.footer-bottom {
  padding: 2rem;
  text-align: center;
}

.footer__link,
.social__link {
  color: #232323;
  font-size: 1.2rem;
  text-decoration: none;
  text-transform: uppercase;
}

/* === Media Queries === 
  1200px
  900px
  600px
*/
@media (max-width: 1200px) {
  .about__content-left {
    font-size: 2.2rem;
  }

  #about {
    grid-template-areas: '. title title .'
    'content-left content-left content-right content-right'
    'figures figures figures figures';
    padding: 0 2rem;
  }

  #menu {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0 2rem;
  }

  .blog {
    grid-template-columns: 1fr;
  }

  .blog__flipped .blog__img {
    grid-row: unset;
  }

  .blog__flipped .blog__share-btn {
    top: unset;
    bottom: -20px;
  }

  #contact {
    grid-template-columns: repeat(2, 1fr);
    padding: 0 2rem;
  }
}

@media (max-width: 900px) {
  .section-heading {
    font-size: 4rem;
    line-height: 0;
  }

  .about__figure-number {
    font-size: 4rem;
    line-height: 4rem;
  }

  .menu__item-title,
  .menu__item-price {
    font-size: 1.6rem;
  }

  .menu__item {
    grid-template-columns: 5rem 1fr 5rem;
  }

  #menu {
    grid-template-columns: 1fr;
    grid-template-rows: 10rem 1fr 1fr 10rem;
  }

  #menu .section-heading {
    grid-column: unset;
  }

  #contact {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr 5rem;
  }
}

@media (max-width: 600px) {
  #about {
    grid-template-columns: 1fr;
    grid-template-areas: 'title'
                         'content-left'
                         'content-right'
                         'figures';
    grid-template-rows: 10rem min-content min-content min-content 10rem;
  }

  .about__figures {
    grid-template-columns: 1fr;
    grid-row-gap: 1.5rem;
  }

  .about__figure-text {
    font-size: 1.6rem;
    margin-top: 1.6rem;
  }

  .delivery-partners {
    grid-template-columns: repeat(2, 3rem) 5rem 7rem;
  }

}