/********************
	Part - Style global
********************/
#wrapper {
  background : var(--color-grey-default);
  z-index    : 1;
}

.products-section-title {
  text-align    : center;
  margin-bottom : 1.5rem;
}

/********************
	Part - Style général des accordéons
********************/
.js-accordion__container {
  border     : 1px solid var(--color-grey-default);
  box-shadow : 2px 2px 11px 0 rgba(0, 0, 0, 0.1);
}

.js-accordions__wrapper .accordion__title {
  background      : white;
  color           : var(--color-primary);
  padding         : 15px;
  font-weight     : 700;
  display         : flex;
  justify-content : space-between;
  align-items     : center;
  width           : 100%;
  border          : none;
  border-bottom   : 1px solid rgba(0, 0, 0, .1);
  cursor          : pointer;
}

/********************
	Part - fix taille mini d'une page à 100vh hors du checkout
********************/
body:not(#checkout) main {
  min-height     : 100vh;
  display        : flex;
  flex-direction : column;
}

body:not(#checkout) #wrapper {
  flex           : 1 0 auto;
  display        : flex;
  flex-direction : column;
}

body:not(#checkout) #wrapper .wrapper__inner {
  flex : 1 0 auto;
}

/********************
	Part - class notransition for js
********************/
.notransition,
.notransition * {
  -webkit-transition : none !important;
  -moz-transition    : none !important;
  -o-transition      : none !important;
  transition         : none !important;
}

/********************
	Part - Style all product link
********************/
.all-product-link {
  color       : var(--color-grey-font-default);
  font-weight : 700;
  padding     : 3px 7px;
  display     : inline-block;
}

.section__content .all-product-link {
  margin-top : 1.5rem;
}

.all-product-link:focus,
.all-product-link:hover {
  text-decoration : none;
}

/********************
	Part - Style dropdown
********************/
.dropdown {
  color : var(--color-grey-font-default)
}

.dropdown:hover .expand-more {
  color : #2fb5d2
}

.dropdown .expand-more {
  color               : var(--color-black-default);
  cursor              : pointer;
  -webkit-user-select : none;
  -moz-user-select    : none;
  -ms-user-select     : none;
  user-select         : none
}

.dropdown .active {
  max-height : 200px;
  overflow-y : hidden;
  visibility : visible
}

.dropdown select {
  -moz-appearance : none;
  border          : 0 none;
  outline         : 0 none;
  color           : var(--color-black-default);
  background      : #fff
}

.dropdown-item:focus, .dropdown-item:hover {
  background      : none;
  text-decoration : none;
  color           : #2fb5d2
}


/********************
	Part - Cookie
********************/
.acbCheckboxContainer {
  display : flex;
}

.acbCheckboxContainer .acbConsentLabel {
  text-align  : left;
  margin-left : .33em;
}

/*************************
	Part - Wishlist modals
*************************/
.wishlist-modal.show {
  background : rgba(0, 0, 0, 0.5);
}

.wishlist-modal .modal.fade .modal-dialog.modal-dialog-centered {
  top       : 50%;
  left      : 50%;
  right     : 0;
  bottom    : 0;
  transform : translate(-50%, -50%);
  margin    : 0;
}

/*************************
	Part - Sliders
*************************/
.swiper-container {
  overflow  : hidden;
  min-width : 0;
  max-width : 100%;
}

.swiper-button-next:after, .swiper-button-prev:after {
  color     : var(--color-primary);
  font-size : 20px;
}

.swiper-pagination-bullet-active {
  background : var(--color-primary);
}

.swiper-button-next, .swiper-rtl .swiper-button-prev {
  right : var(--swiper-navigation-sides-offset, -20px);
  left  : auto;
}

.swiper-button-prev, .swiper-rtl .swiper-button-next {
  left  : var(--swiper-navigation-sides-offset, -20px);
  right : auto;
}

/********************
	Part - Reassurance
********************/
.reassurance-section {
  background : #252938;
}

.reassurance-group {
  display         : flex;
  justify-items   : center;
  padding         : 30px 10px 40px;
  align-items     : start;
  column-gap      : 20px;
  row-gap         : 40px;
  justify-content : center;
  flex-wrap       : wrap;
}

.reassurance {
  display       : flex;
  align-items   : center;
  gap           : 15px;
  border-radius : 50px;
  background    : var(--color-primary);
  padding       : 5px 35px 5px 8px;
  width         : 250px;
}

.reassurance-text_title {
  color          : var(--color-grey-default);
  font-size      : 15px;
  font-style     : normal;
  font-weight    : 700;
  line-height    : normal;
  text-transform : uppercase;
  white-space    : nowrap;
  margin         : 0;
}

.reassurance-text {
  color       : var(--color-grey-default);
  font-size   : 14px;
  font-style  : normal;
  font-weight : 500;
  line-height : normal;
}

