/*
 * LMJ Theme - Bootstrap 5 Custom Theme
 * Le Marché Japonais - Refonte 2025
 */

/* ========================================
   CSS Variables (Custom Properties)
   ======================================== */
:root {
  /* Couleurs principales LMJ */
  --lmj-red: #C22418;
  --lmj-red-dark: #a01f14;
  --lmj-red-light: #d41400;

  --lmj-green: #739e23;
  --lmj-green-dark: #5a7e17;
  --lmj-green-light: #a6bd66;

  --lmj-brown: #462d18;
  --lmj-brown-light: #913638;

  /* Gris */
  --lmj-gray-900: #333333;
  --lmj-gray-700: #555555;
  --lmj-gray-600: #636363;
  --lmj-gray-400: #999999;
  --lmj-gray-200: #cdcdcd;
  --lmj-gray-100: #ebebeb;

  /* Override Bootstrap */
  --bs-primary: var(--lmj-red);
  --bs-primary-rgb: 194, 36, 24;
  --bs-success: var(--lmj-green);
  --bs-success-rgb: 115, 158, 35;

  /* Typography */
  --lmj-font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --lmj-font-heading: 'Catamaran', 'Inter', Arial, sans-serif;

  /* Design System - Cards & Shadows */
  --lmj-shadow-sm: 0 2px 8px rgba(109, 82, 54, 0.10);
  --lmj-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.1);
  --lmj-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
  --lmj-shadow-hover: 0 12px 32px rgba(0, 0, 0, 0.15);

  /* Border radius */
  --lmj-radius-sm: 8px;
  --lmj-radius-md: 12px;
  --lmj-radius-lg: 16px;
  --lmj-radius-pill: 50px;

  /* Transitions */
  --lmj-transition-fast: 0.15s ease;
  --lmj-transition-base: 0.2s ease;
  --lmj-transition-smooth: 0.3s ease;
}

/* ========================================
   Bootstrap Primary Button Overrides
   ======================================== */
.btn-primary {
  --bs-btn-bg: var(--lmj-red);
  --bs-btn-border-color: var(--lmj-red);
  --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--lmj-red-dark);
  --bs-btn-hover-border-color: var(--lmj-red-dark);
  --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--lmj-red-dark);
  --bs-btn-active-border-color: var(--lmj-red-dark);
  --bs-btn-active-color: #fff;
  --bs-btn-disabled-bg: var(--lmj-red);
  --bs-btn-disabled-border-color: var(--lmj-red);
}

.btn-outline-primary {
  --bs-btn-color: var(--lmj-red);
  --bs-btn-border-color: var(--lmj-red);
  --bs-btn-hover-bg: var(--lmj-red);
  --bs-btn-hover-border-color: var(--lmj-red);
  --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--lmj-red-dark);
  --bs-btn-active-border-color: var(--lmj-red-dark);
  --bs-btn-active-color: #fff;
}

/* ========================================
   Base Styles
   ======================================== */
body {
  font-family: var(--lmj-font-family);
  color: var(--lmj-gray-900);
  background-color: #f8f8f8;
}

a {
  color: var(--lmj-gray-900);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: var(--lmj-red);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--lmj-font-heading);
  font-weight: 600;
}

/* ========================================
   Top Bar (Livraison info)
   ======================================== */
.lmj-topbar {
  background-color: var(--lmj-gray-100);
  padding: 8px 0;
  font-size: 14px;
  border-bottom: 1px solid var(--lmj-gray-200);
}

.lmj-topbar .highlight {
  color: var(--lmj-red);
  font-weight: bold;
}

.lmj-topbar-link {
  color: inherit;
  text-decoration: none;
}
.lmj-topbar-link:hover {
  color: var(--lmj-red);
  text-decoration: underline;
}
.lmj-topbar-sep {
  margin: 0 6px;
  opacity: 0.4;
}
@media (max-width: 991.98px) {
  .lmj-topbar-link,
  .lmj-topbar-sep {
    display: none;
  }
}

/* ========================================
   Header
   ======================================== */
.lmj-header {
  background-color: #fff;
  padding: 15px 0;
  box-shadow: var(--lmj-shadow-sm);
  position: sticky;
  top: 0;
  z-index: 1000;
}

.lmj-logo img {
  max-height: 80px;
  width: auto;
}

/* Search */
.lmj-search {
  position: relative;
}

.lmj-search input {
  border: 2px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-pill);
  padding: 12px 50px 12px 20px;
  width: 100%;
  font-size: 0.95rem;
  font-family: var(--lmj-font-family);
  transition: var(--lmj-transition-base);
  min-height: 44px;
}

.lmj-search input:focus {
  outline: none;
  border-color: var(--lmj-red);
  box-shadow: 0 0 0 3px rgba(194, 36, 24, 0.1);
}

.lmj-search input::placeholder {
  color: var(--lmj-gray-400);
}

.lmj-search button {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--lmj-red);
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  color: #fff;
  cursor: pointer;
  transition: var(--lmj-transition-base);
  display: flex;
  align-items: center;
  justify-content: center;
}

.lmj-search button:hover {
  background: var(--lmj-red-dark);
  transform: translateY(-50%) scale(1.05);
}

/* Mini Cart */
.lmj-minicart {
  position: relative;
}

.lmj-minicart-icon {
  font-size: 24px;
  color: var(--lmj-gray-700);
  position: relative;
  display: inline-block;
  cursor: pointer;
  transition: color 0.2s ease;
}

.lmj-minicart-icon:hover {
  color: var(--lmj-red);
}

.lmj-minicart-count {
  position: absolute;
  top: -8px;
  right: -8px;
  background: var(--lmj-red);
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Tickets badge */
.lmj-tickets-icon {
  position: relative;
  color: var(--lmj-gray-700);
  font-size: 1.4rem;
  text-decoration: none;
  transition: color 0.2s;
}
.lmj-tickets-icon:hover {
  color: var(--lmj-red);
}
.lmj-tickets-count {
  position: absolute;
  top: -8px;
  right: -8px;
  background: var(--lmj-red);
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lmj-minicart-total {
  font-size: 14px;
  font-weight: bold;
  color: var(--lmj-gray-700);
  margin-left: 10px;
}

/* Account */
.lmj-account-icon {
  font-size: 24px;
  color: var(--lmj-gray-700);
  cursor: pointer;
  transition: color 0.2s ease;
}

.lmj-account-icon:hover {
  color: var(--lmj-red);
}

/* ========================================
   Navigation & Mega Menu
   ======================================== */
.lmj-navbar {
  background-color: var(--lmj-red);
  padding: 0;
  position: relative;
}

.lmj-navbar .navbar-nav {
  width: 100%;
  justify-content: center;
}

.lmj-navbar .navbar-nav .nav-link {
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  text-transform: uppercase;
  padding: 15px 25px;
  transition: background-color 0.2s ease;
}

.lmj-navbar .navbar-nav .nav-link:hover,
.lmj-navbar .navbar-nav .nav-link:focus {
  background-color: var(--lmj-red-dark);
  color: #fff;
}

.lmj-navbar .navbar-nav .nav-item.dropdown {
  position: static; /* Important: mega menu positionné par rapport à navbar, pas au dropdown */
}

.lmj-navbar .navbar-nav .nav-item.dropdown:hover > .nav-link {
  background-color: var(--lmj-red-dark);
}

/* ========================================
   MEGA MENU - Full Width
   ======================================== */
.lmj-megamenu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100%;
  background: #fff;
  box-shadow: 0 15px 40px rgba(0,0,0,0.2);
  padding: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 0.3s ease;
  z-index: 9999;
  border-top: 4px solid var(--lmj-red);
}

.lmj-navbar .nav-item.dropdown:hover .lmj-megamenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition-delay: 200ms;
}

.lmj-megamenu-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 40px 30px;
}

/* Mega Menu Row */
.lmj-megamenu-row {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

/* Mega Menu Columns */
.lmj-megamenu-column {
  flex: 1;
  min-width: 200px;
  padding: 0 15px;
  border-right: 1px solid var(--lmj-gray-100);
}

.lmj-megamenu-column:last-child {
  border-right: none;
}

/* Mega Menu Title - en dehors des colonnes */
.lmj-megamenu-title {
  color: var(--lmj-red);
  font-weight: 700;
  font-size: 16px;
  text-transform: uppercase;
  margin: 20px 15px 15px 15px;
  padding-bottom: 12px;
  border-bottom: 3px solid var(--lmj-red);
  display: inline-block;
}

.lmj-megamenu-column h6 {
  color: var(--lmj-red);
  font-weight: 700;
  font-size: 16px;
  text-transform: uppercase;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 3px solid var(--lmj-red);
  display: inline-block;
}

.lmj-megamenu-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.lmj-megamenu-column ul li {
  margin-bottom: 12px;
}

.lmj-megamenu-column ul li a {
  color: var(--lmj-gray-700);
  font-size: 15px;
  transition: all 0.2s ease;
  display: block;
  padding: 5px 0;
}

.lmj-megamenu-column ul li a:hover {
  color: var(--lmj-red);
  padding-left: 8px;
}

/* Mega Menu Promo Box */
.lmj-megamenu-promo {
  background: linear-gradient(135deg, var(--lmj-red) 0%, var(--lmj-red-dark) 100%);
  border-radius: 12px;
  padding: 25px;
  color: #fff;
  text-align: center;
  min-width: 250px;
  margin-top: 0;
}

/* Colonne promo centrage vertical */
.lmj-megamenu-promo-col {
  display: flex;
  align-items: flex-start;
  border-right: none;
}

.lmj-megamenu-promo h5 {
  color: #fff;
  margin-bottom: 10px;
  font-size: 18px;
}

.lmj-megamenu-promo p {
  font-size: 14px;
  opacity: 0.9;
  margin-bottom: 15px;
}

.lmj-megamenu-promo .btn {
  background: #fff;
  color: var(--lmj-red);
  font-weight: bold;
  border: none;
  padding: 10px 25px;
  border-radius: 25px;
}

.lmj-megamenu-promo .btn:hover {
  background: var(--lmj-gray-100);
  color: var(--lmj-red-dark);
}

/* ========================================
   Secondary Nav
   ======================================== */
.lmj-secondary-nav {
  background-color: var(--lmj-gray-100);
  padding: 10px 0;
  font-size: 14px;
}

.lmj-secondary-nav a {
  color: var(--lmj-gray-700);
  margin: 0 15px;
  transition: color 0.2s ease;
}

.lmj-secondary-nav a:hover {
  color: var(--lmj-red);
}

/* ========================================
   Breadcrumb
   ======================================== */
.lmj-breadcrumb {
  background-color: transparent;
  padding: 0;
  font-size: 0.8125rem;
  border-bottom: none;
}
.lmj-breadcrumb .container {
  background: #fff;
  padding: 0.75rem var(--bs-gutter-x, 0.75rem);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.04);
}

.lmj-breadcrumb .breadcrumb {
  margin-bottom: 0;
}

.lmj-breadcrumb a {
  color: var(--lmj-brown-light);
}

.lmj-breadcrumb .active {
  color: var(--lmj-green);
}

/* ========================================
   Main Content
   ======================================== */
.lmj-main {
  background: transparent;
  padding: 0;
  min-height: 500px;
}

.lmj-main > .container {
  background: #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.06);
  padding-top: 1.875rem;
  padding-bottom: 1.875rem;
}

.lmj-content {
  padding: 0 1.5rem;
}

/* ========================================
   Legacy Content Styles (pour contenu existant) - Design System
   ======================================== */
.lmj-content h1 {
  color: var(--lmj-gray-900);
  font-size: 1.75rem;
  font-family: var(--lmj-font-family);
  margin-bottom: 1.25rem;
  padding-bottom: 0.9375rem;
  border-bottom: 2px solid var(--lmj-gray-100);
}

.lmj-content h2 {
  color: var(--lmj-gray-900);
  font-size: 1.375rem;
  font-family: var(--lmj-font-family);
  margin: 1.5rem 0 0.9375rem;
}

.lmj-content h3 {
  color: var(--lmj-red);
  font-size: 1.125rem;
  font-family: var(--lmj-font-family);
  margin: 1.25rem 0 0.625rem;
}

.lmj-content p {
  line-height: 1.7;
  margin-bottom: 15px;
  color: var(--lmj-gray-700);
}

.lmj-content ul, .lmj-content ol {
  margin-bottom: 20px;
  padding-left: 25px;
}

.lmj-content ul li, .lmj-content ol li {
  margin-bottom: 8px;
  line-height: 1.6;
}

.lmj-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.lmj-content a {
  color: var(--lmj-red);
  text-decoration: underline;
}
.lmj-content a.btn {
  color: var(--bs-btn-color);
  text-decoration: none;
}
.lmj-content a.btn:hover {
  color: var(--bs-btn-hover-color);
  text-decoration: none;
}

.lmj-content a:hover {
  color: var(--lmj-red-dark);
}

/* Tables legacy */
.lmj-content table {
  width: 100%;
  margin-bottom: 20px;
  border-collapse: collapse;
}

.lmj-content table td, .lmj-content table th {
  padding: 12px;
}

.lmj-content table th {
  background: var(--lmj-gray-100);
  font-weight: 600;
}

/* Forms legacy */
.lmj-content input[type="text"],
.lmj-content input[type="email"],
.lmj-content input[type="password"],
.lmj-content textarea,
.lmj-content select {
  width: 100%;
  padding: 12px 15px;
  border: 2px solid var(--lmj-gray-200);
  border-radius: 8px;
  font-size: 15px;
  margin-bottom: 15px;
  transition: border-color 0.2s ease;
}

.lmj-content input:focus,
.lmj-content textarea:focus,
.lmj-content select:focus {
  outline: none;
  border-color: var(--lmj-red);
}

