html {
  box-sizing: border-box;
  height: 100%;
}

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

body {
  font-family: "Montserrat", sans-serif;
  min-height: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Playfair display", serif;
}

button {
  cursor: pointer;
  font: inherit;
}

img {
  object-fit: cover;
  width: 100%;
}

li {
  list-style: none;
}

a {
  text-decoration: none;
}

.btn {
  background: none;
  border: none;
}

.nightmode {
  width: 10vw;
  height: 6vw;
  border-radius: 5vw;
  color: white;
  border: white solid 0.2vw;
  position: absolute;
  top: 5.1vw;
  left: 5vw;
  display: flex;
}
.nightmode::before {
  content: "";
  position: absolute;
  width: 5vw;
  background-color: white;
  height: 5vw;
  border-radius: 5vw;
  transform: translateY(0.2vw) translateX(0.3vw);
  transition: 0.2s;
}

.night {
  color: #F2F2F2;
  background-color: #000534;
}
.night body {
  color: #F2F2F2;
}
.night .nightmode::before {
  transform: translateY(0.2vw) translateX(4.3vw);
}
.night a {
  background-color: white;
}
.night .main-header .main-nav .main-menu li {
  color: #F2F2F2;
}
.night .main-header .main-nav .main-menu li a {
  background-color: white;
}
.night .main-header .main-nav .main-menu li:hover {
  color: #F2F2F2;
}
.night .order {
  background-color: #000534;
  color: #F2F2F2;
}
.night .order:hover {
  color: #F2F2F2;
}
.night footer {
  background-color: #000E3A;
}
.night .meal-card {
  background-color: #112452;
}
.night .meals__categories {
  background-color: #000534;
}
.night .meals__filter-btn {
  color: #F2F2F2;
}
.night .footer__responsive a {
  background-color: #000E3A;
}
.night #add-to-cart-btn {
  color: #F2F2F2;
}
.night #remove-from-cart-btn {
  color: #F2F2F2;
}
.night .menu div {
  background-color: #F2F2F2;
}
.night .menu::before {
  background-color: #F2F2F2;
}
.night .menu::after {
  background-color: #F2F2F2;
}
.night .main-header .main-nav {
  background-color: #000E3A;
  transition: 0s;
}
.night footer a {
  background-color: #000E3A;
}
.night .intro .kitchen_container a {
  background-color: #112452;
}
.night .meals__categories.underline::before {
  background-color: #F2F2F2;
}

@media screen and (min-width: 768px) {
  .nightmode {
    position: static;
    width: 2.7vw;
    height: 1.5vw;
    border: #1E1E1E solid 0.1vw;
    top: 1.3vw;
    left: 33vw;
  }
  .nightmode::before {
    width: 1.25vw;
    background-color: #1E1E1E;
    height: 1.25vw;
    border-radius: 5vw;
    transform: translateY(0.03vw) translateX(0.05vw);
    transition: 0.2s;
  }
  .night .main-header .main-nav {
    background-color: #000534;
    transition: 0s;
  }
  .night .nightmode {
    border: #F2F2F2 solid 0.1vw;
  }
  .night .nightmode::before {
    background-color: #F2F2F2;
    transform: translateY(0.03vw) translateX(1.2vw);
    transition: 0.2s;
  }
}
.main-header {
  width: 95%;
  max-width: 1440px;
  margin: 0 auto;
  padding-top: 22px;
  display: flex;
  justify-content: space-between;
}
.main-header h1 {
  font-size: 6vw;
  font-weight: 400;
}
.main-header .main-nav {
  transform: translateY(-130vw);
  background-color: transparent;
  color: transparent;
  width: 100vw;
  position: absolute;
  left: 0;
  top: 0;
  transition: 0.25s;
}
.main-header .main-menu {
  display: flex;
  flex-direction: column;
  gap: 25px;
  padding: 35px 0;
  text-align: center;
}
.main-header .main-menu li {
  font-size: 5vw;
  color: transparent;
  list-style: none;
}
.main-header .main-menu li:hover {
  color: #888585;
  text-decoration: underline;
}
.main-header .order {
  text-align: center;
  margin: 0 38vw;
  background-color: transparent;
  border-radius: 5vw;
  color: transparent;
  font-weight: 500;
}
.main-header .order:hover {
  background-color: transparent;
  color: rgb(255, 255, 255);
  border: 0.2vw solid rgb(255, 255, 255);
  transition: 0.15s;
  text-decoration: none;
}

.menu {
  top: 7.7vw;
  left: 95vw;
  transform: translate(-50%, -50%);
  position: absolute;
  z-index: 10;
  width: 6vw;
}

.menu:before,
.menu:after,
.menu div {
  background-color: black;
  content: "";
  display: block;
  height: 0.5vw;
  border-radius: 3px;
  margin: 1.3vw 0;
}

