@import 'variables.css';

/*region Old CSS in HTML */

.standardTitle {
  font-size: var(--title_font_size) !important;
}

.bigTitle {
  font-size: var(--bigTitle_font_size) !important;
}

.standardText {
  font-size: var(--text_font_size) !important;
}

.smallText {
  font-size: var(--smallText_font_size) !important;
  color: var(--text) !important;
}

/* Carrousel horizontal scrollable pour les cartes */
.cartes-carousel-container {
  width: 70%;
  position: relative;
  overflow: hidden;
  padding: 8px 0;
}

.cartes-carousel {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-behavior: smooth;
  padding: 4px 40px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE et Edge */
}

.cartes-carousel::-webkit-scrollbar {
  display: none; /* Chrome, Safari et Opera */
}

.carte-item {
  flex: 0 0 auto;
  white-space: nowrap;
  transition: opacity 0.3s ease, transform 0.3s ease;
  cursor: pointer;
}

.carte-item a {
  color: var(--text_dans_bandeau) !important;
  font-family: var(--police_titre);
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  display: block;
  padding: 8px 16px;
  border-radius: 8px;
  transition: background-color 0.2s ease;
}

.carte-item.active a {
  font-weight: 700;
  font-size: 18px;
}

.carte-item a:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

/* Responsive pour mobile - masquer sur mobile car géré par le menu burger */
@media (max-width: 1200px) {
  .cartes-carousel-container {
    display: none;
  }
}

/* Sélecteur de langue : couleur du texte du bandeau (thème du restaurant), et non
   un blanc figé. Environ un quart des restaurants ont un bandeau clair, sur lequel
   un chevron blanc est purement invisible — il l'était déjà avant, mais l'ancien
   libellé de langue portait un `-webkit-text-stroke` noir qui le rendait lisible.
   Le blanc n'est plus qu'un repli, le temps que theme.js pose la variable. */
.right .dropdown-toggle {
  color: var(--text_dans_bandeau, #fff) !important;
}

#btn-reserver:hover {
  color: var(--background) !important;
  background-color: var(--text) !important;
  border-color: var(--text) !important;
}

.bandeau {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 13vh;
  color: white;
  z-index: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  overflow: hidden;
  /* Assurer que l'image ne dépasse pas le conteneur */
}

.bandeau::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0);
  /* Fond noir avec 50% d'opacité */
  z-index: -1;
  /* Place la couche derrière le contenu du bandeau */
}

.bandeau img {
  width: 40%;
  height: 100%;
  object-fit: cover;
  /* L'image couvrira tout le conteneur */
  object-position: center center;
  /* Centrer l'image dans le conteneur */
}

@media (max-width: 1070px) {
  .bandeau img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* L'image couvrira tout le conteneur */
    object-position: center center;
    /* Centrer l'image dans le conteneur */
  }
}

.bandeau-2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  /* height: 13vh; */
  color: white;
  z-index: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  overflow: hidden;
  /* Assurer que l'image ne dépasse pas le conteneur */
}

.bandeau-2 > * {
  margin: 0 auto;
  text-align: center;
}

.bandeau-2 img {
  width: 40% !important;
  height: 100%;
  object-fit: cover;
  /* L'image couvrira tout le conteneur */
  object-position: center center;
  /* Centrer l'image dans le conteneur */
}

@media (max-width: 1070px) {
  .bandeau-2 img {
    width: 100% !important;
    height: 100%;
    object-fit: cover;
    /* L'image couvrira tout le conteneur */
    object-position: center center;
    /* Centrer l'image dans le conteneur */
  }
}

.container-pub {
  width: 100%;
  /* Largeur du conteneur parent */
  display: flex;
  justify-content: center;
  /* Centrer horizontalement */
}

.centered-div-pub {
  display: flex;
  justify-content: center;
  margin: 10px;
  width: 100%;
  /* Centrer horizontalement */
}

.centered-div-pub > * {
  margin: 0 auto;
  text-align: center;
  max-width: 50% !important;
}

.centered-div-pub [data-vz-media],
.centered-div-pub [data-vz-media] * {
  max-width: 100% !important;
  width: auto !important;
}

/* Tant que le SDK Vazee n'a pas chargé de pub, on masque le placeholder vide :
   sinon ses marges auto (héritées de .centered-div-pub > *) absorbent tout
   l'espace libre du flex et décalent l'image wiicmenu vers la droite. */