.lmj-content input[type="submit"],
.lmj-content button {
  background: var(--lmj-red);
  color: #fff;
  border: none;
  padding: 12px 30px;
  border-radius: 25px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.lmj-content input[type="submit"]:hover,
.lmj-content button:hover {
  background: var(--lmj-red-dark);
  transform: translateY(-2px);
}

/* Reset Bootstrap btn-close inside .lmj-content */
.lmj-content .btn-close {
  background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
  padding: 0.25em;
  border-radius: 0.375rem;
  opacity: 0.5;
  color: #000;
  width: 1em;
  height: 1em;
  box-sizing: content-box;
  transform: none;
}
.lmj-content .btn-close:hover {
  opacity: 0.75;
  background-color: transparent;
  transform: none;
}

/* ========================================
   Buttons - Design System
   ======================================== */
.btn-lmj-primary {
  background-color: var(--lmj-red);
  border: 2px solid var(--lmj-red);
  color: #fff;
  font-weight: 600;
  padding: 12px 28px;
  border-radius: var(--lmj-radius-pill);
  transition: var(--lmj-transition-base);
  font-family: var(--lmj-font-family);
  font-size: 1rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 44px;
}

.btn-lmj-primary:hover,
.btn-lmj-primary:focus {
  background-color: var(--lmj-red-dark);
  border-color: var(--lmj-red-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(194, 36, 24, 0.35);
}

.btn-lmj-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(194, 36, 24, 0.3);
}

/* Bouton secondaire (outline) */
.btn-lmj-secondary {
  background-color: transparent;
  border: 2px solid var(--lmj-red);
  color: var(--lmj-red);
  font-weight: 600;
  padding: 10px 26px;
  border-radius: var(--lmj-radius-pill);
  transition: var(--lmj-transition-base);
  font-family: var(--lmj-font-family);
  font-size: 1rem;
  cursor: pointer;
  min-height: 44px;
}

.btn-lmj-secondary:hover,
.btn-lmj-secondary:focus {
  background-color: var(--lmj-red);
  color: #fff;
  transform: translateY(-2px);
}

/* Bouton succès (panier) */
.btn-lmj-success {
  background-color: var(--lmj-green);
  border: 2px solid var(--lmj-green);
  color: #fff;
  font-weight: 600;
  padding: 12px 28px;
  border-radius: var(--lmj-radius-pill);
  transition: var(--lmj-transition-base);
  font-family: var(--lmj-font-family);
  cursor: pointer;
  min-height: 44px;
}

.btn-lmj-success:hover,
.btn-lmj-success:focus {
  background-color: var(--lmj-green-dark);
  border-color: var(--lmj-green-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(115, 158, 35, 0.35);
}

/* Bouton ajout panier */
.btn-add-cart {
  background-color: var(--lmj-green);
  border: none;
  color: #fff;
  font-weight: 600;
  padding: 10px 20px;
  border-radius: var(--lmj-radius-sm);
  transition: var(--lmj-transition-base);
  font-family: var(--lmj-font-family);
  font-size: 0.9rem;
  cursor: pointer;
  width: 100%;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.btn-add-cart:hover,
.btn-add-cart:focus {
  background-color: var(--lmj-green-dark);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(115, 158, 35, 0.3);
}

.btn-add-cart i {
  font-size: 1.1em;
}

/* Bouton ghost (texte seul) */
.btn-lmj-ghost {
  background: transparent;
  border: none;
  color: var(--lmj-gray-700);
  font-weight: 500;
  padding: 8px 16px;
  transition: var(--lmj-transition-fast);
  cursor: pointer;
}

.btn-lmj-ghost:hover {
  color: var(--lmj-red);
}

/* ========================================
   Footer
   ======================================== */
.lmj-footer {
  background-color: #2d2d2d;
  color: #fff;
  padding: 50px 0 20px;
  margin-top: 0;
}

.lmj-footer h5 {
  color: #fff;
  font-size: 16px;
  margin-bottom: 20px;
  text-transform: uppercase;
  font-weight: 700;
}

.lmj-footer p {
  color: #bbb;
  font-size: 14px;
  line-height: 1.6;
}

.lmj-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.lmj-footer ul li {
  margin-bottom: 10px;
}

.lmj-footer a {
  color: #bbb;
  font-size: 14px;
  transition: all 0.2s ease;
}

.lmj-footer a:hover {
  color: #fff;
  padding-left: 5px;
}

.lmj-footer-bottom {
  border-top: 1px solid #444;
  padding-top: 25px;
  margin-top: 40px;
  font-size: 13px;
  color: #888;
}

.lmj-footer-bottom a {
  color: var(--lmj-red-light);
}

/* Newsletter */
.lmj-newsletter {
  display: flex;
  max-width: 400px;
}

.lmj-newsletter input {
  flex: 1;
  border-radius: 25px 0 0 25px;
  border: none;
  padding: 14px 20px;
  font-size: 14px;
  background: #fff;
  color: #333;
}

.lmj-newsletter input::placeholder {
  color: #999;
}

.lmj-newsletter button {
  border-radius: 0 25px 25px 0;
  background: var(--lmj-red);
  border: none;
  padding: 14px 25px;
  color: #fff;
  font-weight: bold;
  cursor: pointer;
  transition: background 0.2s ease;
}

.lmj-newsletter button:hover {
  background: var(--lmj-red-dark);
}

/* Footer Images */
.lmj-footer-logo {
  background: #fff;
  padding: 10px 15px;
  border-radius: 8px;
  display: inline-block;
}

.lmj-footer-logo img {
  max-width: 120px;
  height: auto;
}

/* Social Icons */
.lmj-footer .social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #444;
  border-radius: 50%;
  margin-right: 10px;
  font-size: 18px;
  transition: all 0.2s ease;
}

.lmj-footer .social-icons a:hover {
  background: var(--lmj-red);
  transform: translateY(-3px);
}

/* ========================================
   Generic Card - Design System
   ======================================== */
.lmj-card {
  background: #fff;
  border-radius: var(--lmj-radius-md);
  border: 1px solid var(--lmj-gray-200);
  box-shadow: var(--lmj-shadow-sm);
  transition: var(--lmj-transition-smooth);
  overflow: hidden;
}

.lmj-card:hover {
  box-shadow: var(--lmj-shadow-md);
  transform: translateY(-2px);
}

.lmj-card-body {
  padding: 1.25rem;
}

.lmj-card-title {
  font-family: var(--lmj-font-heading);
  font-weight: 600;
  color: var(--lmj-gray-900);
  margin-bottom: 0.75rem;
}

/* ========================================
   Product Cards
   ======================================== */
.lmj-product-card {
  background: #fff;
  border-radius: var(--lmj-radius-md);
  border: 1px solid var(--lmj-gray-200);
  box-shadow: var(--lmj-shadow-sm);
  transition: var(--lmj-transition-smooth);
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.lmj-product-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--lmj-shadow-hover);
  border-color: var(--lmj-gray-200);
}

.lmj-product-card .card-img-wrapper {
  background: var(--lmj-gray-100);
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  overflow: hidden;
}

.lmj-product-card img,
.lmj-product-card .card-img-top {
  width: 100%;
  height: 200px;
  object-fit: contain;
  padding: 1rem;
  background: var(--lmj-gray-100);
  transition: transform 0.3s ease;
}

.lmj-product-card:hover img,
.lmj-product-card:hover .card-img-top {
  transform: scale(1.05);
}

.lmj-product-card .card-body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.lmj-product-card .product-title,
.lmj-product-card .card-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--lmj-gray-700);
  margin-bottom: 0.5rem;
  min-height: 2.6em;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lmj-product-card .product-title a,
.lmj-product-card .card-title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

.lmj-product-card .product-title a:hover,
.lmj-product-card .card-title a:hover {
  color: var(--lmj-red);
}

.lmj-product-card .product-price {
  color: var(--lmj-red);
  font-size: 1.35rem;
  font-weight: 700;
  margin-top: auto;
  padding-top: 0.5rem;
}

.lmj-product-card .product-price-old {
  color: var(--lmj-gray-400);
  font-size: 0.9rem;
  text-decoration: line-through;
  font-weight: normal;
  margin-right: 0.5rem;
}

.lmj-product-card .btn-add-cart {
  width: 100%;
  margin-top: 0.75rem;
}

/* Stock badge */
.lmj-product-card .stock-badge {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.25rem 0.5rem;
  border-radius: var(--lmj-radius-sm);
  display: inline-block;
  margin-bottom: 0.5rem;
}

.lmj-product-card .stock-badge.in-stock {
  background: rgba(115, 158, 35, 0.15);
  color: var(--lmj-green-dark);
}

.lmj-product-card .stock-badge.low-stock {
  background: rgba(255, 152, 0, 0.15);
  color: #e65100;
}

.lmj-product-card .stock-badge.out-of-stock {
  background: rgba(194, 36, 24, 0.1);
  color: var(--lmj-red);
}

/* ========================================
   Price Display
   ======================================== */
.lmj-price {
  color: var(--lmj-red);
  font-weight: bold;
}

.lmj-price-large {
  font-size: 28px;
}

.lmj-price-old {
  text-decoration: line-through;
  color: var(--lmj-gray-400);
  font-size: 14px;
}

/* ========================================
   Mobile Menu (Offcanvas)
   ======================================== */
#mobileMenu .offcanvas-header {
  background: var(--lmj-red);
  padding: 1rem 1.25rem;
}

#mobileMenu .offcanvas-header .btn-close {
  filter: brightness(0) invert(1);
  opacity: 0.8;
}

#mobileMenu .offcanvas-body {
  padding: 0;
}

#mobileMenu .accordion {
  --bs-accordion-border-width: 0;
}

#mobileMenu .accordion-button {
  font-weight: 600;
  color: var(--lmj-gray-900);
  padding: 1rem 1.25rem;
  min-height: 48px;
  font-family: var(--lmj-font-family);
}

#mobileMenu .accordion-button:not(.collapsed) {
  background-color: var(--lmj-gray-100);
  color: var(--lmj-red);
  box-shadow: none;
}

#mobileMenu .accordion-button:focus {
  box-shadow: none;
}

#mobileMenu .accordion-body {
  padding: 0;
  background: var(--lmj-gray-100);
}

#mobileMenu .accordion-body ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#mobileMenu .accordion-body ul li {
  padding: 0;
  border-bottom: 1px solid rgba(255,255,255,0.5);
}

#mobileMenu .accordion-body ul li:last-child {
  border-bottom: none;
}

#mobileMenu .accordion-body ul li a {
  display: block;
  padding: 0.875rem 1.5rem;
  color: var(--lmj-gray-700);
  min-height: 44px;
  transition: var(--lmj-transition-fast);
}

#mobileMenu .accordion-body ul li a:hover {
  background: rgba(194, 36, 24, 0.1);
  color: var(--lmj-red);
}

/* Mobile menu footer links */
#mobileMenu .mobile-footer-links {
  padding: 1rem;
  border-top: 1px solid var(--lmj-gray-200);
  margin-top: 1rem;
}

#mobileMenu .mobile-footer-links a {
  display: block;
  padding: 0.75rem 0.5rem;
  color: var(--lmj-gray-700);
  font-weight: 500;
  min-height: 44px;
}

/* ========================================
   Responsive
   ======================================== */
@media (max-width: 991.98px) {
  .lmj-megamenu {
    display: none !important;
  }

  .lmj-navbar .navbar-nav .nav-link {
    padding: 12px 15px;
  }

  .lmj-header {
    padding: 10px 0;
  }

  .lmj-logo img {
    max-height: 50px;
  }

  .lmj-topbar {
    font-size: 12px;
    padding: 5px 0;
  }

  .lmj-content {
    padding: 15px;
  }

  .lmj-footer {
    padding: 30px 0 15px;
  }
}

@media (max-width: 767.98px) {
  .lmj-topbar .row > div {
    padding: 3px 0;
  }

  .lmj-content h1 {
    font-size: 22px;
  }

  .lmj-newsletter {
    flex-direction: column;
    margin: 0 auto;
  }

  .lmj-newsletter input {
    border-radius: 25px;
    margin-bottom: 10px;
  }

  .lmj-newsletter button {
    border-radius: 25px;
  }

  /* Footer centré sur mobile */
  .lmj-footer {
    text-align: center;
  }

  .lmj-footer .row > div {
    text-align: center;
  }

  .lmj-footer h5 {
    margin-top: 10px;
  }

  .lmj-footer ul {
    display: inline-block;
    text-align: left;
  }

  .lmj-footer .social-icons {
    justify-content: center;
  }

  .lmj-footer-logo {
    margin: 10px auto 0;
  }
}

/* ========================================
   Homepage Specific Styles
   ======================================== */

/* Main title */
.lmj-content .homeH1,
.lmj-content h1.homeH1 {
  text-align: center;
  font-size: 32px;
  color: var(--lmj-red);
  margin-bottom: 15px;
  padding-bottom: 0;
  border-bottom: none;
}

/* Cross selling container */
.lmj-content .crossSelling {
  padding: 2rem 0;
}

.lmj-content .crossSelling h2 {
  text-align: center;
  font-size: 1.5rem;
  font-family: var(--lmj-font-heading);
  color: var(--lmj-gray-900);
  margin: 2rem 0 1.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 3px solid var(--lmj-red);
  display: inline-block;
  width: 100%;
}

/* Category grid on homepage - Design System */
.lmj-content ul.categHome,
.lmj-content ul.homeCrossSelling {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.5rem;
  list-style: none;
  padding: 1.5rem 0;
  margin: 0 0 2rem 0;
}
/* 3-item row: stretch to full width */
.lmj-content ul.categHome:has(> li:nth-child(3):last-child) {
  grid-template-columns: repeat(3, 1fr);
}

.lmj-content ul.categHome li,
.lmj-content ul.homeCrossSelling li {
  background: #fff;
  border-radius: var(--lmj-radius-md);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: var(--lmj-shadow-sm);
  padding: 1.25rem;
  text-align: center;
  transition: var(--lmj-transition-smooth);
  margin: 0;
  display: flex;
  flex-direction: column;
}

.lmj-content ul.categHome li:hover,
.lmj-content ul.homeCrossSelling li:hover {
  transform: translateY(-3px);
  box-shadow: var(--lmj-shadow-sm);
}

.lmj-content ul.categHome li p,
.lmj-content ul.homeCrossSelling li p {
  margin: 0 0 1rem 0;
  padding: 0;
  min-height: 44px !important;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lmj-content ul.categHome li p a,
.lmj-content ul.homeCrossSelling li p a {
  color: var(--lmj-gray-900);
  font-weight: 600;
  font-size: 1.2rem;
  font-family: var(--lmj-font-family);
  text-decoration: none;
  display: block;
  line-height: 1.3;
  transition: color var(--lmj-transition-fast);
}

.lmj-content ul.categHome li p a:hover,
.lmj-content ul.homeCrossSelling li p a:hover {
  color: var(--lmj-red);
}

.lmj-content ul.categHome li img,
.lmj-content ul.homeCrossSelling li img {
  width: 100%;
  max-width: 200px;
  height: 170px;
  object-fit: contain;
  margin: 0 auto;
  display: block;
  border-radius: var(--lmj-radius-sm);
  transition: transform 0.3s ease;
}

.lmj-content ul.categHome li:hover img,
.lmj-content ul.homeCrossSelling li:hover img {
  transform: scale(1.05);
}

/* Price display on homepage - Design System */
.lmj-content .homepriceProduct {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--lmj-gray-100);
  text-align: center;
}

.lmj-content .homepriceProduct span {
  color: var(--lmj-red);
  font-weight: 700;
  font-size: 1.25rem;
}

/* 4 colonnes sur desktop large */
@media (max-width: 1199.98px) {
  .lmj-content ul.categHome,
  .lmj-content ul.homeCrossSelling {
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
  }
}

/* 3 colonnes sur tablette */
@media (max-width: 991.98px) {
  .lmj-content ul.categHome,
  .lmj-content ul.homeCrossSelling {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }
}

.lmj-content .homepriceProduct del {
  color: var(--lmj-gray-400);
  font-size: 14px;
  font-weight: normal;
  margin-right: 8px;
}

/* Product info areas */
.lmj-content .productInfosArea {
  background: #fff;
  border-radius: var(--lmj-radius-md);
  border: 1px solid var(--lmj-gray-200);
  box-shadow: var(--lmj-shadow-sm);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.lmj-content .productInfosArea.homeP {
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
  padding: 1.5rem 0;
}

.lmj-content .productInfosArea h2 {
  color: var(--lmj-red);
  font-size: 20px;
  margin-top: 20px;
  margin-bottom: 15px;
}

.lmj-content .productInfosArea p {
  font-size: 15px;
  line-height: 1.8;
}

.lmj-content .productInfosArea img {
  border-radius: 8px;
}

/* Info zones (2 columns) */
.lmj-content .pdInfoZ {
  float: left;
  width: 48%;
  margin-right: 2%;
  margin-bottom: 20px;
}

.lmj-content .pdInfoZ:nth-child(2n) {
  margin-right: 0;
  margin-left: 2%;
}

/* Video section */
.lmj-content #homeVid {
  clear: both;
  padding: 30px 0;
  background: transparent;
  border-radius: 0;
  margin-top: 30px;
}

.lmj-content #homeVid h2 {
  color: var(--lmj-gray-900);
  margin-bottom: 20px;
}

.lmj-content #videhome {
  max-width: 700px;
  margin: 0 auto;
  cursor: pointer;
}

.lmj-content #videhome img {
  border-radius: 8px;
  box-shadow: none;
  transition: transform 0.3s ease;
}

.lmj-content #videhome:hover img {
  transform: scale(1.02);
}

/* Skeepers reviews carousel */
.lmj-content .skeepers_carousel_container {
  margin: 20px 0 40px;
  padding: 20px;
  background: var(--lmj-gray-100);
  border-radius: 12px;
}

/* Homepage responsive - Mobile */
@media (max-width: 767.98px) {
  .lmj-content ul.categHome,
  .lmj-content ul.homeCrossSelling {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    padding: 1rem 0;
  }

  .lmj-content ul.categHome li,
  .lmj-content ul.homeCrossSelling li {
    padding: 0.75rem;
  }

  .lmj-content ul.categHome li img,
  .lmj-content ul.homeCrossSelling li img {
    height: 120px;
    max-width: 100%;
  }

  .lmj-content ul.categHome li p a,
  .lmj-content ul.homeCrossSelling li p a {
    font-size: 0.85rem;
  }

  .lmj-content .pdInfoZ {
    float: none;
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }

  .lmj-content .homeH1 {
    font-size: 1.5rem;
  }

  .lmj-content .crossSelling h2 {
    font-size: 1.25rem;
    margin: 1.5rem 0 1rem;
  }

  .lmj-content .homepriceProduct span {
    font-size: 1.1rem;
  }

  /* Hide elements on mobile */
  .lmj-content .nomob {
    display: none !important;
  }
}

/* ========================================
   Utilities
   ======================================== */
