@charset "UTF-8";
/*** import style scss Générale ***/
/****************** 
* Variables 
*/
/*** principales ***/
.loader-page {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background-color: #FFFFFF;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  opacity: 0;
  z-index: -10;
  animation: loader-after-before 4s;
  position: fixed;
}
.loader-page .loader-container {
  text-align: center;
  padding: 20px;
}
.loader-page .loader-container img {
  max-width: 100%;
  height: auto;
}
.loader-page .loader-container .loader-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-top: 20px;
  font-size: 25px;
  color: #89C8FA;
  text-align: center;
  padding: 10px;
}
.loader-page .loader-point {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 20px;
}
.loader-page .loader-point .loader-dot {
  width: 10px;
  height: 10px;
  background: linear-gradient(45deg, #9356DC -11.44%, #FF79DA 123.93%);
  border: 2px solid #99E2D0;
  border-radius: 50%;
  animation: bounce 0.5s infinite;
  margin: 0 5px;
}
.loader-page .progress-bar {
  width: 250px;
  height: 20px;
  border: 5px solid #99E2D0;
  border-radius: 15px;
  background-color: #003A68;
  margin-top: 20px;
  position: relative;
}
.loader-page .progress-bar .progress {
  width: 0%;
  height: 100%;
  border-radius: 15px;
  background: linear-gradient(45deg, #9356DC -11.44%, #FF79DA 123.93%);
  animation: fillProgress 3s linear forwards;
}

/*** Keyframe  ***/
@keyframes loader-after-before {
  0% {
    opacity: 1;
    z-index: 9999;
  }
  75% {
    opacity: 1;
    z-index: 9999;
  }
  100% {
    opacity: 0;
    z-index: -10;
  }
}
@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes fillProgress {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}
@media (min-width: 1024px) {
  .loader-page .progress-bar {
    width: 750px;
  }
}
/****************** 
* Variables 
*/
/*** principales ***/
/*********************** 
* Feuille de style pour le header et le footer général
*/
/*** Header ***/
/*** main.scss ***/
.title {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 63px;
  background: #FFF;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15);
}
.title .title__logo {
  height: 36px;
  padding: 14px 0 13px 0;
  font-family: Shrikhand, sans-serif;
  font-size: 30px;
  font-weight: 400;
}

.location {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 50px;
  margin-top: 1.5px;
  gap: 17px;
  background-color: #EAEAEA;
}
.location label {
  display: none;
}
.location .location__icons {
  color: #353535;
}
.location .location__city {
  margin: 0;
  border: none;
  background-color: #EAEAEA;
}
.location .location__city::placeholder {
  color: #353535;
  background-color: #EAEAEA;
  font-family: Roboto, sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  text-align: left;
  opacity: 1;
}

/*** Media query desktop ***/
@media (min-width: 1024px) {
  /*** header location ***/
  .title {
    height: 96px;
  }
  .location {
    margin-top: 0;
  }
}
/*** Header restaurants page ***/
.en-tete {
  background-color: #EAEAEA;
}
.en-tete.menu-page .title {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: 17px;
  gap: 42px;
  box-shadow: none;
}
.en-tete.menu-page .title .title__link {
  display: flex;
  text-decoration: none;
  color: #353535;
  font-size: x-large;
}
.en-tete.menu-page .title .title__logo {
  margin: auto;
}
.en-tete.menu-page .fa-arrow-left {
  display: inline;
}
.en-tete .fa-arrow-left {
  display: none;
}

/*** Media query desktop ***/
/*** Menu Page ***/
@media (min-width: 1024px) {
  .en-tete.menu-page .title {
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .en-tete.menu-page .title {
    width: 100%;
  }
  .en-tete.menu-page .title__logo {
    margin: 0 auto;
  }
}
/*** Footer ***/
.footer-principale .footer {
  margin-top: 0;
}

.footer-restaurants .footer {
  margin-top: 120px;
}

.footer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 22px 25px;
  gap: 16px;
  background: #353535;
}
.footer .footer__logo {
  width: 139px;
  height: 27px;
  filter: invert(1);
  font-family: Shrikhand, sans-serif;
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
}
.footer .footer__link {
  display: flex;
  flex-direction: column;
  font-family: Roboto, sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  gap: 7px;
}
.footer .footer__link h1, .footer .footer__link h2, .footer .footer__link h3, .footer .footer__link h4 {
  font-size: 16px;
  font-weight: 500;
  color: #FFF;
  margin: 0;
}
.footer .footer__link i {
  margin-right: 11px;
  width: 11px;
  height: 13px;
  gap: 11px;
}
.footer .footer__link i::before {
  width: 11px;
  height: 13px;
  font-size: small;
}
.footer .footer__link a {
  display: flex;
  text-decoration: none;
  color: #FFF;
  gap: 7px;
  height: 19px;
}

/*** Media query desktop and tablette footer ***/
@media (min-width: 1024px) {
  .footer {
    flex-direction: row-reverse;
    align-items: flex-end;
    padding: 30px 25px;
  }
  .footer .footer__link {
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-end;
    width: 100%;
    gap: 7px;
  }
  .footer .footer__link h1 {
    font-size: 16px;
    font-weight: 500;
    color: #FFF;
    margin: 0;
  }
  .footer .footer__link .link-width-1 {
    font-weight: 500;
    width: 200px;
  }
  .footer .footer__link .link-width-2 {
    font-weight: 400;
    width: 130px;
  }
}
/*** variable ***/
/****************** 
* Variables 
*/
/*** principales ***/
/****************** 
* Variables 
*/
/*** principales ***/
/******************** 
* Mixins géneral 
*/
/*** Mixin Page Restaurants ***/
/*** style page ***/
.images {
  width: 100%;
  height: 275px;
  flex-shrink: 0;
  position: absolute;
  object-fit: cover;
  object-position: center;
}

/*** carte restaurants ***/
.carte-restaurant {
  position: relative;
  top: 220px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  background-color: #F6F6F6;
  width: 100%;
  border-top-right-radius: 40px;
  border-top-left-radius: 40px;
  margin-bottom: 100px;
  /*** card menu ***/
}
.carte-restaurant .title-restaurant {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: space-between;
  padding: 32px 17px 0 17px;
  width: 90%;
}
.carte-restaurant .title-restaurant .restaurant__title {
  display: flex;
  align-items: baseline;
  font-family: Shrikhand;
  font-size: 28px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  margin: 0;
}
.carte-restaurant .title-restaurant .content-icon {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding-right: 24px;
}
.carte-restaurant .title-restaurant .content-icon .fa-heart {
  color: #101010;
  width: 22px;
  height: 21px;
  font-size: 21px;
  position: absolute;
  top: 40px;
  right: 41px;
  transition: opacity 1s ease-in-out;
}
.carte-restaurant .title-restaurant .content-icon .fa-heart:hover {
  opacity: 0;
}
.carte-restaurant .title-restaurant .content-icon .icon-hover {
  opacity: 0;
  position: absolute;
  top: 40px;
  right: 41px;
  transition: opacity 1s ease-in-out;
}
.carte-restaurant .title-restaurant .content-icon .icon-hover:hover {
  opacity: 1;
  font-size: x-large;
}
.carte-restaurant .card-restaurant {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  width: 100%;
  box-shadow: 0 4px 15px 0 rgba(0, 0, 0, 0.1);
  border-radius: 15px;
  padding: 0;
  position: relative;
  cursor: pointer;
  overflow: hidden;
  background: #fff;
}
.carte-restaurant .card-restaurant:hover .content-price {
  transform: translateX(-58px);
}
.carte-restaurant .card-restaurant:hover .content-select {
  transform: translate(0);
}
.carte-restaurant .card-restaurant:hover .content {
  width: calc(100% - 116px);
}
.carte-restaurant .card-restaurant .content {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  width: 100%;
  gap: 5px;
  padding: 15px 0 15px 15px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: Roboto;
  font-style: normal;
  line-height: normal;
  color: #000;
  transition: width 0.5s ease-in-out;
}
.carte-restaurant .card-restaurant .content .content__title {
  margin: 0;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 18px;
  font-weight: 500;
}
.carte-restaurant .card-restaurant .content .content__subtile {
  margin: 0;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
  font-weight: 300;
}
.carte-restaurant .card-restaurant .content-price {
  display: flex;
  align-items: flex-end;
  gap: 5px;
  transition: transform 0.5s ease-in-out;
}
.carte-restaurant .card-restaurant .content-price span {
  color: #353535;
  text-align: center;
  font-family: Roboto;
  font-size: 15px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  padding: 0 15px 15px 0;
}
.carte-restaurant .card-restaurant .content-select {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 59px;
  height: 76px;
  background: #99E2D0;
  border-radius: 0 15px 15px 0;
  position: absolute;
  right: -59px;
  overflow: hidden;
  transition: transform 0.5s ease-in-out;
}
.carte-restaurant .card-restaurant .content-select .fa-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50px;
  background-color: #FFFFFF;
  color: #99E2D0;
}
.carte-restaurant .menu-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-wrap: wrap;
  width: 90%;
  gap: 12px;
  opacity: 0;
  visibility: hidden;
  padding: 0;
}
.carte-restaurant .title__menu {
  margin: 0;
  height: 27px;
  font-family: Roboto;
  font-style: normal;
  line-height: normal;
  color: #000;
  font-size: 16px;
  font-weight: 300;
  text-transform: uppercase;
  border-bottom: 3px solid #99E2D0;
  width: 40px;
}