.centered-div-pub [data-vz-media="uninitialized"]:empty {
  display: none;
}

@media (max-width: 1070px) {
  .centered-div-pub > * {
    max-width: 100% !important;
  }
}

.centered-div-pub img {
  border-radius: 4px;
  margin: 10px;
  /* Centrer horizontalement */
  width: 50%;
}

@media (max-width: 1070px) {
  .centered-div-pub {
    margin: 10px;
    /* Centrer horizontalement */
  }

  .centered-div-pub img {
    border-radius: 4px;
    margin: 10px;
    /* Centrer horizontalement */
    width: 100%;
  }
}

#logoRestoDesktop {
  color: var(--text_dans_bandeau);
}

.homeLinkDesktop {
  color: var(--text_dans_bandeau);
}

/* Empêche le logo (injecté dynamiquement) d'augmenter la hauteur de la navbar mobile */
@media (max-width: 1200px) {
  .navbar-mobile .heading {
    height: 56px;
    align-items: center;
  }

  #logoRestoMobile {
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin-left: 0 !important;
  }

  #logoRestoMobile a.logo {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  #logoRestoMobile img {
    max-height: 34px !important;
    width: auto !important;
    max-width: 190px !important;
    object-fit: contain;
    display: block;
  }
}

#mainPage {
  background-size: 100%;
}

.swal2-bottom {
  width: 100%;
}
.swal2-toast {
  height: 100px;
}

/*endregion */

.title {
  font-family: var(--police_titre);
  color: var(--titre);
}

.text {
  font-family: var(--police_texte);
  color: var(--text);
  font-size: var(--text_font_size);
  white-space: pre-wrap !important;
}

.textSecondary {
  font-family: var(--police_texte);
  color: var(--text);
  font-size: var(--smallText_font_size);
}

.bgCustom {
  background-color: var(--background);
}

/*.plat {

    !*border: solid var(--line) 1px;*!
    background-color: var(--background);
    border-radius: 0.25rem;
    box-shadow: 1px 3px 15px -3px rgba(var(--box_shadow_color),0.5);
    !*box-shadow: 1px 3px 15px -3px rgba(0,0,0,0.5);*!

    box-sizing: border-box;
    padding: 5px 5px;
    width: 100%;

    .row {
        margin-inline: 0;
    }

    .platImg {
        width: 100%;
        height: auto;
    }

    .platHeader{
        !*font-size: 1em;*!
        !*font-weight: bold;*!
        height: auto;
        !* margin-bottom: 6px; *!
        font-size: var(--smallTitle_font_size);
    }

    .platTitle {

        font-family: var(--police_titre);
        color: var(--titre);
        width: 100%;

        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden; !* Cache le texte qui dépasse la largeur *!
        text-overflow: ellipsis; !* Ajoute des points de suspension (...) à la fin du texte qui dépasse *!

        line-height: 1.2;

    }

    .platPrice {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden; !* Cache le texte qui dépasse la largeur *!
        text-overflow: ellipsis; !* Ajoute des points de suspension (...) à la fin du texte qui dépasse *!
        line-height: 1.2;
        !*font-family: var(--police_texte);
        color: var(--text);*!
        font-family: var(--police_titre);
        font-size: var(--text_font_size);
        color: var(--titre);
    }

    .fa-heart{
        !*color: var(--titre);*!
        color: var(--text);
        font-size: 18px;
    }

    .tooglePlatFavoriteButton {
        position : absolute;
        top: 5px;
        right: 5px;
        padding: 5px;
        padding-left: 2px;
    }

    .platInfo{

        font-family: var(--police_texte);
        color: var(--text);
        font-size: var(--smallText_font_size);
        !*font-size: 0.8em;*!
        font-weight: lighter;

        .platDescription {


            width: 100%;

            height: 1.5em;
            white-space: nowrap; !* Empêche le texte de passer à la ligne *!
            overflow: hidden; !* Cache le texte qui dépasse la largeur *!
            text-overflow: ellipsis; !* Ajoute des points de suspension (...) à la fin du texte qui dépasse *!
        }

        .voirPlus{
            font-weight: bold;
            font-style: italic;
            text-decoration: underline;
            cursor: pointer;
        }
    }



    .platFooter{
        width: 100%;
        !*font-size: 0.9em;*!

        color: var(--text);
        font-family: var(--police_texte);
        font-size: var(--smallText_font_size);

        .lastPlatElem{
            font-style: italic;
        }

        .multiPrice{

        }

    }


}*/
/* ═══════════════════════════════════════════════════════════════════════
   Pub sur plat (migration 037)

   L'image fait partie de l'ÉTIQUETTE : elle en occupe le haut, bord à bord, et
   le contenu du plat (titre, description, prix) vient dessous.

   ⚠️ Le bloc est un enfant de `.plat`, jamais une colonne à part. `.plat` porte
   `col-md-5 … plat` sur le même div, si bien que son `padding: 5px` écrase le
   `padding: 15px` de Bootstrap. Toute imbrication rend les deux paddings
   cumulatifs et l'étiquette sponsorisée devient plus étroite que ses voisines.

   L'habillage est celui de `.plat` — mêmes rayons, ombre dérivée de
   `--box_shadow_color` — pour que la pub s'inscrive dans le thème du
   restaurateur au lieu de trancher avec lui.
   ═══════════════════════════════════════════════════════════════════════ */