.text-lmj-red { color: var(--lmj-red) !important; }
.text-lmj-green { color: var(--lmj-green) !important; }
.bg-lmj-red { background-color: var(--lmj-red) !important; }
.bg-lmj-green { background-color: var(--lmj-green) !important; }

/* Clearfix */
.lmj-content .clearfix::after {
  content: "";
  display: table;
  clear: both;
}

/* ========================================
   Mega Menu - Espacement colonnes
   ======================================== */
.lmj-megamenu-inner .row {
  margin-top: 15px;
}

.lmj-megamenu .col-lg-6.lmj-megamenu-column {
  margin-top: 20px;
  padding-top: 15px;
}

/* ========================================
   Homepage - Centrage sections
   ======================================== */
.lmj-content .crossSelling {
  text-align: center;
}

.lmj-content .crossSelling h2 {
  text-align: center;
  display: block;
  width: 100%;
}

/* ========================================
   Category Listing Page Styles
   ======================================== */

/* Category description */
.lmj-content .descriptionCategory {
  background: linear-gradient(135deg, #f9f9f9 0%, #fff 100%);
  border-radius: 12px;
  padding: 20px 25px;
  margin-bottom: 25px;
  border-left: 4px solid transparent;
  box-shadow: 0 2px 8px rgba(109, 82, 54, 0.08);
  font-size: 15px;
  line-height: 1.7;
}

.lmj-content .descriptionCategory h2,
.lmj-content .descriptionCategory h3 {
  color: var(--lmj-red);
  margin-top: 0;
}

/* Sub-categories grid */
.lmj-content #listCategs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2rem;
  padding: 1.5rem 0;
}

.lmj-content #listCategs > div {
  background: #fff;
  border-radius: var(--lmj-radius-lg);
  box-shadow: var(--lmj-shadow-sm);
  border: 1px solid rgba(0, 0, 0, 0.06);
  padding: 0;
  text-align: center;
  transition: var(--lmj-transition-smooth);
  overflow: hidden;
  position: relative;
}

.lmj-content #listCategs > div::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--lmj-red), var(--lmj-red-dark));
  transform: scaleX(0);
  transition: transform 0.35s ease;
}

.lmj-content #listCategs > div:hover {
  transform: translateY(-6px);
  box-shadow: var(--lmj-shadow-hover);
  border-color: var(--lmj-red-light);
}

.lmj-content #listCategs > div:hover::before {
  transform: scaleX(1);
}

.lmj-content #listCategs > div a {
  color: var(--lmj-gray-900);
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px 15px;
  gap: 0;
}

.lmj-content #listCategs > div a:hover {
  color: var(--lmj-red);
}

/* Category name styling */
.lmj-content #listCategs > div a br {
  display: none;
}

.lmj-content #listCategs > div a {
  line-height: 1.4;
}

/* Image container */
.lmj-content #listCategs > div img {
  width: 130px;
  height: 130px;
  object-fit: cover;
  border-radius: 12px;
  margin-top: 15px;
  transition: all 0.35s ease;
  order: 1;
}

.lmj-content #listCategs > div:hover img {
  transform: scale(1.05);
}

/* Category name text comes first visually */
.lmj-content #listCategs > div a::first-line {
  font-size: 15px;
}

.lmj-content .myButtonCat {
  display: inline-block;
  background: var(--lmj-gray-100);
  color: var(--lmj-gray-900);
  padding: 10px 20px;
  border-radius: 25px;
  margin: 5px;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.lmj-content .myButtonCat:hover {
  background: var(--lmj-red);
  color: #fff;
}

/* Products listing container */
.lmj-content .listProductsInCategory {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-bottom: 30px;
}

/* Product card in category listing - Design System */
.lmj-content .infosProductCategory,
.lmj-content .infosProductCategoryc {
  background: #fff;
  border-radius: var(--lmj-radius-md);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: var(--lmj-shadow-sm);
  padding: 1.25rem;
  transition: var(--lmj-transition-smooth);
  display: flex;
  flex-direction: column;
}

.lmj-content .infosProductCategory:hover,
.lmj-content .infosProductCategoryc:hover {
  transform: translateY(-4px);
  box-shadow: var(--lmj-shadow-hover);
  border-color: var(--lmj-gray-200);
}

/* Unavailable product - pas de grisage */
.lmj-content .infosProductCategory.unavailableProduct,
.lmj-content .infosProductCategoryc.unavailableProduct {
  opacity: 1;
}

/* Product image */
.lmj-content .imgProductCategory {
  width: 100%;
  max-width: 280px;
  height: 200px;
  object-fit: contain;
  margin: 0 auto 1rem;
  display: block;
  border-radius: var(--lmj-radius-sm);
  padding: 0.5rem;
  transition: transform 0.3s ease;
}

.lmj-content .infosProductCategory:hover .imgProductCategory,
.lmj-content .infosProductCategoryc:hover .imgProductCategory {
  transform: scale(1.03);
}

/* Product name */
.lmj-content .pdname {
  font-size: 0.95rem;
  font-weight: 600;
  font-family: var(--lmj-font-family);
  color: var(--lmj-gray-900);
  text-decoration: none;
  display: block;
  margin-bottom: 0.5rem;
  line-height: 1.35;
  min-height: 2.7em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lmj-content .pdname:hover {
  color: var(--lmj-red);
}

/* Product description */
.lmj-content .descriptionProduct {
  font-size: 0.8rem;
  font-family: var(--lmj-font-family);
  color: var(--lmj-gray-600);
  line-height: 1.5;
  margin-bottom: 1rem;
  flex-grow: 1;
  max-height: 72px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

/* "En savoir plus" button */
.lmj-content .savoirPlus {
  display: inline-block;
  margin-bottom: 15px;
  transition: transform 0.2s ease;
}

.lmj-content .savoirPlus:hover {
  transform: scale(1.05);
}

/* Product price */
.lmj-content .priceProduct,
.lmj-content .priceProductc {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--lmj-red);
  margin: 0.75rem 0;
  text-align: center;
  font-family: var(--lmj-font-family);
}

.lmj-content .priceProduct del,
.lmj-content .priceProductc del {
  color: var(--lmj-gray-400);
  font-size: 0.85rem;
  font-weight: normal;
  margin-right: 0.5rem;
}

.lmj-content .priceProduct.unavailableProduct,
.lmj-content .priceProductc.unavailableProduct {
  color: var(--lmj-gray-400);
}

/* Add to cart section - Design System */
.lmj-content .ajoutPanier,
.lmj-content .ajoutPanierc {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--lmj-gray-100);
  text-align: center;
}

.lmj-content .ajoutPanier .quantities,
.lmj-content .ajoutPanierc .quantities {
  font-size: 0.8rem;
  color: var(--lmj-gray-600);
  margin-bottom: 0.25rem;
}

/* Listing quantity group with +/- buttons */
.lmj-content .listing-qty-group {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--lmj-gray-300);
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 0.5rem;
  background: #fff;
}

.lmj-content .listing-qty-group .qtty {
  width: 40px;
  padding: 0;
  border-left: 1px solid var(--lmj-gray-200);
  border-right: 1px solid var(--lmj-gray-200);
  border-top: none;
  border-bottom: none;
  background: transparent;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 600;
  font-family: var(--lmj-font-family);
  color: var(--lmj-gray-900);
  margin: 0;
  height: 32px;
  line-height: 32px;
  -webkit-appearance: none;
  -moz-appearance: textfield;
  appearance: none;
  box-sizing: border-box;
}

.lmj-content .listing-qty-group .qtty::-webkit-outer-spin-button,
.lmj-content .listing-qty-group .qtty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.lmj-content .listing-qty-group .qtty:focus {
  outline: none;
  box-shadow: none;
}

.lmj-content .qty-btn-listing {
  width: 30px;
  height: 32px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--lmj-gray-600);
  font-size: 14px;
  cursor: pointer;
  transition: var(--lmj-transition-fast);
  box-sizing: border-box;
  flex-shrink: 0;
}

.lmj-content .qty-btn-listing i {
  display: block;
  width: 14px;
  text-align: center;
  line-height: 1;
}

.lmj-content .qty-btn-listing:hover {
  color: var(--lmj-red);
  background: var(--lmj-gray-50, #f8f8f8);
}

.lmj-content .qty-btn-listing:active {
  color: var(--lmj-red-dark);
}

/* Stock max indicator */
.lmj-content .stock-max-hint {
  display: none;
  font-size: 0.75rem;
  color: var(--lmj-red);
  font-weight: 600;
  margin-top: 4px;
  text-align: center;
  animation: fadeInHint 0.3s ease;
}

.lmj-content .stock-max-hint.visible {
  display: block;
}

.lmj-content .stock-max-hint i {
  margin-right: 2px;
}

/* Shake animation when hitting stock limit */
@keyframes shakeQty {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-4px); }
  40% { transform: translateX(4px); }
  60% { transform: translateX(-3px); }
  80% { transform: translateX(3px); }
}

@keyframes fadeInHint {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.lmj-content .listing-qty-group.shake,
.lmj-content .input-group-qty.shake {
  animation: shakeQty 0.4s ease;
  border-color: var(--lmj-red) !important;
}

/* Legacy standalone qtty (fallback) */
.lmj-content .ajoutPanier .qtty,
.lmj-content .ajoutPanierc .qtty {
  width: 56px;
  padding: 0.5rem 0.625rem;
  border: 2px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-sm);
  text-align: center;
  font-size: 0.9rem;
  font-family: var(--lmj-font-family);
  margin-right: 0.5rem;
  margin-bottom: 0.5rem;
  transition: var(--lmj-transition-fast);
  min-height: 40px;
}

.lmj-content .ajoutPanier .qtty:focus,
.lmj-content .ajoutPanierc .qtty:focus {
  outline: none;
  border-color: var(--lmj-red);
  box-shadow: 0 0 0 3px rgba(194, 36, 24, 0.1);
}

.lmj-content .ajoutPanier a.fcy,
.lmj-content .ajoutPanierc a.fcy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--lmj-green);
  color: #fff;
  padding: 0.625rem 1.25rem;
  border-radius: var(--lmj-radius-pill);
  font-weight: 600;
  font-size: 0.875rem;
  font-family: var(--lmj-font-family);
  text-decoration: none;
  transition: var(--lmj-transition-base);
  cursor: pointer;
  min-height: 40px;
  gap: 0.5rem;
}

.lmj-content .ajoutPanier a.fcy:hover,
.lmj-content .ajoutPanierc a.fcy:hover {
  background: var(--lmj-green-dark);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(115, 158, 35, 0.3);
}

.lmj-content .ajoutPanier img,
.lmj-content .ajoutPanierc img {
  max-height: 40px;
  transition: transform 0.2s ease;
}

.lmj-content .ajoutPanier img:hover,
.lmj-content .ajoutPanierc img:hover {
  transform: scale(1.05);
}

.lmj-content .ajoutPanier .hoverAction,
.lmj-content .ajoutPanierc .hoverAction {
  cursor: pointer;
}

.lmj-content .leftButtonMargin {
  margin-left: 0;
}

/* Unavailable product button */
.lmj-content .unavailableProductc,
.lmj-content .ajoutPanier.unavailableProduct,
.lmj-content .ajoutPanierc.unavailableProduct {
  text-align: center;
}

.lmj-content .unavailableproductButton {
  display: inline-block;
  padding: 10px 20px;
  background: var(--lmj-gray-200);
  border-radius: 25px;
  color: var(--lmj-gray-600);
  font-weight: 500;
  transition: all 0.2s ease;
}

.lmj-content .unavailableproductButton:hover {
  background: var(--lmj-gray-400);
  color: #fff;
}

.lmj-content .unavailableproductButton img {
  max-height: 35px;
}

/* Shadow (legacy) - hidden */
.lmj-content .shadowProductsCategories {
  display: none;
}

/* Pagination */
.lmj-content .pagination {
  background: #fff;
  border-radius: 12px;
  padding: 15px 20px;
  margin-top: 20px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.05);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}

.lmj-content .pagination p {
  margin: 0;
  font-size: 14px;
  color: var(--lmj-gray-600);
}

.lmj-content .pagination a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 35px;
  height: 35px;
  padding: 0 10px;
  margin: 0 3px;
  border-radius: 8px;
  background: var(--lmj-gray-100);
  color: var(--lmj-gray-700);
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s ease;
}

.lmj-content .pagination a:hover {
  background: var(--lmj-red);
  color: #fff;
}

.lmj-content .pagination a.activPage {
  background: var(--lmj-red);
  color: #fff;
}

.lmj-content .pagination img {
  height: 20px;
  width: auto;
}

/* Category listing responsive */
@media (max-width: 991.98px) {
  .lmj-content .listProductsInCategory {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .lmj-content:has(> .infosProductCategoryc),
  .lmj-content:has(> h1 + .infosProductCategory) {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .lmj-content .imgProductCategory {
    max-width: 220px;
    height: 180px;
  }
}

@media (max-width: 767.98px) {
  .lmj-content .listProductsInCategory {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .lmj-content:has(> .infosProductCategoryc),
  .lmj-content:has(> h1 + .infosProductCategory) {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .lmj-content .infosProductCategory,
  .lmj-content .infosProductCategoryc {
    padding: 12px;
  }

  .lmj-content .imgProductCategory {
    max-width: 160px;
    height: 120px;
  }

  .lmj-content .pdname {
    font-size: 13px;
    min-height: 36px;
  }

  .lmj-content .descriptionProduct {
    display: none;
  }

  .lmj-content .priceProduct,
  .lmj-content .priceProductc {
    font-size: 18px;
  }

  .lmj-content .ajoutPanier,
  .lmj-content .ajoutPanierc {
    padding-top: 10px;
  }

  .lmj-content .ajoutPanier .qtty,
  .lmj-content .ajoutPanierc .qtty {
    width: 50px;
    padding: 6px 8px;
  }

  .lmj-content .savoirPlus {
    display: none;
  }

  .lmj-content #listCategs {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .lmj-content .pagination {
    flex-direction: column;
    text-align: center;
  }

  .lmj-content .pagination p {
    margin-bottom: 10px;
  }
}

/* ========================================
   Product Page Styles (Fiche Produit)
   ======================================== */

/* Main product layout */
.lmj-content > div[itemscope] > .clearfix {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  margin-bottom: 30px;
}

/* Photo area */
.lmj-content .photoArea {
  flex: 0 0 40%;
  max-width: 40%;
  text-align: center;
  position: relative;
}

.lmj-content .photoArea img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  transition: transform 0.3s ease;
}

/* Main product image with zoom icon */
.lmj-content .lmj-product-main-image {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: none;
  cursor: zoom-in;
}

.lmj-content .lmj-product-main-image img {
  width: 100%;
  border-radius: 8px;
  transition: transform 0.4s ease;
}

.lmj-content .lmj-product-main-image:hover img {
  transform: scale(1.03);
}

.lmj-content .lmj-zoom-icon {
  position: absolute;
  bottom: 15px;
  right: 15px;
  width: 40px;
  height: 40px;
  background: rgba(255,255,255,0.9);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lmj-gray-700);
  font-size: 18px;
  opacity: 0;
  transition: all 0.3s ease;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
}

.lmj-content .lmj-product-main-image:hover .lmj-zoom-icon {
  opacity: 1;
}

.lmj-content .lmj-photo-notice {
  font-size: 12px;
  color: var(--lmj-gray-400);
  margin-top: 12px;
  font-style: italic;
  text-transform: none;
  border: none;
}

/* Product thumbnails */
.lmj-content .lmj-product-thumbnails {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 20px;
}

.lmj-content .lmj-thumbnail {
  display: block;
  width: 70px;
  height: 70px;
  border-radius: 6px;
  overflow: hidden;
  border: 2px solid transparent;
  transition: all 0.2s ease;
  opacity: 0.7;
  cursor: pointer;
}

.lmj-content .lmj-thumbnail:hover,
.lmj-content .lmj-thumbnail.active {
  opacity: 1;
  border-color: var(--lmj-red);
}

.lmj-content .lmj-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
}

/* Legacy mini photos gallery */
.lmj-content .miniPhotos {
  margin-top: 15px;
}

.lmj-content .miniPhotos td {
  padding: 5px;
}

.lmj-content .miniPhotos img {
  border-radius: 6px;
  transition: all 0.2s ease;
}

.lmj-content .miniPhotos img:hover {
  transform: scale(1.05);
}