.reassurance-media .media-container {
  border-radius   : 50px;
  width           : 40px;
  height          : 40px;
  background      : var(--color-white-default);
  display         : flex;
  align-items     : center;
  justify-content : center;
}

.reassurance-media img {
  max-width : 30px;
}

/****************************************
	Part - Reassurance - Before Footer
****************************************/

.before-footer .reassurance-section {
  background : var(--color-white-default);
}

.before-footer .reassurance {
  background : var(--color-grey-default);
}

.before-footer .reassurance-text_title, .before-footer .reassurance-text {
  color : var(--color-primary);
}


/* Animations pour les mises à jour de prix */
.price-updated {
  animation : priceHighlight 2s ease-in-out;
  position  : relative;
}

@keyframes priceHighlight {
  0% {
    background-color : transparent;
    transform        : scale(1);
  }
  25% {
    background-color : #28a745;
    color            : white;
    transform        : scale(1.05);
    border-radius    : 4px;
  }
  75% {
    background-color : #28a745;
    color            : white;
    transform        : scale(1.05);
    border-radius    : 4px;
  }
  100% {
    background-color : transparent;
    transform        : scale(1);
  }
}

/* Notification de panier vidé */
.cart-cleared-notification {
  position  : fixed;
  top       : 0;
  left      : 0;
  right     : 0;
  z-index   : 9999;
  padding   : 10px;
  animation : slideDown 0.5s ease-out;
}

@keyframes slideDown {
  from {
    transform : translateY(-100%);
    opacity   : 0;
  }
  to {
    transform : translateY(0);
    opacity   : 1;
  }
}

.cart-cleared-notification .alert {
  margin     : 0;
  text-align : center;
  box-shadow : 0 2px 10px rgba(0, 0, 0, 0.1);
  border     : none;
  background : linear-gradient(135deg, #17a2b8, #138496);
  color      : white;
}

.cart-cleared-notification .close {
  color       : white;
  opacity     : 0.8;
  text-shadow : none;
}

.cart-cleared-notification .close:hover {
  opacity : 1;
}

/* Animation pour les boutons désactivés */
.btn.disabled,
.btn:disabled {
  transition : all 0.3s ease;
  opacity    : 0.6;
  cursor     : not-allowed;
}

/* Animation pour les prix qui changent */
.product-price-container {
  position : relative;
  overflow : hidden;
}

.product-price-container .price-change-indicator {
  position        : absolute;
  top             : -2px;
  right           : -2px;
  background      : #28a745;
  color           : white;
  border-radius   : 50%;
  width           : 20px;
  height          : 20px;
  display         : flex;
  align-items     : center;
  justify-content : center;
  font-size       : 12px;
  animation       : priceChangeIndicator 3s ease-in-out;
}

@keyframes priceChangeIndicator {
  0% {
    transform : scale(0);
    opacity   : 0;
  }
  25% {
    transform : scale(1.2);
    opacity   : 1;
  }
  75% {
    transform : scale(1);
    opacity   : 1;
  }
  100% {
    transform : scale(0);
    opacity   : 0;
  }
}

/* Animation de chargement pour les prix */
.price-loading {
  position : relative;
  opacity  : 0.7;
}

.price-loading::after {
  content    : '';
  position   : absolute;
  top        : 0;
  left       : 0;
  right      : 0;
  bottom     : 0;
  background : linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.8), transparent);
  animation  : loading 1.5s infinite;
}

@keyframes loading {
  0% {
    transform : translateX(-100%);
  }
  100% {
    transform : translateX(100%);
  }
}

/* Styles pour les produits non disponibles */
.product-unavailable {
  opacity  : 0.5;
  position : relative;
}

.product-unavailable::before {
  content       : 'Non disponible';
  position      : absolute;
  top           : 50%;
  left          : 50%;
  transform     : translate(-50%, -50%);
  background    : rgba(220, 53, 69, 0.9);
  color         : white;
  padding       : 5px 10px;
  border-radius : 4px;
  font-size     : 12px;
  z-index       : 10;
}

/* Animation pour les changements de disponibilité */
.availability-change {
  animation : availabilityChange 1s ease-in-out;
}

@keyframes availabilityChange {
  0% {
    opacity : 1;
  }
  50% {
    opacity : 0.3;
  }
  100% {
    opacity : 1;
  }
}

/* Messages d'état responsive */
@media (max-width : 768px) {
  .cart-cleared-notification {
    padding : 5px;
  }

  .cart-cleared-notification .alert {
    font-size : 14px;
    padding   : 10px;
  }

  .price-change-indicator {
    width     : 16px;
    height    : 16px;
    font-size : 10px;
  }
}

body:not(#checkout) iframe {
  max-width     : 100%;
  border-radius : 10px;
  margin-top    : 10px;
  border        : none;
}