.platPub {
  /* AUCUNE marge négative : l'image respecte le `padding: 5px` de `.plat`, ce
     qui laisse un liseré de fond visible en haut et sur les côtés. C'est ce
     liseré qui fait comprendre que l'image est DANS l'étiquette et non posée
     par-dessus — bord à bord, elle se lisait comme un bandeau indépendant. */
  margin-bottom: 6px;
}

.platPub__image {
  display: block;
  height: auto;
  width: 100%;
  /* Les QUATRE coins : l'image ne touchant plus les bords de l'étiquette, elle
     n'a plus à en épouser les coins supérieurs — elle a les siens. */
  border-radius: 0.2rem;
}

/* Mention obligatoire : à cet emplacement, l'image occupe le haut de la carte
   d'un plat, juste au-dessus de son nom et de son prix — sans elle, elle se lit
   comme la photo du plat. Placée SOUS l'image, sans quoi elle la repousserait
   vers le bas de l'étiquette.
   Discrète mais lisible : jamais sous 10px, jamais sous 60 % d'opacité. */
.platPub__mention {
  color: var(--text);
  display: block;
  font-family: var(--police_texte);
  font-size: 10px;
  letter-spacing: 0.06em;
  line-height: 1.4;
  opacity: 0.6;
  /* Plus de retrait horizontal : le bloc n'est plus en pleine largeur, les 5px
     de `.plat` s'appliquent déjà et s'ajouteraient à celui-ci. */
  padding: 3px 0 0;
  /* `end` et non `right` : l'alignement ambiant de la page est centré (d'où le
     `text-left` explicite du gabarit sur `.platContent`), et `end` suit le
     `dir="rtl"` posé par `appliquerSensLecture()` en arabe et en hébreu — la
     mention s'y place alors du côté où finit la lecture, comme en français,
     là où un `right` figé la renverrait du mauvais côté. */
  text-align: end;
  text-transform: uppercase;
}

.plat {
  /*border: solid var(--line) 1px;*/
  background-color: var(--background);
  border-radius: 0.25rem;
  box-shadow: 1px 3px 15px -3px rgba(var(--box_shadow_color), 0.5);
  /*box-shadow: 1px 3px 15px -3px rgba(0,0,0,0.5);*/
  box-sizing: border-box;
  padding: 5px 5px;
  width: 100%;
}

.plat .row {
  margin-inline: 0;
}

.plat .platImg {
  width: 100%;
  height: auto;
}

.plat .platHeader {
  /*font-size: 1em;*/
  /*font-weight: bold;*/
  height: auto;
  /* margin-bottom: 6px; */
  font-size: var(--smallTitle_font_size);
}

.plat .platTitle {
  font-family: var(--police_titre);
  color: var(--titre);
  width: 100%;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden; /* Cache le texte qui dépasse la largeur */
  text-overflow: ellipsis; /* Ajoute des points de suspension (...) à la fin du texte qui dépasse */
  line-height: 1.2;
}

.plat .platPrice {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden; /* Cache le texte qui dépasse la largeur */
  text-overflow: ellipsis; /* Ajoute des points de suspension (...) à la fin du texte qui dépasse */
  line-height: 1.2;
  font-family: var(--police_titre);
  /*font-size: var(--title_font_size);*/
  /*font-size: var(--smallTitle_font_size);*/
  color: var(--titre);
}