.lmj-content .photoArea .nomobile {
  font-size: 14px;
  font-weight: 600;
  color: var(--lmj-gray-700);
  margin-top: 20px;
  margin-bottom: 10px;
}

/* Bootstrap Modals - z-index au dessus de tout */
.modal {
  z-index: 100010 !important;
}

#stockAlertModal {
  z-index: 100010 !important;
}

#productGalleryModal {
  z-index: 100010 !important;
}

/* Modal backdrop - tous les backdrops Bootstrap */
.modal-backdrop {
  z-index: 100005 !important;
}

.modal-backdrop.show {
  z-index: 100005 !important;
}

#productGalleryModal .modal-content {
  border: none;
  border-radius: 16px;
  overflow: hidden;
}

#productGalleryModal .modal-header {
  background: var(--lmj-gray-100);
  border-bottom: none;
  padding: 15px 20px;
}

#productGalleryModal .modal-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--lmj-gray-800);
}

#productGalleryModal .modal-body {
  background: #fff;
}

#productGalleryModal .carousel-item img {
  max-height: 70vh;
  width: auto;
  max-width: 100%;
  margin: 0 auto;
  object-fit: contain;
}

/* Modal close button */
#productGalleryModal .btn-close-custom {
  width: 36px;
  height: 36px;
  padding: 0;
  background-color: var(--lmj-gray-200);
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  cursor: pointer;
}

#productGalleryModal .btn-close-custom i {
  font-size: 18px;
  color: var(--lmj-gray-700);
}

#productGalleryModal .btn-close-custom:hover {
  background-color: var(--lmj-red);
}

#productGalleryModal .btn-close-custom:hover i {
  color: #fff;
}

/* Carousel controls */
#productGalleryModal .carousel-control-prev,
#productGalleryModal .carousel-control-next {
  width: 50px;
  height: 50px;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  opacity: 1;
  border: none;
}

#productGalleryModal .carousel-control-prev {
  left: 15px;
}

#productGalleryModal .carousel-control-next {
  right: 15px;
}

#productGalleryModal .carousel-control-prev:hover,
#productGalleryModal .carousel-control-next:hover {
  background: var(--lmj-red);
}

#productGalleryModal .carousel-control-prev i,
#productGalleryModal .carousel-control-next i {
  font-size: 24px;
  color: #fff;
}

/* Gallery indicators (thumbnails in modal) */
.lmj-gallery-indicators {
  display: flex;
  gap: 8px;
  justify-content: center;
  padding: 15px;
  background: var(--lmj-gray-100);
  flex-wrap: wrap;
}

.lmj-gallery-indicators button {
  width: 60px;
  height: 60px;
  border: 2px solid transparent;
  border-radius: 8px;
  padding: 0;
  overflow: hidden;
  opacity: 0.6;
  transition: all 0.2s ease;
  cursor: pointer;
  background: transparent;
}

.lmj-gallery-indicators button:hover,
.lmj-gallery-indicators button.active {
  opacity: 1;
  border-color: var(--lmj-red);
}

.lmj-gallery-indicators button img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Product title - centered above photo/info row */
.lmj-content .lmj-product-title {
  text-align: center;
  font-size: 26px;
  color: var(--lmj-gray-900);
  margin: 0 0 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--lmj-gray-100);
}
.lmj-content .lmj-product-title a {
  color: var(--lmj-gray-900);
  text-decoration: none;
}
.lmj-content .lmj-product-title a:hover {
  color: var(--lmj-gray-900);
}

/* Product infos area */
.lmj-content .productInfosArea {
  flex: 1;
  background: transparent;
  border-radius: 0;
  padding: 0 0 0 10px;
  box-shadow: none;
}

.lmj-content .productInfosArea h1 {
  font-size: 24px;
  color: var(--lmj-gray-900);
  margin-bottom: 12px;
  padding-bottom: 0;
  border-bottom: none;
}

.lmj-content .productInfosArea h1 a {
  color: var(--lmj-gray-900);
  text-decoration: none;
}

.lmj-content .productInfosArea h1 a:hover {
  color: var(--lmj-red);
}

/* Availability */
.lmj-content .disponibility {
  font-size: 14px;
  color: var(--lmj-gray-600);
  margin-bottom: 15px;
}

.lmj-content .disponibility #instock {
  color: var(--lmj-green);
  font-weight: bold;
}

.lmj-content .disponibility #pendingorder {
  color: #bf7916;
  font-weight: bold;
}

/* Add to cart section - See "Product Page - Unified Add to Cart Block" section below for main styles */

/* Old price */
.lmj-content .oldPrice {
  margin-bottom: 5px;
}

.lmj-content .oldPrice del {
  color: var(--lmj-gray-400);
  font-size: 16px;
}

/* Price */
.lmj-content .price {
  font-size: 32px;
  font-weight: bold;
  color: var(--lmj-red);
  margin: 10px 0;
}

.lmj-content .price span[itemprop="priceCurrency"] {
  font-size: 24px;
}

.lmj-content .priceWithOldPrice {
  margin-top: 0;
}

/* Attributes */
.lmj-content #attributesToCart {
  margin-bottom: 15px;
  padding-bottom: 10px;
  border-bottom: none;
}

.lmj-content #attributesToCart .aLabel {
  font-weight: 600;
  color: var(--lmj-gray-700);
}

.lmj-content #attributesToCart select {
  padding: 10px 15px;
  border: 1px solid var(--lmj-gray-200);
  border-radius: 8px;
  font-size: 14px;
  margin-bottom: 0;
}

.lmj-content #attributesToCart select:focus {
  outline: none;
  border-color: var(--lmj-red);
}

/* Price per unit */
.lmj-content .productPriceUnit {
  font-size: 13px;
  color: var(--lmj-gray-600);
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--lmj-gray-100);
}

/* Mini description */
.lmj-content .miniDescription {
  font-size: 15px;
  line-height: 1.7;
  color: var(--lmj-gray-700);
  margin-top: 20px;
}

.lmj-content .miniDescription h2 {
  font-size: 18px;
  color: var(--lmj-red);
  margin-bottom: 10px;
}

/* Details section titles */
.lmj-content .detailsProductTitle {
  font-size: 20px;
  color: var(--lmj-gray-900);
  margin: 30px 0 15px;
  padding: 0 0 10px 0;
  background: none;
  border-radius: 0;
  border-left: none;
  border-bottom: 1px solid var(--lmj-gray-100);
}

/* Details section text */
.lmj-content .description.detailsProductTxt {
  background: transparent;
  border-radius: 0;
  padding: 15px 0;
  box-shadow: none;
  font-size: 15px;
  line-height: 1.8;
}

.lmj-content .description.detailsProductTxt p {
  margin-bottom: 12px;
}

.lmj-content .description.detailsProductTxt h2,
.lmj-content .description.detailsProductTxt h3 {
  color: var(--lmj-red);
  margin-top: 20px;
  margin-bottom: 10px;
}

/* Nutritional values table */
.lmj-content #valNut {
  width: 100%;
  max-width: 400px;
  border-collapse: collapse;
  margin: 15px 0;
}

.lmj-content #valNut td {
  padding: 10px 15px;
  border: 1px solid var(--lmj-gray-200);
}

.lmj-content #valNut tr:first-child td {
  background: var(--lmj-gray-100);
  font-weight: 600;
}

.lmj-content #valNut tr:nth-child(even) td {
  background: #fafafa;
}

/* Product pack listing */
.lmj-content #productPack {
  list-style: none;
  padding: 0;
  margin: 20px 0;
}

.lmj-content #productPack li {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 15px;
  padding: 15px 0;
  margin-bottom: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  border-left: none;
  border-bottom: 1px solid var(--lmj-gray-100);
}

.lmj-content #productPack li span {
  font-weight: bold;
  color: var(--lmj-red);
  font-size: 16px;
}

.lmj-content #productPack li a {
  color: var(--lmj-gray-900);
  font-weight: 600;
  text-decoration: none;
}

.lmj-content #productPack li a:hover {
  color: var(--lmj-red);
}

.lmj-content #productPack li img {
  max-width: 80px;
  height: auto;
  border-radius: 8px;
}

.lmj-content #productPack li div {
  flex: 1;
  min-width: 200px;
}

.lmj-content #productPack li .composition_pack {
  font-size: 13px;
  color: var(--lmj-gray-600);
}

/* Cross-selling section on product page */
.lmj-content .crossSelling {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--lmj-gray-100);
}

.lmj-content h2.crossSelling {
  font-size: 1.375rem;
  font-family: var(--lmj-font-heading);
  color: var(--lmj-gray-900);
  margin-bottom: 1.5rem;
  text-align: center;
}

.lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li {
  background: transparent;
  border-radius: 0;
  border: none;
  box-shadow: none;
  padding: 1rem 0.5rem;
  text-align: center;
  transition: var(--lmj-transition-smooth);
  display: flex;
  flex-direction: column;
}

.lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li:hover {
  transform: none;
  box-shadow: none;
}

.lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li:hover p a {
  color: var(--lmj-red);
}

.lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li img {
  width: 100%;
  max-width: 240px;
  height: 160px;
  object-fit: contain;
  border-radius: 4px;
  padding: 0;
  margin: 0 auto 1rem;
  display: block;
  transition: transform 0.3s ease;
}

.lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li:hover img {
  transform: scale(1.05);
}

.lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li p {
  margin: 0 0 0.5rem 0;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li p a {
  font-size: 0.95rem;
  font-weight: 600;
  font-family: var(--lmj-font-family);
  color: var(--lmj-gray-900);
  text-decoration: none;
  display: block;
  line-height: 1.35;
}

.lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li p a:hover {
  color: var(--lmj-red);
}

/* Hidden metadata */
.lmj-content .ean,
.lmj-content .sku,
.lmj-content .brand,
.lmj-content .url {
  display: none;
}

/* Out of stock alert button */
.lmj-content #fancyAlert {
  display: inline-block;
}

.lmj-content #fancyAlert img {
  max-height: 50px;
  transition: transform 0.2s ease;
}

.lmj-content #fancyAlert:hover img {
  transform: scale(1.05);
}

/* Stock alert form */
.lmj-content #aContent {
  padding: 20px;
}

.lmj-content #aContent input[type="text"] {
  padding: 12px 15px;
  border: 2px solid var(--lmj-red);
  border-radius: 8px;
  font-size: 15px;
  margin: 10px 0;
}

/* Other similar products */
.lmj-content #otherSimilarProducts {
  margin-top: 20px;
  padding: 15px;
  background: var(--lmj-gray-100);
  border-radius: 10px;
}

.lmj-content #otherSimilarProducts p {
  font-weight: 600;
  margin-bottom: 10px;
}

.lmj-content #otherSimilarProducts select {
  padding: 10px 15px;
  border: 2px solid var(--lmj-gray-200);
  border-radius: 8px;
  margin-right: 10px;
}

.lmj-content #otherSimilarProducts input[type="text"] {
  width: 50px;
  padding: 10px;
  border: 2px solid var(--lmj-gray-200);
  border-radius: 8px;
  text-align: center;
  margin-right: 10px;
}

/* Product page responsive */
@media (max-width: 991.98px) {
  .lmj-content > div[itemscope] > .clearfix {
    flex-direction: column;
  }

  .lmj-content .photoArea {
    flex: none;
    max-width: 100%;
    margin-bottom: 15px;
  }

  .lmj-content .productInfosArea {
    padding: 0;
  }

  .lmj-content .productInfosArea h1 {
    font-size: 20px;
  }

  .lmj-content .price {
    font-size: 26px;
  }
}

@media (max-width: 767.98px) {
  .lmj-content .photoArea {
    padding: 0 5%;
    margin-bottom: 10px;
  }

  .lmj-content .lmj-product-main-image {
    box-shadow: none;
  }

  .lmj-content .productInfosArea {
    padding: 0;
    margin-bottom: 10px;
  }

  .lmj-content .productInfosArea h1 {
    font-size: 18px;
    margin-bottom: 10px;
  }

  .lmj-content .addToCart {
    padding: 1rem 0;
    margin: 10px 0;
  }

  .lmj-content .price {
    font-size: 24px;
    margin: 5px 0 15px;
  }

  .lmj-content .detailsProductTitle {
    font-size: 18px;
    padding: 0 0 8px 0;
  }

  .lmj-content .description.detailsProductTxt {
    padding: 10px 0;
  }

  .lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }

  .lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li {
    padding: 0.75rem 0.25rem;
  }

  .lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li img {
    height: 120px;
  }

  .lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li p {
    min-height: auto;
  }

  .lmj-content .crossSelling > ul:not(.categHome):not(.homeCrossSelling) > li p a {
    font-size: 14px;
  }

  .lmj-content #productPack li {
    flex-direction: column;
    text-align: center;
  }

  .lmj-content #productPack li img {
    max-width: 100px;
  }
}

/* ========================================
   Nouveautés Page Styles
   ======================================== */

/* Create a grid layout for product cards on nouveautes page */
/* Products are direct children of .lmj-content without wrapper */
.lmj-content > h1 + .infosProductCategory,
.lmj-content > .shadowProductsCategories + .infosProductCategory,
.lmj-content > .ajoutPanier + .shadowProductsCategories + .infosProductCategory {
  /* First product card after h1 */
}

/* Use CSS Grid on the container when products are direct children */
.lmj-content:has(> h1 + .infosProductCategory) {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

/* Keep h1 full width */
.lmj-content:has(> h1 + .infosProductCategory) > h1 {
  grid-column: 1 / -1;
  margin-bottom: 20px;
}

/* Each product card as a grid item */
.lmj-content:has(> h1 + .infosProductCategory) > .infosProductCategory {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  padding: 20px;
  display: flex;
  flex-direction: column;
}

/* Hide the shadow dividers */
.lmj-content:has(> h1 + .infosProductCategory) > .shadowProductsCategories {
  display: none;
}

/* Reposition elements that are siblings of infosProductCategory */
.lmj-content:has(> h1 + .infosProductCategory) > .savoirPlus,
.lmj-content:has(> h1 + .infosProductCategory) > .priceProduct,
.lmj-content:has(> h1 + .infosProductCategory) > .ajoutPanier {
  display: none;
}

/* Style product cards that contain their own elements */
.lmj-content .infosProductCategory h2 {
  font-size: 15px;
  font-weight: 600;
  margin: 10px 0;
  line-height: 1.4;
}

.lmj-content .infosProductCategory h2 a {
  color: var(--lmj-gray-900);
  text-decoration: none;
}

.lmj-content .infosProductCategory h2 a:hover {
  color: var(--lmj-red);
}

/* ========================================
   Cart Page Styles (Panier)
   ======================================== */

/* Cart title */
.lmj-content .titleCategory {
  width: 100%;
  margin-bottom: 20px;
}

.lmj-content .titleCategory h1 {
  font-size: 28px;
  color: var(--lmj-gray-900);
  padding: 15px 0;
  border-bottom: 3px solid var(--lmj-red);
  margin-bottom: 20px;
}

.lmj-content .leftCategoryTitle,
.lmj-content .rightCategoryTitle {
  display: none;
}

.lmj-content .contentCategoryTitle {
  width: 100%;
}

/* Cart table - Design System */
.lmj-content table.cart {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: var(--lmj-radius-lg);
  overflow: hidden;
  box-shadow: var(--lmj-shadow-md);
  margin-bottom: 1.25rem;
}

.lmj-content table.cart th {
  background: var(--lmj-red);
  color: #fff;
  padding: 15px 12px;
  font-weight: 600;
  font-size: 14px;
  text-align: left;
}

.lmj-content table.cart th:first-child {
  border-radius: var(--lmj-radius-lg) 0 0 0;
}

.lmj-content table.cart th:last-child {
  border-radius: 0 var(--lmj-radius-lg) 0 0;
}

.lmj-content table.cart td {
  padding: 15px 12px;
  border-bottom: 1px solid var(--lmj-gray-100);
  vertical-align: middle;
  font-size: 14px;
}

.lmj-content table.cart tr:last-child td {
  border-bottom: none;
}

.lmj-content table.cart tr.tr1 {
  background: #fff;
}

.lmj-content table.cart tr.tr2 {
  background: #fafafa;
}

.lmj-content table.cart td a {
  color: var(--lmj-gray-900);
  text-decoration: none;
  font-weight: 500;
}

.lmj-content table.cart td a:hover {
  color: var(--lmj-red);
}

/* Quantity controls in cart */
.lmj-content table.cart .qteCart {
  width: 50px;
  height: 40px;
  text-align: center;
  font-size: 16px;
  font-weight: bold;
  border: none;
  background: transparent;
}

.lmj-content table.cart td table {
  margin: 0 auto;
}

.lmj-content table.cart td table td {
  padding: 0;
  border: none;
}

.lmj-content table.cart td table a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  background: var(--lmj-gray-100);
  border: 2px solid var(--lmj-red);
  color: var(--lmj-red);
  font-size: 20px;
  font-weight: bold;
  text-decoration: none;
  transition: var(--lmj-transition-fast);
  border-radius: var(--lmj-radius-sm);
}

