/* ==========================================================================
   Shop - Boutique
   ========================================================================== */

/* ================= SHOP / CATALOGUE ================= */

.shop-page {
  position: relative;
  overflow: visible;
  padding-bottom: 0;
  background: var(--color-light);
  color: var(--color-brown);
}

.shop-header {
  display: none !important;
}

.shop-layout {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 52px;
  align-items: start;
  max-width: var(--container-xl);
  margin: 0 auto;
  padding: 36px 58px 68px;
  box-sizing: border-box;
  overflow: visible;
}

.shop-layout.is-catalog-complete {
  padding-bottom: 96px;
}

@media (prefers-reduced-motion: reduce) {
  .shop-content {
    transition: none;
  }

  .shop-content.is-ordering-transition {
    opacity: 1;
    transform: none;
    pointer-events: auto;
  }
}

.shop-sidebar {
  position: sticky;
  top: 120px;
  align-self: start;
  height: fit-content;
  min-width: 0;
  margin-top: -3px;
  padding-top: 0;
  overflow: visible;
  z-index: 20;
}

.shop-sidebar-nav {
  margin: 0;
}

.shop-sidebar-title {
  display: none !important;
}

.shop-categories {
  display: flex;
  flex-direction: column;
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.shop-categories li {
  margin: 0;
  padding: 0;
}

.shop-categories > li > a,
.shop-categories > li > a:visited {
  position: relative;
  display: inline-block;
  width: fit-content;
  color: rgba(90, 52, 43, 0.82) !important;
  font-family: var(--font-body) !important;
  font-size: 13px;
  font-weight: var(--fw-semibold);
  line-height: 1.25;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}

.shop-category-item--has-children {
  display: grid;
  grid-template-columns: max-content 28px;
  grid-template-rows: 1.25em auto;
  align-items: center;
  column-gap: 10px;
}

.shop-category-toggle {
  position: static;
  grid-column: 2;
  grid-row: 1;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 28px;
  height: 28px;
  min-height: 28px;

  margin: 0;
  padding: 0;

  border: 0;
  background: transparent;

  cursor: pointer;
  text-align: left;

  color: rgba(90, 52, 43, 0.72) !important;

  transform: none;
}

.shop-category-item--has-children > .shop-category-parent-link {
  grid-column: 1;
}

.shop-category-item--has-children > .shop-subcategories {
  grid-column: 1 / -1;
}

.shop-category-toggle:hover,
.shop-category-toggle[aria-expanded="true"],
.shop-categories > li > a:hover,
.shop-categories > li.current-cat > a {
  color: var(--color-brown) !important;
  text-decoration: none;
}

.shop-category-toggle:focus-visible,
.shop-categories > li > a:focus-visible {
  outline: 2px solid rgba(90, 52, 43, 0.28);
  outline-offset: 4px;
}

.shop-category-toggle__icon {
  position: relative;
  top: 1px;

  width: 11px;
  height: 11px;
  flex: 0 0 11px;

  color: currentColor;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;

  transition: transform 0.2s ease;
}

.shop-category-toggle[aria-expanded="true"] .shop-category-toggle__icon {
  transform: rotate(180deg);
}

.shop-subcategories {
  display: flex;
  flex-direction: column;
  gap: 6px;
  list-style: none;
  margin: 8px 0 0 14px;
  padding: 0;
}

.shop-subcategories[hidden] {
  display: none !important;
}

.shop-subcategories a {
  display: inline-block;
  width: fit-content;
  color: rgba(90, 52, 43, 0.64) !important;
  letter-spacing: 0;
  font-size: 13.5px;
  font-weight: var(--fw-regular);
  line-height: 1.35;
  text-transform: none;
  text-decoration: none;
}

.shop-subcategories > li > a:focus-visible {
  outline: 2px solid rgba(90, 52, 43, 0.28);
  outline-offset: 4px;
}

.shop-subcategories .current-cat > a {
  color: var(--color-brown) !important;
  font-weight: var(--fw-medium);
}

/* Séparation vues boutique / catégories produits */
.shop-categories > li.shop-category-item--normal-start {
  padding-top: 16px;
  border-top: 1px solid rgba(90, 52, 43, 0.12);
}

.shop-categories > li:nth-child(1) > a,
.shop-categories > li:nth-child(2) > a {
  color: var(--color-brown) !important;
  font-weight: 600;
}

.shop-categories > li.current-cat > a,
.shop-categories .shop-category-item.current-cat > .shop-category-parent-link {
  color: var(--color-brown) !important;
  font-weight: 600;
  text-decoration: none;
}

.shop-categories > li:nth-child(n + 3) > a,
.shop-categories > li:nth-child(n + 3) > .shop-category-parent-link {
  color: rgba(90, 52, 43, 0.72) !important;
}

.shop-categories > li:nth-child(n + 3) > a:hover,
.shop-categories > li:nth-child(n + 3).current-cat > a,
.shop-categories > li:nth-child(n + 3).current-cat > .shop-category-parent-link {
  color: var(--color-brown) !important;
}

@media (prefers-reduced-motion: reduce) {
  .shop-category-toggle__icon {
    transition: none;
  }
}

/* Breadcrumb haut gauche : Boutique / catégorie active */
.shop-breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;

  color: rgba(90, 52, 43, 0.48);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: var(--fw-regular);
  line-height: 1.2;
}

.shop-breadcrumb a,
.shop-breadcrumb a:visited {
  color: var(--color-brown) !important;
  text-decoration: none !important;
}

.shop-breadcrumb a:hover {
  color: var(--color-accent) !important;
}

.shop-breadcrumb-separator {
  color: rgba(90, 52, 43, 0.34);
}

/* Toolbar : titre + count + tri */
.shop-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
  margin: 0 0 34px;
}

