/*
 * Ludorum — Carrousels Accueil v1.0.4
 * Ciblage strict : uniquement les trois zones produits de .lud-accueil-v2.
 */

.lud-accueil-v2 .lud-home-carousel-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 8px;
}

.lud-accueil-v2 .lud-home-carousel-controls {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.lud-accueil-v2 .lud-home-carousel-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;

  width: 34px;
  height: 34px;
  min-width: 34px;
  min-height: 34px;

  margin: 0;
  padding: 0;

  color: var(--home2-bleu, #0b4dbb);
  font-family: Arial, sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;

  background: #ffffff;
  border: 1px solid rgba(7, 26, 51, 0.15);
  border-radius: 50%;
  box-shadow: 0 5px 13px rgba(7, 26, 51, 0.07);

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

.lud-accueil-v2 .lud-home-carousel-button:hover,
.lud-accueil-v2 .lud-home-carousel-button:focus-visible {
  color: #ffffff;
  background: var(--home2-bleu, #0b4dbb);
  outline: none;
  transform: translateY(-1px);
}

.lud-accueil-v2 .lud-home-carousel-button:disabled {
  opacity: 0.35;
  cursor: default;
  transform: none;
}

.lud-accueil-v2 .lud-home-carousel-viewport {
  --lud-home-carousel-visible: 4;
  --lud-home-carousel-gap: 14px;

  position: relative;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  touch-action: pan-y;
}

/* Neutralise la grille existante uniquement après activation du JS. */
.lud-accueil-v2 .lud-home-carousel-viewport ul.products.lud-home-carousel-track {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: stretch !important;

  width: 100% !important;
  max-width: none !important;

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

  gap: var(--lud-home-carousel-gap) !important;

  transform: translate3d(0, 0, 0);
  transition: transform 0.58s cubic-bezier(0.22, 0.72, 0.26, 1);
  will-change: transform;
}

.lud-accueil-v2 .lud-home-carousel-viewport ul.products.lud-home-carousel-track > li.product {
  flex: 0 0 calc(
    (100% - (var(--lud-home-carousel-visible) - 1) * var(--lud-home-carousel-gap))
    / var(--lud-home-carousel-visible)
  ) !important;

  width: calc(
    (100% - (var(--lud-home-carousel-visible) - 1) * var(--lud-home-carousel-gap))
    / var(--lud-home-carousel-visible)
  ) !important;

  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}

.lud-accueil-v2 .lud-home-carousel-viewport.is-dragging ul.products.lud-home-carousel-track {
  transition: none !important;
}

/* Le carrousel est prêt : on évite un saut visuel lors de l'initialisation. */
.lud-accueil-v2 .lud-accueil-v2-grille-produits.is-carousel-ready {
  min-width: 0;
}

@media screen and (max-width: 950px) {
  .lud-accueil-v2 .lud-home-carousel-viewport {
    --lud-home-carousel-visible: 2;
  }
}

@media screen and (max-width: 767px) {
  .lud-accueil-v2 .lud-home-carousel-header-actions {
    width: 100%;
    margin-top: 12px;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .lud-accueil-v2 .lud-home-carousel-header-actions > a,
  .lud-accueil-v2 .lud-home-carousel-header-actions > .lud-accueil-v2-pastille-promo {
    width: auto !important;
    margin-top: 0 !important;
  }

  .lud-accueil-v2 .lud-home-carousel-viewport {
    --lud-home-carousel-visible: 2;
    --lud-home-carousel-gap: 9px;
  }
}

@media screen and (max-width: 360px) {
  .lud-accueil-v2 .lud-home-carousel-viewport {
    --lud-home-carousel-visible: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lud-accueil-v2 .lud-home-carousel-viewport ul.products.lud-home-carousel-track {
    transition: none !important;
  }

  .lud-accueil-v2 .lud-home-carousel-button {
    transition: none !important;
  }
}

/* ==========================================================
   V1.0.2 — PROMOTIONS IDENTIQUE AUX AUTRES SECTIONS
   Supprime le grand encadrement ivoire propre à Promotions.
   La pastille « Bon plan » reste disponible dans l'en-tête.
   ========================================================== */

.lud-accueil-v2 #promotions.lud-accueil-v2-zone-promo {
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}


/* ==========================================================
   V1.0.3 — GALERIE « NOS PACKS »
   Injectée automatiquement entre Promotions et Meilleures ventes.
   ========================================================== */

.lud-accueil-v2 #packs-ludorum {
  position: relative;
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-sur-titre,
.lud-accueil-v2 #packs-ludorum h2 {
  color: #d89400 !important;
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-packs-heading strong {
  color: var(--home2-rouge, #cf1f1f);
  font-weight: 900;
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-link {
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 9px;
  font-size: 11.5px;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-link-societe {
  color: #a96f00;
  background: rgba(255, 194, 30, .11);
  border: 1px solid rgba(217, 149, 0, .25);
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-link-accessoires {
  color: var(--home2-bleu, #0b4dbb);
  background: rgba(11, 77, 187, .07);
  border: 1px solid rgba(11, 77, 187, .15);
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-link:hover,
.lud-accueil-v2 #packs-ludorum .lud-home-pack-link:focus-visible {
  transform: translateY(-1px);
}

/* Petit liseré Ludorum propre à la section Packs. */
.lud-accueil-v2 #packs-ludorum::before {
  content: "";
  display: block;
  width: 72px;
  height: 4px;
  margin-bottom: 12px;
  border-radius: 999px;
  background: linear-gradient(90deg, #0b4dbb 0 33.33%, #ffc21e 33.33% 66.66%, #cf1f1f 66.66% 100%);
}

@media screen and (max-width: 767px) {
  .lud-accueil-v2 #packs-ludorum .lud-home-pack-link {
    flex: 1 1 auto;
    justify-content: center;
    text-align: center;
  }
}


/* ==========================================================
   V1.0.4 — IDENTITÉ « TAPIS DE JEU » POUR NOS PACKS
   Vert feutre léger + bandeau promotions non cumulables.
   ========================================================== */

.lud-accueil-v2 #packs-ludorum {
  --lud-pack-green: #285b47;
  --lud-pack-green-deep: #1f4a3a;
  --lud-pack-green-soft: #eaf3ee;
  --lud-pack-cream: #fff8e8;
  --lud-pack-gold: #e6b93f;

  padding: 22px 22px 24px !important;
  overflow: hidden;
  border: 1px solid rgba(31, 74, 58, .18);
  border-radius: 22px;
  background:
    radial-gradient(circle at 18% 14%, rgba(255,255,255,.075) 0 2px, transparent 2.5px) 0 0 / 18px 18px,
    linear-gradient(135deg, #2d654f 0%, var(--lud-pack-green) 52%, var(--lud-pack-green-deep) 100%) !important;
  box-shadow:
    0 18px 42px rgba(20, 55, 42, .13),
    inset 0 1px 0 rgba(255,255,255,.08);
}

/* Liseré supérieur façon piste / table de jeu. */
.lud-accueil-v2 #packs-ludorum::before {
  width: 92px !important;
  height: 5px !important;
  margin-bottom: 14px !important;
  background: linear-gradient(90deg, #f4d36a 0%, #e6b93f 55%, #c99824 100%) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-entete-ligne {
  align-items: center;
  gap: 12px;
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-packs-heading {
  min-width: 0;
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-sur-titre {
  color: #f3d978 !important;
  letter-spacing: .08em;
}

.lud-accueil-v2 #packs-ludorum h2 {
  color: #ffffff !important;
  text-shadow: 0 1px 1px rgba(0,0,0,.16);
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-packs-heading p {
  color: rgba(255,255,255,.82) !important;
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-packs-heading strong {
  color: #ffe07a !important;
}

/* Petit bandeau dynamique placé dans la zone d'actions à droite du titre. */
.lud-accueil-v2 #packs-ludorum .lud-home-pack-notice {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 38px;
  padding: 8px 13px;
  overflow: hidden;
  border: 1px solid rgba(255, 235, 168, .52);
  border-radius: 999px;
  background: rgba(255, 248, 232, .96);
  color: #254a3b;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.15;
  white-space: nowrap;
  box-shadow:
    0 6px 14px rgba(14, 42, 31, .16),
    inset 0 1px 0 rgba(255,255,255,.85);
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-notice::after {
  content: "";
  position: absolute;
  top: -25%;
  bottom: -25%;
  left: -35%;
  width: 22%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.78), transparent);
  transform: skewX(-18deg);
  animation: ludPackNoticeShine 4.8s ease-in-out infinite;
  pointer-events: none;
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-notice-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: #cf1f1f;
  box-shadow: 0 0 0 3px rgba(207,31,31,.10);
  animation: ludPackNoticePulse 2.2s ease-in-out infinite;
}

@keyframes ludPackNoticeShine {
  0%, 62% { left: -35%; opacity: 0; }
  68% { opacity: .9; }
  86% { left: 118%; opacity: .15; }
  100% { left: 118%; opacity: 0; }
}

@keyframes ludPackNoticePulse {
  0%, 100% { transform: scale(1); opacity: .78; }
  50% { transform: scale(1.18); opacity: 1; }
}

/* Les deux raccourcis restent lisibles mais reprennent la DA feutre. */
.lud-accueil-v2 #packs-ludorum .lud-home-pack-link {
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.10) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
  transition: transform .16s ease, background-color .16s ease, border-color .16s ease;
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-link:hover,
.lud-accueil-v2 #packs-ludorum .lud-home-pack-link:focus-visible {
  color: #173a2c !important;
  background: #fff3c9 !important;
  border-color: #f0cf67 !important;
}

/* Les cartes restent blanches : contraste net avec le tapis vert. */
.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-grille-produits {
  margin-top: 18px;
  padding: 14px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 17px;
  background: rgba(255,255,255,.065);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

@media screen and (max-width: 950px) {
  .lud-accueil-v2 #packs-ludorum {
    padding: 18px 16px 20px !important;
  }

  .lud-accueil-v2 #packs-ludorum .lud-home-pack-notice {
    white-space: normal;
    text-align: center;
  }
}

@media screen and (max-width: 767px) {
  .lud-accueil-v2 #packs-ludorum {
    border-radius: 18px;
  }

  .lud-accueil-v2 #packs-ludorum .lud-home-carousel-header-actions {
    align-items: stretch;
    gap: 8px;
  }

  .lud-accueil-v2 #packs-ludorum .lud-home-pack-notice {
    order: -1;
    flex: 1 1 100%;
    width: 100%;
    min-height: 36px;
  }

  .lud-accueil-v2 #packs-ludorum .lud-home-pack-link {
    flex: 1 1 calc(50% - 5px);
  }

  .lud-accueil-v2 #packs-ludorum .lud-accueil-v2-grille-produits {
    margin-top: 14px;
    padding: 9px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lud-accueil-v2 #packs-ludorum .lud-home-pack-notice::after,
  .lud-accueil-v2 #packs-ludorum .lud-home-pack-notice-dot {
    animation: none !important;
  }
}


/* ==========================================================
   V1.0.6 — NOS PACKS BLANC + VERT PLUS CLAIR
   Fond identique aux autres galeries. Le vert sert uniquement
   à identifier la section via les textes et petits accents.
   ========================================================== */

.lud-accueil-v2 #packs-ludorum {
  --lud-pack-green: #4f8a6d;
  --lud-pack-green-deep: #3c7258;
  --lud-pack-green-soft: #eef7f2;

  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  box-shadow: none !important;
}