.lmj-content table.cart td table a:hover {
  background: var(--lmj-red);
  color: #fff;
}

/* Delete button */
.lmj-content table.cart .deleteCart {
  text-align: center;
  width: 50px;
}

.lmj-content .cart-delete-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--lmj-radius-md);
  background: #fff;
  border: 1px solid var(--lmj-gray-200);
  color: var(--lmj-gray-500);
  cursor: pointer;
  transition: var(--lmj-transition-fast);
  font-size: 18px;
}

.lmj-content .cart-delete-btn:hover {
  background: var(--lmj-red);
  border-color: var(--lmj-red);
  color: #fff;
}

/* Product cell with image */
.lmj-content .cart-product-info {
  display: flex;
  align-items: center;
  gap: 15px;
}

.lmj-content .cart-product-image {
  flex-shrink: 0;
}

.lmj-content .cart-product-image img {
  width: 60px;
  height: 60px;
  object-fit: contain;
  border-radius: var(--lmj-radius-md);
  border: 1px solid var(--lmj-gray-100);
}

.lmj-content .cart-product-name {
  color: var(--lmj-gray-900);
  text-decoration: none;
  font-weight: 500;
  display: block;
}

.lmj-content .cart-product-name:hover {
  color: var(--lmj-red);
}

.lmj-content .cart-restock-warning {
  color: #bf7916;
  font-style: italic;
  font-size: 12px;
}

/* Quantity controls */
.lmj-content .cart-quantity-controls {
  display: inline-flex;
  align-items: center;
  background: #fff;
  border: 1px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-pill);
  overflow: hidden;
}

.lmj-content .cart-qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  margin: 0;
  background: transparent;
  color: var(--lmj-gray-600);
  text-decoration: none;
  font-size: 16px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: var(--lmj-transition-fast);
  border: none;
}

.lmj-content .cart-qty-btn:hover {
  background: var(--lmj-gray-100);
  color: var(--lmj-red);
}

.lmj-content .cart-qty-input {
  width: 40px;
  height: 32px;
  border: none;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  color: var(--lmj-gray-900);
  background: transparent;
}

.lmj-content .cart-qty-input:focus {
  outline: none;
}

/* Cart actions buttons */
.lmj-content .cart-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid var(--lmj-gray-100);
}

.lmj-content .cart-empty-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.625rem 1.125rem;
  font-weight: 500;
  font-size: 0.875rem;
  border-radius: var(--lmj-radius-pill);
  border: 1px solid var(--lmj-gray-300);
  background: #fff;
  color: var(--lmj-gray-600);
  transition: var(--lmj-transition-fast);
}

.lmj-content .cart-empty-btn:hover {
  border-color: var(--lmj-red);
  color: var(--lmj-red);
  background: #fff;
}

.lmj-content .cart-validate-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  font-size: 0.9375rem;
  border-radius: var(--lmj-radius-pill);
  background: var(--lmj-green);
  color: #fff;
  border: none;
  text-decoration: none;
  transition: var(--lmj-transition-fast);
}

.lmj-content .cart-validate-btn:hover {
  background: var(--lmj-green-dark);
  color: #fff;
  transform: translateY(-1px);
}

.lmj-content .cart-validate-btn i {
  font-size: 16px;
}

/* Cart totals - Design System */
.lmj-content .totcart {
  background: #fff;
  border-radius: var(--lmj-radius-lg);
  padding: 1.25rem;
  box-shadow: var(--lmj-shadow-md);
}

.lmj-content .totcart th {
  text-align: left;
  padding: 10px 15px;
  font-weight: 600;
  color: var(--lmj-gray-700);
  font-size: 14px;
}

.lmj-content .totcart td {
  text-align: right;
  padding: 10px 15px;
  font-weight: bold;
  color: var(--lmj-red);
  font-size: 16px;
}

.lmj-content .totcart tr:last-of-type th,
.lmj-content .totcart tr:last-of-type td {
  font-size: 20px;
  padding-top: 15px;
  border-top: 2px solid var(--lmj-gray-100);
}

/* Discount code box */
.lmj-content .discountCodeBox {
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid var(--lmj-gray-100);
}

.lmj-content .discountCodeBox form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.lmj-content .discountCodeBox p {
  width: 100%;
  margin: 0 0 5px 0;
  font-size: 13px;
  color: var(--lmj-gray-600);
}

.lmj-content .discountCodeBox input[type="text"] {
  flex: 1;
  min-width: 150px;
  padding: 0.625rem 0.9375rem;
  border: 2px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-md);
  font-size: 0.875rem;
  transition: var(--lmj-transition-fast);
}

.lmj-content .discountCodeBox input[type="text"]:focus {
  outline: none;
  border-color: var(--lmj-red);
}

.lmj-content .discountCodeBox input[type="button"] {
  padding: 0.625rem 1.25rem;
  background: var(--lmj-red);
  color: #fff;
  border: none;
  border-radius: var(--lmj-radius-md);
  font-weight: 600;
  cursor: pointer;
  transition: var(--lmj-transition-fast);
}

.lmj-content .discountCodeBox input[type="button"]:hover {
  background: var(--lmj-red-dark);
}

/* FDP box */
.lmj-content .fdpBox {
  vertical-align: top;
  padding-right: 20px;
}

.lmj-content .fdpBox p {
  background: linear-gradient(135deg, #DAE5BF 0%, #e8f0d0 100%);
  padding: 15px 20px;
  border-radius: 10px;
  color: var(--lmj-gray-900);
  font-size: 14px;
  margin: 0;
}

/* Box total */
.lmj-content .boxTotal {
  vertical-align: top;
}

/* Cart action buttons */
.lmj-content #validerbas,
.lmj-content #validerbis {
  display: inline-block;
}

.lmj-content #validerbas img,
.lmj-content #validerbis img {
  max-height: 50px;
  transition: transform 0.2s ease;
}

.lmj-content #validerbas img:hover,
.lmj-content #validerbis img:hover {
  transform: scale(1.05);
}

/* Reassurance box */
#reassuranceBox {
  display: flex;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
  list-style: none;
  padding: 30px 20px;
  margin: 30px 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}

#reassuranceBox li {
  text-align: center;
}

#reassuranceBox img {
  max-height: 80px;
  width: auto;
}

/* Empty cart message */
.lmj-content > p[style*="text-align:center"][style*="font-size:18px"] {
  background: #fff;
  border-radius: 12px;
  padding: 40px 30px !important;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  font-size: 18px;
  line-height: 1.8;
}

/* Cart responsive */
@media (max-width: 767.98px) {
  .lmj-content table.cart {
    font-size: 12px;
  }

  .lmj-content table.cart th,
  .lmj-content table.cart td {
    padding: 10px 8px;
  }

  .lmj-content .totcart {
    padding: 15px;
  }

  #reassuranceBox {
    gap: 15px;
    padding: 20px;
  }

  #reassuranceBox img {
    max-height: 60px;
  }
}

/* ========================================
   Mini Cart Hover (Desktop)
   ======================================== */

.lmj-minicart {
  position: relative;
}

.lmj-minicart-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  width: 320px;
  background: #fff;
  border-radius: var(--lmj-radius-lg);
  box-shadow: var(--lmj-shadow-lg);
  padding: 1.25rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: var(--lmj-transition-base);
  z-index: 1050;
  margin-top: 10px;
}

.lmj-minicart:hover .lmj-minicart-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.lmj-minicart-dropdown::before {
  content: '';
  position: absolute;
  top: -10px;
  right: 20px;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #fff;
}

.lmj-minicart-dropdown h4 {
  font-size: 16px;
  font-weight: 600;
  color: var(--lmj-gray-900);
  margin: 0 0 15px 0;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--lmj-gray-100);
}

.lmj-minicart-items {
  max-height: 250px;
  overflow-y: auto;
}

.lmj-minicart-item {
  display: flex;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--lmj-gray-100);
}

.lmj-minicart-item:last-child {
  border-bottom: none;
}

.lmj-minicart-item img {
  width: 50px;
  height: 50px;
  object-fit: contain;
  border-radius: var(--lmj-radius-sm);
  background: #f9f9f9;
}

.lmj-minicart-item-info {
  flex: 1;
}

.lmj-minicart-item-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--lmj-gray-900);
  line-height: 1.3;
  margin-bottom: 4px;
}

.lmj-minicart-item-price {
  font-size: 14px;
  font-weight: bold;
  color: var(--lmj-red);
}

.lmj-minicart-item-qty {
  font-size: 12px;
  color: var(--lmj-gray-600);
}

.lmj-minicart-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 0 10px;
  margin-top: 10px;
  border-top: 2px solid var(--lmj-gray-100);
}

.lmj-minicart-total span:first-child {
  font-weight: 600;
  color: var(--lmj-gray-700);
}

.lmj-minicart-total span:last-child {
  font-size: 20px;
  font-weight: bold;
  color: var(--lmj-red);
}

.lmj-minicart-actions {
  display: flex;
  gap: 10px;
  margin-top: 15px;
}

.lmj-minicart-actions a {
  flex: 1;
  padding: 0.75rem 0.9375rem;
  text-align: center;
  border-radius: var(--lmj-radius-md);
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none;
  transition: var(--lmj-transition-fast);
}

.lmj-minicart-actions a:first-child {
  background: var(--lmj-gray-100);
  color: var(--lmj-gray-700);
}

.lmj-minicart-actions a:first-child:hover {
  background: var(--lmj-gray-200);
}

.lmj-minicart-actions a:last-child {
  background: var(--lmj-green);
  color: #fff;
}

.lmj-minicart-actions a:last-child:hover {
  background: var(--lmj-green-dark);
}

.lmj-minicart-empty {
  text-align: center;
  padding: 20px;
  color: var(--lmj-gray-600);
  font-size: 14px;
}

.lmj-minicart-empty i {
  font-size: 40px;
  display: block;
  margin-bottom: 10px;
  color: var(--lmj-gray-300);
}

.lmj-minicart-more {
  text-align: center;
  padding: 10px;
  color: var(--lmj-gray-600);
  font-size: 13px;
  font-style: italic;
}

/* Hide mini cart on mobile */
@media (max-width: 991.98px) {
  .lmj-minicart-dropdown {
    display: none !important;
  }
}

/* ========================================
   Product Page - Unified Add to Cart Block
   ======================================== */

/* Ensure consistent styling for add to cart area - Design System */
.lmj-content .addToCart {
  background: transparent;
  border-radius: 0;
  border-top: 1px solid var(--lmj-gray-100);
  padding: 1.25rem 0;
  margin: 1rem 0 0;
  box-shadow: none;
  position: relative;
}

/* Badge promo sur fiche produit - affiché si oldPrice présent */
.lmj-content .addToCart:has(.oldPrice)::before {
  content: 'PROMO';
  position: absolute;
  top: -8px;
  right: 0;
  background: linear-gradient(135deg, var(--lmj-red) 0%, var(--lmj-red-dark) 100%);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 5px 14px;
  border-radius: 4px;
  letter-spacing: 1px;
  z-index: 10;
  box-shadow: none;
  text-transform: uppercase;
}

/* Price display - more prominent - Design System */
.lmj-content .addToCart .price,
.lmj-content .price {
  font-size: 2.25rem;
  font-weight: 800;
  font-family: var(--lmj-font-family);
  color: var(--lmj-red);
  margin: 0.25rem 0 1.25rem;
  display: block;
  letter-spacing: -0.5px;
}

/* Old price styling */
.lmj-content .addToCart .oldPrice,
.lmj-content .oldPrice {
  margin-bottom: 0;
}

.lmj-content .addToCart .oldPrice del,
.lmj-content .oldPrice del {
  color: var(--lmj-gray-400);
  font-size: 1.1rem;
  font-weight: 500;
}

/* Add to cart row - quantity and button */
.lmj-content .addToCart .add-to-cart-row {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 15px;
  padding-top: 15px;
  border-top: none;
}

/* Quantity wrapper with label */
.lmj-content .addToCart .qty-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.lmj-content .addToCart .qty-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--lmj-gray-600);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
}

/* Bootstrap 5 Input Group styling */
.lmj-content .addToCart .input-group-qty {
  width: auto;
  height: 42px;
  border: 1px solid var(--lmj-gray-200);
  border-radius: 6px;
  overflow: hidden;
}

.lmj-content .addToCart .input-group-qty .qty-btn {
  width: 42px;
  height: 42px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: #fff;
  color: var(--lmj-gray-700);
  font-size: 16px;
  transition: all 0.2s ease;
  border-radius: 0 !important;
}

.lmj-content .addToCart .input-group-qty .qty-btn:hover {
  background: var(--lmj-red);
  color: #fff;
}

.lmj-content .addToCart .input-group-qty .qty-btn:active {
  background: var(--lmj-red-dark);
}

.lmj-content .addToCart .input-group-qty .form-control {
  width: 50px;
  height: 42px;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  color: var(--lmj-gray-900);
  border: none !important;
  border-radius: 0 !important;
  -moz-appearance: textfield;
}

.lmj-content .addToCart .input-group-qty .form-control::-webkit-outer-spin-button,
.lmj-content .addToCart .input-group-qty .form-control::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.lmj-content .addToCart .input-group-qty .form-control:focus {
  box-shadow: none;
  border-color: var(--lmj-gray-200);
}

.lmj-content .addToCart .input-group-qty:focus-within {
  border-color: var(--lmj-red);
  box-shadow: 0 0 0 3px rgba(192, 34, 22, 0.1);
}

/* Add to cart button - styled like category listings */
.lmj-content .addToCart .btn-add-cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, var(--lmj-green) 0%, var(--lmj-green-dark) 100%);
  color: #fff;
  padding: 14px 35px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  transition: all 0.3s ease;
  cursor: pointer;
  border: none;
  box-shadow: 0 2px 8px rgba(76, 175, 80, 0.25);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.lmj-content .addToCart .btn-add-cart i {
  font-size: 18px;
}

.lmj-content .addToCart .btn-add-cart:hover {
  background: linear-gradient(135deg, var(--lmj-green-dark) 0%, #2e7d32 100%);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(76, 175, 80, 0.35);
  color: #fff;
  text-decoration: none;
}

.lmj-content .addToCart .btn-add-cart:active {
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(76, 175, 80, 0.35);
}

/* Legacy image button fallback */
.lmj-content .addToCart a.fcy img {
  max-height: 50px;
  transition: transform 0.2s ease;
}

.lmj-content .addToCart a.fcy:hover img {
  transform: scale(1.05);
}

/* Quantities label (old style) */
.lmj-content .addToCart .quantities,
.lmj-content .quantities {
  display: inline-block;
  font-size: 14px;
  color: var(--lmj-gray-600);
  margin-right: 10px;
}

/* Price per unit */
.lmj-content .productPriceUnit {
  font-size: 13px;
  color: var(--lmj-gray-500);
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid var(--lmj-gray-100);
}

/* Availability indicator */
.lmj-content .disponibility {
  font-size: 14px;
  color: var(--lmj-gray-600);
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.lmj-content .disponibility #instock {
  color: var(--lmj-green);
  font-weight: bold;
}

.lmj-content .disponibility #instock::before {
  content: '✓';
  margin-right: 5px;
}

.lmj-content .disponibility #pendingorder {
  color: #bf7916;
  font-weight: bold;
}

.lmj-content .disponibility #pendingorder::before {
  content: '⏳';
  margin-right: 5px;
}

/* Responsive add to cart */
@media (max-width: 576px) {
  .lmj-content .addToCart {
    padding: 1rem 0;
  }

  .lmj-content .addToCart .add-to-cart-row {
    flex-direction: column;
    align-items: stretch;
    gap: 15px;
  }

  .lmj-content .addToCart .qty-wrapper {
    align-items: center;
  }

  .lmj-content .addToCart .input-group-qty {
    justify-content: center;
  }

  .lmj-content .addToCart .btn-add-cart {
    width: 100%;
    padding: 16px 20px;
    font-size: 15px;
  }

  .lmj-content .addToCart .price {
    font-size: 28px;
  }
}