.active:before {
  transform: translateY(1.8vw) rotate(135deg);
  background-color: white;
}

.active:after {
  transform: translateY(-1.8vw) rotate(-135deg);
  background-color: white;
}

.active div {
  transform: scale(0);
}

.active + .main-nav {
  transform: translateY(0);
  transition: 0.5s;
  color: white;
  background-color: #272727;
}
.active + .main-nav .order {
  color: #272727;
  background-color: white;
}
.active + .main-nav .order:hover {
  background-color: transparent;
  color: white;
}
.active + .main-nav li {
  color: white;
}

.intro {
  width: 95%;
  max-width: 1440px;
  margin: 31px auto;
  display: flex;
  justify-content: space-between;
}
.intro .kitchen_container {
  width: 50vw;
}
.intro .kitchen_container h2 {
  font-family: "Playfair Display", serif;
  font-size: 6vw;
  font-weight: 700;
}
.intro .kitchen_container p {
  margin-top: 2.5vw;
  font-size: 3vw;
  margin-bottom: 5vw;
  line-height: 1.4;
}
.intro .kitchen_container a {
  background-color: #272727;
  color: white;
  padding: 1.5vw 1vw;
  overflow: hidden;
  font-size: 3.5vw;
}
.intro .kitchen_image {
  width: 40vw;
  right: 0vw;
  background-image: url(https://images.pexels.com/photos/2537605/pexels-photo-2537605.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2);
  background-size: 110vw;
  background-repeat: no-repeat;
  background-position: center;
}

@media screen and (min-width: 768px) {
  .menu {
    display: none;
  }
  .main-header {
    overflow: hidden;
  }
  .main-header h1 {
    font-size: 3vw;
  }
  .main-header .main-nav {
    display: inline-block;
    flex-direction: column;
    transform: translateY(0);
    background-color: transparent;
    position: relative;
    width: 40vw;
    transition: none;
  }
  .main-header .main-nav .main-menu {
    padding: 0;
    text-align: center;
    height: 3vw;
    flex-direction: row;
    justify-content: end;
    align-items: center;
  }
  .main-header .main-nav .main-menu li {
    font-size: 1.5vw;
    color: rgb(32, 32, 32);
  }
  .main-header .main-nav .main-menu li:hover {
    color: rgb(32, 32, 32);
    text-decoration: underline;
  }
  .main-header .main-nav .main-menu .order {
    margin: 0;
    background: none;
    font-weight: 700;
    font-size: 1.7vw;
    color: #272727;
  }
  .main-header .main-nav .main-menu .order:hover {
    color: rgb(32, 32, 32);
    text-decoration: underline;
    border: none;
  }
  .intro .kitchen_container {
    width: 30vw;
  }
  .intro .kitchen_container h2 {
    font-size: 4vw;
  }
  .intro .kitchen_container p {
    font-size: 1.3vw;
    margin-bottom: 3vw;
  }
  .intro .kitchen_container a {
    padding: 0.5vw;
    font-size: 1.3vw;
  }
  .intro .kitchen_image {
    top: 7.5vw;
    width: 45vw;
    height: 35vw;
    background-size: 50vw;
  }
}
.meals {
  margin: 0 auto;
  margin-bottom: 42px;
  max-width: 1440px;
  padding-top: 30px;
  width: 95%;
}

.meals__categories {
  font-size: clamp(14px, 1vw + 0.5rem, 18px);
  overflow-x: scroll;
}
.meals__categories .meals__categories__category {
  flex-shrink: 0;
}

.meals__categories,
.meal-card__cart-info {
  display: flex;
  font-weight: 500;
  gap: 10px;
  list-style: none;
}

.meals__heading {
  font-size: clamp(20px, 1.5vw + 1rem, 40px);
}

.meals__categories {
  background-color: #fff;
  padding: 1em 0;
  position: sticky;
  top: 0;
}
.meals__categories .meals__filter-btn:hover {
  opacity: 0.6;
}

.meals__categories.underline {
  --underline-width: 0;
  --underline-offset-x: 0;
}
.meals__categories.underline::before {
  content: "";
  position: absolute;
  top: 70%;
  display: block;
  height: 4px;
  background-color: black;
  width: var(--underline-width);
  transform: translateX(var(--underline-offset-x));
  transition: transform 0.5s, width 0.5s;
}

.meal-cards {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  column-gap: 10px;
  row-gap: 28px;
}

.meal-card {
  background-color: #F2F2F2;
  display: flex;
  flex-direction: column;
  width: 100%;
}
.meal-card.hide {
  display: none;
}

.meal-card__header {
  height: clamp(163px, 10vw, 192px);
}
.meal-card__header img {
  height: 100%;
}

.meal-card__body {
  flex-grow: 1;
  padding: 7px;
}
.meal-card__body .meal-card__heading {
  font-size: clamp(18px, 1.5vw + 0.5rem, 21px);
  margin-bottom: 10px;
}
.meal-card__body .meal-card__description {
  font-size: clamp(14px, 1.5vw + 0.5rem, 16px);
  line-height: 1.4em;
}

.meal-card__footer {
  display: flex;
  justify-content: space-between;
  margin-top: 14px;
  padding: 0 7px 7px 7px;
}
.meal-card__footer .meal-card__price {
  font-weight: 500;
}

@media screen and (min-width: 400px) {
  .meals__categories {
    overflow-x: unset;
  }
  .meal-card {
    width: 47%;
  }
}
@media screen and (min-width: 480px) {
  .meal-card__body {
    padding: 13px 13px 0 13px;
  }
  .meal-card__footer {
    padding: 0 13px 13px 13px;
  }
}
@media screen and (min-width: 700px) {
  .meal-card {
    width: 30%;
  }
}
@media screen and (min-width: 1024px) {
  .meals {
    margin-bottom: 91px;
  }
}
@media screen and (min-width: 1288px) {
  .meal-cards {
    justify-content: unset;
    column-gap: 1.333rem;
  }
  .meal-card {
    width: calc(25% - 1rem);
  }
}
.footer {
  font-family: Montserrat;
  font-size: small;
  background-color: black;
  height: 150vw;
  width: 100%;
  color: white;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
}
.footer__description {
  width: 90%;
}
.footer h2 {
  font-family: Playfair_Display;
}
.footer a {
  color: white;
  opacity: 0.8;
}
.footer .arrow {
  border: solid white;
  border-width: 0 3px 3px 0;
  display: inline-block;
  padding: 3px;
  margin-left: 10px;
  margin-bottom: 1px;
}
.footer .down {
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
}
.footer__responsive {
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  width: 90%;
}
.footer__menu {
  width: 33%;
  font-weight: 900;
  font-family: Playfair_Display;
  cursor: pointer;
}
.footer__menu--sublist {
  font-family: Montserrat;
  font-weight: 100;
  display: none;
  flex-direction: column;
}
.footer__menu--sublist li {
  padding: 1vw;
}
.footer__menu--sublist li a:hover {
  text-decoration: underline;
}
.footer .open .footer__menu--sublist {
  display: flex;
  animation: opacity 0.3s linear 0s 1 normal forwards;
}
.footer .open .footer__menu--sublist {
  display: flex;
  animation: opacity 0.3s linear 0s 1 normal forwards;
}
.footer .open li .arrow {
  animation: rotation 0.2s linear 0s 1 normal forwards;
}
.footer__icons {
  display: flex;
  justify-content: space-around;
  width: 90%;
}
.footer__icons li {
  width: 10vw;
  height: 10vw;
}
.footer__icons li:hover {
  opacity: 0.3;
}
.footer__icons li img {
  width: 100%;
  height: 100%;
}
.footer hr {
  width: 100%;
}
.footer__privacy {
  width: 90%;
  font-family: Montserrat;
  font-size: smaller;
}

@media screen and (min-width: 768px) {
  .footer {
    height: 50vw;
  }
  .footer .arrow {
    display: none;
  }
  .footer .contact {
    text-align: left;
  }
  .footer__menu {
    width: auto;
  }
  .footer__menu--sublist {
    display: flex;
  }
  .footer__menu--sublist .email {
    background-image: url("../../../assets/icons/e-mail.png");
    background-size: 15px 15px;
    background-repeat: no-repeat;
    background-position: left;
  }
  .footer__menu--sublist .phone {
    background-image: url("../../../assets/icons/appel-telephonique.png");
    background-size: 15px 15px;
    background-repeat: no-repeat;
    background-position: left;
  }
  .footer__menu--sublist .Careers {
    background-image: url("../../../assets/icons/study.png");
    background-size: 15px 15px;
    background-repeat: no-repeat;
    background-position: left;
  }
  .footer__menu--sublist .FAQ {
    background-image: url("../../../assets/icons/faq.png");
    background-size: 15px 15px;
    background-repeat: no-repeat;
    background-position: left;
  }
  .footer__menu--sublist .city {
    background-image: url("../../../assets/icons/map.png");
    background-size: 15px 15px;
    background-repeat: no-repeat;
    background-position: left;
  }
  .footer__menu--sublist li {
    text-align: left;
    padding: 0.5vw 2vw;
  }
  .footer__icons li {
    width: 3vw;
    height: 3vw;
  }
}
@media screen and (min-width: 1048px) {
  .footer {
    height: 35vw;
  }
}
@keyframes rotation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(224deg);
  }
}
@keyframes opacity {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/*# sourceMappingURL=main.css.map */
