@import url("https://fonts.googleapis.com/css2?family=Alfa+Slab+One&family=Bebas+Neue&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap");

.hidden {
  display: none;
}
:root {
  --primary-color: #42200b;
  --secondary-color: #ffc135;
  --tertiary-color: #df1c1c;
  --text-dark: #212529;
  --white: #ffffff;
  --background-color: #fff;
  --button-color: #b45f06;
  --button-hover-color: #8f4d05;
  --max-width: 1200px;
  --header-font-1: "Alfa Slab One", serif;
  --header-font-2: "Bebas Neue", sans-serif;
}

#finConfirmation{
  border: none ;
  border-radius: 10px;
  padding: 5px 10px;
  background-color: var(--secondary-color);
 }


* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

.section__container {
  max-width: var(--max-width);
  margin: auto;
  padding: 5rem 1rem;
}



.section__header {
  font-size: 3rem;
  font-weight: 500;
  font-family: var(--header-font-1);
  color: var(--primary-color);
  text-align: center;
  line-height: 3.75rem;
  text-shadow: 2px 2px var(--secondary-color);
}

.section__description {
  font-weight: 500;
  color: var(--text-dark);
  line-height: 1.75rem;
}


.btn:hover {
  background-color: var(--primary-color);
}

img {
  display: flex;
  width: 100%;
}

a {
  text-decoration: none;
  transition: 0.3s;
}

html,
body {
  scroll-behavior: smooth;
}

body {
  background-color: rgb(245, 248, 251);
  font-family: "Montserrat", sans-serif;
}





.banner__card {
  padding: 1rem;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  border-radius: 1rem;
}



.order__container .bordertop{
  
  width: 100%;
  display: flex;
  justify-content: center;
  margin:12px 0;
}

.order__container .bordertop img{
  width: 30%;
}


.banner__card p {
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--white);
}

.banner__card h4 {
  font-size: 2rem;
  font-weight: 600;
  color: var(--white);
}

.order__container h3 {
  max-width: fit-content;
  margin-inline: auto;
  margin-bottom: 1rem;
  padding: 0.5rem 2rem;
  font-size: 1.5rem;
  font-weight: 400;
  font-family: var(--header-font-2);
  color: var(--primary-color);
  background-color: var(--secondary-color);
}

.order__container .section__header {
  margin-bottom: 1rem;
}

.order__container .section__description {
  margin-bottom: 2rem;
  text-align: center;
}

.order__grid {
  display: grid;
  gap: 2rem 1rem;
}

.order__card {
  background-color: #ffffff;
  border-radius: 1rem;
  position: relative; /* Nécessaire pour le positionnement absolu de l'enfant */
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  overflow: hidden; /* Empêche le contenu de déborder des coins arrondis */
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

.order__card:hover {
  transform: translateY(-8px);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
}

.card-image-container {
  position: relative;
  width: 100%;
  height: 200px; /* Hauteur fixe pour l'image */
  overflow: hidden;
}

.order__card img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Assure que l'image remplit le conteneur sans se déformer */
  transition: transform 0.3s ease;
}

.order__card:hover img {
  transform: scale(1.05); /* Léger zoom sur l'image au survol */
}

.card-content {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1; /* Permet à cette section de prendre l'espace restant */
}

.order__card h4 {
  margin-bottom: 1rem;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--text-dark);
  text-align: left;
}

.order__card p {
  flex-grow: 1; /* Pousse le footer en bas */
  margin-bottom: 1.5rem;
  font-weight: 500;
  color: #666;
  line-height: 1.5rem;
  text-align: left;
  /* Limiter le texte à 3 lignes */
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto; /* S'assure que le footer reste en bas */
}

.card-footer .btn {
  padding: 0.75rem 1.25rem; /* Bouton légèrement plus petit */
  font-size: 0.9rem;
}


