* {
  box-sizing: border-box;
  position: relative
}

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}
body {
  background: #fff;
  color: #000;
  font-family: "Poppins", sans-serif;
}
img {
  display: block;
  height: auto
}


.chef {
  max-height: 90vh;
  position: fixed;
  z-index: 99;
  bottom:0;
  right: 0;
  transition: all 0.3s
}
hero, main, footer {
  margin-right: 20vw
}
hero {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 70vh;
  transition: all 0.3s
}
hero img {
  max-height: 50vh;
  transition: all 0.3s
}
h1 {
  text-align: center;
  line-height: 1;
  font-size: 10vw
}
p {
  font-size: 2vw;
  text-align: center;
  margin: 0 auto;
  max-width: 700px
}

.carrousel {
  margin: 5vw;
  display: grid;
  position: relative;
  overflow: clip;
  row-gap: 15px;
  column-gap: 15px;
  grid-template-columns: repeat(4, 1fr);
  max-width: 70vw;
  overflow: hidden;
 }
.carrousel img {
  max-width: 100%;
  width: 100%;
}

footer {
  margin-top: 100px;
  font-size: 14px;
  text-align: center;
  padding: 30px
}
@media (max-width: 1140px) {
  main .row { padding-left: 5vw }
  h1 {text-align: left;padding-right: 10vw;}
  main p { text-align: left; margin-left: 0; padding-right: 10vw;}
  footer { text-align: left}
}
@media (max-width: 880px) {
  .chef { max-height: 50vh; bottom: 50vh; display: none }
  .chef.hide { transform: translateY(-60vh)}
  hero {
    margin: 0;
    height: calc(50vh + 40px)
    }
  hero img {
    max-height: 30vh
  }
  hero, main, footer {
    margin-right: 0;
    padding: 0 5vw
}
  hero.hide { justify-content: center; border: none }
  footer .row { padding-left: 0}
  h1, main p, footer {
    text-align: center;
    padding-right: 0;
  }
  main p { font-size: 18px }
  footer .legal { font-size: 12px }
}
@media (max-width: 580px) {
  h1 { font-size: 50px }
  .row {padding: 0 5vw }
  .carrousel {
    grid-template-columns: repeat(2, 1fr)
  }
}