/* ==========================================================
   Simphonie — Commerce Actions
   Palette commune de tous les boutons « Ajouter au panier »
========================================================== */

/*
 * Les cartes catalogue, la fiche produit, la barre mobile,
 * l’aperçu rapide et les modules utilisant l’action PrestaShop
 * partagent désormais exactement la même palette. Les intégrations qui ne
 * portent pas l'attribut PrestaShop utilisent .sc-commerce-add-action.
 */

body :is(
  button[data-button-action="add-to-cart"],
  a[data-button-action="add-to-cart"],
  .product-add-to-cart .add-to-cart,
  .sc-product-buybox .add-to-cart,
  .sc-product-sticky-cart__button,
  .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
  .quickview .add-to-cart,
  .modal .add-to-cart,
  .ajax_add_to_cart_button,
  .sc-commerce-add-action
) {
  color: var(--sc-color-commerce-action-text) !important;
  background-color: var(--sc-color-commerce-action) !important;
  border-color: var(--sc-color-commerce-action) !important;
  box-shadow: 0 8px 22px rgb(var(--sc-rgb-shadow) / 0.13) !important;
  transition:
    color var(--sc-transition-fast),
    background-color var(--sc-transition-fast),
    border-color var(--sc-transition-fast),
    box-shadow var(--sc-transition-fast),
    transform var(--sc-transition-fast);
}

body :is(
  button[data-button-action="add-to-cart"],
  a[data-button-action="add-to-cart"],
  .product-add-to-cart .add-to-cart,
  .sc-product-buybox .add-to-cart,
  .sc-product-sticky-cart__button,
  .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
  .quickview .add-to-cart,
  .modal .add-to-cart,
  .ajax_add_to_cart_button,
  .sc-commerce-add-action
):not(:disabled):not(.disabled):not([aria-disabled="true"]):hover {
  color: var(--sc-color-commerce-action-text) !important;
  background-color: var(--sc-color-commerce-action-hover) !important;
  border-color: var(--sc-color-commerce-action-hover) !important;
  box-shadow: var(--sc-shadow-commerce-action-hover) !important;
  transform: translateY(-1px) !important;
}

body :is(
  button[data-button-action="add-to-cart"],
  a[data-button-action="add-to-cart"],
  .product-add-to-cart .add-to-cart,
  .sc-product-buybox .add-to-cart,
  .sc-product-sticky-cart__button,
  .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
  .quickview .add-to-cart,
  .modal .add-to-cart,
  .ajax_add_to_cart_button,
  .sc-commerce-add-action
):focus-visible {
  outline: 2px solid var(--sc-color-primary-deep) !important;
  outline-offset: 3px;
}

body :is(
  button[data-button-action="add-to-cart"],
  a[data-button-action="add-to-cart"],
  .product-add-to-cart .add-to-cart,
  .sc-product-buybox .add-to-cart,
  .sc-product-sticky-cart__button,
  .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
  .quickview .add-to-cart,
  .modal .add-to-cart,
  .ajax_add_to_cart_button,
  .sc-commerce-add-action
):active {
  box-shadow: 0 6px 16px rgb(var(--sc-rgb-action-hover) / 0.18) !important;
  transform: translateY(0) !important;
}

body :is(
  button[data-button-action="add-to-cart"],
  a[data-button-action="add-to-cart"],
  .product-add-to-cart .add-to-cart,
  .sc-product-buybox .add-to-cart,
  .sc-product-sticky-cart__button,
  .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
  .quickview .add-to-cart,
  .modal .add-to-cart,
  .ajax_add_to_cart_button,
  .sc-commerce-add-action
):disabled,
body :is(
  button[data-button-action="add-to-cart"],
  a[data-button-action="add-to-cart"],
  .product-add-to-cart .add-to-cart,
  .sc-product-buybox .add-to-cart,
  .sc-product-sticky-cart__button,
  .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
  .quickview .add-to-cart,
  .modal .add-to-cart,
  .ajax_add_to_cart_button,
  .sc-commerce-add-action
).disabled,
body :is(
  button[data-button-action="add-to-cart"],
  a[data-button-action="add-to-cart"],
  .product-add-to-cart .add-to-cart,
  .sc-product-buybox .add-to-cart,
  .sc-product-sticky-cart__button,
  .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
  .quickview .add-to-cart,
  .modal .add-to-cart,
  .ajax_add_to_cart_button,
  .sc-commerce-add-action
)[aria-disabled="true"] {
  cursor: not-allowed;
  color: var(--sc-color-text-soft) !important;
  background-color: var(--sc-color-nude-soft) !important;
  border-color: var(--sc-color-border-warm) !important;
  box-shadow: none !important;
  opacity: 0.72;
  transform: none !important;
}

body :is(
  button[data-button-action="add-to-cart"],
  a[data-button-action="add-to-cart"],
  .product-add-to-cart .add-to-cart,
  .sc-product-buybox .add-to-cart,
  .sc-product-sticky-cart__button,
  .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
  .quickview .add-to-cart,
  .modal .add-to-cart,
  .ajax_add_to_cart_button,
  .sc-commerce-add-action
) :is(i, svg) {
  color: currentColor;
  fill: currentColor;
  stroke: currentColor;
}

