/********************
	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;
}



.guide-banner {
  position: relative;
  overflow: hidden;
  background: #eef2f5;
}

.guide-banner__inner {
  position: relative;
  max-width: 980px;
  min-height: 130px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 90px;
}

.guide-banner__content {
  max-width: 550px;
}

.guide-banner__content h2 {
  margin: 0 0 14px;
  font-size: 30px;
  line-height: 1.08;
  font-weight: 800;
  color: #252c48;
}

.guide-banner__content h2 span {
  color: #8dc63f;
}

.guide-banner__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  height: 40px;
  padding: 0 24px;
  border-radius: 999px;
  background: linear-gradient(90deg, #00a99d 0%, #d8df19 100%);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
}

.guide-banner__visual {
  width: 250px;
}

.guide-banner__visual img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 15px 22px rgba(0, 0, 0, 0.25));
}

.guide-banner__content {
  padding: 20px 0;
}

.guide-banner .subtitle {
  margin: 0 0 5px;
  background: #252c48;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}


.icon-evole-logo {
  position: absolute;
  right: 0;
  bottom: 0;
  display: block;
  opacity: 0.08;
  height: 100%;
}

.icon-evole-logo svg {
  height: 100%;
  width: auto;
}