/* ========================================
   P0-2: Low Stock Urgency Badge
   ======================================== */
.lmj-content .lmj-stock-low {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #fff3cd;
  color: #856404;
  font-size: 13px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 4px;
  margin-left: 8px;
  animation: pulse-stock 2s ease-in-out infinite;
}
@keyframes pulse-stock {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

/* ========================================
   P1-4: Trust Badges
   ======================================== */
.lmj-content .lmj-trust-badges {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 18px;
  padding-top: 15px;
  border-top: 1px solid var(--lmj-gray-100);
}
.lmj-content .lmj-trust-badge {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: var(--lmj-gray-500);
}
.lmj-content .lmj-trust-badge i {
  font-size: 16px;
  color: var(--lmj-green);
}
@media (max-width: 576px) {
  .lmj-content .lmj-trust-badges {
    gap: 10px;
    flex-wrap: wrap;
  }
  .lmj-content .lmj-trust-badge {
    font-size: 11px;
  }
}

/* ========================================
   P1-5: Savings Display
   ======================================== */
.lmj-content .lmj-savings {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #fde8e8;
  color: var(--lmj-red);
  font-size: 14px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 4px;
  margin: 8px 0 4px;
}
.lmj-content .lmj-savings i {
  font-size: 14px;
}

/* ========================================
   P0-1: Sticky Mobile ATC Bar
   ======================================== */
.lmj-sticky-atc {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1040;
  background: #fff;
  border-top: 1px solid var(--lmj-gray-200);
  box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
  padding: 10px 60px 10px 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.lmj-sticky-atc-price {
  font-size: 18px;
  font-weight: 700;
  color: var(--lmj-red);
  white-space: nowrap;
}
.lmj-sticky-atc-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, var(--lmj-green) 0%, var(--lmj-green-dark) 100%);
  color: #fff !important;
  padding: 12px 20px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
  flex-shrink: 0;
}
.lmj-sticky-atc-btn:active {
  transform: scale(0.97);
}
/* Add padding-bottom to body so content isn't hidden behind sticky bar */
@media (max-width: 991.98px) {
  body:has(.lmj-sticky-atc) {
    padding-bottom: 65px;
  }
}

/* ========================================
   P2-10: Sticky Tabs on Desktop
   ======================================== */
@media (min-width: 992px) {
  .lmj-content .lmj-product-tabs .nav-tabs {
    position: sticky;
    top: 0;
    z-index: 10;
    background: #fff;
    padding-top: 5px;
  }
}

/* ========================================
   P2-11: Allergen Badges
   ======================================== */
.lmj-content .lmj-allergens {
  background: #fff8e1;
  border: 1px solid #ffe082;
  border-radius: 6px;
  padding: 12px 15px;
  margin-bottom: 15px;
}
.lmj-content .lmj-allergens-title {
  display: block;
  font-weight: 700;
  font-size: 13px;
  color: #e65100;
  margin-bottom: 8px;
}
.lmj-content .lmj-allergens-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.lmj-content .lmj-allergen-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #fff;
  border: 1px solid #ffcc80;
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 12px;
  font-weight: 600;
  color: #bf360c;
}
.lmj-content .lmj-allergen-badge i {
  font-size: 12px;
}

/* ========================================
   P3-13: Accessibility
   ======================================== */
.lmj-content .addToCart .qty-btn:focus-visible,
.lmj-content .addToCart .btn-add-cart:focus-visible {
  outline: 2px solid var(--lmj-red);
  outline-offset: 2px;
}
.lmj-content .qty-btn-listing:focus-visible {
  outline: 2px solid var(--lmj-red);
  outline-offset: 1px;
}
@media (prefers-reduced-motion: reduce) {
  .lmj-content .lmj-stock-low { animation: none; }
  .lmj-content .addToCart .btn-add-cart:hover { transform: none; }
  .lmj-content .lmj-product-tabs .tab-pane { transition: none; }
  .lmj-content .input-group-qty.shake,
  .lmj-content .listing-qty-group.shake { animation: none; }
}

/* ========================================
   Cart Page Buttons
   ======================================== */

/* Bouton Valider ma commande - Design System */
.btn-cart-validate,
a.btn-cart-validate,
a.btn-cart-validate:link,
a.btn-cart-validate:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  background: linear-gradient(135deg, var(--lmj-green) 0%, var(--lmj-green-dark) 100%);
  color: #fff !important;
  padding: 1rem 2.25rem;
  border-radius: var(--lmj-radius-pill);
  font-weight: 700;
  font-size: 1rem;
  font-family: var(--lmj-font-family);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border: none;
  cursor: pointer;
  transition: var(--lmj-transition-base);
  box-shadow: var(--lmj-shadow-md);
  text-decoration: none !important;
}

.btn-cart-validate:hover,
a.btn-cart-validate:hover {
  background: linear-gradient(135deg, var(--lmj-green-dark) 0%, #2e7d32 100%);
  transform: translateY(-3px);
  box-shadow: var(--lmj-shadow-hover);
  color: #fff !important;
  text-decoration: none !important;
}

.btn-cart-validate:active {
  transform: translateY(-1px);
  box-shadow: var(--lmj-shadow-md);
}

.btn-cart-validate.disabled,
.btn-cart-validate:disabled {
  background: var(--lmj-gray-400);
  box-shadow: none;
  cursor: not-allowed;
  transform: none;
}

.btn-cart-validate i {
  font-size: 18px;
}

/* Bouton Continuer mes achats - Design System */
.btn-cart-continue {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: #fff;
  color: var(--lmj-gray-700);
  padding: 0.875rem 1.75rem;
  border-radius: var(--lmj-radius-pill);
  font-weight: 600;
  font-size: 0.875rem;
  font-family: var(--lmj-font-family);
  border: 2px solid var(--lmj-gray-300);
  cursor: pointer;
  transition: var(--lmj-transition-base);
  text-decoration: none;
}

.btn-cart-continue:hover {
  background: var(--lmj-gray-100);
  border-color: var(--lmj-gray-400);
  color: var(--lmj-gray-900);
  text-decoration: none;
  transform: translateY(-2px);
}

/* Bouton Vider le panier - Design System */
.btn-cart-empty {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: #fff;
  color: var(--lmj-red);
  padding: 0.875rem 1.75rem;
  border-radius: var(--lmj-radius-pill);
  font-weight: 600;
  font-size: 0.875rem;
  font-family: var(--lmj-font-family);
  border: 2px solid var(--lmj-red);
  cursor: pointer;
  transition: var(--lmj-transition-base);
  text-decoration: none;
}

.btn-cart-empty:hover {
  background: var(--lmj-red);
  color: #fff;
  text-decoration: none;
}

/* Contrôles quantité panier - Design System */
.cart-qty-wrapper {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  border: 1px solid var(--lmj-gray-300);
  border-radius: var(--lmj-radius-sm);
  overflow: hidden;
  height: 38px;
  width: auto;
  min-width: 126px;
  max-width: 126px;
}

.cart-qty-wrapper .cart-qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  min-width: 38px;
  max-width: 38px;
  height: 100%;
  padding: 0;
  margin: 0;
  background: var(--lmj-gray-100);
  color: var(--lmj-gray-700);
  border: none;
  text-decoration: none !important;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: var(--lmj-transition-fast);
  flex-shrink: 0;
}

.cart-qty-wrapper .cart-qty-btn:hover {
  background: var(--lmj-red);
  color: #fff;
  text-decoration: none !important;
}

.cart-qty-wrapper .cart-qty-input {
  width: 50px;
  min-width: 50px;
  max-width: 50px;
  height: 100%;
  text-align: center;
  border: none;
  border-left: 1px solid var(--lmj-gray-300);
  border-right: 1px solid var(--lmj-gray-300);
  font-size: 14px;
  font-weight: 600;
  color: var(--lmj-gray-900);
  background: #fff;
  -moz-appearance: textfield;
  flex-shrink: 0;
}

.cart-qty-wrapper .cart-qty-input::-webkit-outer-spin-button,
.cart-qty-wrapper .cart-qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.cart-qty-wrapper .cart-qty-input:focus {
  outline: none;
  background: #fff;
}

/* Version mobile */
.cart-qty-wrapper-sm {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--lmj-gray-300);
  border-radius: var(--lmj-radius-xs);
  overflow: hidden;
  height: 32px;
}

.cart-qty-wrapper-sm .cart-qty-btn {
  width: 32px;
  font-size: 14px;
}

.cart-qty-wrapper-sm .cart-qty-input {
  width: 40px;
  font-size: 13px;
}

/* Responsive */
@media (max-width: 767.98px) {
  .btn-cart-validate {
    width: 100%;
    padding: 16px 20px;
  }

  .btn-cart-continue,
  .btn-cart-empty {
    padding: 12px 20px;
    font-size: 13px;
  }
}

/* ========================================
   Contact Page Styles
   ======================================== */

.lmj-contact-card,
.lmj-address-card {
  background: #fff;
  border-radius: var(--lmj-radius-xl);
  padding: 2.25rem 1.875rem;
  box-shadow: var(--lmj-shadow-md);
  text-align: center;
}

.lmj-contact-icon {
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, var(--lmj-red) 0%, var(--lmj-red-dark) 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}

.lmj-contact-icon i {
  font-size: 36px;
  color: #fff;
}

.lmj-contact-card h2,
.lmj-address-card h3 {
  color: var(--lmj-gray-900);
  margin-bottom: 15px;
}

.lmj-contact-card p {
  color: var(--lmj-gray-600);
  line-height: 1.7;
  margin-bottom: 25px;
}

.lmj-contact-methods {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 25px;
}

.lmj-contact-method {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.9375rem 1.5rem;
  background: linear-gradient(135deg, #f9f9f9 0%, #fff 100%);
  border: 2px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-lg);
  color: var(--lmj-gray-900);
  font-weight: 600;
  font-size: 1rem;
  font-family: var(--lmj-font-family);
  text-decoration: none;
  transition: var(--lmj-transition-base);
}

.lmj-contact-method:hover {
  border-color: var(--lmj-red);
  color: var(--lmj-red);
  transform: translateY(-3px);
  box-shadow: var(--lmj-shadow-hover);
}

.lmj-contact-method i {
  font-size: 22px;
  color: var(--lmj-red);
}

.lmj-contact-hours {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.75rem 1.25rem;
  background: var(--lmj-gray-100);
  border-radius: var(--lmj-radius-pill);
  color: var(--lmj-gray-700);
  font-size: 0.875rem;
}

.lmj-contact-hours i {
  color: var(--lmj-green);
  font-size: 18px;
}

.lmj-address-card address {
  font-style: normal;
  color: var(--lmj-gray-700);
  line-height: 1.8;
  font-size: 15px;
}

.lmj-address-card address strong {
  color: var(--lmj-red);
  font-size: 17px;
  display: block;
  margin-bottom: 10px;
}

/* Contact page responsive */
@media (max-width: 991.98px) {
  .lmj-contact-card,
  .lmj-address-card {
    padding: 25px 20px;
  }

  .lmj-contact-methods {
    flex-direction: column;
  }
}

/* ========================================
   Promotions Page Styles
   ======================================== */

/* Grid container for promo products - uses CSS Grid on parent */
.lmj-content:has(> .infosProductCategoryc) {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.lmj-content:has(> .infosProductCategoryc) > h1 {
  grid-column: 1 / -1;
  margin-bottom: 20px;
}

.lmj-content:has(> .infosProductCategoryc) > .descriptionCategory {
  grid-column: 1 / -1;
}

.lmj-content:has(> .infosProductCategoryc) > .pagination {
  grid-column: 1 / -1;
}

/* Product card styling for promotions - Design System */
.lmj-content .infosProductCategoryc {
  background: #fff;
  border-radius: var(--lmj-radius-lg);
  box-shadow: var(--lmj-shadow-sm);
  padding: 1.25rem;
  padding-top: 1.5rem;
  transition: var(--lmj-transition-smooth);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: visible;
}

.lmj-content .infosProductCategoryc:hover {
  transform: translateY(-5px);
  box-shadow: var(--lmj-shadow-hover);
}

.lmj-content .infosProductCategoryc .pdname {
  font-size: 16px;
  font-weight: 600;
  color: var(--lmj-gray-900);
  text-decoration: none;
  display: block;
  margin-bottom: 10px;
  line-height: 1.4;
  min-height: 44px;
}

.lmj-content .infosProductCategoryc .pdname:hover {
  color: var(--lmj-red);
}

.lmj-content .infosProductCategoryc .imgProductCategory {
  width: 100%;
  max-width: 280px;
  height: 220px;
  object-fit: contain;
  margin: 0 auto 0.9375rem;
  display: block;
  border-radius: var(--lmj-radius-md);
}

.lmj-content .infosProductCategoryc .descriptionProduct {
  font-size: 13px;
  color: var(--lmj-gray-600);
  line-height: 1.6;
  margin-bottom: 15px;
  flex-grow: 1;
  max-height: 80px;
  overflow-y: auto;
}

.lmj-content .infosProductCategoryc .priceProductc {
  font-size: 24px;
  font-weight: bold;
  color: var(--lmj-red);
  margin: 15px 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

/* Prix barré plus visible sur promotions - Design System */
.lmj-content .infosProductCategoryc .priceProductc span del,
.lmj-content .infosProductCategoryc .priceProductc del {
  display: inline-block;
  font-size: 1rem;
  font-weight: normal;
  color: #999;
  background: linear-gradient(135deg, #ffebee 0%, #fff 100%);
  padding: 0.25rem 0.625rem;
  border-radius: var(--lmj-radius-sm);
  text-decoration: line-through;
  text-decoration-color: var(--lmj-red);
  text-decoration-thickness: 2px;
}

/* Badge promo - uniquement si prix barré présent - Design System */
.lmj-content .infosProductCategoryc:has(.priceProductc del)::before {
  content: 'PROMO';
  position: absolute;
  top: -8px;
  right: 10px;
  background: var(--lmj-red);
  color: #fff;
  font-size: 0.625rem;
  font-weight: 700;
  padding: 0.3125rem 0.625rem;
  border-radius: var(--lmj-radius-xs);
  letter-spacing: 0.5px;
  z-index: 100;
  box-shadow: var(--lmj-shadow-sm);
}

/* Badge rupture de stock - discret, en haut à gauche - Design System */
.lmj-content .infosProductCategoryc.unavailableProduct::after,
.lmj-content .infosProductCategory.unavailableProduct::after {
  content: 'Rupture';
  position: absolute;
  top: -8px;
  left: 10px;
  background: var(--lmj-gray-500);
  color: #fff;
  font-size: 0.5625rem;
  font-weight: 600;
  padding: 0.25rem 0.5rem;
  border-radius: var(--lmj-radius-xs);
  letter-spacing: 0.3px;
  z-index: 90;
  opacity: 0.85;
}

.lmj-content .infosProductCategoryc .ajoutPanierc {
  margin-top: auto;
  padding-top: 15px;
  border-top: 1px solid var(--lmj-gray-100);
  text-align: center;
}

.lmj-content .infosProductCategoryc .ajoutPanierc > .qtty {
  width: 60px;
  padding: 0.5rem 0.625rem;
  border: 2px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-md);
  text-align: center;
  font-size: 0.875rem;
  margin-right: 0.625rem;
}

.lmj-content .infosProductCategoryc .ajoutPanierc .listing-qty-group .qtty {
  width: 40px;
  padding: 0;
  border-left: 1px solid var(--lmj-gray-200);
  border-right: 1px solid var(--lmj-gray-200);
  border-top: none;
  border-bottom: none;
  margin-right: 0;
}

.lmj-content .infosProductCategoryc .ajoutPanierc a.fcy {
  display: inline-block;
  background: var(--lmj-green);
  color: #fff;
  padding: 0.625rem 0.9375rem;
  border-radius: var(--lmj-radius-pill);
  font-weight: 600;
  font-size: 0.8125rem;
  text-decoration: none;
  transition: var(--lmj-transition-fast);
}

.lmj-content .infosProductCategoryc .ajoutPanierc a.fcy:hover {
  background: var(--lmj-green-dark);
}

/* Stock alert button */
.lmj-content .btn-stock-alert {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #fff;
  border: none;
  padding: 12px 20px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: none;
  cursor: pointer;
}

.lmj-content .btn-stock-alert:hover {
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

.lmj-content .btn-stock-alert i {
  font-size: 16px;
}

/* ========================================
   Lexique Page Styles
   ======================================== */

.lmj-content .aPage {
  background: #fff;
  border-radius: 16px;
  padding: 30px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
  margin-bottom: 30px;
}

.lmj-content .aPage p {
  color: var(--lmj-gray-700);
  line-height: 1.8;
  font-size: 15px;
}

.lmj-content .aPage h2 {
  color: var(--lmj-red);
  font-size: 28px;
  font-weight: 700;
  margin: 35px 0 20px;
  padding: 10px 20px;
  background: linear-gradient(135deg, var(--lmj-gray-100) 0%, #fff 100%);
  border-left: 4px solid var(--lmj-red);
  border-radius: 8px;
  display: block;
  clear: both;
  width: fit-content;
}

/* Terms buttons after each letter */
.lmj-content .aPage .myButtonCat {
  display: inline-block;
  margin: 5px 8px 5px 0;
}

.lmj-content .aPage #glossary {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  padding: 20px;
  background: linear-gradient(135deg, var(--lmj-red) 0%, var(--lmj-red-dark) 100%);
  border-radius: 12px;
  margin: 25px 0;
}

.lmj-content .aPage #glossary a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #fff;
  border-radius: 8px;
  color: var(--lmj-red);
  font-weight: 700;
  font-size: 18px;
  text-decoration: none;
  transition: all 0.2s ease;
}

.lmj-content .aPage #glossary a:hover,
.lmj-content .aPage #glossary-footer a:hover {
  background: var(--lmj-gray-900);
  color: #fff;
  transform: scale(1.1);
}

.lmj-content .aPage #glossary-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  padding: 20px;
  background: linear-gradient(135deg, var(--lmj-red) 0%, var(--lmj-red-dark) 100%);
  border-radius: 12px;
  margin: 25px 0 0;
}