.plat .fa-heart {
  color: var(--text);
  font-size: 20px;
}

.plat .tooglePlatFavoriteButton {
  position: absolute;
  top: 5px;
  right: 5px;
  padding-top: 5px;
  padding-right: 8px;
  padding-left: 5px;
  cursor: pointer;
}

.plat .favorite-icon-wrapper {
  position: relative;
  display: inline-block;
}

.plat .favorite-plus-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  font-size: 10px;
  color: var(--text);
  background-color: var(--background);
  border-radius: 50%;
  padding: 2px;
  width: 14px;
  height: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
}

/* Sélecteur de quantité : sur l'étiquette du plat et dans sa pop-up, visible dès
   que le plat est en favori */
.platQuantityControl {
  display: flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 20px;
  background-color: var(--background);
  overflow: hidden;
}

.platQtyBtn {
  border: none;
  background: none;
  color: var(--titre);
  font-family: var(--police_texte);
  font-size: 1rem;
  line-height: 1;
  width: 30px;
  height: 26px;
  padding: 0;
  cursor: pointer;
}

.platQtyBtn:disabled {
  opacity: 0.35;
  cursor: default;
}

.platQtyValue {
  min-width: 24px;
  text-align: center;
  font-family: var(--police_titre);
  font-size: 0.9rem;
  color: var(--titre);
}

.plat .platQuantityRow {
  margin: 2px 0;
}

.popUpQuantityRow {
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.popUpQuantityLabel {
  font-family: var(--police_texte);
  font-size: 0.9rem;
  color: var(--text);
}

.popUpQuantityRow .platQtyBtn {
  width: 38px;
  height: 32px;
  font-size: 1.15rem;
}

.popUpQuantityRow .platQtyValue {
  min-width: 28px;
  font-size: 1rem;
}

.plat .platInfo {
  font-family: var(--police_texte);
  color: var(--text);
  font-size: var(--smallText_font_size);
  /*font-size: 0.8em;*/
  font-weight: lighter;
}

.plat .platInfo .platDescription {
  width: 100%;
  height: 1.5em;
  white-space: nowrap; /* Empêche le texte de passer à la ligne */
  overflow: hidden; /* Cache le texte qui dépasse la largeur */
  text-overflow: ellipsis; /* Ajoute des points de suspension (...) à la fin du texte qui dépasse */
}

.plat .platInfo .voirPlus {
  font-weight: bold;
  font-style: italic;
  text-decoration: underline;
  cursor: pointer;
}

.plat .platFooter {
  width: 100%;
  /*font-size: 0.9em;*/
  color: var(--text);
  font-family: var(--police_texte);
  font-size: var(--smallText_font_size);
}

.plat .platFooter .lastPlatElem {
  font-style: italic;
}

.plat .platFooter .multiPrice {
  /* Add styles for .multiPrice if needed */
}

@keyframes zoomIn {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.5);
  }
}

.plat .platNotif {
  height: 0;
  overflow: hidden;
  margin-top: solid var(--line) 1px;
  transition: height 0.5s ease-out;
}

.plat .platNotif .platNotifDivider {
  border-top: solid var(--line) 1px;
  width: 80%;
}

.plat .platNotif .seeAssociations {
  font-family: var(--police_texte);
  color: var(--text);
  font-size: var(--smallText_font_size);
  font-weight: normal;
  margin: 0;
}

.plat .platNotif.active {
  height: 30px;
}

.plat .animate-zoom {
  /*animation: zoomIn 1s ease;*/
  background-color: red;
}

.favoriteItem {
  border-bottom: solid var(--line) 1px;
  margin-bottom: 5px;
  transition: opacity 0.3s ease-out, transform 0.3s ease-out;
  opacity: 1;
}

.favoriteItem .favoritePlat {
  box-sizing: border-box;
  width: 100%;
}

.favoriteItem .favoritePlat .platImg {
  width: 100%;
  height: auto;
}

.favoriteItem .favoritePlat .platHeader {
  height: auto;
  font-size: 0.9rem;
}

.favoriteItem .favoritePlat .platHeader .platTitle {
  font-family: var(--police_titre);
  color: var(--titre);
  width: 100%;
  white-space: nowrap;
  overflow: hidden; /* Cache le texte qui dépasse la largeur */
  text-overflow: ellipsis; /* Ajoute des points de suspension (...) à la fin du texte qui dépasse */
}