@media (width > 540px) {
  .banner__container {
    grid-template-columns: repeat(2, 1fr);
  }

  .banner__card:nth-child(1) {
    grid-area: 1/1/2/3;
  }

  .order__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/*********************************************************************************************************/


@media (width > 768px) {
  nav {
    position: static;
    padding: 1rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    background-color: rgb(0, 0, 0,.7);
    position: fixed;
  }




  .header__content h1 {
    text-align: left;
  }

  .banner__card {
    padding: 1.5rem;
  }

  .banner__card:nth-child(1) {
    grid-area: 1/1/3/2;
  }

  .order__grid {
    grid-template-columns: repeat(3, 1fr);
  }


}

@media (width > 1024px) {
  .order__grid {
    gap: 2rem;
  }
}


.slash{
  height: 10px;
  background-color: #ffffff;
  width: 1px;
}



.header {
  position: relative;
  height: 90vh;
  width: 100%;
  overflow: hidden;
  
  text-align: center;
}

.header h1 {
  z-index: 2; /* Place le texte au-dessus de l'image */
}

.header .bckg {
  z-index: -1;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* Gère le 'cover' de l'image */
  animation: zoomEffect 6s ease-in-out forwards; /* Place l'image en arrière-plan */
}

@keyframes zoomEffect {
  0% {
    transform: scale(1.5); /* Zoom initial */
    opacity: 0.8; /* Légère opacité pour un effet agréable */
  }
  100% {
    transform: scale(1); /* Retour à la taille normale */
    opacity: 1; /* Opacité complète */
  }
}







.colorBlack{
  color: black;
}

.colorWt{
  color: white;
}


.commander{
  
  display: flex;
  justify-content: center;
  width: 100%;
}

@keyframes none {
  0%{
    display: none;
  }

  100%{
    display: flex;
  }
}

.btn {
  padding: 1rem 1.5rem;
  outline: none;
  border: none;
  font-size: 1rem;
  color: var(--white);
  background-color: var(--tertiary-color);
  transition: 0.3s;
  cursor: pointer;
}



.final{
  background-image: url(../assets/catalogue.svg);
  height: 600px;
}

/* Style pour l'icône du panier flottant */
#floatingCart {
  position: fixed;
  bottom: 25px;
  right: 25px;
  cursor: pointer;
  z-index: 1000; /* S'assure qu'il est au-dessus des autres éléments */
  background-color: var(--secondary-color);
  border-radius: 50%;
  padding: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

#floatingCart svg {
  width: 28px;
  height: 28px;
  color: var(--primary-color);
}

#cartCount {
    position: absolute;
    top: -5px;
    right: -8px;
    background-color: #e43d30;
    color: white;
    border-radius: 50%;
    padding: 2px 6px;
    font-size: 12px;
    font-weight: bold;
    border: 1px solid white;
}

/* Animation pour l'ajout au panier */
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
  20%, 40%, 60%, 80% { transform: translateX(5px); }
}

.shake {
  animation: shake 0.5s ease-in-out;
}

/* Style pour les articles dans la modale du panier */
.cart-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid #eee;
}

.cart-item span {
  flex-grow: 1;
}

.remove-item-btn {
  background: #e43d30;
  color: white;
  border: none;
  border-radius: 50%;
  width: 20px;
  height: 20px;
  cursor: pointer;
  line-height: 20px;
  text-align: center;
  margin-left: 10px;
}

#cartTotal {
  text-align: right;
  font-weight: bold;
  font-size: 1.2em;
  margin-top: 15px;
}

#finalOrderForm {
    margin-top: 20px;
}


/************************* swicther**************************************/


/* Styles pour le sélecteur de section (Populaire/Premium) */
.section-toggle {
  display: flex;
  justify-content: center;
  margin: 2rem auto;
  background-color: #eee;
  border-radius: 50px;
  padding: 5px;
  width: fit-content;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
}

.toggle-btn {
  padding: 10px 25px;
  border: none;
  background-color: transparent;
  border-radius: 50px;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-dark);
  cursor: pointer;
  transition: all 0.3s ease;
}