@media (prefers-reduced-motion: reduce) {
  body :is(
    button[data-button-action="add-to-cart"],
    a[data-button-action="add-to-cart"],
    .product-add-to-cart .add-to-cart,
    .sc-product-buybox .add-to-cart,
    .sc-product-sticky-cart__button,
    .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
    .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
    .quickview .add-to-cart,
    .modal .add-to-cart,
    .ajax_add_to_cart_button,
    .sc-commerce-add-action
  ) {
    transition: none;
  }

  body :is(
    button[data-button-action="add-to-cart"],
    a[data-button-action="add-to-cart"],
    .product-add-to-cart .add-to-cart,
    .sc-product-buybox .add-to-cart,
    .sc-product-sticky-cart__button,
    .sc-product-card .sc-product-card__cta:not(.sc-product-card__cta--secondary),
    .sc-product-card .btn-product-list:not(.sc-product-card__cta--secondary),
    .quickview .add-to-cart,
    .modal .add-to-cart,
    .ajax_add_to_cart_button,
    .sc-commerce-add-action
  ):hover {
    transform: none;
  }
}

/*
 * Legacy catalogue styles used highly specific selectors. Keep this bridge in
 * the shared file until every installed shop has refreshed its theme manifest.
 */
body#category #js-product-list .sc-product-card :is(
  .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .btn-product-list:not(.sc-product-card__cta--secondary)
),
body:is(#search, #prices-drop, #best-sales, #new-products, #manufacturer, #supplier) #js-product-list .sc-product-card :is(
  .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .btn-product-list:not(.sc-product-card__cta--secondary)
) {
  color: var(--sc-color-commerce-action-text) !important;
  background-color: var(--sc-color-commerce-action) !important;
  border-color: var(--sc-color-commerce-action) !important;
  box-shadow: 0 8px 22px rgb(var(--sc-rgb-shadow) / 0.13) !important;
}

body#category #js-product-list .sc-product-card :is(
  .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .btn-product-list:not(.sc-product-card__cta--secondary)
):not(:disabled):hover,
body:is(#search, #prices-drop, #best-sales, #new-products, #manufacturer, #supplier) #js-product-list .sc-product-card :is(
  .sc-product-card__cta:not(.sc-product-card__cta--secondary),
  .btn-product-list:not(.sc-product-card__cta--secondary)
):not(:disabled):hover {
  color: var(--sc-color-commerce-action-text) !important;
  background-color: var(--sc-color-commerce-action-hover) !important;
  border-color: var(--sc-color-commerce-action-hover) !important;
  box-shadow: var(--sc-shadow-commerce-action-hover) !important;
  transform: translateY(-1px) !important;
}

body#product :is(
  .sc-product-purchase-row .add-to-cart,
  .sc-product-related__cart,
  .sc-product-sticky-cart__button
) {
  color: var(--sc-color-commerce-action-text) !important;
  background-color: var(--sc-color-commerce-action) !important;
  border-color: var(--sc-color-commerce-action) !important;
}

body#product :is(
  .sc-product-purchase-row .add-to-cart,
  .sc-product-related__cart,
  .sc-product-sticky-cart__button
):not(:disabled):not(.disabled):not([aria-disabled="true"]):hover {
  color: var(--sc-color-commerce-action-text) !important;
  background-color: var(--sc-color-commerce-action-hover) !important;
  border-color: var(--sc-color-commerce-action-hover) !important;
  box-shadow: var(--sc-shadow-commerce-action-hover) !important;
  transform: translateY(-1px) !important;
}

/* === Simphonie — unified cart icon === */

/*
 * Le même sac filaire est utilisé sur les cartes catalogue,
 * la fiche produit, l’aperçu rapide et la barre d’achat mobile.
 */

.sc-commerce-cart-icon,
.sc-product-card__cta-icons {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
}

.sc-commerce-cart-icon svg,
.sc-product-card__cta-icons svg {
  display: block;
  width: 17px;
  height: 17px;
  overflow: visible;
  fill: none !important;
  stroke: currentColor !important;
}

.sc-commerce-cart-icon .spinner-icon {
  display: none;
}

button.add-to-cart.processing .sc-commerce-cart-icon .bag-icon,
button.add-to-cart.loading .sc-commerce-cart-icon .bag-icon {
  display: none;
}

button.add-to-cart.processing .sc-commerce-cart-icon .spinner-icon,
button.add-to-cart.loading .sc-commerce-cart-icon .spinner-icon {
  display: block;
  animation: sc-commerce-cart-icon-spin 780ms linear infinite;
}

.sc-product-sticky-cart__button {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
}

.sc-commerce-cart-label {
  min-width: 0;
}

@keyframes sc-commerce-cart-icon-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  button.add-to-cart.processing .sc-commerce-cart-icon .spinner-icon,
  button.add-to-cart.loading .sc-commerce-cart-icon .spinner-icon {
    animation-duration: 1.4s;
  }
}

/* === End Simphonie — unified cart icon === */