.favoriteItem .favoritePlat .platInfo {
  font-size: 0.8rem;
}

.favoriteItem .favoritePlat .platInfo .platDescription {
  font-family: var(--police_texte);
  color: var(--text);
  font-weight: lighter;
  width: 100%;
  white-space: nowrap; /* Empêche le texte de passer à la ligne */
  overflow: hidden; /* Cache le texte qui dépasse la largeur */
  text-overflow: ellipsis; /* Ajoute des points de suspension (...) à la fin du texte qui dépasse */
}

.favoriteItem .removeFavoriteButton {
  color: red;
  font-size: 18px;
  border-left: 1px inset black;
}

/* Ligne quantité / variante de prix / total de la ligne */
.favoriteItem .favoriteQuantityRow {
  padding: 0 4px;
}

.favoriteItem .favoriteQuantityLeft {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.favoriteItem .favoriteVariantSelect {
  max-width: 150px;
  font-family: var(--police_texte);
  font-size: 0.75rem;
  color: var(--text);
  background-color: var(--background);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 3px 20px 3px 10px;
  /* Chevron dessiné pour que le select reste identifiable sur tous les thèmes */
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23888' stroke-width='1.6' d='M1 1.5L6 6.5L11 1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 7px center;
  background-size: 8px;
}

.favoriteItem .favoriteQuantityControl {
  display: flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 20px;
  overflow: hidden;
}

.favoriteItem .favoriteQtyBtn {
  border: none;
  background: none;
  color: var(--titre);
  font-size: 1rem;
  line-height: 1;
  width: 28px;
  height: 26px;
  padding: 0;
  cursor: pointer;
}

.favoriteItem .favoriteQtyBtn:disabled {
  opacity: 0.35;
  cursor: default;
}

.favoriteItem .favoriteQtyValue {
  min-width: 24px;
  text-align: center;
  font-family: var(--police_texte);
  font-size: 0.85rem;
  color: var(--text);
}

.favoriteItem .favoriteLineTotal {
  font-family: var(--police_titre);
  font-size: 0.85rem;
  color: var(--titre);
  white-space: nowrap;
}

/*.favoriteItem {

    border-bottom: solid var(--line) 1px;
    margin-bottom: 5px;

    transition: opacity 0.3s ease-out, transform 0.3s ease-out;
    opacity: 1;

    .favoritePlat {

        !*border: solid var(--line) 1px;*!
        !*border-bottom: solid var(--line) 1px;*!
        !*background-color: var(--background);*!
        !*border-radius: 0.25rem;*!
        !*box-shadow: 1px 3px 15px -3px rgba(var(--box_shadow_color),0.5);*!
        !*box-shadow: 1px 3px 15px -3px rgba(0,0,0,0.5);*!

        box-sizing: border-box;
        !*padding: 5px 5px;*!
        width: 100%;

        .platImg {
            width: 100%;
            height: auto;
        }

        .platHeader{
            !*font-size: 1em;*!
            !*font-weight: bold;*!
            height: auto;
            !* margin-bottom: 6px; *!
            font-size: 0.9rem;

            .platTitle {

                font-family: var(--police_titre);
                color: var(--titre);
                width: 100%;

                !* display: -webkit-box;
                 -webkit-line-clamp: 1;
                 -webkit-box-orient: vertical;*!
                white-space: nowrap;
                overflow: hidden; !* Cache le texte qui dépasse la largeur *!
                text-overflow: ellipsis; !* Ajoute des points de suspension (...) à la fin du texte qui dépasse *!

                !*line-height: 1.2;*!
            }

        }

        .platInfo {

            font-size: 0.8rem;

            .platDescription {
                font-family: var(--police_texte);
                color: var(--text);
                !*font-size: var(--smallText_font_size);*!
                !*font-size: 0.8em;*!
                font-weight: lighter;

                width: 100%;

                !*height: 1.5em;*!
                white-space: nowrap; !* Empêche le texte de passer à la ligne *!
                overflow: hidden; !* Cache le texte qui dépasse la largeur *!
                text-overflow: ellipsis; !* Ajoute des points de suspension (...) à la fin du texte qui dépasse *!
            }
        }
    }

}*/

.fade-out {
  opacity: 0; /* Définit l'opacité à 0 pour créer un effet de fondu */
  transform: scale(
    0.95
  ); /* Légère réduction pour donner un effet de rétrécissement */
}

/*region Shopping Cart and Panel */
#overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* Fond noir semi-transparent */
  z-index: 1390; /* Au-dessus du bandeau catégories / header, sous le panneau favoris */
}