/*** Media query desktop ***/
@media (min-width: 1024px) {
  body {
    width: 100%;
    margin: auto;
  }
  .images {
    width: 100%;
  }
  .menu {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 192px;
  }
  .carte-restaurant {
    width: 1055px;
    padding: 0 210px;
  }
  .carte-restaurant .title-restaurant {
    justify-content: center;
    gap: 24px;
  }
  .carte-restaurant .title-restaurant .content-icon .fa-heart {
    top: 41px;
    right: 440px;
  }
  .carte-restaurant .title-restaurant .content-icon .icon-hover {
    top: 41px;
    right: 440px;
  }
  .carte-restaurant .menu-card {
    width: 100%;
  }
  .carte-restaurant .card-restaurant .content {
    width: 100%;
  }
  .button {
    padding-bottom: 40px;
  }
}
/*** Keyframes ***/
@keyframes scale-in-center {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.scale-in-center {
  animation: scale-in-center 0.5s ease-in 3.1s;
}

/*** explorer nos restaurants ***/
@keyframes button-hover {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}
.button-hover {
  animation: button-hover 1.5s ease-in-out;
}

/*** Keyframes restaurants.scss ***/
/*** Menu card ***/
@keyframes scale-in-hor-left {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
    opacity: 1;
    visibility: visible;
  }
}
.scale-in-hor-left {
  animation: scale-in-hor-left 0.6s ease-in forwards;
}