/* Petit accent vert uniquement, sans fond coloré. */
.lud-accueil-v2 #packs-ludorum::before {
  width: 72px !important;
  height: 4px !important;
  margin-bottom: 12px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, #3c7258 0%, #4f8a6d 55%, #6ca487 100%) !important;
  box-shadow: none !important;
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-sur-titre {
  color: #4f8a6d !important;
  letter-spacing: .08em;
}

.lud-accueil-v2 #packs-ludorum h2 {
  color: #3c7258 !important;
  text-shadow: none !important;
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-packs-heading p {
  margin-top: 5px !important;
  color: #58796b !important;
  font-size: 14px !important;
  font-weight: 650 !important;
}

.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-packs-heading strong {
  color: #4f8a6d !important;
  font-weight: 900 !important;
}

/* Bandeau info blanc, texte vert. */
.lud-accueil-v2 #packs-ludorum .lud-home-pack-notice {
  border: 1px solid rgba(79, 138, 109, .30) !important;
  background: #ffffff !important;
  color: #3c7258 !important;
  box-shadow:
    0 4px 12px rgba(60, 114, 88, .08),
    inset 0 1px 0 rgba(255,255,255,.95) !important;
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-notice::after {
  background: linear-gradient(90deg, transparent, rgba(79,138,109,.10), transparent) !important;
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-notice-dot {
  background: #4f8a6d !important;
  box-shadow: 0 0 0 3px rgba(79,138,109,.10) !important;
}

/* Raccourcis : fond blanc, texte et contour verts. */
.lud-accueil-v2 #packs-ludorum .lud-home-pack-link,
.lud-accueil-v2 #packs-ludorum .lud-home-pack-link-societe,
.lud-accueil-v2 #packs-ludorum .lud-home-pack-link-accessoires {
  color: #4f8a6d !important;
  background: #ffffff !important;
  border: 1px solid rgba(79,138,109,.26) !important;
  box-shadow: 0 3px 9px rgba(60,114,88,.06) !important;
}

.lud-accueil-v2 #packs-ludorum .lud-home-pack-link:hover,
.lud-accueil-v2 #packs-ludorum .lud-home-pack-link:focus-visible {
  color: #3c7258 !important;
  background: #f6fbf8 !important;
  border-color: rgba(79,138,109,.46) !important;
}

/* Zone produits identique aux autres galeries : aucun fond vert. */
.lud-accueil-v2 #packs-ludorum .lud-accueil-v2-grille-produits {
  margin-top: 18px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

@media screen and (max-width: 950px) {
  .lud-accueil-v2 #packs-ludorum {
    padding: 0 !important;
  }
}

@media screen and (max-width: 767px) {
  .lud-accueil-v2 #packs-ludorum {
    border-radius: 0 !important;
  }

  .lud-accueil-v2 #packs-ludorum .lud-accueil-v2-grille-produits {
    margin-top: 14px;
    padding: 0 !important;
  }
}