.lmj-content .aPage #glossary-footer a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #fff;
  border-radius: 8px;
  color: var(--lmj-red);
  font-weight: 700;
  font-size: 18px;
  text-decoration: none;
  transition: all 0.2s ease;
}

/* ========================================
   Recettes Page Styles
   ======================================== */

.lmj-content > h1 + p {
  background: #fff;
  border-radius: 16px;
  padding: 25px 30px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
  margin-bottom: 25px;
  line-height: 1.8;
  color: var(--lmj-gray-700);
}

.lmj-content > h2 {
  color: var(--lmj-gray-900);
  font-size: 22px;
  margin: 30px 0 15px;
  padding: 15px 20px;
  background: linear-gradient(135deg, #f9f9f9 0%, #fff 100%);
  border-radius: 12px;
  border-left: 4px solid var(--lmj-red);
}

.lmj-content > h2 + p {
  background: #fff;
  border-radius: 12px;
  padding: 20px 25px;
  box-shadow: 0 2px 15px rgba(0,0,0,0.05);
  margin-bottom: 20px;
  line-height: 1.8;
  color: var(--lmj-gray-600);
}

/* Recipe links list */
.lmj-content > ul {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 15px;
  margin: 25px 0;
}

.lmj-content > ul > li {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 3px 15px rgba(0,0,0,0.06);
  border: 1px solid var(--lmj-gray-200);
  transition: all 0.3s ease;
  overflow: hidden;
  position: relative;
}

.lmj-content > ul > li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--lmj-red), var(--lmj-red-dark));
  transform: scaleY(0);
  transition: transform 0.3s ease;
}

.lmj-content > ul > li:hover {
  transform: translateX(5px);
  box-shadow: 0 8px 25px rgba(192, 34, 22, 0.12);
  border-color: var(--lmj-red-light);
}

.lmj-content > ul > li:hover::before {
  transform: scaleY(1);
}

.lmj-content > ul > li a {
  display: block;
  padding: 18px 20px 18px 25px;
  color: var(--lmj-gray-900);
  text-decoration: none;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.4;
  transition: color 0.2s ease;
}

.lmj-content > ul > li a:hover {
  color: var(--lmj-red);
}

.lmj-content > ul > li a::after {
  content: ' →';
  color: var(--lmj-red);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.lmj-content > ul > li:hover a::after {
  opacity: 1;
}

/* Recipe list responsive */
@media (max-width: 767.98px) {
  .lmj-content > ul {
    grid-template-columns: 1fr;
  }
}

/* ========================================
   Scroll Animations (Fade In on Scroll)
   ======================================== */

/* Base state - hidden */
.lmj-animate {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* Visible state */
.lmj-animate.lmj-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered delays for grid items */
.lmj-animate-delay-1 { transition-delay: 0.1s; }
.lmj-animate-delay-2 { transition-delay: 0.2s; }
.lmj-animate-delay-3 { transition-delay: 0.3s; }
.lmj-animate-delay-4 { transition-delay: 0.4s; }

/* Different animation types */
.lmj-animate-fade {
  opacity: 0;
  transition: opacity 0.6s ease-out;
}

.lmj-animate-fade.lmj-visible {
  opacity: 1;
}

.lmj-animate-slide-left {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.lmj-animate-slide-left.lmj-visible {
  opacity: 1;
  transform: translateX(0);
}

.lmj-animate-slide-right {
  opacity: 0;
  transform: translateX(30px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.lmj-animate-slide-right.lmj-visible {
  opacity: 1;
  transform: translateX(0);
}

.lmj-animate-scale {
  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}

.lmj-animate-scale.lmj-visible {
  opacity: 1;
  transform: scale(1);
}

/* Disable animations if user prefers reduced motion */
@media (prefers-reduced-motion: reduce) {
  .lmj-animate,
  .lmj-animate-fade,
  .lmj-animate-slide-left,
  .lmj-animate-slide-right,
  .lmj-animate-scale {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ========================================
   Fancybox Overlay (v1 et v2)
   ======================================== */

/* Fancybox v1 */
#fancybox-overlay {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(0, 0, 0, 0.7) !important;
  z-index: 99999 !important;
}

#fancybox-wrap {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  z-index: 100000 !important;
  margin: 0 !important;
}

#fancybox-outer,
#fancybox-content {
  z-index: 100001 !important;
}

/* Fancybox v2 */
.fancybox-overlay {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(0, 0, 0, 0.7) !important;
  z-index: 99999 !important;
}

.fancybox-wrap {
  position: fixed !important;
  z-index: 100000 !important;
}

.fancybox-opened {
  z-index: 100001 !important;
}

.fancybox-inner,
.fancybox-skin {
  z-index: 100001 !important;
}

/* Forcer l'overlay au dessus de tout */
.fancybox-overlay-fixed {
  z-index: 99999 !important;
}

/* ========================================
   Cart Confirmation Box (Fancybox)
   ======================================== */

.lmj-cart-confirm {
  padding: 1.875rem;
  text-align: center;
  background: #fff;
  border-radius: var(--lmj-radius-lg);
}

.lmj-cart-confirm-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 25px;
  font-size: 18px;
  font-weight: 600;
  color: var(--lmj-gray-900);
}

.lmj-cart-confirm-header i {
  font-size: 28px;
}

.lmj-cart-confirm-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lmj-cart-confirm-actions .btn {
  padding: 0.75rem 1.25rem;
  font-weight: 600;
  border-radius: var(--lmj-radius-pill);
}

.lmj-cart-confirm-actions .btn-success {
  background: linear-gradient(135deg, var(--lmj-green) 0%, var(--lmj-green-dark) 100%);
  border: none;
}

.lmj-cart-confirm-actions .btn-success:hover {
  background: var(--lmj-green-dark);
}

#resAddToCart {
  margin-top: 15px;
  font-size: 13px;
  color: var(--lmj-gray-600);
}

#resAddToCart img {
  max-width: 100px;
  max-height: 100px;
  object-fit: contain;
  border-radius: var(--lmj-radius-md);
}

#addToCartModal .modal-body img {
  max-width: 100px;
  max-height: 100px;
  object-fit: contain;
}

/* Responsive - Modal ajout panier sur mobile */
@media (max-width: 767.98px) {
  #fancybox-wrap {
    position: fixed !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    margin: 0 !important;
  }

  #fancybox-outer,
  #fancybox-content {
    width: 100% !important;
    border-radius: 20px 20px 0 0 !important;
  }

  .fancybox-wrap {
    position: fixed !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
    margin: 0 !important;
  }

  .fancybox-inner,
  .fancybox-skin {
    width: 100% !important;
    border-radius: 20px 20px 0 0 !important;
  }

  .lmj-cart-confirm {
    padding: 25px 20px 35px;
    border-radius: 20px 20px 0 0;
  }

  .lmj-cart-confirm-header {
    flex-direction: column;
    font-size: 16px;
    margin-bottom: 20px;
  }

  .lmj-cart-confirm-actions {
    gap: 10px;
  }

  .lmj-cart-confirm-actions .btn {
    padding: 14px 20px;
    font-size: 14px;
  }
}

/* ========================================
   Registration / Login Forms
   ======================================== */

/* Flex container uniquement pour les formulaires inscription/connexion */
.lmj-content .clearfix:has(#tdnewclient) {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  justify-content: center;
}

.lmj-content #tdnewclient,
.lmj-content #tdClientExists {
  flex: 1;
  min-width: 300px;
  max-width: 450px;
}

.lmj-content #tdnewclient {
  order: 2;
}

.lmj-content #tdClientExists {
  order: 1;
}

.lmj-content .aContentBox h2,
.lmj-content #tdClientExists h2 {
  font-size: 20px;
  font-weight: 600;
  color: var(--lmj-gray-900);
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--lmj-green);
}

.lmj-content .myforms {
  background: #fff;
  border-radius: var(--lmj-radius-lg);
  padding: 1.5rem;
  box-shadow: var(--lmj-shadow-md);
  border: none !important;
}

.lmj-content .myforms label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: var(--lmj-gray-700);
  margin-bottom: 5px;
}

.lmj-content .myforms input[type="text"],
.lmj-content .myforms input[type="password"],
.lmj-content .myforms input[type="email"],
.lmj-content .myforms select {
  width: 100%;
  padding: 0.75rem 0.9375rem;
  border: 2px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-md);
  font-size: 0.9375rem;
  font-family: var(--lmj-font-family);
  transition: var(--lmj-transition-fast);
  box-sizing: border-box;
}

.lmj-content .myforms input:focus,
.lmj-content .myforms select:focus {
  outline: none;
  border-color: var(--lmj-green);
}

.lmj-content .myforms input.needed {
  border-color: var(--lmj-red) !important;
}

.lmj-content .myforms table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 10px;
}

.lmj-content .myforms table td {
  vertical-align: top;
  padding: 5px 0;
}

.lmj-content .myforms input[type="image"] {
  display: block;
  margin: 1.25rem auto 0;
  max-width: 150px;
  transition: var(--lmj-transition-fast);
}

.lmj-content .myforms input[type="image"]:hover {
  transform: scale(1.05);
}

.lmj-content .myforms input[type="checkbox"] {
  width: auto;
  margin-right: 10px;
}

.lmj-content .myforms p {
  margin: 15px 0;
  color: var(--lmj-gray-600);
}

.lmj-content .myforms p a {
  color: var(--lmj-green);
  font-weight: 500;
}

.lmj-content .myforms p a:hover {
  color: var(--lmj-green-dark);
}

.lmj-content #retMessage {
  background: #fee;
  border: 1px solid var(--lmj-red);
  border-radius: var(--lmj-radius-md);
  padding: 0.9375rem;
  margin: 0.9375rem 0;
  color: var(--lmj-red);
}

.lmj-content #retMessage h6 {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 10px;
}

/* Customer account content - Design System */
.lmj-content .contentCustomer {
  background: #fff;
  border-radius: var(--lmj-radius-lg);
  padding: 1.5rem;
  box-shadow: var(--lmj-shadow-md);
  border: none !important;
  margin-top: 1.25rem;
}

.lmj-content .tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 -1px 0 !important;
  width: 100% !important;
}

.lmj-content .tabs label {
  background: var(--lmj-gray-100) !important;
  border: 1px solid var(--lmj-gray-200);
  border-bottom: none;
  border-radius: var(--lmj-radius-md) var(--lmj-radius-md) 0 0 !important;
  padding: 0.75rem 1.25rem !important;
  font-size: 0.875rem !important;
  font-weight: 500;
  cursor: pointer;
  transition: var(--lmj-transition-fast);
  width: auto !important;
  height: auto !important;
  line-height: normal !important;
  float: none !important;
  box-shadow: none !important;
}

.lmj-content .tabs label:hover,
.lmj-content .tabs label.activLabel {
  background: #fff !important;
  border-color: var(--lmj-green);
  border-bottom-color: #fff;
}

.lmj-content .tabs label a {
  color: var(--lmj-gray-700) !important;
  text-decoration: none;
}

.lmj-content .tabs label.activLabel a,
.lmj-content .tabs label:hover a {
  color: var(--lmj-green) !important;
}

@media (max-width: 767.98px) {
  .lmj-content .clearfix:has(#tdnewclient) {
    flex-direction: column;
  }

  .lmj-content #tdnewclient,
  .lmj-content #tdClientExists {
    max-width: 100%;
    order: unset;
  }

  .lmj-content .tabs label {
    padding: 10px 15px !important;
    font-size: 12px !important;
  }
}

/* ========================================
   Customer Area Styles
   ======================================== */

.lmj-content .lmj-customer-area {
  max-width: 900px;
  margin: 0 auto;
}

.lmj-content .lmj-customer-area h1 {
  border-bottom: none;
  padding-bottom: 0;
}

.lmj-content .lmj-customer-area .nav-tabs {
  border-bottom: 2px solid var(--lmj-gray-200);
}

.lmj-content .lmj-customer-area .nav-tabs .nav-link {
  color: var(--lmj-gray-600);
  border: none;
  border-bottom: 3px solid transparent;
  padding: 12px 20px;
  font-weight: 600;
  margin-bottom: -2px;
  transition: all 0.2s ease;
}

.lmj-content .lmj-customer-area .nav-tabs .nav-link:hover {
  color: var(--lmj-red);
  border-bottom-color: var(--lmj-red-light);
}

.lmj-content .lmj-customer-area .nav-tabs .nav-link.active {
  color: var(--lmj-red);
  border-bottom-color: var(--lmj-red);
  background: transparent;
}

.lmj-content .lmj-customer-area .nav-tabs .nav-link i {
  margin-right: 6px;
}

.lmj-content .lmj-customer-area .card {
  border: none;
  box-shadow: 0 3px 15px rgba(0,0,0,0.08);
  border-radius: 12px;
}

.lmj-content .lmj-customer-area .card-body {
  padding: 25px;
}

.lmj-content .lmj-customer-area .btn-group .btn {
  font-size: 13px;
}

/* Customer tables */
.lmj-content .lmj-customer-area table {
  width: 100%;
}

.lmj-content .lmj-customer-area table th {
  background: var(--lmj-gray-100);
  font-weight: 600;
  padding: 12px 15px;
  border-bottom: 2px solid var(--lmj-gray-200);
}

.lmj-content .lmj-customer-area table td {
  padding: 12px 15px;
  border-bottom: 1px solid var(--lmj-gray-100);
  vertical-align: middle;
}

.lmj-content .lmj-customer-area table tr:hover td {
  background: var(--lmj-gray-50);
}

/* Responsive customer area */
@media (max-width: 767.98px) {
  .lmj-content .lmj-customer-area .nav-tabs .nav-link {
    padding: 10px 12px;
    font-size: 13px;
  }

  .lmj-content .lmj-customer-area .nav-tabs .nav-link i {
    display: none;
  }

  .lmj-content .lmj-customer-area .btn-group {
    flex-direction: column;
    width: 100%;
  }

  .lmj-content .lmj-customer-area .btn-group .btn {
    border-radius: 8px !important;
    margin-bottom: 5px;
  }

  .lmj-content .lmj-customer-area .card-body {
    padding: 15px;
  }

  .lmj-content .lmj-customer-area table {
    font-size: 13px;
  }

  .lmj-content .lmj-customer-area table th,
  .lmj-content .lmj-customer-area table td {
    padding: 8px 10px;
  }
}

/* ========================================
   Checkout Pages - Steps 1, 2, 3, 4
   ======================================== */

