/*
 * ==========================================================
 * LUDORUM — STYLE GLOBAL DES CARTES PRODUITS
 * Version 1.0.2
 *
 * Reprend les détails visuels appréciés sur l’Accueil :
 * - titre noir
 * - prix normal bleu / promotion rouge
 * - bouton Ajouter au panier bleu nuit
 * - cœur wishlist seul
 * - badge Promo rouge
 * - statut Disponible / Indisponible
 *
 * La grille, le nombre de colonnes et le header ne sont pas modifiés.
 * ==========================================================
 */

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) {
  --lud-card-night: #071a33;
  --lud-card-blue: #0b4dbb;
  --lud-card-blue-light: #1967d2;
  --lud-card-yellow: #f2a900;
  --lud-card-red: #cf1f1f;
  --lud-card-green: #18833a;
  --lud-card-orange: #b36f00;
  --lud-card-gray: #8d96a3;
}

/* ==========================================================
   STRUCTURE MINIMALE DES CARTES
   ========================================================== */

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product > a.woocommerce-LoopProduct-link {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  color: inherit !important;
  text-decoration: none !important;
}

/* ==========================================================
   TITRES PRODUITS TOUJOURS NOIRS
   ========================================================== */

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .woocommerce-loop-product__title,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .woocommerce-loop-product__title {
  color: #111111 !important;
  font-weight: 800 !important;
}