.shoppingCartButton {
  position: fixed;
  right: 3%;
  bottom: 18%;

  width: 50px;
  height: 50px;

  text-align: center;

  padding: 8px;
  border-radius: 0.25rem;
  background-color: var(--text);

  border-bottom: 2px solid rgba(0, 0, 0, 0.5);

  color: var(--background);
  font-size: 24px;

  cursor: pointer;

  transition: opacity 0.5s ease-in-out;
  opacity: 0;

  z-index: 1395; /* Au-dessus du bandeau catégories / header */
}

.shoppingCartButton i {
  margin: 0 auto;
}

.shoppingCartButton .cart-count-container {
  position: absolute;
  top: -5px;
  right: -5px;
  width: 20px;
  height: 20px;
  overflow: hidden;
}

.shoppingCartButton .cart-count {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background-color: red;
  color: white;
  border-radius: 50%;
  text-align: center;
  line-height: 20px; /* Ajustez en fonction de la hauteur pour centrer le texte verticalement */
  font-size: 12px;
  transition: transform 0.5s ease-in-out;
}

/*.cart-count {
    position: absolute;  !* Position absolue par rapport à .shoppingCart *!
    top: -5px;          !* Ajustez pour positionner correctement le badge *!
    right: -5px;        !* Ajustez pour positionner correctement le badge *!
    background-color: red;
    color: white;
    border-radius: 50%;  !* Rend le badge rond *!
    width: 20px;         !* Assurez-vous que le badge est circulaire *!
    height: 20px;        !* Assurez-vous que le badge est circulaire *!
    text-align: center;  !* Centre horizontalement le texte *!
    line-height: 20px;   !* Centre verticalement le texte *!
    font-size: 12px;     !* Taille de la police plus petite pour le badge *!
    border: 1px solid white; !* Optionnel: ajoute une bordure pour le contraste *!
}*/

.cart-panel {
  position: fixed;
  top: 0;
  right: -100%; /* Démarre hors de l'écran */
  width: 80%;
  height: 100%;
  background-color: var(--background);
  box-shadow: -2px 0 5px rgba(0, 0, 0, 0.5);
  transition: right 0.5s ease;
  z-index: 1400; /* Doit rester au-dessus du bandeau catégories et des dropdowns */
}

.cart-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
  /*background-color: #f8f9fa;
    border-bottom: 1px solid #dee2e6;*/
  background-color: var(--bandeau);
  border-bottom: 1px solid var(--line);
}

.cart-panel-header h2 {
  margin: 0;
  font-size: 24px;
  /*color: #333;*/
  color: var(--text_dans_bandeau);
  font-family: var(--police_titre);
}

.close-btn {
  font-size: 32px;
  border: none;
  background: none;
  cursor: pointer;
}

.cart-panel-body {
  padding: 10px;
  max-height: 65%;
  overflow-y: auto;
}

.cart-panel-footer {
  /*display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px;*/
  background-color: var(--background);
  /*border-top: 1px solid #dee2e6;*/
}

.cart-panel-footer .favoriteTotalContainer {
  border-top: 1px solid var(--line);
  padding-top: 10px;
  margin-bottom: 12px;
}

.cart-panel-footer .favoriteTotalRow {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.cart-panel-footer .favoriteTotalLabel {
  font-family: var(--police_titre);
  font-size: 1rem;
  color: var(--titre);
  text-transform: uppercase;
}

.cart-panel-footer .favoriteTotalValue {
  font-family: var(--police_titre);
  font-size: 1.25rem;
  font-weight: bold;
  color: var(--titre);
}

.cart-panel-footer .favoriteTotalNote {
  font-family: var(--police_texte);
  font-size: 0.7rem;
  font-weight: lighter;
  color: var(--text);
  margin-top: 4px;
}

.cart-panel-footer .clearFavoritesButton {
  color: var(--background);
  border: none;
  background: var(--titre);
  font-size: 1rem;
  cursor: pointer;
}

.cart-panel-footer .fixedBottomElems {
  position: absolute;
  bottom: 10px;
}

/* Conteneur général pour le switch et son label */
.switch-container {
  display: flex;
  align-items: center; /* Centrer les éléments verticalement */
  justify-content: center; /* Espacement égal entre les éléments */
}

/* Style pour le label du switch */
.switch-label {
  margin-right: 10px; /* Espacement entre le label et le switch */
  font-size: 14px; /* Taille de police appropriée pour la lisibilité */
  color: var(--titre); /* Couleur du texte discrète mais lisible */
}

/* Structure du switch */
.switch {
  position: relative;
  display: inline-block;
  width: 40px; /* Taille compacte du switch */
  height: 24px;
}

/* Style du "slider" */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  transition: 0.4s;
  border-radius: 24px;
}