.shop-toolbar-title {
  margin: 0;
  font-family: var(--font-commerce-title);
  font-size: clamp(38px, 3.3vw, 52px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.028em;
  color: var(--color-brown);
}

.shop-toolbar-count {
  display: inline-block;
  margin-left: 10px;
  transform: translateY(-4px);

  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;

  color: rgba(90, 52, 43, 0.42);
  vertical-align: middle;
}

.shop-category-description {
  max-width: 760px;
  margin: -14px 0 34px;
  color: rgba(90, 52, 43, 0.76);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.65;
}

.shop-category-description > :first-child {
  margin-top: 0;
}

.shop-category-description > :last-child {
  margin-bottom: 0;
}


/* ---------- Reset WooCommerce archive ---------- */

.shop-ordering,
.woocommerce-result-count,
.shop-content ul.products::before,
.shop-content ul.products::after {
  display: none !important;
  content: none !important;
}

.woocommerce-ordering {
  display: block !important;
  margin: 0 !important;
}


/* ---------- Grille produits ---------- */

.shop-content ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  column-gap: 34px !important;
  row-gap: 40px !important;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

.shop-content ul.products li.product {
  display: flex;
  flex-direction: column;

  float: none !important;
  clear: none !important;

  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;

  list-style: none !important;
  text-align: left !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

/* Important : le lien complet ne doit jamais être contraint en carré */
.shop-content ul.products li.product a,
.shop-content ul.products li.product a:visited,
.shop-content ul.products li.product .woocommerce-LoopProduct-link,
.shop-content ul.products li.product .woocommerce-loop-product__link {
  display: block;
  color: inherit !important;
  text-decoration: none !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.shop-content ul.products li.product .product-card-link {
  display: block;
  text-decoration: none !important;
}

.shop-content ul.products li.product .product-card-image-link {
  display: block;
  width: 100%;
  text-decoration: none !important;
}

/* Le conteneur média reste transparent dans la grille desktop. En tactile,
 * il devient le repère du CTA flottant sans imbriquer deux liens. */
.shop-content ul.products li.product .product-card-media {
  display: contents;
}

.shop-content ul.products li.product .product-card-image-link {
  order: 1;
}

.shop-content ul.products li.product .product-card-link {
  order: 2;
}

.shop-content ul.products li.product .product-card-actions {
  order: 3;
}

.shop-content ul.products li.product .product-card-body,
.shop-content ul.products li.product .product-card-content,
.shop-content ul.products li.product .product-card-info,
.shop-content ul.products li.product .product-info,
.shop-content ul.products li.product .product-summary,
.shop-content ul.products li.product .product-meta,
.shop-content ul.products li.product .product-details,
.shop-content ul.products li.product .woocommerce-loop-product__title,
.shop-content ul.products li.product .price,
.shop-content ul.products li.product .amount,
.shop-content ul.products li.product bdi,
.shop-content ul.products li.product ins,
.shop-content ul.products li.product del {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

/* ---------- Image produit ---------- */

.product-card-image {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: var(--brand-product-image-ratio, 5 / 6);
  overflow: hidden;
  margin: 0 0 16px;
  border-radius: 3px;
  background: var(--color-cream) !important;
  background-color: var(--color-cream) !important;
}

.product-card-image img {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover !important;
	object-position: var(--catalog-crop-object-position, center center);
  margin: 0 !important;
  background: transparent !important;
  transform:
    translate(
      calc(-50% + var(--catalog-crop-offset-x, 0px)),
      calc(-50% + var(--catalog-crop-offset-y, 0px))
    );
  transform-origin: center;
  transition:
    opacity 0.35s ease,
    transform 0.45s ease,
    filter 0.45s ease;
}

/* Fallback WooCommerce si jamais une carte n’a pas .product-card-image */
.shop-content ul.products li.product > a > img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: var(--brand-product-image-ratio, 5 / 6) !important;
  height: auto !important;
  object-fit: cover !important;
  margin: 0 0 14px !important;
  background: transparent !important;
  transition:
    transform 0.45s ease,
    filter 0.45s ease;
}

/* Image principale / image hover */
.product-image-main {
  opacity: 1;
  z-index: 1;
}

.product-image-hover {
	position: absolute !important;
	inset: 0 !important;
	opacity: 0;
	z-index: 2;
}

.product-card-image .product-image-hover {
	object-fit: cover !important;
	object-position: center center;
	transition: opacity 0.35s ease !important;
}

.shop-content ul.products li.product:hover .has-hover-image .product-image-main {
  opacity: 0;
}

.shop-content ul.products li.product:hover .has-hover-image .product-image-hover {
	opacity: 1;
}

/* Voile très léger au hover */
.shop-content ul.products li.product .product-card-image::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;

  background: rgba(255, 253, 249, 0.08);

  opacity: 0;
  pointer-events: none;

  transition: opacity 0.28s ease;
}

.shop-content ul.products li.product:hover .product-card-image::after {
  opacity: 1;
}

/* ---------- Texte produit ---------- */

.shop-content ul.products li.product .woocommerce-loop-product__title {
  position: relative !important;
  z-index: 3;

  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  overflow: visible !important;
  overflow-wrap: anywhere;

  padding: 0 !important;
  margin: 0 0 6px !important;

  color: var(--color-brown) !important;

  font-family: var(--font-commerce-title) !important;
  font-size: 21px !important;
  font-weight: 400 !important;
  line-height: 1.16 !important;
  letter-spacing: -0.015em;

  transition: color 0.22s ease;
}

.shop-content ul.products li.product:hover .woocommerce-loop-product__title {
  color: var(--color-accent) !important;
}

.shop-content ul.products li.product .product-card-price {
  position: relative !important;
  z-index: 3;

  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  overflow: visible !important;

  margin: 0 !important;
  padding: 0 !important;

  font-family: var(--font-body) !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
}

.shop-content ul.products li.product .umatatea-product-logistics-label {
	display: block;
	margin-top: 7px;
	color: rgba(90, 52, 43, 0.68);
	font-family: var(--font-body);
	font-size: 10.5px;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0.035em;
}

/* ---------- Prix produits ---------- */

.shop-content ul.products li.product .umatatea-card-price {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;

  color: var(--color-accent) !important;

  font-family: var(--font-body) !important;
  font-size: 13px !important;
  font-weight: var(--fw-semibold) !important;
  line-height: 1.3 !important;
}

/* Prix normal, sans promotion */
.shop-content ul.products li.product .umatatea-card-price__current {
  color: rgba(90, 52, 43, 0.78) !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em;
}


/* Fallback du HTML natif WooCommerce */
.shop-content ul.products li.product .umatatea-card-price--native {
  display: inline-flex;
  flex-direction: row;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 7px;
}

.shop-content ul.products li.product .umatatea-card-price--native ins {
  order: 1;

  color: #b9603f !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.3;

  text-decoration: none !important;
  background: transparent !important;
}

.shop-content ul.products li.product .umatatea-card-price--native del {
  order: 2;

  color: rgba(90, 52, 43, 0.62) !important;
  font-size: 11.5px;
  font-weight: 400;
  line-height: 1.3;
  opacity: 1;

  text-decoration-line: line-through !important;
  text-decoration-thickness: 1px !important;
  text-decoration-color: rgba(90, 52, 43, 0.55) !important;
  text-decoration-skip-ink: none;
}

/* ================= SHOP CARD CTA ================= */

.shop-content ul.products li.product .product-card-actions {
  min-height: 20px;
  margin-top: 10px;

  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);

  transition:
    opacity 0.22s ease,
    visibility 0.22s ease,
    transform 0.22s ease;
}

.shop-content ul.products li.product.umatatea-recommendation-card .product-card-price {
  margin-bottom: 7px !important;
}

@media (hover: hover) and (pointer: fine) {
  .shop-content ul.products li.product .product-card-actions {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(3px);
  }

  .shop-content ul.products li.product:hover .product-card-actions,
  .shop-content ul.products li.product:focus-within .product-card-actions {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }
}

/* Lien ajouter au panier */
.shop-content ul.products li.product .product-card-actions .button {
  display: inline-flex !important;
  align-items: center;
  justify-content: flex-start;

  min-height: auto !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;

  border: 0 !important;
  border-radius: 0 !important;

  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;

  color: var(--color-brown) !important;
  text-decoration: none !important;

  font-family: var(--font-body) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  gap: 5px;

  transform: none !important;
  filter: none !important;
}

.shop-content ul.products li.product .product-card-actions .button::before {
  display: none !important;
  content: none !important;
}

@media (hover: hover) and (pointer: fine) {
  .shop-content ul.products li.product .product-card-actions .button:hover {
    color: var(--color-accent) !important;
    background: transparent !important;
  }
}

/* Les CTA non ajoutables restent masqués sur toute interface tactile. */
@media (hover: none), (pointer: coarse) {
  /* Sur tactile, seul un bouton d'ajout direct peut rester sur l'image.
     Les CTA vers la fiche, les alertes et les boutons désactivés restent
     accessibles via l'image et le titre, sans doublon visuel. */
  .shop-content ul.products li.product .product-card-actions:not(:has(
    > .button.add_to_cart_button,
    > .button.js-umatatea-variation-add-to-cart,
    > .button.product-card-button--cart-recommendation
  )) {
    display: none !important;
  }
}

/* Les CTA ajoutables restent visuellement légers, mais deviennent réellement tactiles. */
@media (max-width: 1199px) and (hover: none),
       (max-width: 1199px) and (pointer: coarse) {

  .shop-content ul.products li.product .product-card-actions .button {
    min-height: 44px !important;
    line-height: 1.25 !important;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .umatatea-orderby__option {
    min-height: 44px;
  }

  .shop-content ul.products li.product .product-card-media {
    position: relative;
    display: block;
    margin-bottom: 16px;
  }

  .shop-content ul.products li.product .product-card-media > .product-card-image-link {
    display: block;
  }

  .shop-content ul.products li.product .product-card-media .product-card-image {
    margin-bottom: 0 !important;
  }

 
  .shop-content ul.products li.product .product-card-media .product-card-actions {
    position: absolute;
    right: 9px;
    bottom: 9px;
    z-index: 6;

    min-height: 0;
    margin: 0;
  }

    .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation {
    position: relative;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    border-radius: 8px !important;

    background: #fff !important;
    background-color: #fff !important;
    background-image: none !important;

    box-shadow: 0 1px 4px rgba(76, 33, 26, 0.04) !important;

    color: #4c211a !important;

    --product-card-cta-icon-size: 20px;

    gap: 0;
    line-height: 1 !important;

    opacity: 1 !important;
    visibility: visible !important;

    transform: none !important;

    transition:
      transform 140ms ease,
      background-color 140ms ease,
      box-shadow 140ms ease;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button:hover,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button:focus,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button:active,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button.loading,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button.added,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart:hover,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart:focus,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart:active,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart.loading,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart.added,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation:hover,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation:focus,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation:active,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation.loading,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation.added {
    background: #fff !important;
    background-color: #fff !important;
    background-image: none !important;

    border-color: transparent !important;
    box-shadow: 0 1px 4px rgba(76, 33, 26, 0.04) !important;

    color: #4c211a !important;

    opacity: 1 !important;
    visibility: visible !important;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button:active,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart:active,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation:active {
    transform: scale(0.96) !important;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button.loading,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart.loading,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation.loading {
    transform: none !important;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button .product-card-button__label,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart .product-card-button__label,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation .product-card-button__label,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button .product-card-button__plus,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart .product-card-button__plus,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation .product-card-button__plus {
    display: none;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button.loading::before,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart.loading::before,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation.loading::before {
    opacity: 0;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button.loading::after,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart.loading::after,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation.loading::after {
    content: "" !important;

    position: absolute;
    top: 50%;
    left: 50%;

    display: block !important;

    width: 14px;
    height: 14px;
    margin: 0 !important;

    border: 1.4px solid rgba(76, 33, 26, 0.20) !important;
    border-top-color: rgba(76, 33, 26, 0.88) !important;
    border-radius: 50% !important;

    background: transparent !important;
    background-image: none !important;

    opacity: 1 !important;

    transform: translate(-50%, -50%) !important;

    animation: umatatea-loader-spin 0.75s linear infinite !important;
  }
}

@media (max-width: 1199px) and (hover: none),
       (max-width: 1199px) and (pointer: coarse) {

  /* Icône partagée des CTA flottants : le SVG reste un tracé sans remplissage. */
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button::before,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart::before,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation::before {
    display: block !important;
    width: var(--product-card-cta-icon-size, 18px);
    height: var(--product-card-cta-icon-size, 18px);
    margin: 0;
    content: "" !important;

    background: #4c211a !important;
    background-color: #4c211a !important;
    background-image: none !important;

    transform: translateY(-0.25px);

    mask:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.25 9.5h13.5l-.65 9.25H5.9L5.25 9.5Z'/%3E%3Cpath d='M8.75 9.5V7.75a3.25 3.25 0 0 1 6.5 0V9.5'/%3E%3C/svg%3E")
      center / var(--product-card-cta-icon-size, 18px) var(--product-card-cta-icon-size, 18px)
      no-repeat;

    -webkit-mask:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.25 9.5h13.5l-.65 9.25H5.9L5.25 9.5Z'/%3E%3Cpath d='M8.75 9.5V7.75a3.25 3.25 0 0 1 6.5 0V9.5'/%3E%3C/svg%3E")
      center / var(--product-card-cta-icon-size, 18px) var(--product-card-cta-icon-size, 18px)
      no-repeat;
  }

}

/* Même icône sac que la homepage pour les recommandations fiche produit. */
@media (max-width: 960px) {
  body.home .home-product-tabs__grid > li .product-card-actions .button:is(
    .add_to_cart_button,
    .js-umatatea-variation-add-to-cart,
    .product-card-button--cart-recommendation
  )::before,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation::before {
    display: block !important;
    width: var(--product-card-cta-icon-size, 18px);
    height: var(--product-card-cta-icon-size, 18px);
    margin: 0;
    content: "" !important;
    background: #4c211a !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9h14l-.8 10.25H5.8L5 9Z'/%3E%3Cpath d='M8.2 9V7.4a3.8 3.8 0 0 1 7.6 0V9'/%3E%3C/svg%3E") center / var(--product-card-cta-icon-size, 18px) var(--product-card-cta-icon-size, 18px) no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9h14l-.8 10.25H5.8L5 9Z'/%3E%3Cpath d='M8.2 9V7.4a3.8 3.8 0 0 1 7.6 0V9'/%3E%3C/svg%3E") center / var(--product-card-cta-icon-size, 18px) var(--product-card-cta-icon-size, 18px) no-repeat;
  }
}

/* CTA flottant tablette : même composant, avec une ancre positionnée sur le média. */
@media (min-width: 681px) and (max-width: 1199px) and (hover: none),
       (min-width: 681px) and (max-width: 1199px) and (pointer: coarse) {
  .shop-content ul.products li.product .product-card-media:has(> .product-card-actions > .button.add_to_cart_button, > .product-card-actions > .button.js-umatatea-variation-add-to-cart, > .product-card-actions > .button.product-card-button--cart-recommendation) {
    position: relative;
    display: block;
    margin-bottom: 16px;
  }

  .shop-content ul.products li.product .product-card-media:has(> .product-card-actions > .button.add_to_cart_button, > .product-card-actions > .button.js-umatatea-variation-add-to-cart, > .product-card-actions > .button.product-card-button--cart-recommendation) .product-card-image {
    margin-bottom: 0 !important;
  }

  .shop-content ul.products li.product .product-card-media:has(> .product-card-actions > .button.add_to_cart_button, > .product-card-actions > .button.js-umatatea-variation-add-to-cart, > .product-card-actions > .button.product-card-button--cart-recommendation) .product-card-actions {
    position: absolute;
    right: 13px;
    bottom: 13px;
    z-index: 6;

    min-height: 0;
    margin: 0;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation {
    position: relative;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    border-radius: 11px !important;

    background: #fff !important;
    background-color: #fff !important;
    background-image: none !important;
    box-shadow: 0 1px 4px rgba(76, 33, 26, 0.04) !important;

    color: #4c211a !important;
    --product-card-cta-icon-size: 19px;

    gap: 0;
    line-height: 1 !important;
    transform: none !important;

    transition:
      transform 140ms ease,
      background-color 140ms ease,
      box-shadow 140ms ease;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button .product-card-button__label,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart .product-card-button__label,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation .product-card-button__label,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button .product-card-button__plus,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart .product-card-button__plus,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation .product-card-button__plus {
    display: none;
  }
}

.shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button:active:not(.loading),
.shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart:active:not(.loading),
.shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation:active:not(.loading) {
  transform: scale(0.96) !important;
}

@media (hover: hover) and (pointer: fine) {
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.add_to_cart_button:hover,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.js-umatatea-variation-add-to-cart:hover,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation:hover {
    background: #fff !important;
    background-color: #fff !important;
    color: #4c211a !important;
    transform: translateY(-1px) !important;
  }
}

@media (min-width: 961px) and (hover: hover) and (pointer: fine) {
  .shop-content ul.products li.product .product-card-media:has(> .product-card-actions > .button.product-card-button--cart-recommendation) {
    position: static;
    display: contents;
    margin-bottom: 0;
  }

  .shop-content ul.products li.product .product-card-media:has(> .product-card-actions > .button.product-card-button--cart-recommendation) .product-card-actions {
    position: static;
    right: auto;
    bottom: auto;
    z-index: auto;
    min-height: 20px;
    margin-top: auto;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation {
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--color-brown) !important;
    gap: 5px;
    line-height: 1.2 !important;
    white-space: nowrap;
    transform: none !important;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation::before {
    display: none !important;
    content: none !important;
    background: none !important;
    mask: none;
    -webkit-mask: none;
  }

  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation .product-card-button__label,
  .shop-content ul.products li.product .product-card-media .product-card-actions .button.product-card-button--cart-recommendation .product-card-button__plus {
    display: inline-block !important;
  }
}

/* Desktop — WooCommerce injecte "Voir le panier" après l'ajout :
   inutile puisque le drawer s'ouvre déjà. */
@media (min-width: 1200px) and (hover: hover) and (pointer: fine) {
  .shop-content ul.products li.product .added_to_cart,
  .shop-content ul.products li.product a.added_to_cart,
  .shop-content ul.products li.product a.added_to_cart.wc-forward {
    display: none !important;
  }
}


/* ==========================================================================
   CTA produit desktop — feedback ajout panier discret
   Mobile / tactile inchangés
   ========================================================================== */

@media (min-width: 1200px) and (hover: hover) and (pointer: fine) {

  /* Petite pression immédiate au clic */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.add_to_cart_button:active:not(.loading),
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.js-umatatea-variation-add-to-cart:active:not(.loading) {
    transform: translateY(1px) !important;
  }

  /*
   * Pendant l'AJAX :
   * pas de spinner, pas de disparition du texte.
   * Le drawer fournit déjà le feedback principal.
   */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.add_to_cart_button.loading,
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.js-umatatea-variation-add-to-cart.loading {
    opacity: 0.55 !important;
    visibility: visible !important;
    pointer-events: none !important;

    color: var(--color-brown) !important;
    background: transparent !important;

    transform: none !important;
    cursor: default;
  }

  /* Le texte et le + restent visibles */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.loading
    .product-card-button__label,
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.loading
    .product-card-button__plus {
    opacity: 1 !important;
    transform: none !important;
  }

  /* Neutralise tout spinner WooCommerce éventuel sur desktop */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.add_to_cart_button.loading::after,
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.js-umatatea-variation-add-to-cart.loading::after {
    display: none !important;
    content: none !important;
    animation: none !important;
  }
}


/* ==========================================================================
   CTA produit desktop — texte sous le prix, aligné à gauche
   Mobile / tactile inchangés
   ========================================================================== */

@media (min-width: 1200px) and (hover: hover) and (pointer: fine) {

  /*
   * Sur desktop, le média redevient transparent pour le layout :
   * image, contenu puis CTA suivent leur ordre naturel.
   */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-media {
    position: static;
    display: contents;
    margin-bottom: 0;
  }

  /*
   * L'image retrouve son espacement normal avec le titre.
   */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-image {
    margin-bottom: 16px !important;
  }

  /*
   * CTA dans le flux, juste sous le prix / éventuelle info logistique.
   * Pas de margin-top:auto : sa position ne dépend plus de la hauteur
   * du titre.
   */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions {
    position: static;
    right: auto;
    bottom: auto;
    z-index: auto;

    display: block;
    width: auto;
    min-height: 20px;

    margin-top: 5px !important;
    padding: 0;

    text-align: left;
  }

  /*
   * CTA texte desktop.
   */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.add_to_cart_button,
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.js-umatatea-variation-add-to-cart {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;

    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: auto !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;

    box-shadow: none !important;

    color: var(--color-brown) !important;

    gap: 5px;
    line-height: 1.2 !important;
    white-space: nowrap;

    transform: none !important;
  }

  /*
   * Pas d'icône panier sur desktop.
   */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.add_to_cart_button::before,
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.js-umatatea-variation-add-to-cart::before {
    display: none !important;
    width: 0 !important;
    height: 0 !important;

    content: none !important;

    background: none !important;
    mask: none !important;
    -webkit-mask: none !important;
  }

  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.add_to_cart_button
    .product-card-button__label,
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.js-umatatea-variation-add-to-cart
    .product-card-button__label,
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.add_to_cart_button
    .product-card-button__plus,
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.js-umatatea-variation-add-to-cart
    .product-card-button__plus {
    display: inline-block !important;
  }

  /*
   * Hover texte uniquement.
   */
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.add_to_cart_button:hover,
  .shop-content ul.products li.product:not(.umatatea-recommendation-card)
    .product-card-actions
    .button.js-umatatea-variation-add-to-cart:hover {
    background: transparent !important;
    background-color: transparent !important;

    color: var(--color-accent) !important;

    box-shadow: none !important;
    transform: none !important;
  }
}

/* ================= WOOCOMMERCE NOTICES - SHOP ================= */

.shop-page .woocommerce-notices-wrapper,
.shop-layout .woocommerce-notices-wrapper {
  grid-column: 1 / -1;
  width: 100%;
  margin: 0 0 32px;
}

.shop-page .woocommerce-message,
.shop-page .woocommerce-info,
.shop-page .woocommerce-error {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;

  margin: 0 0 32px !important;
  padding: 18px 22px 18px 52px !important;

  border: 1px solid rgba(90, 52, 43, 0.12) !important;
  border-top: 1px solid rgba(90, 52, 43, 0.12) !important;
  border-radius: var(--radius-md);

  background: var(--color-cream) !important;
  color: var(--color-brown) !important;

  font-family: var(--font-body);
  font-size: var(--fs-sm);
  line-height: 1.5;

  box-shadow: none !important;
  outline: none !important;
}

.shop-page .woocommerce-message::before,
.shop-page .woocommerce-info::before {
  content: "✓" !important;
  position: absolute;
  left: 22px;
  top: 50%;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 18px;
  height: 18px;

  border-radius: 50%;
  background: rgba(107, 143, 62, 0.12);
  color: #6b8f3e !important;

  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;

  transform: translateY(-50%);
}

.shop-page .woocommerce-error::before {
  content: "!" !important;
  position: absolute;
  left: 22px;
  top: 50%;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 18px;
  height: 18px;

  border-radius: 50%;
  background: rgba(160, 60, 45, 0.12);
  color: #a03c2d !important;

  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;

  transform: translateY(-50%);
}

.shop-page .woocommerce-message a.button,
.shop-page .woocommerce-info a.button,
.shop-page .woocommerce-error a.button {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0 24px !important;
  font-size: var(--fs-xs) !important;
}



/* ==========================================================================
   Shop ordering — custom no-native dropdown
   ========================================================================== */

.shop-toolbar-ordering {
  flex: 0 0 auto;
  padding-top: 4px;
}

.woocommerce-ordering {
  display: block !important;
  margin: 0 !important;
}

.umatatea-orderby {
  position: relative;
  width: 260px;
  color: var(--color-brown, #5a342b);
  font-family: var(--font-body, sans-serif);
}

.umatatea-orderby__details {
  position: relative;
  width: 100%;
}

.umatatea-orderby__summary {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr) max-content;
  align-items: center;
  gap: 12px;

  width: 100%;
  min-height: 48px;
  padding: 0 16px;

  border: 1px solid rgba(90, 52, 43, 0.16);
  background: #fff;
  color: var(--color-brown, #5a342b);

  list-style: none;
  cursor: pointer;
}

.umatatea-orderby__summary::-webkit-details-marker {
  display: none;
}

.umatatea-orderby__label {
  color: rgba(90, 52, 43, 0.54);
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  white-space: nowrap;
}

.umatatea-orderby__current {
  justify-self: end;
  min-width: 0;
  max-width: 100%;

  color: var(--color-brown, #5a342b);

  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: normal;
  overflow: visible;
  overflow-wrap: anywhere;
}

.umatatea-orderby__arrow {
  width: 7px;
  height: 7px;

  border-right: 1px solid rgba(90, 52, 43, 0.68);
  border-bottom: 1px solid rgba(90, 52, 43, 0.68);

  transform: translateY(-2px) rotate(45deg);

  opacity: 1;

  transition:
    transform 0.18s ease,
    border-color 0.18s ease;
}

.umatatea-orderby__details[open] .umatatea-orderby__arrow {
  transform: translateY(2px) rotate(225deg);
}

.umatatea-orderby__menu {
  position: absolute;
  z-index: 50;
  top: calc(100% + 6px);
  right: 0;

  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 6px 0;

  list-style: none;

  background: #fff;
  border: 1px solid rgba(90, 52, 43, 0.14);
  box-shadow: none;
}

.umatatea-orderby__item {
  margin: 0;
  padding: 0;
}

.umatatea-orderby__option {
  display: grid;
  grid-template-columns: 12px 1fr;
  align-items: center;
  gap: 9px;

  min-height: 40px;
  padding: 0 16px;

  color: rgba(90, 52, 43, 0.72);
  text-decoration: none !important;

  font-size: 10.8px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.105em;
  text-transform: uppercase;
}

.umatatea-orderby__option:hover {
  background: rgba(247, 241, 237, 0.52);
  color: var(--color-brown, #5a342b);
}

.umatatea-orderby__option.is-selected {
  background: rgba(247, 241, 237, 0.38);
  color: var(--color-brown, #5a342b);
}

.umatatea-orderby__check {
  color: var(--color-accent, #b97b56);

  font-size: 9px;
  font-weight: 600;
  line-height: 1;

  opacity: 0.9;
}


/* ==========================================================================
   Badges produit
   ========================================================================== */

.product-card-image {
  position: relative;
}

.product-card-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 8;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  box-sizing: border-box;
  max-width: calc(100% - 24px);
  min-height: 22px;
  margin: 0;
  padding: 0 8px;

  border: 0;
  border-radius: 2px;

  font-family: var(--font-body);
  font-size: 8px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  white-space: nowrap;

  box-shadow: 0 1px 5px rgba(76, 33, 26, 0.10);
  pointer-events: none;
}

/* Nouveauté */
.product-card-badge--new {
  background: rgba(255, 253, 249, 0.97);
  color: rgba(90, 52, 43, 0.84);
}

/* Best-seller */
.product-card-badge--best-seller {
  background: rgba(90, 52, 43, 0.94);
  color: #fffdfb;
  box-shadow: 0 2px 6px rgba(76, 33, 26, 0.14);
}

/* Soldes  */
.product-card-badge--sale {
  background: #d26f43;
  color: #fffdfb;
  box-shadow: 0 2px 6px rgba(76, 33, 26, 0.15);
}

/* Pièce unique */
.product-card-badge--piece-unique {
  background: #8f7359;
  color: #fffdfb;
  box-shadow: 0 2px 6px rgba(76, 33, 26, 0.13);
}

/* Épuisé */
.product-card-badge--out-of-stock {
  border: 1px solid rgba(90, 52, 43, 0.14);
  background: rgba(255, 253, 249, 0.95);
  color: rgba(90, 52, 43, 0.64);
  box-shadow: 0 1px 4px rgba(76, 33, 26, 0.07);
}


/* ================= CARD PRODUIT INDISPONIBLE / RUPTURE ================= */

.shop-content ul.products li.product.is-out-of-stock-card .product-image-hover {
  display: none !important;
}

.shop-content ul.products li.product.is-out-of-stock-card .product-card-image {
  position: relative;
}

.shop-content ul.products li.product.is-out-of-stock-card .product-card-image::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  background: rgba(255, 255, 255, 0.22);
  pointer-events: none;
}

.shop-content ul.products li.product.is-out-of-stock-card .product-card-image img,
.shop-content ul.products li.product.is-out-of-stock-card:hover .product-card-image img {
  opacity: 0.82 !important;
  filter: grayscale(0.24) brightness(0.97) contrast(0.93) !important;
}

.shop-content ul.products li.product.is-out-of-stock-card .woocommerce-loop-product__title,
.shop-content ul.products li.product.is-out-of-stock-card:hover .woocommerce-loop-product__title {
  color: rgba(90, 52, 43, 0.56) !important;
}

.shop-content ul.products li.product.is-out-of-stock-card .price,
.shop-content ul.products li.product.is-out-of-stock-card .price .amount,
.shop-content ul.products li.product.is-out-of-stock-card .price bdi {
  color: rgba(185, 123, 86, 0.52) !important;
}

/* Variation indisponible / bouton rupture */
.single-product-page .single_add_to_cart_button.is-disabled,
.single-product-page .single_add_to_cart_button:disabled {
  width: 100%;
  min-height: 54px;

  border: 1px solid rgba(90, 52, 43, 0.18) !important;
  background: rgba(247, 241, 237, 0.92) !important;
  color: rgba(90, 52, 43, 0.58) !important;

  cursor: not-allowed !important;
  opacity: 1 !important;

  font-family: var(--font-body);
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;

  box-shadow: none !important;
  transform: none !important;
}




/* ==========================================================================
   Shop load more
   ========================================================================== */

.umatatea-shop-load-more-wrap {
  display: flex;
  justify-content: center;
  margin: 44px 0 0;
}

.umatatea-shop-load-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 168px;
  min-height: 46px;
  padding: 0 28px;

  border: 1px solid rgba(90, 52, 43, 0.34);
  border-radius: 999px;
  background: transparent;
  color: rgba(90, 52, 43, 0.88);

  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;

  cursor: pointer;

  transition:
    border-color 0.18s ease,
    background-color 0.18s ease,
    color 0.18s ease,
    transform 0.18s ease;
}

.umatatea-shop-load-more:hover {
  border-color: var(--color-brown);
  background: var(--color-brown);
  color: #fff;
  transform: translateY(-1px);
}

.umatatea-shop-load-more.is-loading {
	opacity: 0.62;
	pointer-events: none;
	position: relative;
	cursor: wait;
}

.umatatea-shop-load-more.is-loading::after {
	content: "";
	display: inline-block;
	width: var(--umatatea-loader-size-small);
	height: var(--umatatea-loader-size-small);
	margin-left: 10px;
	border: var(--umatatea-loader-border-width) solid currentColor;
	border-top-color: transparent;
	border-radius: 50%;
	background: transparent;
	animation: umatatea-loader-spin var(--umatatea-loader-speed) linear infinite;
}

@media (prefers-reduced-motion: reduce) {
	.umatatea-shop-load-more.is-loading::after {
		animation-duration: 1.8s;
	}
}

.umatatea-shop-load-more:focus-visible {
  outline: 2px solid rgba(90, 52, 43, 0.36);
  outline-offset: 4px;
}

/* ==========================================================================
   Responsive boutique
   ========================================================================== */

/* ================= TABLETTE / MOBILE ================= */

@media (max-width: 960px) {
  html,
  body {
    overflow-x: hidden !important;
  }

  .shop-page {
    width: 100%;
    overflow-x: hidden;
  }

  .shop-layout {
    display: block !important;
    width: 100%;
    max-width: 100%;
    margin: 0 auto !important;
    padding: 24px 20px 68px !important;
    box-sizing: border-box;
  }

  .shop-sidebar,
  .shop-content {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .shop-sidebar {
    position: static !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
  }

  .shop-breadcrumb {
    display: none !important;
  }

  .shop-categories {
    display: flex !important;
    flex-flow: row nowrap !important;
    gap: 8px !important;

    margin: 0 -20px 26px 0 !important;
    padding: 0 20px 8px 0 !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .shop-categories::-webkit-scrollbar {
    display: none;
  }

  .shop-categories li {
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .shop-categories a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    min-height: 44px;
    padding: 0 14px !important;

    border: 1px solid rgba(90, 52, 43, 0.16) !important;
    border-radius: 999px !important;
    background: #fff !important;

    color: var(--color-brown) !important;
    font-family: var(--font-body);
    font-size: 14px !important;
    font-weight: var(--fw-regular);
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none;
    white-space: nowrap !important;
    text-decoration: none !important;
  }

  .shop-category-item--has-children > .shop-category-parent-link {
    padding-right: 28px !important;
  }

  .shop-category-item--has-children {
    display: block;
    position: relative;
  }

  .shop-category-item--has-children > .shop-category-toggle {
    position: absolute;
    top: 13.5px;
    right: 28px;
    grid-column: auto;
    grid-row: auto;
    transform: translateY(-50%);
  }

  .shop-categories > li.shop-category-item--normal-start.shop-category-item--has-children > .shop-category-toggle {
    top: 27.5px;
  }

  .shop-subcategories {
    gap: 6px;
    margin: 8px 0 0;
    padding: 0;
  }

  .shop-subcategories a {
    display: inline-block !important;
    min-height: 0;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(90, 52, 43, 0.7) !important;
    font-size: 13px !important;
    font-weight: var(--fw-regular);
    letter-spacing: 0 !important;
    line-height: 1.35 !important;
    text-transform: none;
  }

  .shop-categories .current-cat > a {
    background: #fff !important;
    border-color: rgba(90, 52, 43, 0.24) !important;
    color: var(--color-brown) !important;
  }

  .shop-categories .current-cat > a::after {
    display: none !important;
    content: none !important;
  }

  .shop-toolbar {
    display: block !important;
    margin: 0 0 26px !important;
  }

  .shop-toolbar-title {
    display: block !important;
    margin: 0 0 16px !important;

    font-family: var(--font-commerce-title);
    font-size: clamp(38px, 11vw, 50px) !important;
    font-weight: var(--fw-regular);
    line-height: 0.96 !important;
    letter-spacing: -0.045em !important;
    color: var(--color-brown);
  }

  .shop-toolbar-count {
    margin-left: 6px !important;
    font-size: 11px !important;
    vertical-align: super;
    color: rgba(90, 52, 43, 0.45);
  }

  .shop-toolbar-ordering,
  .woocommerce-ordering,
  .umatatea-orderby {
    width: 100% !important;
    max-width: 100% !important;
  }

  .umatatea-orderby__summary,
  .woocommerce-ordering select {
    width: 100% !important;
    min-height: 44px !important;
    padding: 0 14px !important;

    border: 1px solid rgba(90, 52, 43, 0.14) !important;
    border-radius: 0 !important;
    background: #fff !important;

    color: var(--color-brown) !important;
    font-size: 11px !important;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .shop-content ul.products {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .shop-content ul.products li.product {
    float: none !important;
    clear: none !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .product-card-image {
  width: 100% !important;
  aspect-ratio: var(--brand-product-image-ratio, 5 / 6) !important;
  margin: 0 0 12px !important;
  overflow: hidden;
  background: var(--color-cream);
}

  .product-card-image img {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .shop-content ul.products li.product .woocommerce-loop-product__title {
    margin: 0 0 5px !important;

    font-family: var(--font-body) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.28 !important;
    letter-spacing: 0 !important;
    color: var(--color-brown) !important;
  }

 .shop-content ul.products li.product .product-card-price {
  display: block !important;
  margin: 0 !important;
}

.shop-content ul.products li.product .umatatea-card-price {
  font-size: 12.5px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  gap: 0.35rem;
}

.product-card-badge {
  top: 8px;
  left: 8px;

  max-width: calc(100% - 16px);
  min-height: 20px;
  padding: 0 7px;

  font-size: 7.5px;
  line-height: 20px;
  letter-spacing: 0.075em;
}

  .umatatea-shop-load-more-wrap {
    margin-top: 40px !important;
  }

  .umatatea-shop-load-more {
    width: 100% !important;
    min-height: 48px !important;
  }
}

/* Mobile : deux cartes fluides jusqu'au vrai seuil tablette. */
@media (max-width: 640px) {
  .shop-content ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 34px 14px !important;
  }
}

/* Tablette : trois cartes fluides sur toute la largeur disponible. */
@media (min-width: 641px) and (max-width: 960px) {
  .shop-content ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: clamp(16px, 2.5vw, 20px) !important;
    row-gap: 34px !important;
  }
}

@media (max-width: 390px) {
  .shop-layout {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .shop-categories {
    margin-right: -18px !important;
    padding-right: 18px !important;
  }

  .shop-content ul.products {
    gap: 30px 14px !important;
  }

  .shop-content ul.products li.product .woocommerce-loop-product__title {
    font-size: 12.5px !important;
  }
}


/* ==========================================================================
   Cart drawer — hiérarchie boutons
   ========================================================================== */

/* Voir le panier : secondaire */
.cart-drawer__actions .cart-drawer__button:first-child {
  background: transparent !important;
  background-color: transparent !important;

  border: 1px solid rgba(90, 52, 43, 0.28) !important;

  color: var(--color-brown) !important;
  -webkit-text-fill-color: var(--color-brown) !important;
}

.cart-drawer__actions .cart-drawer__button:first-child:hover {
  background: rgba(90, 52, 43, 0.06) !important;
  background-color: rgba(90, 52, 43, 0.06) !important;

  border-color: rgba(90, 52, 43, 0.42) !important;

  color: var(--color-brown) !important;
  -webkit-text-fill-color: var(--color-brown) !important;

}

/* Commander : action principale */
.cart-drawer__actions .cart-drawer__button:nth-child(2),
.cart-drawer__button--checkout,
.cart-drawer__button.checkout,
.cart-drawer__button[href*="checkout"] {
  background: var(--color-brown) !important;
  background-color: var(--color-brown) !important;

  border: 1px solid var(--color-brown) !important;

  color: #fffdfb !important;
  -webkit-text-fill-color: #fffdfb !important;

  opacity: 1 !important;
}

.cart-drawer__actions .cart-drawer__button:nth-child(2):hover,
.cart-drawer__button--checkout:hover,
.cart-drawer__button.checkout:hover,
.cart-drawer__button[href*="checkout"]:hover {
  background: #4a2418 !important;
  background-color: #4a2418 !important;

  border-color: #4a2418 !important;

  color: #fffdfb !important;
  -webkit-text-fill-color: #fffdfb !important;

}


@media (min-width: 961px) and (max-width: 1280px) {
  .shop-layout {
    gap: 44px !important;
  }

  .shop-content ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 28px !important;
  }
}

/* ==========================================================================
   Boutique — sidebar sticky desktop
   ========================================================================== */

@media (min-width: 1200px) {
  .shop-page,
  .shop-layout,
  .shop-content {
    overflow: visible !important;
  }

  .shop-layout {
    display: grid !important;
    grid-template-columns: 210px minmax(0, 1fr) !important;
    align-items: stretch !important;
    min-height: calc(100vh - var(--top-banner-height, 30.5px) - 84px) !important;
  }

  /* Sans pagination, la hauteur de fin suit réellement la dernière card. */
  .shop-layout.is-catalog-complete {
    min-height: 0 !important;
  }

  .shop-sidebar {
    position: static !important;
    align-self: stretch !important;
    height: auto !important;
    z-index: 30 !important;
  }

  .shop-sidebar-nav {
    position: sticky !important;
    top: calc(var(--top-banner-height, 30.5px) + 84px + 28px) !important;
  }
}

/* ==========================================================================
   Boutique — sidebar ajustée quand le bandeau haut est masqué
   ========================================================================== */

@media (min-width: 1200px) {
  body.umatatea-header-compact .shop-sidebar-nav {
    top: calc(84px + 28px) !important;
  }
}

/* ==========================================================================
   Boutique — sécurité badges product cards
   ========================================================================== */

.shop-content ul.products li.product .product-card-image::after {
  z-index: 4 !important;
}

.product-image-main {
  z-index: 1 !important;
}

.product-image-hover {
  z-index: 2 !important;
}

/* Cartes sans image secondaire : zoom discret uniquement. */
.shop-content ul.products li.product .product-card-image.no-hover-image::after {
  display: none;
}

/* Dérivée 5:6 technique — aucun moteur de recadrage frontend. */
.product-card-image img[data-product-image-derived="1"] {
	position: absolute !important;
	inset: 0 !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center !important;
	transform: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Le recadrage reste porté par l’image ; le zoom sans image secondaire est
 * isolé dans un wrapper qui ne reçoit aucun transform de cadrage. */
.product-card-image.no-hover-image .product-card-zoom-layer {
	position: absolute;
	inset: 0;
	display: block;
	overflow: hidden;
	transform: scale(1);
	transform-origin: center center;
	transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
	.product-card-image.no-hover-image:hover .product-card-zoom-layer {
		transform: scale(1.015);
	}
}

@media (prefers-reduced-motion: reduce) {
	.product-card-image.no-hover-image .product-card-zoom-layer {
		transition: none;
	}

	.product-card-image.no-hover-image:hover .product-card-zoom-layer {
		transform: scale(1);
	}
}


/* ==========================================================================
   Prix promotionnels — rendu final
   ========================================================================== */

/*
 * Prix courant + ancien prix sur une même ligne.
 * La remise est visible sans rendre la carte plus lourde
 * qu’un produit au prix normal.
 */
.shop-content ul.products li.product .umatatea-card-price--sale {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: baseline !important;
  flex-wrap: wrap !important;
  gap: 8px !important;

  width: auto !important;
  height: auto !important;
  margin: 0 !important;

  white-space: normal;
}

/* Prix réellement payé */
.shop-content ul.products li.product
  .umatatea-card-price--sale
  .umatatea-card-price__sale {
  color: #c85f35 !important;

  font-size: 13.5px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.01em;
}

/* Ancien prix */
.shop-content ul.products li.product
  .umatatea-card-price--sale
  .umatatea-card-price__regular {
  color: rgba(90, 52, 43, 0.52) !important;

  font-size: 12.5px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;

  text-decoration-line: line-through !important;
  text-decoration-thickness: 1px !important;
  text-decoration-color: rgba(90, 52, 43, 0.58) !important;
  text-decoration-skip-ink: none;

  opacity: 1 !important;
}

/*
 * Empêche les styles WooCommerce imbriqués de modifier
 * la taille, la couleur ou la barre de l’ancien prix.
 */
.shop-content ul.products li.product
  .umatatea-card-price--sale
  .umatatea-card-price__regular
  .amount,
.shop-content ul.products li.product
  .umatatea-card-price--sale
  .umatatea-card-price__regular
  bdi {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  text-decoration: inherit !important;
}