/* ==========================================================
   PRIX
   ========================================================== */

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .price,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .price > span,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .price .woocommerce-Price-amount,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .price,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .price > span,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .price .woocommerce-Price-amount {
  color: var(--lud-card-blue) !important;
  font-weight: 850 !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .price del,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .price del .woocommerce-Price-amount,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .price del,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .price del .woocommerce-Price-amount {
  color: var(--lud-card-gray) !important;
  opacity: 1 !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .price ins,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .price ins .woocommerce-Price-amount,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .price ins,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .price ins .woocommerce-Price-amount {
  color: var(--lud-card-red) !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

/* ==========================================================
   BOUTONS AJOUTER AU PANIER / VOIR LE PANIER
   ========================================================== */

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .button,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .button,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart {
  order: 4 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 40px !important;
  margin: 0 !important;
  padding: 9px 10px !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 9px !important;
  color: #ffffff !important;
  background:
    linear-gradient(
      120deg,
      var(--lud-card-night) 0%,
      #082f68 52%,
      var(--lud-card-blue) 100%
    ) !important;
  box-shadow:
    0 9px 20px rgba(7, 26, 51, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.10) !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  line-height: 1.15 !important;
  text-align: center !important;
  text-decoration: none !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .button:hover,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart:hover,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .button:hover,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart:hover {
  color: #ffffff !important;
  background: linear-gradient(135deg, #083f9b, var(--lud-card-blue)) !important;
  box-shadow: 0 13px 25px rgba(11, 77, 187, 0.30) !important;
  transform: translateY(-1px) !important;
}

/* ==========================================================
   STATUT DU STOCK
   ========================================================== */

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product::after,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product::after {
  order: 3 !important;
  display: flex !important;
  align-items: center !important;
  min-height: 23px !important;
  margin: 0 1px 9px !important;
  padding-left: 14px !important;
  background-repeat: no-repeat !important;
  background-position: left center !important;
  background-size: 7px 7px !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  line-height: 1.2 !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product.instock::after,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product.instock::after {
  content: "Disponible" !important;
  color: var(--lud-card-green) !important;
  background-image: radial-gradient(circle, #22a447 0 65%, transparent 67%) !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product.outofstock::after,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product.outofstock::after {
  content: "Indisponible" !important;
  color: var(--lud-card-red) !important;
  background-image: radial-gradient(circle, var(--lud-card-red) 0 65%, transparent 67%) !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product.onbackorder::after,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product.onbackorder::after {
  content: "Disponible sur commande" !important;
  color: var(--lud-card-orange) !important;
  background-image: radial-gradient(circle, #d58a00 0 65%, transparent 67%) !important;
}

/* ==========================================================
   BADGE PROMOTION
   ========================================================== */

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product span.onsale,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product span.onsale {
  z-index: 5 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 6px 8px !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #ffffff !important;
  background: var(--lud-card-red) !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 7px 15px rgba(207, 31, 31, 0.22) !important;
}

/* ==========================================================
   WISHLIST TI — CŒUR SEUL
   ========================================================== */

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinv-wraper.tinv-wishlist,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinv-wraper.tinv-wishlist {
  position: absolute !important;
  z-index: 6 !important;
  top: 12px !important;
  left: 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 38px !important;
  min-width: 38px !important;
  max-width: 38px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinvwl_add_to_wishlist_button,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinvwl_add_to_wishlist_button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 38px !important;
  min-width: 38px !important;
  max-width: 38px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(207, 31, 31, 0.14) !important;
  border-radius: 50% !important;
  color: var(--lud-card-red) !important;
  background: rgba(255, 255, 255, 0.94) !important;
  box-shadow: 0 7px 16px rgba(7, 26, 51, 0.12) !important;
  font-size: 0 !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  text-decoration: none !important;
  transition: color 0.18s ease, background 0.18s ease, transform 0.18s ease !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinvwl_add_to_wishlist_button:hover,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinvwl_add_to_wishlist_button:hover {
  color: #ffffff !important;
  background: var(--lud-card-red) !important;
  transform: scale(1.05) !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinvwl_add_to_wishlist_button .tinvwl_add_to_wishlist-text,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinvwl_add_to_wishlist_button span:not(.tinvwl-icon),
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinvwl_add_to_wishlist_button .tinvwl_add_to_wishlist-text,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinvwl_add_to_wishlist_button span:not(.tinvwl-icon) {
  display: none !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinvwl_add_to_wishlist_button::before,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinvwl_add_to_wishlist_button .tinvwl-icon,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinvwl_add_to_wishlist_button i,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinvwl_add_to_wishlist_button::before,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinvwl_add_to_wishlist_button .tinvwl-icon,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinvwl_add_to_wishlist_button i {
  display: inline-block !important;
  margin: 0 !important;
  color: inherit !important;
  font-size: 19px !important;
  line-height: 1 !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .tinvwl-tooltip {
  display: none !important;
}

/* Petite confirmation près du cœur, sans overlay plein écran. */
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinv-wraper.tinv-wishlist .tinvwl_added_to_wishlist.tinv-modal,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinv-wraper.tinv-wishlist .tinvwl_added_to_wishlist.tinv-modal {
  position: absolute !important;
  z-index: 9999 !important;
  top: auto !important;
  right: auto !important;
  bottom: 44px !important;
  left: 8px !important;
  display: block !important;
  width: max-content !important;
  min-width: 0 !important;
  max-width: 210px !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  transform: none !important;
  animation: ludCatalogueWishlistMessage 1.9s ease forwards !important;
  pointer-events: none !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .tinvwl_added_to_wishlist .tinv-overlay,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .tinvwl_added_to_wishlist .tinvwl-buttons-group,
body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .tinvwl_added_to_wishlist .tinv-wishlist-clear {
  display: none !important;
}

body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .tinvwl_added_to_wishlist .tinv-modal-inner {
  max-width: 210px !important;
  padding: 9px 11px !important;
  border: 1px solid rgba(7, 26, 51, 0.10) !important;
  border-radius: 9px !important;
  background: #ffffff !important;
  box-shadow: 0 10px 24px rgba(7, 26, 51, 0.15) !important;
  color: var(--lud-card-night) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
}

@keyframes ludCatalogueWishlistMessage {
  0% {
    opacity: 0;
    transform: translateY(6px) scale(0.96);
  }
  15%, 72% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  100% {
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px) scale(0.98);
  }
}

/* ==========================================================
   MOBILE — DÉTAILS UNIQUEMENT, GRILLE INCHANGÉE
   ========================================================== */

@media screen and (max-width: 767px) {
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product::after,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product::after {
    min-height: 21px !important;
    margin-bottom: 7px !important;
    font-size: 10px !important;
  }

  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .button,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .button,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart {
    min-height: 38px !important;
    padding: 7px 5px !important;
    font-size: 10px !important;
  }

  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinv-wraper.tinv-wishlist,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinv-wraper.tinv-wishlist {
    top: 8px !important;
    left: 8px !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
  }

  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinvwl_add_to_wishlist_button,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinvwl_add_to_wishlist_button {
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
  }

  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .tinvwl_added_to_wishlist .tinv-modal-inner {
    max-width: 170px !important;
    padding: 8px 9px !important;
    font-size: 10px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .button,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product .tinvwl_add_to_wishlist_button,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .button,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart,
  body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product .tinvwl_add_to_wishlist_button {
    transition: none !important;
  }
}

/* ==========================================================
   V1.0.1 — CORRECTION « VOIR LE PANIER »
   WooCommerce injecte ce lien après un ajout AJAX.
   On force sa couleur en blanc dans tous ses états, même si
   le thème ou un autre plugin applique une couleur de lien.
   ========================================================== */

html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart.wc-forward,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart.wc-forward:link,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart.wc-forward:visited,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart.wc-forward:hover,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart.wc-forward:focus,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .woocommerce ul.products li.product a.added_to_cart.wc-forward:active,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart.wc-forward,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart.wc-forward:link,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart.wc-forward:visited,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart.wc-forward:hover,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart.wc-forward:focus,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) .ludorum-catalogue ul.products li.product a.added_to_cart.wc-forward:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: none !important;
}

html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) a.added_to_cart.wc-forward,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) a.added_to_cart.wc-forward:visited,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) a.added_to_cart.wc-forward:hover,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) a.added_to_cart.wc-forward:focus,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) a.added_to_cart.wc-forward:active,
html body.ludorum-style-cartes-catalogue:not(.ludorum-pages-catalogue-v2) a.added_to_cart.wc-forward * {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* V1.0.2
 * Sur les pages gérées par Ludorum — Pages catalogue v2,
 * cette extension se met volontairement en retrait afin d'éviter
 * toute double règle sur stock, wishlist, prix et boutons.
 */