/* Step progress bar - Design System */
.lmj-content .step {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin: 0 0 2rem 0;
  flex-wrap: wrap;
}
.lmj-content .step li {
  display: flex;
  align-items: center;
  font-size: 0.9rem;
  font-weight: 500;
  font-family: var(--lmj-font-family);
  color: var(--lmj-gray-500);
  padding: 0.5rem 1rem;
  background: var(--lmj-gray-100);
  border-radius: var(--lmj-radius-pill);
  transition: var(--lmj-transition-fast);
}
.lmj-content .step li.step_current {
  background: var(--lmj-red);
  color: #fff;
  font-weight: 700;
  box-shadow: var(--lmj-shadow-sm);
}
.lmj-content .step li.step_done {
  background: var(--lmj-green);
  color: #fff;
}

/* Checkout layout - 2 columns - Design System */
.lmj-content #order-details {
  float: none !important;
  width: 100% !important;
  background: #fff;
  border-radius: var(--lmj-radius-lg);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: var(--lmj-shadow-md);
}
.lmj-content .payment {
  float: none !important;
  width: 100% !important;
  background: #fff;
  border-radius: var(--lmj-radius-lg);
  padding: 1.5rem;
  box-shadow: var(--lmj-shadow-md);
}

@media (min-width: 992px) {
  .lmj-content form > .clearfix {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 2rem;
    align-items: start;
  }
  .lmj-content #order-details,
  .lmj-content .payment {
    margin-bottom: 0;
  }
}

/* Order details table */
.lmj-content #order-details h4 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--lmj-gray-900);
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--lmj-red);
}
.lmj-content #cart_summary {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.lmj-content #cart_summary th {
  text-align: left;
  font-weight: 600;
  padding: 0.75rem 0.5rem;
  background: var(--lmj-gray-50);
  border-bottom: 1px solid var(--lmj-gray-200);
}
.lmj-content #cart_summary td {
  padding: 0.75rem 0.5rem;
  border-bottom: 1px solid var(--lmj-gray-100);
  vertical-align: middle;
}
.lmj-content #cart_summary tr:last-child th,
.lmj-content #cart_summary tr:last-child td {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--lmj-red);
  padding-top: 1rem;
}

/* Comments textarea - Design System */
.lmj-content #comments {
  width: 100%;
  min-height: 80px;
  padding: 0.75rem;
  border: 1px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-md);
  font-size: 0.9rem;
  font-family: var(--lmj-font-family);
  resize: vertical;
  margin-top: 1rem;
  transition: var(--lmj-transition-fast);
}
.lmj-content #comments:focus {
  border-color: var(--lmj-red);
  outline: none;
  box-shadow: 0 0 0 3px rgba(194, 36, 24, 0.1);
}

/* Payment section - Design System */
.lmj-content .payment h2 {
  font-size: 1.2rem;
  font-weight: 700;
  font-family: var(--lmj-font-family);
  color: var(--lmj-gray-900);
  margin-bottom: 1rem;
}
.lmj-content .payment > p {
  font-size: 0.9rem;
  color: var(--lmj-gray-600);
  margin-bottom: 1.5rem;
  text-align: center;
  padding: 1rem;
  background: var(--lmj-gray-50);
  border-radius: var(--lmj-radius-md);
}

/* Payment choices - Design System */
.lmj-content .paymentChoice,
.lmj-content .infosPaiement {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  margin-bottom: 0.75rem;
  border: 2px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-md);
  cursor: pointer;
  transition: var(--lmj-transition-fast);
  background: #fff;
}
.lmj-content .paymentChoice > .clearfix {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex: 1;
}
.lmj-content .paymentChoice > .clearfix::before,
.lmj-content .paymentChoice > .clearfix::after {
  display: none;
  content: none;
}
.lmj-content .paymentChoice:hover,
.lmj-content .infosPaiement:hover {
  border-color: var(--lmj-red);
  box-shadow: var(--lmj-shadow-sm);
}
.lmj-content .paymentChoice::before {
  content: '';
  display: block;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid var(--lmj-gray-300);
  background: #fff;
  transition: all 0.2s ease;
  box-sizing: border-box;
}
.lmj-content .paymentChoice.live-payment,
.lmj-content .infosPaiement.live-payment {
  border-color: var(--lmj-red);
  background: linear-gradient(135deg, rgba(194, 36, 24, 0.02) 0%, rgba(194, 36, 24, 0.06) 100%);
  box-shadow: 0 0 0 3px rgba(194, 36, 24, 0.12), var(--lmj-shadow-sm);
}
.lmj-content .paymentChoice.live-payment::before {
  border-color: var(--lmj-red);
  background: var(--lmj-red);
  box-shadow: inset 0 0 0 3px #fff;
}
.lmj-content .paymentChoice h5 {
  font-size: 1rem;
  font-weight: 700;
  margin: 0;
  color: var(--lmj-gray-900);
}
.lmj-content .paymentChoice.live-payment h5 {
  color: var(--lmj-red);
}
.lmj-content .paymentChoice p {
  font-size: 0.85rem;
  color: var(--lmj-gray-600);
  margin: 2px 0 0;
}
.lmj-content .imgPayment {
  flex-shrink: 0;
}
.lmj-content .imgPayment2 {
  display: none;
}
.lmj-content .imgPayment img {
  max-height: 40px;
  width: auto;
}
/* CGV section - Design System */
.lmj-content .cgv-section {
  text-align: center;
  padding: 1.5rem;
  background: var(--lmj-gray-50);
  border-radius: var(--lmj-radius-md);
  margin-top: 1.5rem;
}
.lmj-content .cgv-check {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.lmj-content #check_cgv {
  width: 20px;
  height: 20px;
  accent-color: var(--lmj-red);
  cursor: pointer;
  flex-shrink: 0;
}
.lmj-content label[for="check_cgv"] {
  font-size: 1rem;
  font-family: inherit;
  color: var(--lmj-gray-700);
  cursor: pointer;
  margin: 0;
}
.lmj-content label[for="check_cgv"] a {
  color: var(--lmj-red);
  font-weight: 600;
}

/* CGV Modal */
#cgvModal .modal-header {
  border-bottom: 1px solid var(--lmj-gray-200);
  padding: 1rem 1.25rem;
}
#cgvModal .modal-header .btn-close {
  opacity: 0.7;
}
#cgvModal .modal-title {
  font-weight: 700;
  font-size: 1.1rem;
}
#cgvModal .modal-body p {
  font-size: 1rem;
  margin: 0;
}
#cgvModal .modal-body a {
  color: var(--lmj-red);
  font-weight: 600;
}

/* Submit button - Design System */
.lmj-content .btn-checkout-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: var(--lmj-green);
  color: #fff;
  border: none;
  padding: 14px 40px;
  font-size: 1.1rem;
  font-weight: 700;
  border-radius: var(--lmj-radius-pill);
  cursor: pointer;
  transition: var(--lmj-transition-fast);
  letter-spacing: 0.3px;
}
.lmj-content .btn-checkout-submit:hover {
  background: var(--lmj-green-dark);
  transform: translateY(-2px);
  box-shadow: var(--lmj-shadow-hover);
}

/* Back button - Design System */
.lmj-content .btn-checkout-back {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--lmj-gray-600);
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 500;
  padding: 10px 20px;
  border: 1px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-pill);
  margin-top: 1.5rem;
  transition: var(--lmj-transition-fast);
}
.lmj-content .btn-checkout-back:hover {
  color: var(--lmj-red);
  border-color: var(--lmj-red);
  background: rgba(194, 36, 24, 0.04);
}

/* Responsive checkout */
@media (max-width: 767.98px) {
  .lmj-content .step {
    flex-direction: column;
    align-items: stretch;
  }
  .lmj-content .step li {
    justify-content: center;
  }
  .lmj-content #order-details,
  .lmj-content .payment {
    padding: 1rem;
  }
  .lmj-content .paymentChoice > .clearfix {
    flex-wrap: wrap;
  }
  .lmj-content .btn-checkout-submit {
    width: 100%;
    padding: 12px 20px;
  }
}

/* ========================================
   Bootstrap Pagination Override
   ======================================== */
.lmj-pagination-wrapper {
  margin: 25px 0;
  padding: 15px 0;
  border-top: 1px solid var(--lmj-gray-100);
}

.pagination .page-link {
  color: var(--lmj-gray-700);
  border-color: var(--lmj-gray-200);
  border-radius: var(--lmj-radius-sm) !important;
  margin: 0 2px;
  min-width: 38px;
  text-align: center;
  font-weight: 500;
  transition: var(--lmj-transition-fast);
}

.pagination .page-link:hover {
  background: var(--lmj-red);
  border-color: var(--lmj-red);
  color: #fff;
}

.pagination .page-item.active .page-link {
  background: var(--lmj-red);
  border-color: var(--lmj-red);
  color: #fff;
  font-weight: 700;
}

.pagination .page-item.disabled .page-link {
  color: var(--lmj-gray-400);
  background: var(--lmj-gray-100);
}

/* ========================================
   Product Tabs
   ======================================== */
.lmj-product-tabs {
  margin: 30px 0 20px;
}

.lmj-product-tabs .nav-tabs {
  border-bottom: 1px solid var(--lmj-gray-200);
  gap: 4px;
}

.lmj-product-tabs .nav-tabs .nav-link {
  border: none;
  border-bottom: 3px solid transparent;
  color: var(--lmj-gray-700);
  font-weight: 600;
  font-family: var(--lmj-font-heading);
  padding: 12px 20px;
  font-size: 15px;
  transition: var(--lmj-transition-fast);
  border-radius: 0;
  background: transparent;
}

.lmj-product-tabs .nav-tabs .nav-link:hover {
  color: var(--lmj-gray-900);
  border-bottom-color: var(--lmj-gray-400);
  background: transparent;
}

.lmj-product-tabs .nav-tabs .nav-link.active {
  color: var(--lmj-gray-900);
  border-bottom-color: var(--lmj-red-dark);
  background: transparent;
  font-weight: 700;
}

.lmj-product-tabs .tab-content {
  padding: 20px 0;
}

.lmj-product-tabs .tab-pane {
  animation: fadeInTab 0.3s ease;
}

@keyframes fadeInTab {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ========================================
   Nutritional Values (div-based)
   ======================================== */
.lmj-nutrition {
  max-width: 500px;
  font-size: 14px;
  border-radius: var(--lmj-radius-sm);
  overflow: hidden;
  border: 1px solid var(--lmj-gray-200);
}

.lmj-nutrition-header {
  background: var(--lmj-red-dark);
  color: #fff;
  font-weight: 600;
  padding: 10px 15px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
}

.lmj-nutrition-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 15px;
  border-top: 1px solid var(--lmj-gray-200);
}

.lmj-nutrition-row:nth-child(odd) {
  background-color: rgba(0,0,0,0.02);
}

.lmj-nutrition-sub {
  padding-left: 30px;
  font-size: 13px;
  color: var(--lmj-gray-600);
}

/* Legacy valNut table override */
#valNut { display: none; }


/* ========================================
   Cross-selling Improvements
   ======================================== */
.crossSelling ul li .cross-sell-price {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--lmj-red);
  margin: 5px 0;
}

.crossSelling ul li .cross-sell-add {
  display: inline-block;
  background: var(--lmj-green);
  color: #fff;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: var(--lmj-transition-fast);
  cursor: pointer;
}

.crossSelling ul li .cross-sell-add:hover {
  background: var(--lmj-green-dark);
  color: #fff;
  transform: translateY(-2px);
}

.crossSelling ul li .cross-sell-add i {
  margin-right: 3px;
}

/* ========================================
   Out-of-stock Cross-sell (top of product page)
   ======================================== */
.lmj-content .lmj-oos-crosssell {
  background: transparent;
  border: none;
  border-top: 1px solid var(--lmj-gray-100);
  border-radius: 0;
  padding: 1.25rem 0;
  margin: 1.5rem 0;
}

.lmj-content .lmj-oos-crosssell h3 {
  font-size: 1rem;
  font-family: var(--lmj-font-heading);
  color: var(--lmj-gray-900);
  margin: 0 0 1rem;
}

.lmj-content .lmj-oos-crosssell h3 i {
  color: var(--lmj-green);
  margin-right: 0.375rem;
}

.lmj-content .lmj-oos-crosssell-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 1rem;
}

.lmj-content .lmj-oos-crosssell-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  padding: 0.75rem;
  border-radius: 4px;
  background: transparent;
  border: none;
  transition: var(--lmj-transition-fast);
}

.lmj-content .lmj-oos-crosssell-item:hover {
  background: var(--lmj-gray-50, #f8f8f8);
}

.lmj-content .lmj-oos-crosssell-item img {
  width: 100%;
  max-width: 120px;
  height: 100px;
  object-fit: contain;
  margin-bottom: 0.5rem;
}

.lmj-content .lmj-oos-crosssell-name {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--lmj-gray-900);
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 0.375rem;
}

.lmj-content .lmj-oos-crosssell-price {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--lmj-red);
}

/* ========================================
   Newsletter Feedback
   ======================================== */
.lmj-newsletter-feedback {
  display: none;
  margin-top: 8px;
  font-size: 13px;
}

/* ========================================
   Shipping Progress Bar
   ======================================== */
.lmj-shipping-progress {
  padding: 10px 15px;
  background: #f8f9fa;
  border-radius: var(--lmj-radius-sm);
}

.lmj-shipping-progress .progress {
  border-radius: 10px;
  background: var(--lmj-gray-100);
}

.lmj-shipping-progress .progress-bar {
  border-radius: 10px;
  transition: width 0.6s ease;
}

/* ========================================
   Attribute Select Bootstrap Override
   ======================================== */
#attributesToCart .form-select {
  border: 1px solid var(--lmj-gray-200);
  border-radius: var(--lmj-radius-sm);
  padding: 10px 15px;
  font-size: 14px;
  font-weight: 500;
  transition: var(--lmj-transition-fast);
  max-width: 300px;
}

#attributesToCart .form-select:focus {
  border-color: var(--lmj-red);
  box-shadow: 0 0 0 3px rgba(194, 36, 24, 0.1);
}

#attributesToCart .form-label {
  font-size: 14px;
  color: var(--lmj-gray-700);
}

/* ========================================
   Listing Products - Flexbox Layout
   ======================================== */
.listProductsInCategory {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
}

.infosProductCategoryc,
.infosProductCategory {
  display: flex;
  flex-direction: column;
}

.infosProductCategoryc .ajoutPanierc,
.infosProductCategory .ajoutPanier {
  margin-top: auto;
}

/* ========================================
   Skeleton Loading Placeholder
   ======================================== */
@keyframes shimmer {
  0% { background-position: -200px 0; }
  100% { background-position: calc(200px + 100%) 0; }
}

.lmj-skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200px 100%;
  animation: shimmer 1.5s infinite;
  border-radius: var(--lmj-radius-sm);
}

.lmj-skeleton-card {
  height: 300px;
  margin-bottom: 15px;
}

.lmj-skeleton-text {
  height: 14px;
  margin-bottom: 8px;
  width: 80%;
}

.lmj-skeleton-text.short { width: 40%; }

/* ========================================
   Mobile Responsive Enhancements
   ======================================== */
@media (max-width: 767.98px) {
  .lmj-product-tabs .nav-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .lmj-product-tabs .nav-tabs::-webkit-scrollbar { display: none; }
  .lmj-product-tabs .nav-tabs .nav-link {
    white-space: nowrap;
    font-size: 13px;
    padding: 10px 14px;
  }
  .lmj-nutrition-table {
    max-width: 100%;
    font-size: 13px;
  }
}

/* ========================================
   Product Page - Account Icon Mobile Fix
   ======================================== */
.lmj-account-icon {
  font-size: 24px;
  color: var(--lmj-gray-700);
  transition: color 0.2s ease;
}

.lmj-account-icon:hover {
  color: var(--lmj-red);
}

/* ========================================
   Notification Messages (add-to-cart etc.)
   ======================================== */
.message {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1070;
  text-align: center;
  padding: 0;
  font-size: 0.95rem;
}
.message p {
  margin: 0;
  padding: 0.75rem 1rem;
}
.message.success,
.message.valid {
  background-color: var(--lmj-green);
  color: #fff;
}
.message.info {
  background-color: #0d6efd;
  color: #fff;
}
.message.error {
  background-color: var(--lmj-red);
  color: #fff;
}