.toggle-btn.active {
  background-color: var(--white);
  color: var(--primary-color);
  box-shadow: 0 2px 5px rgba(0,0,0,0.15);
}

.menu-section:not(.active) {
  display: none;
}

/************************* détails déroulants**************************************/


      /* Style pour la bannière promotionnelle */
      .promo-banner {
        background-color: #FF8C00; /* Orange foncé pour attirer l'attention */
        color: rgb(0, 0, 0);
        text-align: center;
        padding: 10px 5px;
        font-weight: bold;
        font-size: 0.9em;
        width: 100%;
        /* Ajouts pour l'animation */
        transition: all 0.5s ease-in-out;
        max-height: 50px; /* Hauteur suffisante pour le contenu */
        overflow: hidden;
      }

      /* Styles pour la section "Plus de paramètres" */
      .additional-options {
        border: 1px solid #e0e0e0;
        border-radius: 8px;
        margin: 1rem 0;
        background-color: #f9f9f9;
        transition: background-color 0.3s ease;
        overflow: hidden; /* Pour que le contenu ne dépasse pas les coins arrondis */
      }

      .additional-options[open] {
        background-color: #ffffff;
      }

      .additional-options summary {
        cursor: pointer;
        padding:5px; /* Réduction de l'espacement vertical */
        font-weight: 400; /* Rendu moins gras */
        font-size: 0.9em; /* Réduction de la taille de la police */
        color: #6c757d; /* Couleur plus douce */
        outline: none;
        list-style: none; /* Masque la flèche par défaut du navigateur */
        display: flex;
        align-items: center;
        gap: 0.5rem;
      }

      /* Cacher la flèche par défaut sur Chrome/Safari */
      .additional-options summary::-webkit-details-marker {
        display: none;
      }

      .additional-options > div {
        transition: grid-template-rows 0.3s ease-in-out;
        display: grid;
        grid-template-rows: 0fr;
      }

      .additional-options[open] > div {
        grid-template-rows: 1fr;
      }

/* Animation pour l'ajout au panier */
.fly-to-cart {
    position: fixed;
    z-index: 1001; /* Au-dessus de la plupart des éléments, mais sous le panier si besoin */
    border-radius: 50%; /* Rend l'image ronde pendant l'animation */
    object-fit: cover;
    transition: transform 1s ease-in, opacity 1s ease-in, width 1s ease-in, height 1s ease-in;
    pointer-events: none; /* Empêche l'élément de capturer les clics */
}

/* Style pour le tag de prix sur les cartes de plat */
.price-tag {
    /* background-color: rgb(236, 236, 236); */
    color: rgb(117, 53, 0);
    /* padding: 5px 15px; */
    border-radius: 5px;
    font-weight: bold;
    font-family: var(--header-font-2);
    font-size: 1.1rem;
}
      /* Icône personnalisée pour l'ouverture/fermeture */
      .additional-options summary::before {
        content: '▶';
        transition: transform 0.2s ease-in-out;
        font-size: 0.7em;
        color: #FF8C00;
      }

      .additional-options[open] > summary::before {
        transform: rotate(90deg);
      }

      /* Conteneur pour le contenu déroulant */
      .details-content-wrapper {
        overflow: hidden;
        padding: 5px; /* Espacement interne ajusté */
      }
      
/* Style pour le nom du restaurant sur la carte */
.restaurant-tag {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background-color: rgba(0, 0, 0, 0.7);
    color: white;
    padding: 4px 10px;
    border-radius: 15px;
    font-size: 0.75rem;
    font-weight: 500;
    z-index: 3;
    max-width: 60%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: flex;
    align-items: center;
    gap: 5px;
}

/* Style pour l'en-tête de la vue filtrée par restaurant */
.filter-header {
    text-align: center;
    margin-bottom: 2rem;
}
.filter-header h2 {
    font-family: var(--header-font-1);
    color: var(--primary-color);
    margin-bottom: 1rem;
}
      
    