.slider:before {
  position: absolute;
  content: '';
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: 0.4s;
  border-radius: 50%;
}

/* Quand le slider est checked ! */
input:checked + .slider {
  background-color: var(--line);
  /*background-color: #2196F3;*/
}

input:checked + .slider:before {
  transform: translateX(16px);
}

input:focus + .slider {
  box-shadow: 0 0 1px #2196f3;
}

/*endregion*/

/*region popUp Plat */

.swal2-content {
  padding: 0 12px !important;
}

.popUpPlatHeader .popUpTitle {
  font-size: 22px;
}

.popUpPlatContent .platImg {
  max-width: 75%;
}

.popUpPlatContent .platTitleFr {
  font-size: 1rem;
}

.popUpPlatContent .allergensList {
  color: var(--text);
  font-size: var(--smallText_font_size);
}

.popUpPlatContent .allergenButton {
  color: var(--text);
  border: none;
  /*border-bottom : solid 1px var(--text);*/
  text-decoration: underline;
  background: transparent;
  font-size: 12px;
}

.popUpPlatContent .allergenButton:focus {
  /*background: var(--text);*/
  /*color: var(--background);*/
}

.popUpPlatContent .vignette {
  cursor: pointer;
  margin-right: 10px;
  font-size: 24px;
  color: var(--text);
}

.popover {
  position: absolute;
  background-color: var(--background);
  color: var(--text);
  border: 1px solid var(--text);
  border-radius: 5px;
  padding: 10px;
  max-width: 200px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  z-index: 9999;
  font-size: 0.9em;
  display: none;
}

.popover:after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 10px;
  border-style: solid;
  border-color: var(--text) transparent transparent transparent;
}

.popUpPlatContent .removeFavoriteButton {
  color: var(--text);
  border: solid 1px var(--text);
  background: transparent;
  /*font-size: 24px;*/
  cursor: pointer;
}

.popUpPlatContent .addFavoriteButton {
  color: var(--background);
  border: solid 1px var(--background);
  background: var(--text);
  /*font-size: 24px;*/
  cursor: pointer;
}

.popUpPlatContent .suggestionTitle {
  font-weight: bold;
}

/*endregion */

/*region Suggestions */

.platSuggestion {
  text-align: left;
  padding: 5px;
  background-color: var(--background);
  border-radius: 0.25rem;
  box-sizing: border-box;
  box-shadow: 1px 3px 15px -3px rgba(var(--box_shadow_color), 0.5);
}

.platSuggestion .suggestionPrice {
  text-align: center;
  font-family: var(--police_texte);
  color: var(--text);
  font-size: 14px;
}

.platSuggestion .suggestionTitle {
  font-size: var(--smallTitle_font_size);
}

.platSuggestion .suggestionFavoriteButtonDiv {
  position: absolute;
  top: 5px;
  right: 5px;
  padding: 5px;
}

.platSuggestion .suggestionFavoriteButton {
  font-size: 18px;
  color: var(--text);
  cursor: pointer;
}

/*endregion */

/*region scroll indicator */

.scroll-indicator {
  position: fixed;
  /*background-color: white;*/
  padding: 8px;
  bottom: 18%;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  font-size: 40px;
  color: #333;
  z-index: 1000;
}

.scroll-indicator i {
  display: block;
  font-size: 30px;
  animation: bounce 2s infinite;
  color: var(--line);
}

@keyframes bounce {
  0%,
  20%,
  50%,
  80%,
  100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-10px);
  }
  60% {
    transform: translateY(-5px);
  }
}

/*endregion */

/* Z-index pour la popup SweetAlert2 - doit passer au-dessus du header (z-index: 1200) */
.swal2-container {
  z-index: 10000 !important;
}

.swal2-popup {
  z-index: 10000 !important;
}