.scale-in-hor-left-2 {
  animation: scale-in-hor-left 0.6s ease-in forwards 1s;
}

.scale-in-hor-left-3 {
  animation: scale-in-hor-left 0.6s ease-in forwards 1.5s;
}

/****************** 
* Variables 
*/
/*** principales ***/
/******************** 
* Mixins géneral 
*/
/*** Mixin Page Restaurants ***/
/****************** 
* Variables 
*/
/*** principales ***/
/********************* 
* Style Page Principale
*/
/****************** 
* Variables 
*/
/*** principales ***/
/****************** 
* Variables 
*/
/*** principales ***/
/******************** 
* Mixins géneral 
*/
/*** Mixin Page Restaurants ***/
/*** Keyframes ***/
@keyframes scale-in-center {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.scale-in-center {
  animation: scale-in-center 0.5s ease-in 3.1s;
}

/*** explorer nos restaurants ***/
@keyframes button-hover {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}
.button-hover {
  animation: button-hover 1.5s ease-in-out;
}

/*** Keyframes restaurants.scss ***/
/*** Menu card ***/
@keyframes scale-in-hor-left {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
    opacity: 1;
    visibility: visible;
  }
}
.scale-in-hor-left {
  animation: scale-in-hor-left 0.6s ease-in forwards;
}

.scale-in-hor-left-2 {
  animation: scale-in-hor-left 0.6s ease-in forwards 1s;
}

.scale-in-hor-left-3 {
  animation: scale-in-hor-left 0.6s ease-in forwards 1.5s;
}

/*** general ***/
body {
  margin: 0;
}

/*** info ***/
.infos {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #F6F6F6;
  text-align: center;
}
.infos .infos__menu {
  width: 275px;
  margin: 0;
  padding-top: 39px;
  color: #000;
  font-family: Roboto, sans-serif;
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
}
.infos .infos__restaurant {
  width: 315px;
  margin: 0;
  color: #353535;
  font-size: 18px;
  font-weight: 300;
  font-family: Roboto, sans-serif;
  font-style: normal;
  line-height: normal;
}

.button {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 27px 0 57px 0;
}
.button .button__link {
  display: inline-block;
  text-decoration: none;
  text-align: center;
  line-height: 50px;
  width: 218px;
  height: 50px;
  border-radius: 25px;
  background: linear-gradient(193deg, #9356DC -11.44%, #FF79DA 123.93%);
  border: none;
  box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.25);
  cursor: pointer;
  transition: background 700ms ease-in-out, box-shadow 700ms ease-in-out;
}
.button .button__link:hover {
  animation: button-hover 1.5s ease-in-out;
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.15) 100%), linear-gradient(201deg, #9356DC -5.2%, #FF79DA 110.74%);
  box-shadow: 0px 4px 15px 0px rgba(0, 0, 0, 0.65);
  border-radius: 25px;
}
.button .button__txt {
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 500;
  font-family: Roboto, sans-serif;
  font-style: normal;
  line-height: normal;
}

/*** Functioning ***/
.functioning {
  display: flex;
  flex-direction: column;
  margin-bottom: 68px;
  font-family: Roboto, sans-serif;
  font-style: normal;
  line-height: normal;
  color: #000;
  font-size: 16px;
  font-weight: 500;
}
.functioning .functioning__title {
  align-items: flex-start;
  padding: 48px 0 26px 20px;
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  font-family: Roboto, sans-serif;
  font-style: normal;
  line-height: normal;
}

.tuto {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 25px;
}
.tuto .tuto__order {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 24px;
  height: 24px;
  background: #9356DC;
  border-radius: 12px;
  color: #FFFFFF;
  align-self: center;
  position: absolute;
  left: -12px;
}
.tuto .tuto__1 {
  display: flex;
  flex-direction: row;
  justify-content: center;
  border-radius: 20px;
  background: #F6F6F6;
  box-shadow: 0 4px 15px 0 rgba(0, 0, 0, 0.15);
  gap: 27px;
  width: 80%;
  position: relative;
}
.tuto .tuto__1 .tuto__1--grey {
  color: #7E7E7E;
}
.tuto .tuto__1 .tuto__1--purpel {
  color: #9356DC;
}

/*** Restaurants ***/
.restaurants {
  background: #F6F6F6;
  height: auto;
  padding-bottom: 66px;
}
.restaurants .restaurants__title {
  display: flex;
  align-items: flex-start;
  padding: 48px 0 26px 20px;
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  font-family: Roboto, sans-serif;
  font-style: normal;
  line-height: normal;
}

.card {
  display: flex;
  width: 100%;
  background-color: white;
  border-radius: 20px;
  position: relative;
  flex: 1 0 0;
  font-family: Roboto, sans-serif;
  font-style: normal;
  line-height: normal;
  transition: transform 0.3s ease-in;
}
.card:nth-child(-n+2) span {
  position: absolute;
  top: 13px;
  right: 12px;
  background-color: #99E2D0;
  color: #008766;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.15);
  padding: 7px 9px 6px 9px;
  border-radius: 2px;
  font-size: 14px;
  font-weight: 500;
  font-family: Roboto, sans-serif;
  font-style: normal;
  line-height: normal;
}
.card .card-content {
  display: grid;
  grid-template-columns: 267px 1fr;
  grid-template-rows: auto auto;
  grid-gap: 5px;
  align-items: center;
  padding-left: 13px;
}
.card .card-content .card__title {
  grid-column: 1/2;
  grid-row: 1/2;
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  padding-top: 16px;
}
.card .card-content .card__subtile {
  grid-column: 1/2;
  grid-row: 2/2;
  margin: 0;
  font-size: 17px;
  font-weight: 300;
}
.card .card-content .content-icon {
  grid-column: 2/2;
  grid-row: 1/span 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 25px;
  position: relative;
}
.card .card-content .content-icon .fa-heart {
  color: #101010;
  width: 22px;
  height: 21px;
  font-size: 21px;
  position: absolute;
  transition: opacity 1s ease-in-out;
}
.card .card-content .content-icon .fa-heart:hover {
  opacity: 0;
}
.card .card-content .content-icon .icon-hover {
  opacity: 0;
  position: absolute;
  transition: opacity 1s ease-in-out;
}
.card .card-content .content-icon .icon-hover:hover {
  opacity: 1;
  font-size: x-large;
}
.card .card-content a {
  text-decoration: none;
  color: #000;
}

.card img {
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.image-link {
  display: inline-block;
  height: 65%;
}

.restaurants-cards {
  display: flex;
  justify-content: center;
  flex-direction: column;
  padding: 0 17px 0 17px;
  gap: 18px;
}
.restaurants-cards .card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 251px;
}
.restaurants-cards img {
  display: block;
  width: 100%;
  height: 100%;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
}

/*** Media querry desktop ***/
@media (min-width: 1024px) {
  .infos {
    padding: 30px 0;
    gap: 18px;
  }
  .infos .infos__menu {
    width: 100%;
    font-size: 40px;
    padding-top: 0;
  }
  .infos .infos__restaurant {
    width: 531px;
  }
  .button {
    margin: 0;
  }
  /*** Fonctionning ***/
  .functioning {
    padding: 50px 180px;
    margin-bottom: 0;
    gap: 25px;
  }
  .functioning .functioning__title {
    padding: 0;
  }
  .tuto {
    flex-direction: row;
    justify-content: flex-start;
  }
  .tuto .tuto__1 {
    height: 72px;
    align-items: center;
    text-align: center;
    gap: 22px;
  }
  .tuto .tuto__1 .tuto__text {
    margin: 0;
    text-align: center;
  }
  /*** Restaurants ***/
  .list-of-restaurants {
    width: 100%;
    padding-top: 0;
  }
  .restaurants {
    padding: 30px 180px;
    max-width: 100%;
  }
  .restaurants .restaurants__title {
    padding: 0;
    margin-bottom: 28px;
    font-size: 24px;
    font-weight: 700;
  }
  .restaurants-cards {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
    max-width: 1440px;
    row-gap: 50px;
    column-gap: 100px;
    padding: 0;
  }
  .restaurants-cards .card {
    display: flex;
    flex-basis: calc(50% - 50px);
  }
}

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