/* Mode Liste - Surcharge Bootstrap */
#js-product-list.products-list-view .products,
#js-product-list.products-list-view .products.row {
  display: block !important;
  margin: 0 !important;
}

#js-product-list.products-list-view .product,
#js-product-list.products-list-view .product[class*="col-"] {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
  margin-bottom: 20px !important;
}

/* Groupes de produits en mode liste */
.products-list-view .product-group {
  margin-bottom: 40px;
}

.products-list-view .product-group-header {
  background: linear-gradient(135deg, #5b39d6 0%, #8740f3 100%);
  color: #fff;
  padding: 16px 24px;
  border-radius: 12px;
  margin-bottom: 16px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(91, 57, 214, 0.25);
  transition: all 0.3s ease;
}

.products-list-view .product-group-header:hover {
  background: linear-gradient(135deg, #4a2cc2 0%, #7532e0 100%);
  box-shadow: 0 6px 16px rgba(91, 57, 214, 0.35);
  transform: translateY(-2px);
}

.products-list-view .product-group-header .group-name {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  color: #fff;
}

.products-list-view .product-group-header .group-toggle {
  font-size: 1.2rem;
  font-weight: bold;
  transition: transform 0.3s ease;
}

.products-list-view .product-group.collapsed .group-toggle {
  transform: rotate(-90deg);
}

.products-list-view .product-group.collapsed .product-list-item {
  display: none;
}

.products-list-view .product-group.collapsed .product-list-item:first-of-type {
  display: block;
}

/* Indentation pour les produits du groupe */
.products-list-view .product-list-item.indented {
  margin-left: 40px;
  position: relative;
}

.products-list-view .product-list-item.indented::before {
  content: '';
  position: absolute;
  left: -24px;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #5b39d6 0%, #8740f3 100%);
  border-radius: 2px;
  opacity: 0.6;
}

.products-list-view .product-list-item.indented .thumbnail-container {
  border-left: 4px solid rgba(91, 57, 214, 0.2);
  background: linear-gradient(to right, rgba(91, 57, 214, 0.03) 0%, #fff 40px);
}

/* Prix dégressifs en mode liste */
.products-list-view .product-tier-prices {
  background: linear-gradient(135deg, rgba(91, 57, 214, 0.05) 0%, rgba(135, 64, 243, 0.05) 100%);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 12px;
}

.products-list-view .tier-prices-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: #5b39d6;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 0 8px 0;
}

.products-list-view .tier-prices-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.products-list-view .tier-price-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 12px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 6px;
  font-size: 0.9rem;
  transition: all 0.3s ease;
}

.products-list-view .tier-price-item.active {
  background: linear-gradient(135deg, rgba(91, 57, 214, 0.15) 0%, rgba(135, 64, 243, 0.15) 100%);
  box-shadow: 0 2px 8px rgba(91, 57, 214, 0.2);
  border-left: 3px solid #5b39d6;
  padding-left: 9px;
}

.products-list-view .tier-quantity {
  color: #6b7c93;
  font-weight: 500;
}

.products-list-view .tier-price-value {
  color: #5b39d6;
  font-weight: 700;
  font-size: 1rem;
}

/* Sélecteur de quantité en mode liste */
.products-list-view .product-add-to-cart-block {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
}

.products-list-view .product-quantity-selector {
  width: 100%;
}

.products-list-view .qty-wrapper {
  display: flex;
  align-items: center;
  background: #fff;
  border: 2px solid #e3e8ef;
  border-radius: 8px;
  overflow: hidden;
  height: 44px;
}

.products-list-view .qty-btn {
  flex: 0 0 44px;
  height: 44px;
  border: none;
  background: linear-gradient(135deg, #f5f7fa 0%, #e3e8ef 100%);
  color: #5b39d6;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.products-list-view .qty-btn:hover {
  background: linear-gradient(135deg, #5b39d6 0%, #8740f3 100%);
  color: #fff;
}

.products-list-view .qty-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.products-list-view .qty-btn .material-icons {
  font-size: 20px;
}

.products-list-view .qty-input {
  flex: 1;
  height: 44px;
  border: none;
  text-align: center;
  font-size: 1.1rem;
  font-weight: 600;
  color: #1f2a44;
  background: #fff;
  padding: 0 8px;
}

.products-list-view .qty-input:focus {
  outline: none;
  background: #fafbfc;
}

/* Bouton d'ajout au panier en mode liste */
.products-list-view .add-to-cart-form-list {
  width: 100%;
}

.products-list-view .add-to-cart-btn {
  width: 100%;
  height: 48px;
  border-radius: 8px;
  background: linear-gradient(135deg, #5b39d6 0%, #8740f3 100%);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.3s ease;
  box-shadow: 0 6px 20px rgba(91, 57, 214, 0.3);
}

.products-list-view .add-to-cart-btn:hover:not(:disabled) {
  background: linear-gradient(135deg, #4a2cc2 0%, #7532e0 100%);
  box-shadow: 0 8px 25px rgba(91, 57, 214, 0.45);
  transform: translateY(-2px);
}

.products-list-view .add-to-cart-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  box-shadow: none;
}

.products-list-view .add-to-cart-btn .material-icons {
  font-size: 22px;
}

.products-list-view .add-to-cart-btn.success {
  background: linear-gradient(135deg, #28a745 0%, #20c997 100%) !important;
}

.products-list-view .add-to-cart-btn.error {
  background: linear-gradient(135deg, #dc3545 0%, #c82333 100%) !important;
}

/* Produit sur demande en mode liste */
.products-list-view .product-on-demand-block {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
}

.products-list-view .product-quantity-state {
  text-align: center;
}

.products-list-view .quantity-status.on-demand {
  display: inline-block;
  padding: 8px 16px;
  background: linear-gradient(135deg, rgba(210, 72, 93, 0.15) 0%, rgba(179, 34, 60, 0.15) 100%);
  color: #b3223c;
  font-weight: 700;
  border-radius: 6px;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.products-list-view .request-quote-btn {
  width: 100%;
  height: 48px;
  border-radius: 8px;
  background: linear-gradient(135deg, #d2485d 0%, #b3223c 100%);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.3s ease;
  box-shadow: 0 6px 20px rgba(210, 72, 93, 0.3);
  text-decoration: none;
}

.products-list-view .request-quote-btn:hover {
  background: linear-gradient(135deg, #c23750 0%, #9f1e35 100%);
  box-shadow: 0 8px 25px rgba(210, 72, 93, 0.45);
  transform: translateY(-2px);
  color: #fff;
  text-decoration: none;
}

.products-list-view .request-quote-btn .material-icons {
  font-size: 22px;
}

/* Actions additionnelles */
.products-list-view .product-additional-actions {
  margin-top: 12px;
  display: flex;
  justify-content: center;
  gap: 8px;
}

.product-group-table {
  margin-bottom: 40px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(18px);
  box-shadow: 0 24px 60px rgba(26, 44, 84, 0.18);
  overflow: hidden;
}

.category-grouped-table {
  width: 100%;
  display: flex;
  flex-direction: column;
  border-radius: 18px;
  overflow: hidden;
}

.category-grouped-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 28px;
  background: linear-gradient(135deg, rgba(91, 57, 214, 0.15) 0%, rgba(135, 64, 243, 0.15) 100%);
  border-bottom: 1px solid rgba(91, 57, 214, 0.2);
}

.category-grouped-header .grouped-header-title {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.category-grouped-header .grouped-header-label {
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5b39d6;
  font-weight: 700;
}

.category-grouped-header .grouped-header-name {
  font-size: 1.35rem;
  font-weight: 700;
  color: #1f2a44;
}

.category-grouped-header .grouped-header-actions .btn {
  border: none;
  color: #5b39d6;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(91, 57, 214, 0.12);
  transition: all 0.3s ease;
}

.category-grouped-header .grouped-header-actions .btn:hover {
  background: rgba(91, 57, 214, 0.25);
  color: #401fa3;
}

.category-grouped-table-body {
  display: flex;
  flex-direction: column;
}

.grouped-table-row {
  display: grid;
  grid-template-columns: minmax(120px, 1fr)
                        repeat(3, minmax(110px, 1fr))
                        minmax(120px, 1fr)
                        minmax(220px, 1.4fr)
                        minmax(140px, 1fr)
                        minmax(160px, 1fr);
  gap: 18px;
  padding: 18px 28px;
  align-items: center;
  border-bottom: 1px solid rgba(92, 101, 134, 0.08);
  transition: background 0.3s ease;
}

.grouped-table-row:hover {
  background: rgba(91, 57, 214, 0.05);
}

.grouped-table-row--head {
  background: rgba(91, 57, 214, 0.08);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #39445c;
  font-size: 0.8rem;
}

.grouped-table-row--child {
  background: rgba(255, 255, 255, 0.92);
}

.grouped-table-row--child .grouped-col--ref {
  padding-left: 16px;
  position: relative;
}

.grouped-table-row--child .grouped-col--ref::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 10px;
  height: 10px;
  background: linear-gradient(135deg, #5b39d6 0%, #8740f3 100%);
  border-radius: 50%;
  transform: translateY(-50%);
  box-shadow: 0 0 12px rgba(91, 57, 214, 0.35);
}

.grouped-col {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: #2f3a56;
  font-size: 0.95rem;
}

.grouped-product-link {
  color: #5b39d6;
  font-weight: 600;
  text-decoration: none;
}

.grouped-product-link:hover {
  text-decoration: underline;
}

.grouped-tier-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.grouped-tier-item {
  padding: 6px 12px;
  border-radius: 12px;
  background: rgba(91, 57, 214, 0.08);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
}

.grouped-tier-quantity {
  color: #5b39d6;
  font-weight: 600;
}

.grouped-tier-price {
  font-weight: 700;
  color: #1f2a44;
}

.grouped-price--empty {
  color: #9aa6bf;
  font-style: italic;
}

.grouped-qty-control {
  display: flex;
  align-items: center;
  border: 2px solid rgba(91, 57, 214, 0.18);
  border-radius: 12px;
  overflow: hidden;
  height: 46px;
}

.grouped-qty-btn {
  background: rgba(91, 57, 214, 0.12);
  border: none;
  width: 46px;
  height: 46px;
  font-size: 20px;
  color: #5b39d6;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.grouped-qty-btn:hover {
  background: linear-gradient(135deg, #5b39d6 0%, #8740f3 100%);
  color: #fff;
}

.grouped-qty-input {
  flex: 1;
  height: 46px;
  border: none;
  text-align: center;
  font-size: 1.1rem;
  font-weight: 600;
  color: #1f2a44;
}

.grouped-qty-input:focus {
  outline: none;
}

.grouped-qty-hint {
  display: block;
  margin-top: 6px;
  color: #9aa6bf;
}

.grouped-add-to-cart,
.grouped-request-quote {
  width: 100%;
  border-radius: 14px;
  padding: 12px 20px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.grouped-add-to-cart {
  background: linear-gradient(135deg, #5b39d6 0%, #8740f3 100%);
  border: none;
  color: #fff;
  box-shadow: 0 16px 32px rgba(91, 57, 214, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.grouped-add-to-cart:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(91, 57, 214, 0.35);
}

.grouped-request-quote {
  background: linear-gradient(135deg, #d2485d 0%, #b3223c 100%);
  color: #fff;
  border: none;
  box-shadow: 0 16px 32px rgba(210, 72, 93, 0.25);
}

.grouped-request-quote:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(210, 72, 93, 0.35);
}

.category-grouped-table.is-collapsed .grouped-table-row--child {
  display: none;
}

.category-grouped-table.is-collapsed .grouped-table-row--head {
  border-radius: 0;
}

@media (max-width: 1200px) {
  .grouped-table-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: auto;
  }

  .grouped-table-row--head {
    display: none;
  }

  .grouped-col {
    padding: 4px 0;
  }
}
.products-list-view .product-miniature-list .product-description {
  flex: 1 1 auto;
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  position: relative;
}

.products-list-view .product-miniature-list .product-list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.products-list-view .product-miniature-list .product-reference-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.products-list-view .product-miniature-list .product-reference {
  font-weight: 600;
  font-size: 1rem;
  color: #a21942;
}

.products-list-view .product-miniature-list .product-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: #1f2a44;
}

.products-list-view .product-miniature-list .product-title a {
  color: inherit;
}

.products-list-view .product-miniature-list .product-info-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(162, 25, 66, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #a21942;
}

.products-list-view .product-miniature-list .product-meta-row {
  display: flex;
  gap: 24px;
  align-items: stretch;
}

.products-list-view .product-miniature-list .product-meta-details {
  flex: 1 1 60%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  color: #3b4b66;
}

.products-list-view .product-miniature-list .product-feature-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 8px;
}

.products-list-view .product-miniature-list .product-feature-table th {
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  color: #7a1233;
  font-weight: 700;
  width: 35%;
  padding-right: 18px;
}

.products-list-view .product-miniature-list .product-feature-table td {
  font-size: 0.95rem;
  color: #293650;
  background: rgba(255,255,255,0.65);
  border-radius: 12px;
  padding: 12px 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.9);
}

.products-list-view .product-miniature-list .product-feature-table tr {
  display: grid;
  grid-template-columns: 160px 1fr;
  align-items: center;
}

.products-list-view .product-miniature-list .product-feature-table tr:last-child td {
  background: rgba(210, 72, 93, 0.12);
  color: #b3223c;
  font-weight: 600;
}

.products-list-view .product-miniature-list .product-action-block {
  flex: 0 0 280px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

.products-list-view .product-miniature-list .product-price-and-shipping {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  margin: 0;
}

.products-list-view .product-miniature-list .product-price-and-shipping .price {
  font-size: 1.35rem;
  font-weight: 700;
  color: #7a1233;
}

.products-list-view .product-miniature-list .product-price-and-shipping .price-sub {
  font-size: 0.85rem;
  color: #8c9ab0;
}

.products-list-view .product-miniature-list .product-quantity-state {
  font-weight: 600;
  color: #d2485d;
  background: rgba(210, 72, 93, 0.12);
  padding: 6px 12px;
  border-radius: 999px;
}

.products-list-view .product-miniature-list .product-action-button {
  display: flex;
  justify-content: flex-end;
}

.products-list-view .product-miniature-list .product-action-button .btn {
  min-width: 200px;
  border-radius: 999px;
  background: linear-gradient(135deg, #5b39d6, #8740f3);
  color: #fff;
  padding: 12px 28px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: 0 14px 30px rgba(91, 57, 214, 0.35);
}

.products-list-view .product-miniature-list .product-action-button .btn:hover {
  background: linear-gradient(135deg, #4a2cc2, #7532e0);
}

.products-list-view .product-miniature-list .product-price-and-shipping {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
/* Guide d'implémentation - Charte graphique Bordeaux & Bleu Électrique pour PrestaShop 8.1.5 */

/* Présentation de la charte graphique */

/* Ce guide détaille l'implémentation d'une charte graphique moderne combinant le bordeaux (#a21942) et le bleu électrique (#5438dc), créant une identité visuelle contemporaine et impactante pour votre boutique PrestaShop 8.1.5. */

/* Variables de couleurs */

/* Intégrez ces variables CSS à la racine de votre feuille de style personnalisée : */

:root {
    /* Palette principale */
    --primary: #a21942; 
    --primary-dark: #8a1538;
    --primary-light: #c13158;
    --secondary: #5438dc;
    --secondary-dark: #4328c0;
    --secondary-light: #6e56e6;
    --accent: #00d0ff;
    --accent-dark: #00b8e6;
    --accent-light: #33daff;
    
    /* Couleurs neutres */
    --dark: #1e2a38;
    --dark-gray: #374151;
    --gray: #6b7280;
    --light-gray: #d1d5db;
    --light: #f5f7fa;
    --white: #ffffff;
    /* Couleurs sémantiques */
    --success: #10b981;
    --warning: #f59e0b;
    --error: #ef4444;
    --info: #3b82f6;
    --primary-gradient: linear-gradient(125deg, #a21942, #5438dc);
}

/* Header principal avec dégradé */
#header, .header-top, .ets_mm_megamenu,.layout_layout1 .ets_mm_megamenu_content {
    background: linear-gradient(125deg, var(--primary), var(--secondary));
    color: white;
    background-size: 300% 300%;
    animation: headerGradient 8s ease infinite;
}

@keyframes headerGradient {
    0% {background-position: 0% 50%;}
    50% {background-position: 100% 50%;}
    100% {background-position: 0% 50%;}
}
#footer{
    background: linear-gradient(125deg, var(--primary), var(--secondary));
    color: white;
    background-size: 300% 300%;
    animation: headerGradient 8s ease infinite;
}
.footer-container {
    background: #000;
    color: white;
}
#_desktop_logo {
    padding: 10px 0;
}

.header-top .position-static {
    position: relative;
    z-index: 10;
}

/* Menu principal */
#_desktop_top_menu .top-menu {
    margin: 0;
}

#_desktop_top_menu .top-menu a[data-depth="0"] {
    color: white;
    font-weight: 500;
    padding: 15px;
    text-transform: none;
}

#_desktop_top_menu .top-menu a[data-depth="0"]:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--accent);
}

#_desktop_top_menu .sub-menu {
    border: none;
    border-radius: 0 0 8px 8px;
    box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
    background: white;
}

#_desktop_top_menu .sub-menu a {
    color: var(--dark);
}

#_desktop_top_menu .sub-menu a:hover {
    color: var(--primary);
}

/* Icônes du header */
.header-top .user-info a,
#_desktop_cart .cart-preview .shopping-cart {
    color: white;
    width: 24px;
height: 24px;
margin-right: 3px;
flex-shrink: 0;
}

.header-top .user-info a:hover {
    color: var(--accent);
}

.header-top .user-info .account-label {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.header-top .user-info .account-role {
    display: block;
    font-size: 11px;
    line-height: 1.1;
    color: rgba(255, 255, 255, 0.8);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Compteur panier */
.cart-products-count {
    background-color: #ffffff;
    color: #5438dc;
    font-weight: 600;
    padding: 0px;
    border-radius: 30px;
    width: 100%;
    max-width: 50px;
    padding: 0px 4px;
}

/* Barre de recherche */
#search_widget {
    margin-bottom: 0;
}

#search_widget form {
    display: flex;
}

#search_widget form input[type=text] {
    border: none;
    border-radius: 8px;
    padding: 12px 15px 12px 40px;
}

#search_widget form i.search {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background-image: url('../img/gradiant/zoom-in.svg');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    font-size: 0;
}

#search_widget form input{border-radius: 8px;}

/* Boutons et éléments d'action */

/* Styles de boutons communs */
.btn {
    border-radius: 6px;
    font-weight: 800;
    text-transform: none;
    transition: all 0.2s ease;
    padding: 10px 20px;
}

/* Bouton primaire */
.btn-primary {
    background: linear-gradient(125deg, var(--primary), var(--secondary));
    color: white;
    background-size: 300% 300%;
    animation: headerGradient 8s ease infinite;
}

/* Bouton secondaire */
.btn-secondary,
.btn-tertiary {
    background-color: var(--secondary);
    border-color: var(--secondary);
    color: white;
}

.btn-secondary:hover,
.btn-tertiary:hover {
    background-color: var(--secondary-dark);
    border-color: var(--secondary-dark);
    color: white;
}

/* Bouton accent */
.btn-accent {
    background-color: var(--accent);
    border-color: var(--accent);
    color: var(--dark);
}

.btn-accent:hover {
    background-color: var(--accent-dark);
    border-color: var(--accent-dark);
}

/* Bouton outline primaire */
.btn-outline-primary {
    background-color: transparent;
    border: 2px solid var(--primary);
    color: var(--primary);
}

.btn-outline-primary:hover {
    background-color: var(--primary);
    color: white;
}

/* Bouton outline secondaire */
.btn-outline-secondary {
    background-color: transparent;
    border: 2px solid var(--secondary);
    color: var(--secondary);
}

.btn-outline-secondary:hover {
    background-color: var(--secondary);
    color: white;
}

/* Ajout au panier */
.add-to-cart {
    background-color: var(--primary);
}

.add-to-cart:hover {
    background-color: var(--primary-dark);
}


/* Listings produits */

/* Cartes produits */
.products .product-miniature {
    margin: 0 0.5rem 2rem;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.product-miniature {
    background-color: white;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    padding-bottom: 1rem;
}

.product-miniature:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 20px rgba(0,0,0,0.12);
}

.product-miniature .thumbnail-container {
    border: none;
    background: white;
    height: auto;
    width: 100%;
    margin-bottom: 0;
}

.product-miniature .product-thumbnail {
    text-align: center;
}

.product-miniature .product-description {
    position: relative;
    width: 100%;
    padding: 0.75rem 1rem;
    background: white;
    box-shadow: none;
    height: auto;
}

/* Prix et badges */
.product-price-and-shipping {
    color: var(--primary);
    font-weight: 700;
    font-size: 1.1rem;
}

.product-miniature .discount-amount,
.product-miniature .discount-percentage {
    background-color: var(--secondary);
}

.product-miniature .regular-price {
    color: var(--gray);
    text-decoration: line-through;
    font-size: 0.9rem;
}

.product-flags .discount,
.product-flags .on-sale {
    background: var(--primary);
}

.product-flags li {
    border-radius: 20px;
    margin: 5px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 600;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

/* Titres produits */
.product-title {
    margin-top: 10px;
    min-height: 40px;
}

.product-title a {
    color: var(--dark);
    font-weight: 600;
}

.product-title a:hover {
    color: var(--secondary);
}

/* Quick view */
.quick-view {
    background-color: rgba(30, 42, 56, 0.7);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.quick-view:hover {
    background-color: var(--secondary);
}

.quick-view i {
    color: white;
}


/* Pagination */

/* Pagination */
.pagination {
    justify-content: center;
}

.page-list {
    box-shadow: none;
    border: none;
    display: flex;
    justify-content: center;
}

.page-list li {
    margin: 0 3px;
}

.page-link {
    color: var(--dark);
    border-radius: 6px;
    padding: 8px 14px;
    border: 1px solid var(--light-gray);
    margin: 0;
    font-weight: 500;
}

.page-link:hover {
    background-color: rgba(84, 56, 220, 0.1);
    color: var(--secondary);
    border-color: var(--secondary-light);
}

.page-item.active .page-link {
    background-color: var(--secondary);
    border-color: var(--secondary);
    color: white;
}

.page-item.disabled .page-link {
    color: var(--light-gray);
}


/* Fiches produit */

/* Section produit */
.product-container {
    background-color: white;
    border-radius: 10px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
    margin-bottom: 2rem;
}

.product-cover {
    border: none;
    border-radius: 8px;
    overflow: hidden;
}

.product-cover img {
    box-shadow: none;
}

.product-images > li.thumb-container > .thumb {
    border-radius: 6px;
    overflow: hidden;
    transition: all 0.2s ease;
}

.product-images > li.thumb-container > .thumb.selected,
.product-images > li.thumb-container > .thumb:hover {
    border: 3px solid var(--secondary);
}

/* Prix et informations */
.product-prices .current-price {
    font-size: 24px;
font-weight: 700;
color: var(--primary);
margin-bottom: 0.5rem;
}

.product-discount .regular-price {
    color: var(--gray);
}

.product-discount .discount {
    background: var(--primary);
    border-radius: 20px;
}

.product-variants .form-control {
    border-radius: 6px;
    border: 1px solid var(--light-gray);
}

.product-variants .input-color:checked + span,
.product-variants .input-color:hover + span {
    border: 2px solid var(--secondary);
}

.product-variants .input-radio:checked + span,
.product-variants .input-radio:hover + span {
    border: 2px solid var(--primary);
}

.product-quantity .qty {
    margin-right: 1rem;
}

.product-quantity .input-group-btn-vertical button {
    border-color: var(--light-gray);
}

.product-quantity .input-group-btn-vertical button:hover {
    background-color: var(--light);
}


/* Onglets */
.product-tabs .nav-tabs {
    border-bottom: 1px solid var(--light-gray);
}

.product-tabs .nav-link {
    color: var(--gray);
    border: none;
    border-bottom: 3px solid transparent;
    background: transparent;
}

.product-tabs .nav-link.active {
    color: var(--secondary);
    border-bottom: 3px solid var(--secondary);
    background: transparent;
}

.product-tabs .nav-link:hover {
    color: var(--secondary-light);
    border-bottom: 3px solid var(--secondary-light);
}

.product-tabs .tab-content {
    padding: 2rem 0;
}

/* Caractéristiques */
.product-features {
    margin-top: 1.5rem;
    overflow: hidden;
    border: 0.5px solid var(--light-gray);
    border-radius: 10px;
box-shadow: 0 2px 15px rgba(0,0,0,0.05);
margin-bottom: 2rem;
}

.product-features .product-features-title,.grouped-products-table thead th {
    background-color: var(--primary);
    color: white;
    padding: 1.2rem 1rem;
    margin-bottom: 0;
    font-weight: 600;
    text-transform: none;
}

.product-features > dl.data-sheet {
    display: flex;
    flex-wrap: wrap; /* Permettre le retour a la ligne */
    margin: 0;
    border-top: 1px solid var(--light-gray);
    /* Supprimer flex-direction: column; */
    gap: 0; /* Reinitialiser les espaces par defaut */
    padding: 0; /* Reinitialiser padding si necessaire */
}

/* Style pour chaque paire de caracteristique (2 colonnes) */
.product-features > dl.data-sheet > .feature-pair {
    display: flex; /* Pour aligner dt et dd a l interieur */
    flex: 0 0 50%; /* Chaque paire prend 50% de la largeur */
    box-sizing: border-box; /* Inclure padding/border dans la largeur */
    border-bottom: 1px solid var(--light-gray);
}

/* Ajustement pour les bordures sur les elements a droite */
.product-features > dl.data-sheet > .feature-pair:nth-child(odd) { /* Elements impairs (colonne de gauche) */
    border-right: 1px solid var(--light-gray);
}

/* Supprimer la bordure du bas pour les deux derniers elements si le nombre est pair */
.product-features > dl.data-sheet > .feature-pair:nth-last-child(-n+2):nth-child(even),
.product-features > dl.data-sheet > .feature-pair:last-child:nth-child(odd) {
    border-bottom: none;
}

/* Style pour le nom de la caracteristique */
.product-features > dl.data-sheet .feature-pair dt.name {
    background: #fdf0f4;
    padding: 0.75rem 1rem;
    font-weight: 600;
    color: var(--primary);
    flex: 0 0 40%; /* Ajuster la largeur du nom */
    border-right: 1px solid var(--light-gray);
    margin: 0;
}

/* Style pour la valeur de la caracteristique */
.product-features > dl.data-sheet .feature-pair dd.value {
    background: white;
    padding: 0.75rem 1rem;
    flex: 1;
    margin: 0;
    color: var(--dark-gray);
    border: none;
    border-radius: 0;
}


/* Formulaires */

/* Formulaires */
.form-control {
    padding: 10px 15px;
    border: 1px solid var(--light-gray);
    border-radius: 6px;
    color: var(--dark);
}

.form-control:focus {
    border-color: var(--secondary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(84, 56, 220, 0.15);
}

/* Labels */
.form-control-label {
    color: var(--dark-gray);
    font-weight: 500;
    margin-bottom: 0.5rem;
}

/* Checkbox & Radio */
.custom-radio {
    margin-right: 0.5rem;
}

.custom-radio input[type=radio]:checked + span {
    background-color: var(--secondary);
}

.custom-checkbox input[type=checkbox] + span {
    border: 2px solid var(--dark-gray);
    width: 20px;
    height: 20px;
}

.custom-checkbox input[type=checkbox]:checked + span {
    background-color: var(--primary);
    border-color: var(--primary);
}

.custom-checkbox input[type=checkbox]:checked + span .checkbox-checked {
    color: white;
}

/* Sélection */
.form-control-select {
    height: auto;
    padding: 12px 15px;
    background-color: white;
    border: 1px solid var(--light-gray);
    border-radius: 6px;
}


/* Panier et processus de commande */

/* Panier */
.cart-detailed {
    background-color: white;
    border-radius: 10px;
    padding: 1.5rem;
    margin-bottom: 2rem;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

.cart-overview {
    margin: 1rem 0;
}

.cart-items {
    padding: 0;
}
.card-block.cart-detailed-subtotals+.cart-summary-totals .cart-total{
    border-top: 1px solid var(--primary);
}
.cart-item {
    border-bottom: 1px solid var(--secondary);
    padding: 1rem 0;
}

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

.cart-summary {
    background-color: white;
    border-radius: 10px;
    padding: 1.5rem;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
}

.cart-summary-line.cart-total {
    font-size: 1.2rem;
}

.cart-summary-line.cart-total .value {
    color: var(--primary);
    font-weight: 700;
}

/* Processus de commande */
.checkout-step {
    background-color: white;
    border-radius: 10px;
    padding: 1.5rem;
    margin-bottom: 1rem;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
    border-bottom: none;
}

.checkout-step.-complete.-reachable.-current {
    border-color: var(--primary);
}

.checkout-step.-current .step-title {
    color: var(--primary);
}

.checkout-step .step-title {
    padding: 0.5rem 0;
    margin-bottom: 1rem;
}
#refcommande-block #ref_client{
  border: 1px solid #F6F6F6 !important;
  border-radius: 0.25rem;
}
.checkout-step .content {
    padding: 1rem 0;
}

/* Adresses */
.address-item {
    background-color: var(--light);
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.address-item.selected {
    border: 2px solid var(--secondary);
    background-color: rgba(84, 56, 220, 0.05);
}

.address-footer {
    margin-top: 1rem;
}

/* Paiement */
.payment-options {
    margin: 1rem 0;
}

.payment-option {
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid var(--light-gray);
    border-radius: 8px;
}

.payment-option label {
    display: block;
    width: 100%;
    cursor: pointer;
}

.payment-option.selected {
    border-color: var(--secondary);
    background-color: rgba(84, 56, 220, 0.05);
}


/* Alertes et messages */

/* Alertes */
.alert {
    border-radius: 8px;
    border: none;
    padding: 1rem 1.5rem;
    margin-bottom: 1.5rem;
}

.alert-info {
    background-color: rgba(84, 56, 220, 0.1);
    border-left: 4px solid var(--secondary);
    color: var(--secondary-dark);
}

.alert-success {
    background-color: rgba(16, 185, 129, 0.1);
    border-left: 4px solid var(--success);
    color: var(--success);
}

.alert-warning {
    background-color: rgba(245, 158, 11, 0.1);
    border-left: 4px solid var(--warning);
    color: #835500;
}

.alert-danger {
    background-color: rgba(239, 68, 68, 0.1);
    border-left: 4px solid var(--error);
    color: var(--error);
}

/* Messages */
.notification {
    border-radius: 8px;
    margin-bottom: 1rem;
}

.notification.notification-success {
    background-color: var(--success);
}

.notification.notification-warning {
    background-color: var(--warning);
}

.notification.notification-error {
    background-color: var(--error);
}

.notification .notification-container {
    padding: 1rem 1.5rem;
    color: white;
}


/* Footer */

/* Footer */
.footer-container {
    color: white;
    padding: 3rem 0 1rem;
    margin-top: 1rem;
}

.footer-container a {
    color: rgba(255, 255, 255, 0.85);
    transition: color 0.2s ease;
}

.footer-container a:hover {
    color: var(--accent);
    text-decoration: none;
}

.footer-container .h3,
.footer-container .h4 {
    color: white;
    font-weight: 600;
    margin-bottom: 20px;
    font-size: 18px;
}

.block-contact {
    color: rgba(255, 255, 255, 0.85);
}

.block-contact .block-contact-title {
    color: white;
}

/* Appliquer display: inherit seulement sur les écrans larges */
@media (min-width: 768px) {
  .footer-container .links .collapse {
    display: inherit !important; /* Important pour surcharger le display:block potentiel ajouté par JS */
  }
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 1.5rem;
    margin-top: 2rem;
}

/* Réseaux sociaux */
.block-social {
    margin-top: 1.5rem;
}

.block-social ul {
    display: flex;
    gap: 10px;
}

.block-social li {
    background-color: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    transition: background-color 0.2s ease;
}

.block-social li:hover {
    background-color: var(--primary);
}

.block-social li a {
    display: block;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Newsletter */
.block_newsletter {
    margin-bottom: 1.5rem;
}

.block_newsletter form {
    display: flex;
}

.block_newsletter .input-wrapper {
    flex: 1;
}

.block_newsletter input[type=email] {
    border: none;
    border-radius: 6px 0 0 6px;
    padding: 10px 15px;
    width: 100%;
}

.block_newsletter .btn-primary {
    border-radius: 0 6px 6px 0;
    padding: 0 15px;
    margin-left: -1px;
}

@media (max-width: 767px) {
    .footer-container {
    padding: 1.5rem 0;
    }
    
    .footer-container .links .h3 {
    margin-bottom: 0;
    padding: 0.5rem 0;
    }
    
    .footer-container .links ul {
    margin-bottom: 1rem;
    }
    
    .block_newsletter form {
    flex-direction: column;
    }
    
    .block_newsletter input[type=email] {
    border-radius: 6px;
    margin-bottom: 0.5rem;
    }
    
    .block_newsletter .btn-primary {
    border-radius: 6px;
    width: 100%;
    }
}


/* Sections générales et mise en page */

/* Sections et conteneurs */
#wrapper {
    background: white;
    padding-top: 0rem;
}

.container {
    padding: 0 15px;
}

/* Titres de sections */
.h1, .h2, .h3, .h4, .h5, .h6,
h1, h2, h3, h4, h5, h6 {
    color: var(--dark);
    font-weight: 600;
}
.h1{
    font-size: 28px;
    margin-bottom: 0.5rem;
}
.section-title {
    margin-bottom: 2rem;
    position: relative;
    padding-bottom: 0.5rem;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 50px;
    height: 3px;
    background: linear-gradient(to right, var(--primary), var(--secondary));
}

/* Cartes et conteneurs */
.card {
    border: none;
    border-radius: 10px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
    margin-bottom: 1.5rem;
}

.card-header {
    background-color: white;
    border-bottom: 1px solid var(--light-gray);
    padding: 1.25rem 1.5rem;
}

.card-body {
    padding: 1.5rem;
}

.card-footer {
    background-color: var(--light);
    border-top: 1px solid var(--light-gray);
    padding: 1.25rem 1.5rem;
}

/* Breadcrumb */
.breadcrumb {
    background: transparent;
    padding: 0.5rem 0;
    margin-bottom: 1rem;
    margin-top: 1rem;
}

.breadcrumb ol {
    padding: 0;
    margin: 0;
    list-style: none;
}

.breadcrumb li {
    display: inline;
    font-size: 0.875rem;
}

.breadcrumb li a {
    color: var(--gray);
}

.breadcrumb li a:hover {
    color: var(--primary);
}

.breadcrumb li:last-child {
    color: var(--dark);
    font-weight: 500;
}

.breadcrumb li:not(:last-child)::after {
    content: '/';
    margin: 0 0.5rem;
    color: var(--light-gray);
}


/* Adaptation pour votre module ProductAttachment */

/* Pour adapter la charte graphique à votre module ProductAttachment tel que décrit dans vos documents, ajoutez ces styles spécifiques : */

/* Styles pour le module ProductAttachment */


.attachment-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 1rem;
}

.attachment-tag {
    background-color: var(--light);
    border: 2px solid transparent;
    border-radius: 25px;
    padding: 0.5rem 1rem;
    cursor: pointer;
    transition: all 0.2s ease;
    font-weight: 500;
    color: var(--dark);
}

.attachment-tag:hover {
    border-color: var(--secondary-light);
    background-color: rgba(84, 56, 220, 0.05);
}

.attachment-tag.active {
    background-color: var(--secondary);
    color: white;
    border-color: var(--secondary);
}

.attachment-tag.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.attachment-tag.color-tag {
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
}

.attachment-tag.color-tag.active {
    box-shadow: 0 0 0 2px white, 0 0 0 4px var(--secondary);
}

.attachment-dropdown {
    position: relative;
    margin-bottom: 1rem;
}

.attachment-dropdown select {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid var(--light-gray);
    border-radius: 6px;
    background-color: white;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 15px center;
}

.attachment-dropdown select:focus {
    border-color: var(--secondary);
    outline: none;
    box-shadow: 0 0 0 3px rgba(84, 56, 220, 0.15);
} 

.mm_menus_li > a{text-transform: capitalize;}
.ets_mm_megamenu .container{background-color: transparent;}
#header .header-nav .blockcart{background: transparent;color: #ffffff;}
#header .header-nav .cart-preview .shopping-cart, #header .header-nav .blockcart, #header a{color: #ffffff;}
@media (max-width: 767px) {
    #header .header-top .search-widget {
    width: 100%;
    }
}
@media (max-width: 991px) {
    #header .header-top .search-widget {
    min-width: inherit;
    }
}
@media (max-width: 767px) {
    .header-top .search-widget {
    float: none;
    }
}
#header .header-top{
    padding: 0.25rem 0
}
#header .header-top>.container>.row:first-of-type {
    display: -webkit-box;
    display: -ms-flexbox;
    display: inherit;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: stretch;
    align-content: center;
}
.header-top .search-widgets{min-width: inherit;max-width: inherit;width: 100%;}

/* Style
/* Aligner les elements du header nav */
.right-nav {
    display: flex;
    align-items: center; /* Aligne verticalement au centre */
    justify-content: flex-end; /* Aligne horizontalement a droite */
    gap: 15px; /* Espace entre les elements */
}

/* S assurer que les blocs enfants prennent la hauteur necessaire */
.right-nav > div {
    display: flex;
    align-items: center;
}

/* Taille et style specifiques pour chaque icone SVG */
.right-nav .user-info a.account svg.account-icon, #_mobile_user_info .user-info a.account svg.account-icon{
    width: 20px; /* Taille fixe */
    height: 20px; /* Taille fixe */
    margin-right: 5px; /* Espace entre icone et texte */
    flex-shrink: 0; /* Empeche l icone de retrecir */
}

.right-nav .user-info a.express-order svg.express-order-icon {
    width: 24px; /* Remis a 20px pour alignement */
    height: 24px; /* Remis a 20px pour alignement */
    margin-right: 5px; /* Espace entre icone et texte */
    flex-shrink: 0; /* Empeche l icone de retrecir */
}
.right-nav .blockcart a svg {
    width: 24px; /* Remis a 20px pour alignement */
    height: 24px; /* Remis a 20px pour alignement */
    margin-right: 5px; /* Espace entre icone et texte */
    flex-shrink: 0; /* Empeche l icone de retrecir */
}
#contact-link .contact-link-icon{ 
    width: 24px; /* Remis a 20px pour alignement */
    height: 24px; /* Remis a 20px pour alignement */
    margin-right: 5px; /* Espace entre icone et texte */
    flex-shrink: 0; /* Empeche l icone de retrecir */
    vertical-align: middle;
}

/* S assurer que les liens eux-memes s affichent correctement */
.right-nav .user-info a,
.right-nav .blockcart a {
    display: inline-flex; /* Utilise flex pour aligner icone et texte dans le lien */
    align-items: center; /* Aligne verticalement l icone et le texte dans le lien */
    color: white; /* Assurez-vous que la couleur est lisible */
    text-decoration: none;
}

.right-nav .user-info a:hover,
.right-nav .blockcart a:hover {
    color: var(--primary-light, #c13158); /* Couleur au survol */
}
#header .header-nav .user-info{
    margin-top: 0;
    white-space: nowrap;
    vertical-align: middle;
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    align-items: center;
    align-content: center;
    justify-content: center;
}
#header .header-nav .blockcart .header{
    margin-top: 0;
}
#header .header-nav{
    border-bottom: #6e56e6 0px solid;
}
#header .header-nav .blockcart a, .account-list a, .products-selection .title{
    color: #ffffff;
}
#header .header-nav .blockcart,#_mobile_user_info .user-info{
    padding: .75rem .1rem;
     margin-left: 0;
    text-align: center;
    white-space: nowrap;
}
.right-nav{
    gap: 0;
}
#header a{
    padding:2px
}
.header-desktop-main #_desktop_contact_link a:hover,.header-desktop-main .user-info > a:hover,#header .header-nav .cart-preview .shopping-cart:hover,.header-desktop-main .blockcart:hover{
    background:rgba(255,255,255,.2);
    border-radius: 10px;
    color:#ffffff!important;
    padding: 2px;
}
.header-desktop-main .blockcart{
    padding:2px
}

#header .layout_layout1 li > a:hover{
    background:transparent;
    border-radius: 0px;
    color:inherit;
    padding: 0px;
}

.inline_header{
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}
.page-addresses .address{
    margin-bottom: 1.875rem; 
    font-size: .875rem;
    color: #232323;
    background: #fff;
    border-radius: 10px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    padding: 0rem 1rem;
    overflow: hidden;
    z-index: 1;
    color: #5438dc;
    letter-spacing: 0.5px;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    border: 1px solid rgba(0, 0, 0, 0.05);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}
.page-customer-account #content{
    margin-bottom: 3rem;
    font-size: .875rem;
    color: #232323;
    background: #fff;
    border-radius: 10px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    padding: 1rem 1rem;
    overflow: hidden;
    z-index: 1;
    color: #5438dc;
    letter-spacing: 0.5px;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    border: 1px solid rgba(0, 0, 0, 0.05);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}
#header .ets_mm_block .mm_block_type_html a{
  color: #5438dc;  background-color: transparent;
}

body{
    font-family: Open Sans,Open Sans-fallback,Arial,sans-serif;
    font-size: 1rem;
    line-height: 1.25em;
}
.product-attachment-tag.selected{
    background-color: #5438dc;
    color: #ffffff;
}

#block_myaccount_infos .myaccount-title a{
    color: white;
    font-size: 19px;
}
.block-contact, .footer-container li a{
    font-size: 1rem;
color: white;
}
.footer-container li a{
    color: white;
}
.footer-container li a:hover{
    text-decoration: underline;
}
.page-my-account #content .links a i{
    color: #5438dc;
}
/* Style des blocs d'éléments du compte client */


/* Style des blocs d'éléments du compte client */
.link-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: white;
    border-radius: 10px;
    padding: 1.5rem 1rem;
    text-align: center;
    position: relative;
    overflow: hidden;
    color: var(--dark);
    font-weight: 600;
    transition: all 0.3s ease;
    border: 1px solid var(--light-gray);
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    margin-bottom: 1rem;
}

.link-item:hover {
    transform: translateY(-5px);
    border-color: var(--secondary);
    background-color: rgba(84, 56, 220, 0.05);
    transform: translateY(-5px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.link-item .material-icons {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    color: var(--secondary);
    transition: all 0.3s ease;
}

/* Version active */
.link-item.active {
    border: 2px solid var(--secondary);
    background-color: rgba(84, 56, 220, 0.05);
}

.link-item.active .material-icons {
    color: var(--secondary);
}

/* Variante avec couleur primaire */
.link-item.primary {
    color: var(--dark);
}

.link-item.primary .material-icons {
    color: var(--primary);
}

.link-item.primary:hover {
    border-color: var(--primary);
}

.link-item.primary.active {
    border: 2px solid var(--primary);
    background-color: rgba(162, 25, 66, 0.05);
}

/* Ajout d'un effet de badge */
.link-item.has-badge::after {
    content: attr(data-badge);
    position: absolute;
    top: 10px;
    right: 10px;
    background: var(--accent);
    color: var(--dark);
    border-radius: 20px;
    padding: 0.2rem 0.6rem;
    font-size: 0.7rem;
    font-weight: 700;
}

/* Media queries pour responsivité */
@media (max-width: 767px) {
    .link-item {
    padding: 1.25rem 1rem;
    }
    
    .link-item .material-icons {
    font-size: 2rem;
    }
    
    .cart-products-count {
    padding: 0px 10px;
    }
    #header .header-nav .blockcart .header{
    padding-top: 3px;
    }
}

.page-my-account #content .links a:hover,.page-my-account #content .links a:hover i{
    color: #5438dc;
}
a{
    color: #5438dc;
}
a:hover{
    color: #6e56e6
    ;
}
.blockreassurance .block-icon, .blockreassurance .block-icon img, .blockreassurance .block-icon svg{
    height: 30px
}
.blockreassurance .block-title{
    font-size: 0.825rem;
} 

.product-attributes {
    margin-bottom: 30px;
}
.product-attachments {
margin: 0;
padding-top: 0rem;
border: 0px solid #e5e5e5;
border-radius: 0px;
background-color: transparent;
}
.product-attachments-attributes{
    margin-bottom: 1.5rem;
}
.product-attachments-name{
    font-weight: 600;
margin-bottom: 10px;
display: block;
font-size: 16px;
color: var(--dark);
}
.product-attachments-values{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 1rem;
    width: 100%;
}
.product-attachment-tag{
    background-color: var(--light);
    border: 2px solid transparent;
    border-radius: 25px;
    padding: 0.5rem 1rem;
    cursor: pointer;
    transition: all 0.2s ease;
    font-weight: 500;
    color: var(--dark);
}
.product-attachment-tag.selected{
    background-color: var(--secondary);
    color: white;
    border-color: var(--secondary);
}
.product-attachment-tag:hover{
    border-color: var(--secondary-light);
    color: var(--secondary);
    background-color: rgba(84, 56, 220, 0.05);
}

.product-attachment-discount-tiers{
    display: flex;
    gap: 10px;
    margin: 1.5rem 0;
    flex-wrap: wrap;
}
.discount-tier-box:hover{
    border-color: var(--secondary);
    background-color: transparent;
    transform: translateY(-5px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.discount-tier-box.active-discount-tier{
    border-color: var(--secondary);
    background-color: rgba(84, 56, 220, 0.05);
    transform: translateY(-5px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.discount-tier-box{
    flex: 1;
    min-width: 120px;
    border: 1px solid var(--light-gray);
    border-radius: 8px;
    padding: 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s;
    background: var(--white);
}
.grouped-products-table .tier-card.active-tier{
    border-color: var(--secondary);
    background-color: rgba(84, 56, 220, 0.05);
    transform: translateY(-5px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.grouped-products-table .tier-card:hover{
    border-color: var(--secondary);
    background-color: transparent;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.grouped-products-table .tier-card{
    flex: 1;
    min-width: 30px;
    border: 1px solid var(--light-gray);
    border-radius: 8px;
    padding: 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s;
    background: var(--white);
}

.discount-tier-box .tier-title{
    font-weight: 600;
    margin-bottom: 5px;
    font-size: 16px;
    color: var(--dark);
}
.grouped-products-table .tier-discount{
    font-weight: 600;
    margin-bottom: 5px;
    font-size: 12px;
    color: var(--dark);
}

.discount-tier-box .tier-quantity{
    font-size: 12px;
    color: var(--gray);
}
.grouped-products-table .tier-quantity{
    font-size: 12px;
    color: var(--gray);
}
.discount-tier-box .tier-price{
    font-size: 18px;
    font-weight: 700;
    color: var(--primary);
}
.grouped-products-table .tier-price{
    font-size: 18px;
    font-weight: 700;
    color: var(--primary);
}


.product-quantity .input-group .input-group-btn>.btn{
    width: 40px;
height: 48px;
background: var(--light);
border: none;
font-size: 18px;
cursor: pointer;
transition: background 0.2s;
display: flex;
align-items: center;
justify-content: center;
color: var(--dark);
}
.product-quantity #quantity_wanted{
    width: 50px;
    height: 48px;
    border: none;
    text-align: center;
    font-size: 16px;

}

.bootstrap-touchspin{
    display: flex;
    align-items: center;
    border: 1px solid var(--light-gray);
    border-radius: 6px;
    overflow: hidden;
    height: -webkit-fit-content;
}
.block-social ul, .product-quantity{
    display: flex;
flex-wrap: wrap;
gap: 15px;
}

.add-to-cart-btn{
    flex: 1;
    min-width: 180px;
    height: 45px;
    background-color: var(--primary);
    color: white;
    border: none;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.wishlist-button-add, .wishlist-button-product{
    width: 45px !important;
    height: 45px !important;
    border: 1px solid var(--light-gray) !important;
    border-radius: 6px !important;
    background: white !important;
    cursor: pointer !important;
    transition: all 0.2s !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.wishlist-button-product{
    margin-left: 0!important;
}
.wishlist-products-list{
    margin: 0!important;
    
}
#product-info{flex: 1;
    min-width: 300px;
    padding: 30px;
    border-right: 1px solid #eee;
}

#product #content{
    position: relative;
    max-width: 100%;
    margin: 0 auto;
}
.product-add-to-cart .add-to-cart {
    width: 100%;
}
.product-add-to-cart .add-to-cart,.grouped-request-quote-btn {
    flex: 1;
    min-width: 180px;
    height: 45px;
    color: white;
    border: none;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: linear-gradient(125deg, var(--primary), var(--secondary));
    color: white;
    background-size: 300% 300%;
    animation: headerGradient 8s ease infinite;
}
.product-add-to-cart .add-to-cart:hover {
    background-color: var(--primary-dark);
}
.product-add-to-cart .add-to-cart:active {
    transform: scale(0.98);
}

.grouped-products-table .qty-input.grouped-qty-input{
    min-width: 50px;
}
#header .header-nav .cart-preview.active{
    background: transparent;
}
.quantity-input-group .input-group .form-control{
    padding: 10px 0px;
    border: none;
}
.bootstrap-touchspin .input-group-btn-vertical{display: none;}
.quote-request-panel .quantity-input-group{
    width: 80px;
}

/* Styles pour le panneau de demande de devis */
.product-summary {
    overflow: hidden;
    margin-bottom: 15px !important;
    display: flex;
    align-items: flex-start;
}

.product-details {
    flex: 1;
    padding-left: 10px;
    overflow: hidden;
}

.quote-product-name {
    display: block;
    font-weight: bold;
    font-size: 16px;
    line-height: 1.3;
    margin-bottom: 5px;
    word-break: break-word;
    width: 100%;
    color: var(--primary);
}

.quote-product-reference {
    display: block;
    color: var(--secondary);
    margin-bottom: 5px;
    font-size: 1rem;
    font-weight: normal;
    line-height: 1.2;
}

.quote-product-image {
    float: none;
    margin-right: 0;
    max-width: 70px;
    height: auto;
    border-radius: 4px;
    border: 1px solid #f5f5f5;
}
.grouped-filter-reset{
    padding: 0px 15px;
}
.grouped-products-filters,.grouped-products-filters .filter-group{
    margin-bottom: 0rem;
}
.filter__wrapper{margin-bottom: 0.1rem;}

.next-discount-tier-message .alert-info{
    background-color: #fff;
border-color: var(--secondary-dark);
border-left: 4px solid var(--secondary-dark);

}
.next-discount-tier-message .alert{
    padding: 0.5rem 0.75rem;
margin-bottom: 0.5rem;
align-items: center;
justify-content: space-between;
width: 100%;
}
.next-discount-tier-message .material-icons{
    color:  var(--secondary-dark);
}
.next-discount-tier-message strong{color: var(--secondary-dark);}
.p-2{padding: .5rem!important;}
.mt-2{margin-top: .5rem!important;}

.next-discount-tier-message .apply-next-tier-quantity:hover{
  background: var(--primary-dark);
  color: white;    
  border-color: var(--primary-dark);
  padding: 0.25rem 0.75rem;
  font-size: 0.8rem;
  border-radius: 0.2rem;
  cursor: pointer;
  transition: all 0.2s;
  margin-left: 0.5rem;
}
.next-discount-tier-message .apply-next-tier-quantity{
    background:transparent;
    color: var(--primary);
    border-color: var(--primary-dark);
    font-weight: 100;
    padding: 0.25rem 0.75rem;
    font-size: 0.8rem;
    border-radius: 0.2rem;
    cursor: pointer;
    transition: all 0.2s;
    margin-left: 0.5rem;
}
.unitprice{
   color: var(--light-gray);
   font-size: 0.8rem;
line-height: 0.8rem;
}
.discounted-price{
    margin-left: 0.5rem;
    background: var(--primary);
    color: white;
    padding: 0.2rem 0.5rem;
    border-radius: 8px;
    }
.current-price{ color: var(--light-gray);
    font-size: 0.9rem;
 line-height: 0.9rem;}
 .product-reference {
    color: var(--secondary)!important;
    font-size: 1rem;
 line-height: 1rem;
font-weight: 800;
margin-bottom: 1rem;
}
.product-reference-search{
    color: var(--secondary)!important;
    font-size: 1rem;
 line-height: 1rem;
font-weight: 800;
}
.product-line-grid-body{margin-bottom: 0}
/* --- NOUVELLE Reorganisation Panier Mobile --- */
.product-unit-price-mobile .value{
    color: var(--primary);
    font-weight: 800;
}
@media (max-width: 767px) {
    .product-line-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    position: relative; /* Pour positionner le prix total */
    padding: 0.5rem 0; /* Espace interieur */
    margin-bottom: 0rem;
    }
    .next-discount-tier-message .alert{
    flex-direction:unset
    }
    .p-2{padding: 0.2rem!important;}
    .next-discount-tier-message .apply-next-tier-quantity{
     margin-top: 0rem;
display: inline-block;
    }
    /* Colonne Image */
    .product-line-grid-left {
    flex: 0 0 70px; /* Largeur image */
    padding-right: 10px;
    order: 1;
    align-self: flex-start; /* Aligner en haut */
    }
     .product-line-grid-left .product-image img {
    width: 100%;
    height: auto;
    max-width: 70px;
    border-radius: 4px; /* Coins arrondis image */
    }

    /* Colonne Infos Milieu (Ref, Nom, Actions Mobile) */
    .product-line-grid-body {
    flex: 1; /* Prend le reste de la largeur a cote de l image */
    order: 2;
    display: flex;
    flex-direction: column; /* Empiler les elements */
    align-items: flex-start; /* Aligner a gauche */
    padding-left: 5px; /* Petit espace apres l image */
    gap: 0.3rem; /* Espace entre ref/nom et actions */
    }

    /* Reference */
     .product-line-grid-body .product-reference {
    order: 1;
    font-size: 0.85rem;
    color: var(--primary); /* Couleur comme dans l image */
    font-weight: 600;
    margin-bottom: 0.1rem;
    line-height: 1;
     }

    /* Nom Produit */
    .product-line-grid-body .product-name-container {
     order: 2;
     margin-bottom: 0.5rem; /* Espace avant actions */
     }
    .product-line-grid-body .product-name-container a.label {
    font-weight: 600;
    font-size: 1rem; /* Legerement plus grand */
    color: var(--dark);
    line-height: 1.3;
    }

    /* Conteneur Actions Mobile (Qty + Delete) */
    .product-line-actions-mobile {
    order: 3; /* Vient apres le nom */
    display: flex;
    align-items: center;
    gap: 0.8rem; /* Espace entre Qty et Delete */
    width: auto; /* S adapte au contenu */
    margin-top: 0.2rem; /* Rapprocher du nom */
    }

    /* Style Quantite Mobile */
    .product-line-actions-mobile .qty {
     padding: 0;
     margin: 0;
     max-width: none;
    }
    .product-line-actions-mobile .qty .input-group.product-quantity-horizontal {
    border: 1px solid var(--light-gray);
    border-radius: 6px;
    overflow: hidden;
    height: 38px; /* Ajuster hauteur */
    background-color: var(--light); /* Fond clair */
    }
    .product-line-actions-mobile .qty .js-cart-line-product-quantity {
    height: 30px;
    width: 45px; /* Plus de largeur pour l input */
    padding: 0 5px;
    border: none;
    font-size: 1rem;
    font-weight: bold;
    background-color: white; /* Fond blanc pour l input */
    }
    .product-line-actions-mobile .qty .product-quantity-button {
     width: 30px; /* Boutons carres */
     height: 30px;
     background: var(--light);
     border: none;
     font-size: 1.4rem; /* Icones +/- plus grandes */
     color: var(--dark-gray);
     padding: 0;
    }
   
    .product-line-actions-mobile .qty .product-quantity-button i {
    font-size: 1.1rem;
    }
    .product-line-actions-mobile .qty .product-quantity-button i:hover{
    color: var(--secondary);
    }

    /* Style Bouton Supprimer Mobile */
    .product-line-actions-mobile .cart-line-product-actions {
    padding: 0;
    margin: 0;
    align-self: center;
    }
    .product-line-actions-mobile .cart-line-product-actions .remove-from-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px; /* Meme hauteur que Qty */
    height: 30px;
    background-color: #eef2f5; /* Fond bleu clair */
    border-radius: 6px;
    padding: 0;
    margin: 0;
    }
    .product-line-actions-mobile .cart-line-product-actions .remove-from-cart i {
    color: white; /* Icone bleu */
    font-size: 1rem; /* Icone plus grande */
    float: none;
    line-height: 1;
    }
    .product-line-actions-mobile .cart-line-product-actions .remove-from-cart i:hover{
    color: var(--primary);
    }

    /* Colonne Droite (contient seulement le prix total sur mobile) */
    .product-line-grid-right.product-line-pricing {
    flex: 1; /* Prend l'espace restant sur la premiere ligne */
    order: 3; /* Meme ordre que le body pour etre a droite */
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* Aligner a droite */
    text-align: right;
    align-self: flex-start; /* Aligner en haut */
    margin-left: 10px; /* Espace par rapport au body */
    }

    /* Prix Total Mobile */
    .product-line-pricing .product-total-price-container {
     margin-top: 0; /* Remonter */
     padding-top: 0.3rem; /* Aligner approx avec reference */
     order: 2;
    }
    .product-line-pricing .product-total-price-container .label {
    font-size: 0.8rem;
    color: var(--gray);
    display: block;
    margin-bottom: 0.1rem;
    font-weight: 100;
    }
     .product-line-pricing .product-total-price-container .value strong {
    font-size: 1.2rem; /* Taille prix */
    font-weight: 700;
    color: var(--primary)
    }
    .product-line-grid-right .cart-line-product-actions, .product-line-grid-right .product-price{
    line-height:inherit ;
    }
    /* Prix Unitaire Mobile (Place sous l'image) */
    .product-unit-price-mobile {
    order: 1; /* Apres l image et le body */
    flex: 0 0 100%; /* Prend toute la largeur sous l image/body */
    padding: 0; /* Espace au dessus */
    margin-top: 0rem; /* Espace par rapport a Qty/Delete */
    font-size: 0.9rem;
    color: var(--dark-gray);
    }
    .product-unit-price-mobile .label {
    display: block;
    font-size: 0.8rem;
    color: var(--gray);
    margin-bottom: 0rem;
    }
    .product-unit-price-mobile .value {
    color:var(--primary);
    font-weight: 800;
    }
    .product-unit-price-mobile .unit-price-cart {
    font-size: 0.8rem;
    margin-left: 0.3rem;
    }

     /* Cacher elements desktop sur mobile */
     .product-line-actions-container,
     .product-line-pricing .product-unit-price-container {
    display: none;
     }
     /* Assurer que les elements mobiles sont visibles */
      .product-line-actions-mobile,
      .product-unit-price-mobile {
     display: flex; /* ou block selon le cas */
      }
       .product-line-actions-mobile { display: flex; }
       .product-unit-price-mobile { display: block; }

}

/* --- FIN NOUVELLE Reorganisation Panier Mobile --- */


/* --- Styles Desktop Corriges --- */
@media (min-width: 768px) {
    .product-line-grid {
    display: flex;
    align-items: center; /* Centrer verticalement les colonnes */
    gap: 1.5rem; /* Espace entre les colonnes */
    padding: 0.5rem 0; /* Padding haut/bas */
    margin-bottom: 0rem;
    position: relative;
    }
    .product-line-grid-right .cart-line-product-actions, .product-line-grid-right .product-price{
    line-height:inherit ;
    }
    /* Colonne Image (si presente, sinon ajuste l'espace) */
    .product-line-grid-left {
    flex: 0 0 90px;
    padding-right: 0; /* Annuler padding mobile */
    align-self: center; /* Centrer image verticalement */
    /* Si l image n est pas voulue sur desktop, ajouter display: none; ici */
    /* display: none; */
    }
    /* Si l image est cachee, ajuster la colonne body */
    /* .product-line-grid-left:has(+ .product-line-grid-body) { display: none; } */
    /* .product-line-grid-left + .product-line-grid-body { padding-left: 0; } */

    .product-line-grid-left .product-image img {
    max-width: 90px;
    border-radius: 4px;
    }

    /* Colonne Centrale (Ref, Nom, Actions Desktop) */
    .product-line-grid-body {
    flex: 1; /* Prend l espace central */
    order: 2;
    padding-right: 1.5rem; /* Espace avant separateur */
    margin-right: 1.5rem; /* Creer l espace du separateur */
    /*border-right: 1px solid var(--light-gray); /* Separateur vertical */
    display: flex;
    flex-direction: column; /* Empiler Ref, Nom, Actions */
    align-items: flex-start; /* Aligner a gauche */
    justify-content: space-between; /* Espace entre haut et bas */
    gap: 0.5rem; /* Espace interne si besoin */
    align-self: stretch; /* Prendre toute la hauteur */
    min-height: 80px; /* Hauteur minimale pour alignement */
    }

     /* Reference */
    .product-line-grid-body .product-reference {
    order: 1;
    font-size: 0.85rem;
    font-weight: 600;
    color: #a21942; /* Bordeaux pour reference */
    margin-bottom: 0.1rem;
    line-height: 1;
    }

    /* Nom Produit */
    .product-line-grid-body .product-name-container {
     order: 2;
     /* margin-bottom: auto; */ /* Retire pour laisser actions en bas */
     }
    .product-line-grid-body .product-name-container a.label {
    order: initial; /* Reinitialiser ordre mobile */
    font-size: 1rem;
    font-weight: 600; /* Plus gras */
    color: var(--dark);
    line-height: 1.3;
    }

    /* Conteneur Actions Desktop (Qty + Delete) */
    .product-line-grid-body .product-line-actions-container {
     order: 3; /* Apres le nom */
     display: flex;
     align-items: center;
     gap: 1rem; /* Espace entre Qty et Delete */
     margin-top: 0.5rem; /* Espace apres le nom */
     width: auto; /* S adapte au contenu */
     padding-bottom: 0.2rem; /* Petit espace bas */
    }

    /* Quantite Desktop */
    .product-line-grid-body .qty {
     padding: 0;
     margin: 0;
     max-width: none;
    }
    .product-line-grid-body .qty .input-group.product-quantity-horizontal {
    height: 38px; /* Hauteur cohérente */
    border: 1px solid var(--light-gray);
    border-radius: 6px;
    overflow: hidden;
    background-color: var(--light); /* Fond clair */
    }
    .product-line-grid-body .qty .js-cart-line-product-quantity {
     height: 30px;
     width: 45px;
     padding: 0 5px;
     border: none;
     font-size: 1rem;
     font-weight: bold;
     background-color: white; /* Fond blanc input */

    }
     .product-line-grid-body .qty .product-quantity-button {
     width: 30px; /* Ajuster largeur */
     height: 30px;
    }
    .product-line-grid-body .qty .product-quantity-button i {
    font-size: 1rem;
    }

    /* Bouton Supprimer Desktop */
    .product-line-grid-body .cart-line-product-actions {
    padding: 0; /* Reinitialiser */
    margin: 0;
    align-self: center; /* Centrer verticalement avec Qty */
    }
    .product-line-grid-body .cart-line-product-actions .remove-from-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px; /* Meme hauteur que Qty */
    height: 30px;
    background-color: #eef2f5;
    border-radius: 6px;
    padding: 0;
    margin: 0;
    }
    .product-line-grid-body .cart-line-product-actions .remove-from-cart i {
    color: white;
    font-size: 1.1rem;
    float: none;
    line-height: 1;
    }

    /* Cacher le bloc prix unitaire mobile et autres infos non presentes sur desktop */
    .product-line-grid-body .product-unit-price-mobile,
    .product-line-grid-body .product-line-info[class*="col-"],
    .product-line-grid-body .product-customizations {
    display: none !important;
    }


    /* Colonne Droite Desktop (Prix) */
    .product-line-grid-right.product-line-pricing {
    flex: 0 0 200px; /* Largeur fixe */
    order: 3;
    padding-left: 1.5rem; /* Espace apres separateur */
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* Aligner texte a droite */
    text-align: right;
    gap: 0.8rem; /* Espace entre prix unitaire et total */
    justify-content: center; /* Centrer verticalement les blocs prix */
    align-self: stretch; /* Prendre toute la hauteur */
    }

    /* Bloc Prix Unitaire Desktop */
    .product-line-pricing .product-unit-price-container {
    display: block !important; /* Assurer visibilite */
    font-size: 0.9rem;
    order: 1; /* Prix unitaire en premier */
    width: 100%; /* Prendre largeur colonne */
    }
    .product-line-pricing .product-unit-price-container .label {
    color: var(--gray);
    font-size: 0.85rem;
    display: block;
    margin-bottom: 0rem;
    }
    .product-line-pricing .product-unit-price-container .value {
    font-weight: 100;
    color: var(--gray);
    display: block;
    font-size: 0.85rem; /* Taille valeur */
    }
     .product-line-pricing .product-unit-price-container .unit-price-cart {
     font-size: 0.8rem;
     color: var(--gray);
     display: block;
     margin-top: 0.1rem;
     }

    /* Bloc Prix Total Desktop */
    .product-line-pricing .product-total-price-container {
    display: block !important; /* Assurer visibilite */
    order: 2; /* Prix total apres */
    width: 100%; /* Prendre largeur colonne */
    }
    
     .product-line-pricing .product-total-price-container .value strong {
    font-size: 1.2rem; /* Taille prix total */
    font-weight: 700;
    color: var(--dark);
    }

    /* Cacher elements mobile sur desktop */
    .product-line-actions-mobile,
    .product-unit-price-mobile {
       display: none !important;
    }
     /* Assurer que les elements desktop sont visibles */
     .product-line-actions-container {
     display: flex !important;
     }
     .product-line-pricing .product-unit-price-container {
     display: block !important;
     }
}
#header .layout_layout1 li > a:hover{
    color: var(--primary);
}
/* --- FIN Styles Desktop Corriges --- */

/* Ajustements pour le header desktop */
.header-desktop {
    padding: 10px 0; /* Ajoute un peu d espace vertical */
    border-bottom: 1px solid #eee; /* Optionnel: une ligne de separation */
}

/* Assurer l alignement vertical de tous les elements dans la ligne */
.header-desktop .row.align-items-center {
    /* align-items: center; est deja sur la row via classe bootstrap */
    /* On peut forcer un min-height si certains elements sont trop petits */
    min-height: 60px; /* Ajustez la hauteur selon vos besoins */
}

/* Logo */
.header-desktop #_desktop_logo img.logo {
    max-height: 50px; /* Limite la hauteur du logo */
    width: auto; /* Garde les proportions */
}

/* Lien Contact */
.header-desktop #_desktop_contact_link a {
    display: flex; /* Pour aligner icone et texte */
    align-items: center;
    /* Ajoutez couleur, taille de police si necessaire */
}
.header-desktop #_desktop_contact_link .contact-link-icon {
    margin-right: 5px; /* Espace entre icone et texte */
}

/* Barre de recherche */
.header-desktop #search_widget {
    width: 100%; /* Prend toute la largeur de sa colonne */
}
.header-desktop #search_widget form {
    position: relative; /* Pour positionner les icones */
    display: flex;
    align-items: center;
}
.header-desktop #search_widget input[type="text"] {
    width: 100%;
    padding-left: 30px; /* Espace pour l icone loupe */
    padding-right: 30px; /* Espace pour l icone clear */
    /* Ajustez hauteur, bordure, etc. */
}
.header-desktop #search_widget .search {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none; /* Ne pas intercepter les clics */
}
.header-desktop #search_widget .clear {
     position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
}


/* Infos Utilisateur et Panier */
.header-desktop .user-info a, /* Cible les liens dans ps_customersignin */
.header-desktop #_desktop_cart .blockcart a { /* Cible le lien du panier */
    display: flex;
    align-items: center;
    margin-left: 15px; /* Espace entre les icones/liens */
    /* Styles pour couleur, etc */
}

.header-desktop .user-info a svg,
.header-desktop #_desktop_cart .blockcart a svg {
    width: 24px; /* Taille des icones */
    height: 24px;
    margin-right: 5px; /* Espace entre icone et texte (si present) */
    fill: #ffffff; /* Couleur des icones (ajuster si besoin) */
}

/* Cacher le texte a cote des icones si desire */
/*
.header-desktop .user-info a span.hidden-sm-down,
.header-desktop #_desktop_cart .blockcart a span.cart-products-count {
     display: none;
}
*/


/* Panier */
.header-desktop #_desktop_cart .blockcart .cart-products-count {
    background: red; /* Exemple couleur badge */
    color: white;
    border-radius: 50%;
    padding: 0px 5px;
    font-size: 0.8em;
    margin-left: -5px; /* Chevauchement leger avec l icone */
    vertical-align: top;
}



/* Styles pour le Header Desktop */

/* Assurer l'alignement vertical et empecher le retour a la ligne des colonnes */
.header-desktop-main .row {
  display: flex;
  flex-wrap: nowrap; /* Tres important : empeche les colonnes de passer a la ligne */
  align-items: center; /* Centre verticalement le contenu des colonnes */
  min-height: 60px; /* Donner une hauteur minimale si necessaire */
  /* Vous pouvez ajouter une couleur de fond temporaire pour debugger */
  /* background-color: rgba(0, 0, 255, 0.1); */
}

/* Colonne Logo & Contact */
.header-desktop-main .col-md-4:first-child {
  display: flex; /* Deja dans le HTML, mais on renforce */
  align-items: center;
}

.header-desktop-main #_desktop_logo img.logo {
  max-height: 45px; /* Ajuster la hauteur max du logo */
  width: auto;
  margin-right: 1rem; /* Espace entre logo et contact (1rem = ~16px par defaut) */
}

.header-desktop-main #_desktop_contact_link a {
  display: flex; /* Aligner icone et texte du contact */
  align-items: center;
  white-space: nowrap; /* Empeche le texte "Contactez-nous" de passer a la ligne */
  /* color: #votre_couleur; /* Changer la couleur si besoin */
}
.header-desktop-main #_desktop_contact_link .contact-link-icon {
    margin-right: 0.5rem; /* Espace entre icone contact et texte */
}

/* Colonne Recherche */
.header-desktop-main #search_widget {
  width: 100%; /* Prend toute la largeur de sa colonne */
}
.header-desktop-main #search_widget form {
  width: 100%;
  position: relative; /* Necessaire pour positionner les icones a linterieur */
}
.header-desktop-main #search_widget input[type="text"] {
  width: 100%;
  height: 40px; /* Hauteur de la barre */
  padding-left: 35px; /* Espace pour l'icone loupe */
  padding-right: 35px; /* Espace pour l'icone clear */
  border-radius: 20px; /* Bords arrondis */
  border: 1px solid #ccc; /* Bordure legere */
}
.header-desktop-main #search_widget .search {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none; /* Pour pouvoir cliquer dans l'input */
}
.header-desktop-main #search_widget .clear {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
}

/* Colonne Utilisateur & Panier */
.header-desktop-main .col-md-4:last-child > .d-flex {
  /* Le selecteur cible le conteneur flex direct dans la derniere colonne */
  width: 100%;
  justify-content: flex-end; /* Aligne les elements (liens, panier) a droite */
  align-items: center;
}

/* Styles pour les liens/icones dans la colonne utilisateur/panier */
.header-desktop-main .user-info > a, /* Liens dans ps_customersignin */
.header-desktop-main .blockcart > .header > a /* Lien panier */ {
  display: inline-flex; /* Affichage en ligne avec flex pour aligner icone/texte */
  align-items: center;
  margin-left: 1rem; /* Espace entre chaque element (Commande Express, Compte, Panier) */
  white-space: nowrap; /* Empeche le texte des liens de passer a la ligne */
  /* color: #votre_couleur; */
}
/* Enlever la marge pour le premier element dans cette section */
.header-desktop-main .user-info > a:first-child,
.header-desktop-main .blockcart > .header > a:first-child {
    margin-left: 0;
}

.header-desktop-main .user-info .account-icon,
.header-desktop-main .user-info .express-order-icon,
.header-desktop-main .blockcart .shopping-cart {
  margin-right: 0.3rem; /* Petit espace entre icone et texte */
  /* fill: #votre_couleur; /* Pour changer la couleur des SVG si besoin */
}

/* Style pour le compteur panier */
.header-desktop-main .blockcart .cart-products-count {
    background-color: #ffffff;
    color: #5438dc;
    font-weight: 600;
    padding: 0px;
    border-radius: 30px;
    width: 100%;
    max-width: 50px;
    padding: 0px 4px;
}

/* Styles pour le Header Desktop - Section Utilisateur & Panier */

/* Conteneur Flex principal dans la derniere colonne */
.header-desktop-main .col-md-4:last-child > .d-flex {
  width: 100%;
  justify-content: flex-end; /* Aligne le groupe a droite */
  align-items: center; /* Centre verticalement les elements du groupe */
}

/* Cible les conteneurs principaux des modules et les liens/blocs internes */
/* On les force a etre des elements inline-flex pour qu'ils se mettent cote a cote */
.header-desktop-main #_desktop_user_info,
.header-desktop-main #_desktop_cart,
.header-desktop-main .user-info,
.header-desktop-main .blockcart,
.header-desktop-main .user-info > a,
.header-desktop-main .blockcart > .header { /* Cible le .header du panier */
  display: inline-flex !important; /* Force l'affichage inline et flex. !important au cas ou. */
  align-items: center; /* Aligne le contenu interne (icone + texte) */
  margin-left: 0rem; /* Espace a gauche de chaque element */
  vertical-align: middle; /* Aide a l'alignement vertical global */
}

/* On cible specifiquement le lien dans le header du panier */
.header-desktop-main .blockcart > .header > a {
    display: inline-flex; /* Assure que l'icone et le compteur sont alignes */
    align-items: center;
    margin-left: 0; /* Pas de marge supplementaire ici car deja sur le .header */
}


/* Enlever la marge a gauche du tout premier element dans le conteneur flex */
/* (Probablement #_desktop_user_info) */
.header-desktop-main .col-md-4:last-child > .d-flex > *:first-child {
  margin-left: 0;
}


/* Espacement specifique icone-texte (inchangé) */
.header-desktop-main .user-info .account-icon,
.header-desktop-main .user-info .express-order-icon,
.header-desktop-main .blockcart .shopping-cart {
  margin-right: 0.3rem;
}

/* Style compteur panier (inchangé) */
.header-desktop-main .blockcart .cart-products-count {
    background-color: #ffffff;
    color: #5438dc;
    font-weight: 600;
    padding: 0px;
    border-radius: 30px;
    width: 100%;
    max-width: 50px;
    padding: 0px 4px;
}

/* Supprimer ou commenter cette regle qui cachait le header desktop trop tot */
/* @media (max-width:999px){ */
/*    .hidden-sm-down{display:none!important} */
/*    .header-top .search-widget{float:none} */
/*    .header-top .search-widget form{margin:0 auto} */
/*    .header-top .search-widget form input[type=text]{min-width:inherit;background:#fff} */
/* } */

/* Simplifier la regle pour cacher la vue mobile quand la vue desktop apparait */
@media (min-width:768px) {
    .hidden-md-up{ display:none!important; }
    /* Autres styles specifiques pour 768px+ si necessaire */
    /* .search-widget{min-width:15.63rem} */ /* Decommenter si besoin */
    /* #blockcart-modal .cart-content{padding-left:2.5rem} */ /* Decommenter si besoin */
}

/* Rappel du CSS pour afficher les textes uniquement a partir de 1200px */
/* (Assurez-vous que ces regles sont bien presentes quelque part) */

/* Selecteurs pour les textes a masquer/afficher */
/* Adaptez si vos spans ont des classes differentes */
.header-desktop-main .user-info a span, /* Pour Commande Express, John DOE */
.header-desktop-main #_desktop_contact_link a span /* Pour Contactez-nous (SI span ajoute) */
{
  /* Par defaut (en dessous de 1200px): Cacher le texte */
  display: none;
  margin-left: 0.3rem;
}

/* Styles pour les icones quand le texte est cache (< 1200px) */
@media (max-width: 1199.98px) {
    .header-desktop-main .col-md-4:last-child > .d-flex > * {
    margin-left: 0.5rem; /* Espacement reduit entre icones */
    }
     .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child {
    margin-left: 0;
    }
    .header-desktop-main .user-info a svg,
    .header-desktop-main #_desktop_contact_link a svg {
    margin-right: 0; /* Pas de marge a droite des icones */
    }
}

/* Pour les ecrans de 1200px et plus : Afficher le texte */
@media (min-width: 1200px) {
  .header-desktop-main .user-info a span,
  .header-desktop-main #_desktop_contact_link a span
  {
    display: inline; /* Afficher le texte */
  }

  /* Assurer la marge a droite des icones quand le texte est visible */
  .header-desktop-main .user-info a svg,
  .header-desktop-main #_desktop_contact_link a svg {
      margin-right: 0.3rem;
  }
}

/* Styles generaux pour les icones (taille, couleur, alignement) */
.header-desktop-main .user-info a svg,
.header-desktop-main #_desktop_contact_link a svg,
.header-desktop-main .blockcart .shopping-cart
{
   vertical-align: middle;
   /* Ajoutez width/height/fill si necessaire */
}

/* ---- Responsive Header Layout Adjustments ---- */

/* Base styles pour les colonnes desktop (s'applique >= 768px par defaut grace a col-md-*) */
/* Ces largeurs seront utilisees pour >= 1200px sauf si surchargees en dessous */
.header-desktop-main .row > div.col-md-4:nth-child(1),
.header-desktop-main .row > div.col-md-4:nth-child(2),
.header-desktop-main .row > div.col-md-4:nth-child(3) {
    /* Largeurs par defaut pour >= 1200px */
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
}
/* Textes caches par defaut en dessous de 1200px */
.header-desktop-main .user-info a span,
.header-desktop-main #_desktop_contact_link a span {
  display: none;
}


/* == Styles pour Tablette LARGE (1000px a 1199.98px) == */
/* (Logo + Icone Contact / Recherche / Icones Utilisateur + Panier) */
@media (min-width: 1000px) and (max-width: 1199.98px) {
    .header-desktop-main .row > div.col-md-4:nth-child(1) { flex: 0 0 20%; max-width: 20%; display: flex; align-items: center; }
    .header-desktop-main .row > div.col-md-4:nth-child(2) { flex: 0 0 55%; max-width: 55%; }
    .header-desktop-main .row > div.col-md-4:nth-child(3) { flex: 0 0 25%; max-width: 25%; }

    /* Afficher l'icone Contact */
    .header-desktop-main #_desktop_contact_link { display: inline-flex !important; }
    /* Espacement Logo / Icone Contact */
    .header-desktop-main #_desktop_logo { margin-right: 0.5rem; }
    .header-desktop-main #_desktop_contact_link { margin-left: 0; }
    .header-desktop-main #_desktop_contact_link a svg { margin-right: 0; }

    /* Espacement icones droite */
    .header-desktop-main .col-md-4:last-child > .d-flex > * { margin-left: 0.5rem; }
    .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child { margin-left: 0; }
    .header-desktop-main .user-info a svg { margin-right: 0; }
}

/* == Styles pour Tablette PETITE (768px a 999.98px) == */
/* (Logo SEUL / Recherche / Icones Utilisateur + Panier) */
@media (min-width: 768px) and (max-width: 999.98px) {
     /* Masquer l'icone Contact */
    .header-desktop-main #_desktop_contact_link {
    display: none !important;
    }
    /* Ajuster largeurs colonnes */
    .header-desktop-main .row > div.col-md-4:nth-child(1) { /* Logo SEUL */
    flex: 0 0 15%; /* Reduit */
    max-width: 15%;
     display: flex; /* Garder flex pour alignement */
    align-items: center;
    justify-content: flex-start; /* Aligner logo a gauche */
    }
    .header-desktop-main .row > div.col-md-4:nth-child(2) { /* Recherche */
    flex: 0 0 60%; /* Augmente */
    max-width: 60%;
    }
    .header-desktop-main .row > div.col-md-4:nth-child(3) { /* Icones Utilisateur + Panier */
    flex: 0 0 25%; /* Garde la meme taille */
    max-width: 25%;
    }
    /* Pas de marge apres le logo car l'icone contact est partie */
    .header-desktop-main #_desktop_logo {
    margin-right: 0;
    }
     /* Espacement icones droite */
    .header-desktop-main .col-md-4:last-child > .d-flex > * { margin-left: 0.5rem; }
    .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child { margin-left: 0; }
    .header-desktop-main .user-info a svg { margin-right: 0; }
}

/* == Styles pour Desktop LARGE (>= 1200px) == */
/* (Icones + Texte, repartition egale ou souhaitee) */
@media (min-width: 1200px) {
    /* Restaurer largeurs colonnes si necessaire */
    /* .header-desktop-main .row > div.col-md-4:nth-child(1), ... { flex: 0 0 33.333333%; max-width: 33.333333%; } */

    /* Afficher textes */
    .header-desktop-main .user-info a span,
    .header-desktop-main #_desktop_contact_link a span {
    display: inline !important;
    }
    /* Afficher l'icone Contact */
     .header-desktop-main #_desktop_contact_link { display: inline-flex !important; }

     /* Restaurer espacement */
     .header-desktop-main #_desktop_logo { margin-right: 1rem; } /* Espace standard */
     .header-desktop-main #_desktop_contact_link { margin-left: 0; }
     .header-desktop-main .user-info a svg,
     .header-desktop-main #_desktop_contact_link a svg {
     margin-right: 0.3rem; /* Espace icone/texte */
     }
     .header-desktop-main .col-md-4:last-child > .d-flex > * { margin-left: 1rem; } /* Espace standard */
     .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child { margin-left: 0; }
}

/* ... (Styles generaux icones, etc.) ... */

/* ---- Alignement Droite pour Icones Utilisateur/Panier (Desktop/Tablette) ---- */

/* Cible le conteneur flex dans la derniere colonne */
.header-desktop-main .col-md-4:last-child > .d-flex {
  /* Ces proprietes s'appliquent par defaut grace aux classes Bootstrap */
  /* Mais nous les reconfirmons ici pour clarte */
  display: flex;
  align-items: center; /* Alignement vertical */
  width: 100%; /* Assure que le conteneur prend toute la largeur de sa colonne */
}

/* Media Query specifique pour >= 768px */
@media (min-width: 768px) {
  .header-desktop-main .col-md-4:last-child > .d-flex {
    justify-content: flex-end !important; /* FORCE l'alignement a droite */
  }

  /* Styles d'espacement pour les elements dans ce conteneur >= 768px */
  /* (Vous pouvez ajuster la marge dans les media queries plus specifiques si besoin) */
  .header-desktop-main .col-md-4:last-child > .d-flex > * {
      margin-left: 0.5rem; /* Espacement par defaut entre icones (sera surcharge a >= 1200px) */
  }
  .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child {
      margin-left: 0; /* Pas de marge a gauche pour le premier element */
  }
}

/* Rappel: la media query pour >= 1200px peut ajuster la marge si besoin */
@media (min-width: 1200px) {
    .header-desktop-main .col-md-4:last-child > .d-flex > * {
    margin-left: 1rem; /* Espacement plus grand quand textes visibles */
    }
     .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child {
    margin-left: 0;
    }
    /* ... autres styles pour >= 1200px ... */
}
.floatright{float: right;}
/* ---- Fin Alignement Droite ---- */

/* Augmenter la largeur maximale du container principal */

/* Cible le breakpoint xl (1200px et plus) ou un breakpoint superieur si defini */
@media (min-width: 1200px) {
  .container {
    /* width: 1440px; */ /* Supposons que width est déjà 1140px par theme.css ou autre */
    max-width: 1440px; /* Conserve la largeur maximale souhaitée */
    margin-left: auto;  /* Marge automatique pour centrer */
    margin-right: auto; /* Marge automatique pour centrer */
    padding-left: 15px;  /* Conserve le padding */
    padding-right: 15px; /* Conserve le padding */
    width: auto; /* Permet au conteneur de prendre la largeur disponible moins les marges/paddings */
    box-sizing: border-box; /* Assure que le padding est inclus dans la largeur */
  }
}
.images-container{
    max-width: 426px;
margin-left: auto;
margin-right: auto;
}
.btn-link{
    color: var(--primary);
    background:transparent;
    padding: 0.55rem 0.55rem;
    border-radius: 50px;
    vertical-align: middle;
}
.btn-link:hover{
    background: rgb(166, 24, 84);
    color: white;
    padding: 0.55rem 0.55rem;
    border-radius: 50px;
    vertical-align: middle;
}
.btn-link-reference{
    float: right; 
    color: var(--gray);
    font-size: 12px;
    font-weight: 100;
}
.btn-link-reference:hover{
    color: var(--secondary);
    text-decoration: underline;
}
.btn-link:focus, .btn-link:hover{
    text-decoration: none;
}
/* En-tête de catégorie */
#js-product-list-header {
    margin-bottom: 1.5rem;
  }
  
  #js-product-list-header .h2 {
    background: var(--primary-gradient);
    color: white;
    padding: 30px;
    border-radius: 8px;
    margin-bottom: 0;
    position: relative;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
  }
  
  #js-product-list-header .h2::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M54.627 0l.83.828-1.415 1.415L51.8 0h2.827zM5.373 0l-.83.828L5.96 2.243 8.2 0H5.374zM48.97 0l3.657 3.657-1.414 1.414L46.143 0h2.828zM11.03 0L7.372 3.657 8.787 5.07 13.857 0H11.03zm32.284 0L49.8 6.485 48.384 7.9l-7.9-7.9h2.83zM16.686 0L10.2 6.485 11.616 7.9l7.9-7.9h-2.83zm20.97 0l9.315 9.314-1.414 1.414L34.828 0h2.83zm-20.97 0l-9.315 9.314 1.414 1.414L25.172 0h-2.83zM32 0l12.142 12.142-1.414 1.414L30 .828 17.272 13.556l-1.414-1.414L28 0h4zM.284 0l28 28-1.414 1.414L0 2.544V0h.284zM0 5.373l25.456 25.455-1.414 1.415L0 8.2V5.374z' fill='%23ffffff' fill-opacity='0.08' fill-rule='evenodd'/%3E%3C/svg%3E");
    opacity: 0.1;
    mix-blend-mode: overlay;
  }
  
  /* Mise en forme des produits */
  #products .products {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin: 0;
  }
  
  @media (max-width: 991px) {
    #products .products {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  
  @media (max-width: 575px) {
    #products .products {
      grid-template-columns: 1fr;
    }
  }
  
  #products .product {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }
  
  .product-miniature {
    margin: 0;
    width: 100%;
  }
  
  .thumbnail-container {
    background-color: white;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
    height: 100%;
    width: 100%;
    margin: 0;
  }
  
  .thumbnail-container:hover {
    transform: translateY(-5px);
  }
  
  .product-thumbnail {
    position: relative;
    overflow: hidden;
    margin-bottom: 0;
  }
  
  .product-thumbnail img {
    margin: 0 auto;
    transition: transform 0.3s ease;
  }
  
  
  .product-description {
    padding: 15px;
    position: relative;
    background: white;
  }
  
  .product-miniature .product-title {
    margin-top: 0;
    text-align: left;
text-transform: none;
  }
  
  .product-miniature .product-title a {
    color: #333;
    transition: color 0.3s ease;
  }
  
  .product-miniature .product-title a:hover {
    color: var(--primary);
  }
  
  .product_list3_variante {
    font-size: 0.8rem;
    color: var(--primary);
    margin-bottom: 0.5rem;
    cursor: pointer;
  }
  
  .product_list3_variante:hover {
    text-decoration: underline;
    color: var(--secondary);
  }
  
  .product-price-and-shipping {
    margin-top: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  
  .product-price-custom-tag {
    color: var(--primary);
    font-weight: 600;
  }
  
  .product-price-tag span {
    white-space: nowrap;
  }
  
  .price {
    color: var(--primary);
    font-weight: 600;
  }
  
  /* Highlighted informations */
  .product-miniature .highlighted-informations {
    position: absolute;
    top: 10px;
    right: 10px;
    opacity: 0;
    transition: opacity 0.3s ease;
    background: none;
    box-shadow: none;
    height: auto;
    width: auto;
    padding: 0;
  }
  
  .product-miniature:hover .highlighted-informations {
    opacity: 1;
  }
  
  .quick-view {
    background-color: white;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
    color: var(--primary);
    transition: all 0.3s ease;
  }
  
  .quick-view:hover {
    background-color: var(--primary);
    color: white;
  }
  
  .quick-view i {
    font-size: 18px;
    margin-right: 0;
  }
  
  .quick-view span {
    display: none;
  }
  
  /* Drapeaux produit */
  .product-flags {
    left: 15px;
    top: 10px;
  }
  #js-product-list-top{display: none!important;}

  .product-flag {
    font-weight: 600;
    margin: 5px;
    border-radius: 20px;
    padding: 5px 5px;
    margin-bottom: 5px;
    font-size: 12px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
      background-color: #fff;
color: var(--secondary);
text-transform: uppercase;
max-width: 100px;
text-align: center;
border: 2px solid;
  }
  
  /* Filtres et tri */
  .total-products p {
    margin: 0;
  }
  
  #js-product-list-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    border-bottom: 1px solid #f1f1f1;
    padding-bottom: 15px;
  }
  
  .products-selection .sort-by-row {
    display: flex;
    align-items: center;
  }
  
  .products-sort-order .select-title {
    background-color: white;
    border: 1px solid #e2e8f0;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    font-weight: normal;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-width: 200px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  }
  
  .products-sort-order .select-title:hover {
    border-color: var(--primary);
  }
  
  .products-sort-order .dropdown-menu {
    padding: 0.5rem 0;
    border-radius: 4px;
    border: none;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
  }
  
  .products-sort-order .select-list {
    padding: 0.5rem 1rem;
    color: #4a5568;
    transition: all 0.2s ease;
  }
  
  .products-sort-order .select-list:hover,
  .products-sort-order .select-list.current {
    background-color: #f8e7ed;
    color: var(--primary);
  }
  
  /* Pagination */
  .pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 30px;
  }
  
  .page-list {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
  }
  
  .page-list li {
    margin: 0 0.25rem;
  }
  
  .page-list a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 4px;
    color: #4a5568;
    border: 1px solid #e2e8f0;
    transition: all 0.2s ease;
  }
  
  .page-list .current a,
  .page-list a:hover {
    background: var(--primary-gradient);
    color: white;
    border-color: transparent;
  }
  
  .page-list .next a {
    width: auto;
    padding: 0 1rem;
  }
  
  /* Barre latérale */
  #search_filters {
    background: white;
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
    margin-bottom: 1.5rem;
    border: none;
  }
  
  #search_filters h4 {
    margin-bottom: 1rem;
    color: var(--primary);
    border-bottom: 1px solid #f1f1f1;
    padding-bottom: 10px;
  }
  
  #search_filters .facet {
    border-bottom: 1px solid #f1f1f1;
    padding-bottom: 10px;
    margin-bottom: 10px;
  }
  
  #search_filters .facet:last-child {
    border-bottom: none;
  }
  
  #search_filters .facet .facet-title {
    color: #333;
    font-weight: 600;
    margin-bottom: 10px;
  }
  
  #search_filters .facet .facet-label {
    margin-bottom: 8px;
    display: flex;
    align-items: center;
  }
  
  #search_filters .facet .custom-checkbox {
    margin-right: 10px;
  }
  
  #search_filters .facet .custom-checkbox span {
    border-color: #e2e8f0;
  }
  
  #search_filters .facet .facet-label a {
    color: #4a5568;
    transition: color 0.2s ease;
  }
  
  #search_filters .facet .facet-label:hover a {
    color: var(--primary);
  }
  
  /* Block categories */
  .block-categories {
    background: white;
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
    margin-bottom: 1.5rem;
    border: none;
  }
  
  .block-categories .h6 {
    color: var(--primary);
    font-weight: 600;
    border-bottom: 1px solid #f1f1f1;
    padding-bottom: 10px;
    margin-bottom: 15px;
  }
  
  .category-sub-menu li {
    margin-bottom: 8px;
  }
  
  .category-sub-menu li a {
    color: #4a5568;
    transition: color 0.2s ease;
  }
  
  .category-sub-menu li a:hover {
    color: var(--primary);
  }
  

  
  .thumbnail-container:hover .wishlist-button-add {
    opacity: 1;
  }
  
  .wishlist-button-add:hover {
    background-color: var(--primary);
    color: white;
  }
  
  /* Responsive */
  @media (max-width: 767px) {
    #js-product-list-top {
      flex-direction: column;
      align-items: flex-start;
    }
    
    .products-selection .sort-by-row {
      margin-top: 1rem;
      width: 100%;
    }
    
    .products-sort-order {
      width: 100%;
    }
    
    .products-sort-order .select-title {
      width: 100%;
    }
  }
  
  @media (max-width: 480px) {
    #products .products {
      grid-template-columns: 1fr;
    }
  }
  .product-flags li.product-flag{
    width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
padding: .3125rem .4375rem;
margin-top: .625rem;
font-size: 1rem;
font-weight: 700;
color: #fff;
text-transform: uppercase;
word-break: break-word;
pointer-events: auto;
background: var(--secondary);
  }
  body#checkout section.checkout-step .address-item>header{
    min-height: 11rem;   
  }
  body#checkout section.checkout-step .address-item.selected{
    background: #fff;
border: var(--secondary) 3px solid;
  }
  body#checkout section.checkout-step .address-item{
    margin-right: 4px;
  }
  body#checkout section.checkout-step .address-footer{
    padding: 0rem;
text-align: center;
  }

/* Centrage du logo dans l en tete du checkout */
body#checkout .header-nav #_desktop_logo {
    margin-left: auto;
    margin-right: auto;
    width: -moz-fit-content; /* Pour Firefox */
    width: fit-content;    /* Standard */
    /* Le padding existant est deja applique par une regle precedente */
}
#titretransport .titretransport-label, #delivery .message{
    color: #730a37;
font-weight: bold;
text-align: left;
font-size: .875rem;
}
body#checkout #delivery textarea{
    max-width: 100%;
margin-bottom: 10px;
border: 2px solid #730a37 !important;
border-radius: 0.25rem;
}
select.form-control:not([size]):not([multiple]){
    height: 46px;
}
.group-span-filestyle .btn-default{
    background: var(--secondary)
}

#header .logo{
    max-width: 200px;
    height: auto; width: auto;
    margin-bottom: 5px;
    cursor: pointer;
}

#header .checkout{
    display: -webkit-box; 
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    min-height: 60px;
    text-align: center;
}
#header .header-nav-checkout{
    max-height: none;
padding: 0;
margin-bottom: 1rem;
text-align: center;
}
body#checkout section.checkout-step .delivery-options .delivery-option{
    border-radius: 6px;
}
.img-thumbnail{
    border-radius: 6px;
}
.tabs .tab-pane{
    padding-top: 0;
}
.tabs{
    padding-left: 0;
margin-top: 2rem;
background: #fff;
padding: 1rem 0rem;
}

/* Style pour le conteneur du tableau des produits groupes */
.grouped-products-table-container {
    /* Supprimer border-radius, box-shadow, overflow, border, background-color */
    margin-top: 2rem; /* Conserver les marges */
    margin-bottom: 2rem;
}

/* Ajustement pour le tableau a l interieur du conteneur */
.grouped-products-table-container .table-responsive {
    border-radius: 10px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
    margin-bottom: 2rem;
}

.grouped-products-table-container .grouped-products-table {
    margin-bottom: 0;
    /* border: none; */ /* Commenter ou supprimer si une bordure interne est souhaitee */
    border-radius: 6px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08); /* Ombre discrete */
    overflow: hidden; /* Important pour que le radius affecte les coins internes */
    /* Assurer un fond pour que l ombre soit visible si les lignes n ont pas de fond */
    /* background-color: white; */ /* Decommenter si necessaire */
    border-collapse: separate; /* Necessaire pour que border-radius fonctionne sur la table */
    border-spacing: 0;
}

/* Styles pour arrondir les coins du thead et du tbody */
.grouped-products-table-container .grouped-products-table thead tr:first-child th:first-child {
    border-top-left-radius: 6px;
}
.grouped-products-table-container .grouped-products-table thead tr:first-child th:last-child {
    border-top-right-radius: 6px;
}
.grouped-products-table-container .grouped-products-table tbody tr:last-child td:first-child {
    border-bottom-left-radius: 6px;
}
.grouped-products-table-container .grouped-products-table tbody tr:last-child td:last-child {
    border-bottom-right-radius: 6px;
}
.tabs .nav-tabs .nav-link.active, .tabs .nav-tabs .nav-link:hover{
    color: var(--secondary);
    border-color: var(--secondary);
}
.tabs .nav-tabs .nav-link.active{
    color: var(--secondary);
}
.tabs .nav-tabs{
    border:0;
    border-bottom: #f6f6f6 2px solid;
}
.btn-primary.active, .btn-primary:active, .open>.btn-primary.dropdown-toggle{
    color: #000;
background-color: inherit;
border-color: transparent;
background-image: none;
}
.reference .autocomplete-reference{
color: var(--secondary);
font-weight: 800;
font-size: 12px;
}
.product .autocomplete-product-name{
    font-size: 12px;
}

/* Ajuste le lien pour aligner l'image et le texte */
.searchbar-autocomplete li a {
  display: flex;
  align-items: center;
  padding: 5px 0;
}

/* Conteneur pour les textes */
.searchbar-autocomplete .autocomplete-text-container {
  display: flex;
  flex-direction: column; /* Empile reference et nom */
  margin-left: 10px;
  line-height: 1.3;
}

/* Style pour la reference - Selecteur corrige */
.searchbar-autocomplete .autocomplete-reference {
  color: var(--secondary);   /* Votre couleur */
  font-weight: 800;        /* Votre graisse */
  font-size: 12px;         /* Votre taille */
  margin-bottom: 5px;    /* L espace demande precedemment */
}

/* Style pour le nom du produit - Selecteur corrige */
.searchbar-autocomplete .autocomplete-product-name {
    font-size: 12px;         /* Votre taille */
}

/* Optionnel: Ajuster la taille de l image miniature */
/*
.searchbar-autocomplete .autocomplete-thumbnail {
  width: 45px;
  height: 45px;
  object-fit: contain;
}
*/
#main .page-header{
    margin-top: 2rem;
}
#pagenotfound #main .page-header, #products #main .page-header{
    text-align: center;
}
.text-primary,.wishlist-add-to-new i{
    color: var(--primary)!important;
}
.text-secondary{
    color: var(--secondary)!important;
}
.text-primary:hover,.wishlist-add-to-new i:hover,a.text-primary:focus, a.text-primary:hover{
    text-decoration: underline!important;
    color: var(--primary)!important;
}
.text-secondary:hover{
    text-decoration: underline!important;
}
.wishlist-product-price, .wishlist-product-combinations{
display: none!important;
}
.wishlist-product-title{
    font-size: 12px;
    color: var(--dark);
font-weight: 600;
text-align: center;
margin-bottom: 1.315rem;
}
.wishlist-products-item{
    margin: 1.5625rem;
border: none;
border-radius: 10px;
box-shadow: 0 2px 15px rgba(0,0,0,0.05);
padding: 6px;
    }

/* -- Debut Style Bouton Wishlist Miniature -- */

/* Positionnement et style de base du bouton wishlist sur miniature */
.product-miniature .wishlist-button-add {
  position: absolute;
  top: 10px;
  right: 10px;
  background-color: white;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
  color: var(--primary);
  transition: all 0.3s ease;
  z-index: 5; /* Pour etre au dessus des flags */
  border: none; /* Assurer qu il n y a pas de bordure par defaut */
  padding: 0; /* Reinitialiser padding */
}

/* Cacher le bouton par defaut s'il N'EST PAS dans la wishlist */
/* J utilise .wishlist-added comme classe exemple, adaptez si necessaire */
.product-miniature .wishlist-button-add:not(.wishlist-added) {
  opacity: 0;
  pointer-events: none; /* Empecher interaction si invisible */
}

/* Afficher au survol s'il N'EST PAS dans la wishlist */
.product-miniature:hover .wishlist-button-add:not(.wishlist-added) {
  opacity: 1;
  pointer-events: auto; /* Permettre interaction */
}

/* Afficher TOUJOURS le bouton s'il EST dans la wishlist */
.product-miniature .wishlist-button-add.wishlist-added {
  opacity: 1;
  pointer-events: auto; /* Permettre interaction */
}
.product-miniature .wishlist-button-add.wishlist-added i{
    color: var(--primary); /* Assurer que l'icone coeur plein est de la bonne couleur */
}
.product-miniature .wishlist-button-add:not(.wishlist-added) i{
    color: var(--primary); /* Assurer que l'icone coeur vide est de la bonne couleur */
}


/* Style au survol DU BOUTON (applique a tous les etats) */
.wishlist-button-add:hover {
  background-color: var(--primary);
  color: white; /* Pour l'icone au survol */
}
.wishlist-button-add:hover i{
    color: white; /* Assurer que l'icone devient blanche au survol */
}

/* -- Fin Style Bouton Wishlist Miniature -- */

.products-grid-view .products {
  display: flex;
  flex-wrap: wrap;
  margin-left: -15px;
  margin-right: -15px;
}

.products-grid-view .product {
  padding-left: 15px;
  padding-right: 15px;
}

.products-list-view .products {
  display: block;
  margin: 0;
}

.products-list-view .product-list-item {
  display: flex;
  flex-direction: row;
  width: 100%;
  margin-bottom: 30px;
  position: relative;
}

.products-list-view .product-miniature-list .thumbnail-container {
  display: flex;
  flex-direction: row;
  width: 100%;
  border-radius: 16px;
  box-shadow: 0 12px 30px rgba(27, 51, 89, 0.12);
  overflow: hidden;
  background: #fff;
  position: relative;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  min-height: 220px;
}

.products-list-view .product-miniature-list .thumbnail-container:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(27, 51, 89, 0.2);
}

.products-list-view .product-miniature-list .thumbnail-container:before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 16px;
  border: 1px solid rgba(162, 25, 66, 0.08);
  pointer-events: none;
  transition: border-color 0.2s ease;
}

.products-list-view .product-miniature-list .thumbnail-container:hover:before {
  border-color: rgba(162, 25, 66, 0.2);
}

.products-list-view .product-miniature-list .thumbnail-top,
.products-list-view .product-miniature-list .product-thumbnail {
  flex: 0 0 240px;
  max-width: 240px;
  height: auto;
}

.products-list-view .product-miniature-list .product-thumbnail picture,
.products-list-view .product-miniature-list .product-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.products-list-view .product-miniature-list .product-description {
  flex: 1 1 auto;
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

.products-list-view .product-miniature-list .product-title {
  margin-bottom: 12px;
}

.products-list-view .product-miniature-list .product-price-and-shipping {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.products-list-view .product-miniature-list .product-reference {
  margin-top: 8px;
}

.products-list-view .product-miniature-list .product-additional-info,
.products-list-view .product-miniature-list .product-price-tag,
.products-list-view .product-miniature-list .public-sale-indicator {
  margin-top: 10px;
}


.products-list-view .product-miniature-list .product-flags {
  position: absolute;
  top: 18px;
  right: 24px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.products-list-view .product-miniature-list .highlighted-informations {
  position: absolute;
  bottom: 20px;
  right: 24px;
  width: auto;
  display: flex;
  gap: 6px;
}

.view-mode-buttons {
  display: flex;
  justify-content: center;
  gap: 8px;
}

.view-mode-buttons .btn-view-mode {
  min-width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.12);
  color: #a21942;
  border: 1px solid rgba(162, 25, 66, 0.25);
  transition: background-color 0.2s ease, color 0.2s ease;
}

.view-mode-buttons .btn-view-mode i {
  font-size: 20px;
}

.view-mode-buttons .btn-view-mode:hover {
  background: rgba(255, 255, 255, 0.25);
  color: #7a1233;
}

.view-mode-buttons .btn-view-mode.active {
  background: linear-gradient(135deg, rgba(255,255,255,0.8), rgba(255,255,255,0.35));
  color: #7a1233;
  border-color: rgba(122, 18, 51, 0.5);
  box-shadow: 0 6px 18px rgba(122, 18, 51, 0.25);
}

.view-mode-buttons .btn-view-mode:focus {
  outline: none;
  box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.25);
}

.view-mode-wrapper {
  display: flex;
  justify-content: center;
  margin: 20px auto 30px;
}

.view-mode-card {
  background: linear-gradient(135deg, rgba(255,255,255,0.75), rgba(255,255,255,0.35));
  backdrop-filter: blur(12px);
  border-radius: 18px;
  padding: 18px 28px;
  box-shadow: 0 20px 40px rgba(12, 25, 47, 0.15);
  border: 1px solid rgba(255,255,255,0.45);
  display: inline-flex;
  align-items: center;
  gap: 16px;
  max-width: 90%;
  position: relative;
}

.view-mode-label {
  font-weight: 600;
  font-size: 1rem;
  color: #4b0f25;
  letter-spacing: 0.02em;
}

.view-mode-card::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,0.7), rgba(162, 25, 66, 0.15));
  z-index: -1;
  filter: blur(12px);
}

/* Masquer le bouton wishlist sur les pages categorie */
body#category .product-miniature .wishlist-button-add {
    display: none !important;
}
  
  /* Responsive */
  @media (max-width: 767px) {
    .product-line-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    position: relative; /* Pour positionner le prix total */
    padding: 0.5rem 0; /* Espace interieur */
    margin-bottom: 0rem;
    }
    .next-discount-tier-message .alert{
    flex-direction:unset
    }
    .p-2{padding: 0.2rem!important;}
    .next-discount-tier-message .apply-next-tier-quantity{
     margin-top: 0rem;
display: inline-block;
    }
    /* Colonne Image */
    .product-line-grid-left {
    flex: 0 0 70px; /* Largeur image */
    padding-right: 10px;
    order: 1;
    align-self: flex-start; /* Aligner en haut */
    }
     .product-line-grid-left .product-image img {
    width: 100%;
    height: auto;
    max-width: 70px;
    border-radius: 4px; /* Coins arrondis image */
    }

    /* Colonne Infos Milieu (Ref, Nom, Actions Mobile) */
    .product-line-grid-body {
    flex: 1; /* Prend le reste de la largeur a cote de l image */
    order: 2;
    display: flex;
    flex-direction: column; /* Empiler les elements */
    align-items: flex-start; /* Aligner a gauche */
    padding-left: 5px; /* Petit espace apres l image */
    gap: 0.3rem; /* Espace entre ref/nom et actions */
    }

    /* Reference */
     .product-line-grid-body .product-reference {
    order: 1;
    font-size: 0.85rem;
    color: var(--primary); /* Couleur comme dans l image */
    font-weight: 600;
    margin-bottom: 0.1rem;
    line-height: 1;
     }

    /* Nom Produit */
    .product-line-grid-body .product-name-container {
     order: 2;
     margin-bottom: 0.5rem; /* Espace avant actions */
     }
    .product-line-grid-body .product-name-container a.label {
    font-weight: 600;
    font-size: 1rem; /* Legerement plus grand */
    color: var(--dark);
    line-height: 1.3;
    }

    /* Conteneur Actions Mobile (Qty + Delete) */
    .product-line-actions-mobile {
    order: 3; /* Vient apres le nom */
    display: flex;
    align-items: center;
    gap: 0.8rem; /* Espace entre Qty et Delete */
    width: auto; /* S adapte au contenu */
    margin-top: 0.2rem; /* Rapprocher du nom */
    }

    /* Style Quantite Mobile */
    .product-line-actions-mobile .qty {
     padding: 0;
     margin: 0;
     max-width: none;
    }
    .product-line-actions-mobile .qty .input-group.product-quantity-horizontal {
    border: 1px solid var(--light-gray);
    border-radius: 6px;
    overflow: hidden;
    height: 38px; /* Ajuster hauteur */
    background-color: var(--light); /* Fond clair */
    }
    .product-line-actions-mobile .qty .js-cart-line-product-quantity {
    height: 30px;
    width: 45px; /* Plus de largeur pour l input */
    padding: 0 5px;
  border: none;
    font-size: 1rem;
    font-weight: bold;
    background-color: white; /* Fond blanc pour l input */
    }
    .product-line-actions-mobile .qty .product-quantity-button {
     width: 30px; /* Boutons carres */
     height: 30px;
     background: var(--light);
     border: none;
     font-size: 1.4rem; /* Icones +/- plus grandes */
     color: var(--dark-gray);
     padding: 0;
    }
   
    .product-line-actions-mobile .qty .product-quantity-button i {
    font-size: 1.1rem;
    }
    .product-line-actions-mobile .qty .product-quantity-button i:hover{
    color: var(--secondary);
    }

    /* Style Bouton Supprimer Mobile */
    .product-line-actions-mobile .cart-line-product-actions {
    padding: 0;
    margin: 0;
    align-self: center;
    }
    .product-line-actions-mobile .cart-line-product-actions .remove-from-cart {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px; /* Meme hauteur que Qty */
    height: 30px;
    background-color: #eef2f5; /* Fond bleu clair */
    border-radius: 6px;
    padding: 0;
    margin: 0;
    }
    .product-line-actions-mobile .cart-line-product-actions .remove-from-cart i {
    color: white; /* Icone bleu */
    font-size: 1rem; /* Icone plus grande */
    float: none;
    line-height: 1;
    }
    .product-line-actions-mobile .cart-line-product-actions .remove-from-cart i:hover{
    color: var(--primary);
    }

    /* Colonne Droite (contient seulement le prix total sur mobile) */
    .product-line-grid-right.product-line-pricing {
    flex: 1; /* Prend l'espace restant sur la premiere ligne */
    order: 3; /* Meme ordre que le body pour etre a droite */
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* Aligner a droite */
    text-align: right;
    align-self: flex-start; /* Aligner en haut */
    margin-left: 10px; /* Espace par rapport au body */
    }

    /* Prix Total Mobile */
    .product-line-pricing .product-total-price-container {
     margin-top: 0; /* Remonter */
     padding-top: 0.3rem; /* Aligner approx avec reference */
     order: 2;
    }
    .product-line-pricing .product-total-price-container .label {
    font-size: 0.8rem;
    color: var(--gray);
    display: block;
    margin-bottom: 0.1rem;
    font-weight: 100;
    }
     .product-line-pricing .product-total-price-container .value strong {
    font-size: 1.2rem; /* Taille prix */
    font-weight: 700;
    color: var(--primary)
    }
    .product-line-grid-right .cart-line-product-actions, .product-line-grid-right .product-price{
    line-height:inherit ;
    }
    /* Prix Unitaire Mobile (Place sous l'image) */
    .product-unit-price-mobile {
    order: 1; /* Apres l image et le body */
    flex: 0 0 100%; /* Prend toute la largeur sous l image/body */
    padding: 0; /* Espace au dessus */
    margin-top: 0rem; /* Espace par rapport a Qty/Delete */
    font-size: 0.9rem;
    color: var(--dark-gray);
    }
    .product-unit-price-mobile .label {
    display: block;
    font-size: 0.8rem;
    color: var(--gray);
    margin-bottom: 0rem;
    }
    .product-unit-price-mobile .value {
    color:var(--primary);
    font-weight: 800;
    }
    .product-unit-price-mobile .unit-price-cart {
    font-size: 0.8rem;
    margin-left: 0.3rem;
    }

     /* Cacher elements desktop sur mobile */
     .product-line-actions-container,
     .product-line-pricing .product-unit-price-container {
    display: none;
     }
     /* Assurer que les elements mobiles sont visibles */
      .product-line-actions-mobile,
      .product-unit-price-mobile {
     display: flex; /* ou block selon le cas */
      }
       .product-line-actions-mobile { display: flex; }
       .product-unit-price-mobile { display: block; }

}

/* --- FIN NOUVELLE Reorganisation Panier Mobile --- */


/* --- Styles Desktop Corriges --- */
@media (min-width: 768px) {
    .product-line-grid {
    display: flex;
    align-items: center; /* Centrer verticalement les colonnes */
    gap: 1.5rem; /* Espace entre les colonnes */
    padding: 0.5rem 0; /* Padding haut/bas */
    margin-bottom: 0rem;
    position: relative;
    }
    .product-line-grid-right .cart-line-product-actions, .product-line-grid-right .product-price{
    line-height:inherit ;
    }
    /* Colonne Image (si presente, sinon ajuste l'espace) */
    .product-line-grid-left {
    flex: 0 0 90px;
    padding-right: 0; /* Annuler padding mobile */
    align-self: center; /* Centrer image verticalement */
    /* Si l image n est pas voulue sur desktop, ajouter display: none; ici */
    /* display: none; */
    }
    /* Si l image est cachee, ajuster la colonne body */
    /* .product-line-grid-left:has(+ .product-line-grid-body) { display: none; } */
    /* .product-line-grid-left + .product-line-grid-body { padding-left: 0; } */

    .product-line-grid-left .product-image img {
    max-width: 90px;
    border-radius: 4px;
    }

    /* Colonne Centrale (Ref, Nom, Actions Desktop) */
    .product-line-grid-body {
    flex: 1; /* Prend l espace central */
    order: 2;
    padding-right: 1.5rem; /* Espace avant separateur */
    margin-right: 1.5rem; /* Creer l espace du separateur */
    /*border-right: 1px solid var(--light-gray); /* Separateur vertical */
    display: flex;
    flex-direction: column; /* Empiler Ref, Nom, Actions */
    align-items: flex-start; /* Aligner a gauche */
    justify-content: space-between; /* Espace entre haut et bas */
    gap: 0.5rem; /* Espace interne si besoin */
    align-self: stretch; /* Prendre toute la hauteur */
    min-height: 80px; /* Hauteur minimale pour alignement */
    }

     /* Reference */
    .product-line-grid-body .product-reference {
    order: 1;
    font-size: 0.85rem;
    font-weight: 600;
    color: #a21942; /* Bordeaux pour reference */
    margin-bottom: 0.1rem;
    line-height: 1;
    }

    /* Nom Produit */
    .product-line-grid-body .product-name-container {
     order: 2;
     /* margin-bottom: auto; */ /* Retire pour laisser actions en bas */
     }
    .product-line-grid-body .product-name-container a.label {
    order: initial; /* Reinitialiser ordre mobile */
    font-size: 1rem;
    font-weight: 600; /* Plus gras */
    color: var(--dark);
    line-height: 1.3;
    }

    /* Conteneur Actions Desktop (Qty + Delete) */
    .product-line-grid-body .product-line-actions-container {
     order: 3; /* Apres le nom */
  display: flex;
     align-items: center;
     gap: 1rem; /* Espace entre Qty et Delete */
     margin-top: 0.5rem; /* Espace apres le nom */
     width: auto; /* S adapte au contenu */
     padding-bottom: 0.2rem; /* Petit espace bas */
    }

    /* Quantite Desktop */
    .product-line-grid-body .qty {
     padding: 0;
     margin: 0;
     max-width: none;
    }
    .product-line-grid-body .qty .input-group.product-quantity-horizontal {
    height: 38px; /* Hauteur cohérente */
    border: 1px solid var(--light-gray);
    border-radius: 6px;
    overflow: hidden;
    background-color: var(--light); /* Fond clair */
    }
    .product-line-grid-body .qty .js-cart-line-product-quantity {
     height: 30px;
     width: 45px;
     padding: 0 5px;
     border: none;
     font-size: 1rem;
     font-weight: bold;
     background-color: white; /* Fond blanc input */

    }
     .product-line-grid-body .qty .product-quantity-button {
     width: 30px; /* Ajuster largeur */
     height: 30px;
    }
    .product-line-grid-body .qty .product-quantity-button i {
    font-size: 1rem;
    }

    /* Bouton Supprimer Desktop */
    .product-line-grid-body .cart-line-product-actions {
    padding: 0; /* Reinitialiser */
    margin: 0;
    align-self: center; /* Centrer verticalement avec Qty */
    }
    .product-line-grid-body .cart-line-product-actions .remove-from-cart {
    display: inline-flex;
  align-items: center;
  justify-content: center;
    width: 30px; /* Meme hauteur que Qty */
    height: 30px;
    background-color: #eef2f5;
    border-radius: 6px;
    padding: 0;
    margin: 0;
    }
    .product-line-grid-body .cart-line-product-actions .remove-from-cart i {
    color: white;
    font-size: 1.1rem;
    float: none;
    line-height: 1;
    }

    /* Cacher le bloc prix unitaire mobile et autres infos non presentes sur desktop */
    .product-line-grid-body .product-unit-price-mobile,
    .product-line-grid-body .product-line-info[class*="col-"],
    .product-line-grid-body .product-customizations {
    display: none !important;
    }


    /* Colonne Droite Desktop (Prix) */
    .product-line-grid-right.product-line-pricing {
    flex: 0 0 200px; /* Largeur fixe */
    order: 3;
    padding-left: 1.5rem; /* Espace apres separateur */
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* Aligner texte a droite */
    text-align: right;
    gap: 0.8rem; /* Espace entre prix unitaire et total */
    justify-content: center; /* Centrer verticalement les blocs prix */
    align-self: stretch; /* Prendre toute la hauteur */
    }

    /* Bloc Prix Unitaire Desktop */
    .product-line-pricing .product-unit-price-container {
    display: block !important; /* Assurer visibilite */
    font-size: 0.9rem;
    order: 1; /* Prix unitaire en premier */
    width: 100%; /* Prendre largeur colonne */
    }
    .product-line-pricing .product-unit-price-container .label {
    color: var(--gray);
    font-size: 0.85rem;
    display: block;
    margin-bottom: 0rem;
    }
    .product-line-pricing .product-unit-price-container .value {
    font-weight: 100;
    color: var(--gray);
    display: block;
    font-size: 0.85rem; /* Taille valeur */
    }
     .product-line-pricing .product-unit-price-container .unit-price-cart {
     font-size: 0.8rem;
     color: var(--gray);
     display: block;
     margin-top: 0.1rem;
     }

    /* Bloc Prix Total Desktop */
    .product-line-pricing .product-total-price-container {
    display: block !important; /* Assurer visibilite */
    order: 2; /* Prix total apres */
    width: 100%; /* Prendre largeur colonne */
    }
    
     .product-line-pricing .product-total-price-container .value strong {
    font-size: 1.2rem; /* Taille prix total */
    font-weight: 700;
    color: var(--dark);
    }

    /* Cacher elements mobile sur desktop */
    .product-line-actions-mobile,
    .product-unit-price-mobile {
       display: none !important;
    }
     /* Assurer que les elements desktop sont visibles */
     .product-line-actions-container {
     display: flex !important;
     }
     .product-line-pricing .product-unit-price-container {
     display: block !important;
     }
}
#header .layout_layout1 li > a:hover{
    color: var(--primary);
}
/* --- FIN Styles Desktop Corriges --- */

/* Ajustements pour le header desktop */
.header-desktop {
    padding: 10px 0; /* Ajoute un peu d espace vertical */
    border-bottom: 1px solid #eee; /* Optionnel: une ligne de separation */
}

/* Assurer l alignement vertical de tous les elements dans la ligne */
.header-desktop .row.align-items-center {
    /* align-items: center; est deja sur la row via classe bootstrap */
    /* On peut forcer un min-height si certains elements sont trop petits */
    min-height: 60px; /* Ajustez la hauteur selon vos besoins */
}

/* Logo */
.header-desktop #_desktop_logo img.logo {
    max-height: 50px; /* Limite la hauteur du logo */
    width: auto; /* Garde les proportions */
}

/* Lien Contact */
.header-desktop #_desktop_contact_link a {
    display: flex; /* Pour aligner icone et texte */
    align-items: center;
    /* Ajoutez couleur, taille de police si necessaire */
}
.header-desktop #_desktop_contact_link .contact-link-icon {
    margin-right: 5px; /* Espace entre icone et texte */
}

/* Barre de recherche */
.header-desktop #search_widget {
    width: 100%; /* Prend toute la largeur de sa colonne */
}
.header-desktop #search_widget form {
    position: relative; /* Pour positionner les icones */
    display: flex;
    align-items: center;
}
.header-desktop #search_widget input[type="text"] {
    width: 100%;
    padding-left: 30px; /* Espace pour l icone loupe */
    padding-right: 30px; /* Espace pour l icone clear */
    /* Ajustez hauteur, bordure, etc. */
}
.header-desktop #search_widget .search {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none; /* Ne pas intercepter les clics */
}
.header-desktop #search_widget .clear {
     position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
  cursor: pointer;
}


/* Infos Utilisateur et Panier */
.header-desktop .user-info a, /* Cible les liens dans ps_customersignin */
.header-desktop #_desktop_cart .blockcart a { /* Cible le lien du panier */
    display: flex;
    align-items: center;
    margin-left: 15px; /* Espace entre les icones/liens */
    /* Styles pour couleur, etc */
}

.header-desktop .user-info a svg,
.header-desktop #_desktop_cart .blockcart a svg {
    width: 24px; /* Taille des icones */
    height: 24px;
    margin-right: 5px; /* Espace entre icone et texte (si present) */
    fill: #ffffff; /* Couleur des icones (ajuster si besoin) */
}

/* Cacher le texte a cote des icones si desire */
/*
.header-desktop .user-info a span.hidden-sm-down,
.header-desktop #_desktop_cart .blockcart a span.cart-products-count {
     display: none;
}
*/


/* Panier */
.header-desktop #_desktop_cart .blockcart .cart-products-count {
    background: red; /* Exemple couleur badge */
    color: white;
    border-radius: 50%;
    padding: 0px 5px;
    font-size: 0.8em;
    margin-left: -5px; /* Chevauchement leger avec l icone */
    vertical-align: top;
}



/* Styles pour le Header Desktop */

/* Assurer l'alignement vertical et empecher le retour a la ligne des colonnes */
.header-desktop-main .row {
  display: flex;
  flex-wrap: nowrap; /* Tres important : empeche les colonnes de passer a la ligne */
  align-items: center; /* Centre verticalement le contenu des colonnes */
  min-height: 60px; /* Donner une hauteur minimale si necessaire */
  /* Vous pouvez ajouter une couleur de fond temporaire pour debugger */
  /* background-color: rgba(0, 0, 255, 0.1); */
}

/* Colonne Logo & Contact */
.header-desktop-main .col-md-4:first-child {
  display: flex; /* Deja dans le HTML, mais on renforce */
  align-items: center;
}

.header-desktop-main #_desktop_logo img.logo {
  max-height: 45px; /* Ajuster la hauteur max du logo */
  width: auto;
  margin-right: 1rem; /* Espace entre logo et contact (1rem = ~16px par defaut) */
}

.header-desktop-main #_desktop_contact_link a {
  display: flex; /* Aligner icone et texte du contact */
  align-items: center;
  white-space: nowrap; /* Empeche le texte "Contactez-nous" de passer a la ligne */
  /* color: #votre_couleur; /* Changer la couleur si besoin */
}
.header-desktop-main #_desktop_contact_link .contact-link-icon {
    margin-right: 0.5rem; /* Espace entre icone contact et texte */
}

/* Colonne Recherche */
.header-desktop-main #search_widget {
  width: 100%; /* Prend toute la largeur de sa colonne */
}
.header-desktop-main #search_widget form {
  width: 100%;
  position: relative; /* Necessaire pour positionner les icones a linterieur */
}
.header-desktop-main #search_widget input[type="text"] {
  width: 100%;
  height: 40px; /* Hauteur de la barre */
  padding-left: 35px; /* Espace pour l'icone loupe */
  padding-right: 35px; /* Espace pour l'icone clear */
  border-radius: 20px; /* Bords arrondis */
  border: 1px solid #ccc; /* Bordure legere */
}
.header-desktop-main #search_widget .search {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none; /* Pour pouvoir cliquer dans l'input */
}
.header-desktop-main #search_widget .clear {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
}

/* Colonne Utilisateur & Panier */
.header-desktop-main .col-md-4:last-child > .d-flex {
  /* Le selecteur cible le conteneur flex direct dans la derniere colonne */
  width: 100%;
  justify-content: flex-end; /* Aligne les elements (liens, panier) a droite */
  align-items: center;
}

/* Styles pour les liens/icones dans la colonne utilisateur/panier */
.header-desktop-main .user-info > a, /* Liens dans ps_customersignin */
.header-desktop-main .blockcart > .header > a /* Lien panier */ {
  display: inline-flex; /* Affichage en ligne avec flex pour aligner icone/texte */
  align-items: center;
  margin-left: 1rem; /* Espace entre chaque element (Commande Express, Compte, Panier) */
  white-space: nowrap; /* Empeche le texte des liens de passer a la ligne */
  /* color: #votre_couleur; */
}
/* Enlever la marge pour le premier element dans cette section */
.header-desktop-main .user-info > a:first-child,
.header-desktop-main .blockcart > .header > a:first-child {
    margin-left: 0;
}

.header-desktop-main .user-info .account-icon,
.header-desktop-main .user-info .express-order-icon,
.header-desktop-main .blockcart .shopping-cart {
  margin-right: 0.3rem; /* Petit espace entre icone et texte */
  /* fill: #votre_couleur; /* Pour changer la couleur des SVG si besoin */
}

/* Style pour le compteur panier */
.header-desktop-main .blockcart .cart-products-count {
    background-color: #ffffff;
    color: #5438dc;
    font-weight: 600;
    padding: 0px;
    border-radius: 30px;
    width: 100%;
    max-width: 50px;
    padding: 0px 4px;
}

/* Styles pour le Header Desktop - Section Utilisateur & Panier */

/* Conteneur Flex principal dans la derniere colonne */
.header-desktop-main .col-md-4:last-child > .d-flex {
  width: 100%;
  justify-content: flex-end; /* Aligne le groupe a droite */
  align-items: center; /* Centre verticalement les elements du groupe */
}

/* Cible les conteneurs principaux des modules et les liens/blocs internes */
/* On les force a etre des elements inline-flex pour qu'ils se mettent cote a cote */
.header-desktop-main #_desktop_user_info,
.header-desktop-main #_desktop_cart,
.header-desktop-main .user-info,
.header-desktop-main .blockcart,
.header-desktop-main .user-info > a,
.header-desktop-main .blockcart > .header { /* Cible le .header du panier */
  display: inline-flex !important; /* Force l'affichage inline et flex. !important au cas ou. */
  align-items: center; /* Aligne le contenu interne (icone + texte) */
  margin-left: 0rem; /* Espace a gauche de chaque element */
  vertical-align: middle; /* Aide a l'alignement vertical global */
}

/* On cible specifiquement le lien dans le header du panier */
.header-desktop-main .blockcart > .header > a {
    display: inline-flex; /* Assure que l'icone et le compteur sont alignes */
    align-items: center;
    margin-left: 0; /* Pas de marge supplementaire ici car deja sur le .header */
}


/* Enlever la marge a gauche du tout premier element dans le conteneur flex */
/* (Probablement #_desktop_user_info) */
.header-desktop-main .col-md-4:last-child > .d-flex > *:first-child {
  margin-left: 0;
}


/* Espacement specifique icone-texte (inchangé) */
.header-desktop-main .user-info .account-icon,
.header-desktop-main .user-info .express-order-icon,
.header-desktop-main .blockcart .shopping-cart {
  margin-right: 0.3rem;
}

/* Style compteur panier (inchangé) */
.header-desktop-main .blockcart .cart-products-count {
    background-color: #ffffff;
    color: #5438dc;
    font-weight: 600;
    padding: 0px;
    border-radius: 30px;
    width: 100%;
    max-width: 50px;
    padding: 0px 4px;
}

/* Supprimer ou commenter cette regle qui cachait le header desktop trop tot */
/* @media (max-width:999px){ */
/*    .hidden-sm-down{display:none!important} */
/*    .header-top .search-widget{float:none} */
/*    .header-top .search-widget form{margin:0 auto} */
/*    .header-top .search-widget form input[type=text]{min-width:inherit;background:#fff} */
/* } */

/* Simplifier la regle pour cacher la vue mobile quand la vue desktop apparait */
@media (min-width:768px) {
    .hidden-md-up{ display:none!important; }
    /* Autres styles specifiques pour 768px+ si necessaire */
    /* .search-widget{min-width:15.63rem} */ /* Decommenter si besoin */
    /* #blockcart-modal .cart-content{padding-left:2.5rem} */ /* Decommenter si besoin */
}

/* Rappel du CSS pour afficher les textes uniquement a partir de 1200px */
/* (Assurez-vous que ces regles sont bien presentes quelque part) */

/* Selecteurs pour les textes a masquer/afficher */
/* Adaptez si vos spans ont des classes differentes */
.header-desktop-main .user-info a span, /* Pour Commande Express, John DOE */
.header-desktop-main #_desktop_contact_link a span /* Pour Contactez-nous (SI span ajoute) */
{
  /* Par defaut (en dessous de 1200px): Cacher le texte */
  display: none;
  margin-left: 0.3rem;
}

/* Styles pour les icones quand le texte est cache (< 1200px) */
@media (max-width: 1199.98px) {
    .header-desktop-main .col-md-4:last-child > .d-flex > * {
    margin-left: 0.5rem; /* Espacement reduit entre icones */
    }
     .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child {
    margin-left: 0;
    }
    .header-desktop-main .user-info a svg,
    .header-desktop-main #_desktop_contact_link a svg {
    margin-right: 0; /* Pas de marge a droite des icones */
    }
}

/* Pour les ecrans de 1200px et plus : Afficher le texte */
@media (min-width: 1200px) {
  .header-desktop-main .user-info a span,
  .header-desktop-main #_desktop_contact_link a span
  {
    display: inline; /* Afficher le texte */
  }

  /* Assurer la marge a droite des icones quand le texte est visible */
  .header-desktop-main .user-info a svg,
  .header-desktop-main #_desktop_contact_link a svg {
      margin-right: 0.3rem;
  }
}

/* Styles generaux pour les icones (taille, couleur, alignement) */
.header-desktop-main .user-info a svg,
.header-desktop-main #_desktop_contact_link a svg,
.header-desktop-main .blockcart .shopping-cart
{
   vertical-align: middle;
   /* Ajoutez width/height/fill si necessaire */
}

/* ---- Responsive Header Layout Adjustments ---- */

/* Base styles pour les colonnes desktop (s'applique >= 768px par defaut grace a col-md-*) */
/* Ces largeurs seront utilisees pour >= 1200px sauf si surchargees en dessous */
.header-desktop-main .row > div.col-md-4:nth-child(1),
.header-desktop-main .row > div.col-md-4:nth-child(2),
.header-desktop-main .row > div.col-md-4:nth-child(3) {
    /* Largeurs par defaut pour >= 1200px */
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
}
/* Textes caches par defaut en dessous de 1200px */
.header-desktop-main .user-info a span,
.header-desktop-main #_desktop_contact_link a span {
  display: none;
}


/* == Styles pour Tablette LARGE (1000px a 1199.98px) == */
/* (Logo + Icone Contact / Recherche / Icones Utilisateur + Panier) */
@media (min-width: 1000px) and (max-width: 1199.98px) {
    .header-desktop-main .row > div.col-md-4:nth-child(1) { flex: 0 0 20%; max-width: 20%; display: flex; align-items: center; }
    .header-desktop-main .row > div.col-md-4:nth-child(2) { flex: 0 0 55%; max-width: 55%; }
    .header-desktop-main .row > div.col-md-4:nth-child(3) { flex: 0 0 25%; max-width: 25%; }

    /* Afficher l'icone Contact */
    .header-desktop-main #_desktop_contact_link { display: inline-flex !important; }
    /* Espacement Logo / Icone Contact */
    .header-desktop-main #_desktop_logo { margin-right: 0.5rem; }
    .header-desktop-main #_desktop_contact_link { margin-left: 0; }
    .header-desktop-main #_desktop_contact_link a svg { margin-right: 0; }

    /* Espacement icones droite */
    .header-desktop-main .col-md-4:last-child > .d-flex > * { margin-left: 0.5rem; }
    .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child { margin-left: 0; }
    .header-desktop-main .user-info a svg { margin-right: 0; }
}

/* == Styles pour Tablette PETITE (768px a 999.98px) == */
/* (Logo SEUL / Recherche / Icones Utilisateur + Panier) */
@media (min-width: 768px) and (max-width: 999.98px) {
     /* Masquer l'icone Contact */
    .header-desktop-main #_desktop_contact_link {
    display: none !important;
    }
    /* Ajuster largeurs colonnes */
    .header-desktop-main .row > div.col-md-4:nth-child(1) { /* Logo SEUL */
    flex: 0 0 15%; /* Reduit */
    max-width: 15%;
     display: flex; /* Garder flex pour alignement */
    align-items: center;
    justify-content: flex-start; /* Aligner logo a gauche */
    }
    .header-desktop-main .row > div.col-md-4:nth-child(2) { /* Recherche */
    flex: 0 0 60%; /* Augmente */
    max-width: 60%;
    }
    .header-desktop-main .row > div.col-md-4:nth-child(3) { /* Icones Utilisateur + Panier */
    flex: 0 0 25%; /* Garde la meme taille */
    max-width: 25%;
    }
    /* Pas de marge apres le logo car l'icone contact est partie */
    .header-desktop-main #_desktop_logo {
    margin-right: 0;
    }
     /* Espacement icones droite */
    .header-desktop-main .col-md-4:last-child > .d-flex > * { margin-left: 0.5rem; }
    .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child { margin-left: 0; }
    .header-desktop-main .user-info a svg { margin-right: 0; }
}

/* == Styles pour Desktop LARGE (>= 1200px) == */
/* (Icones + Texte, repartition egale ou souhaitee) */
@media (min-width: 1200px) {
    /* Restaurer largeurs colonnes si necessaire */
    /* .header-desktop-main .row > div.col-md-4:nth-child(1), ... { flex: 0 0 33.333333%; max-width: 33.333333%; } */

    /* Afficher textes */
    .header-desktop-main .user-info a span,
    .header-desktop-main #_desktop_contact_link a span {
    display: inline !important;
    }
    /* Afficher l'icone Contact */
     .header-desktop-main #_desktop_contact_link { display: inline-flex !important; }

     /* Restaurer espacement */
     .header-desktop-main #_desktop_logo { margin-right: 1rem; } /* Espace standard */
     .header-desktop-main #_desktop_contact_link { margin-left: 0; }
     .header-desktop-main .user-info a svg,
     .header-desktop-main #_desktop_contact_link a svg {
     margin-right: 0.3rem; /* Espace icone/texte */
     }
     .header-desktop-main .col-md-4:last-child > .d-flex > * { margin-left: 1rem; } /* Espace standard */
     .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child { margin-left: 0; }
}

/* ... (Styles generaux icones, etc.) ... */

/* ---- Alignement Droite pour Icones Utilisateur/Panier (Desktop/Tablette) ---- */

/* Cible le conteneur flex dans la derniere colonne */
.header-desktop-main .col-md-4:last-child > .d-flex {
  /* Ces proprietes s'appliquent par defaut grace aux classes Bootstrap */
  /* Mais nous les reconfirmons ici pour clarte */
  display: flex;
  align-items: center; /* Alignement vertical */
  width: 100%; /* Assure que le conteneur prend toute la largeur de sa colonne */
}

/* Media Query specifique pour >= 768px */
@media (min-width: 768px) {
  .header-desktop-main .col-md-4:last-child > .d-flex {
    justify-content: flex-end !important; /* FORCE l'alignement a droite */
  }

  /* Styles d'espacement pour les elements dans ce conteneur >= 768px */
  /* (Vous pouvez ajuster la marge dans les media queries plus specifiques si besoin) */
  .header-desktop-main .col-md-4:last-child > .d-flex > * {
      margin-left: 0.5rem; /* Espacement par defaut entre icones (sera surcharge a >= 1200px) */
  }
  .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child {
      margin-left: 0; /* Pas de marge a gauche pour le premier element */
  }
}

/* Rappel: la media query pour >= 1200px peut ajuster la marge si besoin */
@media (min-width: 1200px) {
    .header-desktop-main .col-md-4:last-child > .d-flex > * {
    margin-left: 1rem; /* Espacement plus grand quand textes visibles */
    }
     .header-desktop-main .col-md-4:last-child > .d-flex > *:first-child {
    margin-left: 0;
    }
    /* ... autres styles pour >= 1200px ... */
}
.floatright{float: right;}
/* ---- Fin Alignement Droite ---- */

/* Augmenter la largeur maximale du container principal */

/* Cible le breakpoint xl (1200px et plus) ou un breakpoint superieur si defini */
@media (min-width: 1200px) {
  .container {
    /* width: 1440px; */ /* Supposons que width est déjà 1140px par theme.css ou autre */
    max-width: 1440px; /* Conserve la largeur maximale souhaitée */
    margin-left: auto;  /* Marge automatique pour centrer */
    margin-right: auto; /* Marge automatique pour centrer */
    padding-left: 15px;  /* Conserve le padding */
    padding-right: 15px; /* Conserve le padding */
    width: auto; /* Permet au conteneur de prendre la largeur disponible moins les marges/paddings */
    box-sizing: border-box; /* Assure que le padding est inclus dans la largeur */
  }
}
.images-container{
    max-width: 426px;
margin-left: auto;
margin-right: auto;
}

/* En-tête de catégorie */
#js-product-list-header {
    margin-bottom: 1.5rem;
  }
  
  #js-product-list-header .h2 {
    background: var(--primary-gradient);
    color: white;
    padding: 30px;
    border-radius: 8px;
    margin-bottom: 0;
    position: relative;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
  }
  
  #js-product-list-header .h2::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M54.627 0l.83.828-1.415 1.415L51.8 0h2.827zM5.373 0l-.83.828L5.96 2.243 8.2 0H5.374zM48.97 0l3.657 3.657-1.414 1.414L46.143 0h2.828zM11.03 0L7.372 3.657 8.787 5.07 13.857 0H11.03zm32.284 0L49.8 6.485 48.384 7.9l-7.9-7.9h2.83zM16.686 0L10.2 6.485 11.616 7.9l7.9-7.9h-2.83zm20.97 0l9.315 9.314-1.414 1.414L34.828 0h2.83zm-20.97 0l-9.315 9.314 1.414 1.414L25.172 0h-2.83zM32 0l12.142 12.142-1.414 1.414L30 .828 17.272 13.556l-1.414-1.414L28 0h4zM.284 0l28 28-1.414 1.414L0 2.544V0h.284zM0 5.373l25.456 25.455-1.414 1.415L0 8.2V5.374z' fill='%23ffffff' fill-opacity='0.08' fill-rule='evenodd'/%3E%3C/svg%3E");
    opacity: 0.1;
    mix-blend-mode: overlay;
  }
  
  /* Mise en forme des produits */
  #products .products {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin: 0;
  }
  
  @media (max-width: 991px) {
    #products .products {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  
  @media (max-width: 575px) {
    #products .products {
      grid-template-columns: 1fr;
    }
  }
  
  #products .product {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }
  
  .product-miniature {
    margin: 0;
    width: 100%;
  }
  
  .thumbnail-container {
    background-color: white;
    border-radius: 8px;
    overflow: hidden;
  transition: all 0.3s ease;
    height: 100%;
    width: 100%;
    margin: 0;
  }
  
  .thumbnail-container:hover {
    transform: translateY(-5px);
  }
  
  .product-thumbnail {
    position: relative;
    overflow: hidden;
    margin-bottom: 0;
  }
  
  .product-thumbnail img {
    margin: 0 auto;
    transition: transform 0.3s ease;
  }
  
  
  .product-description {
    padding: 15px;
    position: relative;
    background: white;
  }
  
  
  .product_list3_variante {
    font-size: 0.8rem;
    color: var(--primary);
    margin-bottom: 0.5rem;
    cursor: pointer;
  }
  
  .product_list3_variante:hover {
    text-decoration: underline;
    color: var(--secondary);
  }
  
  .product-price-and-shipping {
    margin-top: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  
  
  .product-price-custom-tag {
    color: var(--primary);
    font-weight: 600;
  }
  
  .product-price-tag span {
    white-space: nowrap;
  }
  
  .price {
    color: var(--primary);
    font-weight: 600;
  }
  
  /* Highlighted informations */
  .product-miniature .highlighted-informations {
    position: absolute;
    top: 10px;
    right: 10px;
  opacity: 0;
    transition: opacity 0.3s ease;
    background: none;
    box-shadow: none;
    height: auto;
    width: auto;
    padding: 0;
  }
  
  .product-miniature:hover .highlighted-informations {
    opacity: 1;
  }
  
  .quick-view {
    background-color: white;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
    color: var(--primary);
    transition: all 0.3s ease;
  }
  
  .quick-view:hover {
    background-color: var(--primary);
    color: white;
  }
  
  .quick-view i {
    font-size: 18px;
    margin-right: 0;
  }
  
  .quick-view span {
    display: none;
  }
  
  /* Drapeaux produit */
  .product-flags {
    left: 10px;
    top: 10px;
  }
  #js-product-list-top{display: none!important;}

  .product-flag {
    font-weight: 600;
    margin: 5px;
    border-radius: 20px;
    padding: 5px 5px;
    margin-bottom: 5px;
    font-size: 12px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
      background-color: #fff;
color: var(--secondary);
text-transform: uppercase;
max-width: 100px;
text-align: center;
border: 2px solid;
  }
  
  /* Filtres et tri */
  .total-products p {
    margin: 0;
  }
  
  #js-product-list-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    border-bottom: 1px solid #f1f1f1;
    padding-bottom: 15px;
  }
  
  .products-selection .sort-by-row {
    display: flex;
    align-items: center;
  }
  
  .products-sort-order .select-title {
    background-color: white;
    border: 1px solid #e2e8f0;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    font-weight: normal;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-width: 200px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  }
  
  .products-sort-order .select-title:hover {
    border-color: var(--primary);
  }
  
  .products-sort-order .dropdown-menu {
    padding: 0.5rem 0;
    border-radius: 4px;
    border: none;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
  }
  
  .products-sort-order .select-list {
    padding: 0.5rem 1rem;
    color: #4a5568;
    transition: all 0.2s ease;
  }
  
  .products-sort-order .select-list:hover,
  .products-sort-order .select-list.current {
    background-color: #f8e7ed;
    color: var(--primary);
  }
  
  /* Pagination */
  .pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 30px;
  }
  
  .page-list {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
  }
  
  .page-list li {
    margin: 0 0.25rem;
  }
  
  .page-list a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 4px;
    color: #4a5568;
    border: 1px solid #e2e8f0;
    transition: all 0.2s ease;
  }
  
  .page-list .current a,
  .page-list a:hover {
    background: var(--primary-gradient);
    color: white;
    border-color: transparent;
  }
  
  .page-list .next a {
    width: auto;
    padding: 0 1rem;
  }
  
  /* Barre latérale */
  #search_filters {
    background: white;
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
    margin-bottom: 1.5rem;
    border: none;
  }
  
  #search_filters h4 {
    margin-bottom: 1rem;
    color: var(--primary);
    border-bottom: 1px solid #f1f1f1;
    padding-bottom: 10px;
  }
  
  #search_filters .facet {
    border-bottom: 1px solid #f1f1f1;
    padding-bottom: 10px;
    margin-bottom: 10px;
  }
  
  #search_filters .facet:last-child {
    border-bottom: none;
  }
  
  #search_filters .facet .facet-title {
    color: #333;
    font-weight: 600;
    margin-bottom: 10px;
  }
  
  #search_filters .facet .facet-label {
    margin-bottom: 8px;
    display: flex;
    align-items: center;
  }
  
  #search_filters .facet .custom-checkbox {
    margin-right: 10px;
  }
  
  #search_filters .facet .custom-checkbox span {
    border-color: #e2e8f0;
  }
  
  #search_filters .facet .facet-label a {
    color: #4a5568;
    transition: color 0.2s ease;
  }
  
  #search_filters .facet .facet-label:hover a {
    color: var(--primary);
  }
  
  /* Block categories */
  .block-categories {
    background: white;
    padding: 1.5rem;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
    margin-bottom: 1.5rem;
    border: none;
  }
  
  .block-categories .h6 {
    color: var(--primary);
    font-weight: 600;
    border-bottom: 1px solid #f1f1f1;
    padding-bottom: 10px;
    margin-bottom: 15px;
  }
  
  .category-sub-menu li {
    margin-bottom: 8px;
  }
  
  .category-sub-menu li a {
    color: #4a5568;
    transition: color 0.2s ease;
  }
  
  .category-sub-menu li a:hover {
    color: var(--primary);
  }
  


.thumbnail-container:hover .wishlist-button-add {
  opacity: 1;
}

.wishlist-button-add:hover {
  background-color: var(--primary);
  color: white;
}

/* Responsive */
@media (max-width: 767px) {
    #js-product-list-top {
      flex-direction: column;
      align-items: flex-start;
    }
    
    .products-selection .sort-by-row {
      margin-top: 1rem;
      width: 100%;
    }
    
    .products-sort-order {
      width: 100%;
    }
    
    .products-sort-order .select-title {
      width: 100%;
    }
  }
  
  @media (max-width: 480px) {
    #products .products {
      grid-template-columns: 1fr;
    }
  }
  .product-flags li.product-flag{
    width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
padding: .3125rem .4375rem;
margin-top: .625rem;
font-size: 1rem;
font-weight: 700;
color: #fff;
text-transform: uppercase;
word-break: break-word;
pointer-events: auto;
background: var(--secondary);
  }
  body#checkout section.checkout-step .address-item>header{
    min-height: 11rem;   
  }
  body#checkout section.checkout-step .address-item.selected{
    background: #fff;
border: var(--secondary) 3px solid;
  }
  body#checkout section.checkout-step .address-item{
    margin-right: 4px;
  }
  body#checkout section.checkout-step .address-footer{
    padding: 0rem;
text-align: center;
  }

/* Centrage du logo dans l en tete du checkout */
body#checkout .header-nav #_desktop_logo {
    margin-left: auto;
    margin-right: auto;
    width: -moz-fit-content; /* Pour Firefox */
    width: fit-content;    /* Standard */
    /* Le padding existant est deja applique par une regle precedente */
}
#titretransport .titretransport-label, #delivery .message{
    color: #730a37;
font-weight: bold;
text-align: left;
font-size: .875rem;
}
body#checkout #delivery textarea{
    max-width: 100%;
margin-bottom: 10px;
border: 2px solid #730a37 !important;
border-radius: 0.25rem;
}
select.form-control:not([size]):not([multiple]){
    height: 46px;
}
.group-span-filestyle .btn-default{
    background: var(--secondary)
}


#header .checkout{
    display: -webkit-box; 
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    min-height: 60px;
    text-align: center;
}
#header .header-nav-checkout{
    max-height: none;
padding: 0;
margin-bottom: 1rem;
text-align: center;
}
body#checkout section.checkout-step .delivery-options .delivery-option{
    border-radius: 6px;
}
.img-thumbnail{
    border-radius: 6px;
}
.tabs .tab-pane{
    padding-top: 0;
}
.tabs{
    padding-left: 0;
margin-top: 2rem;
background: #fff;
padding: 1rem 0rem;
}

/* Style pour le conteneur du tableau des produits groupes */
.grouped-products-table-container {
    /* Supprimer border-radius, box-shadow, overflow, border, background-color */
    margin-top: 2rem; /* Conserver les marges */
    margin-bottom: 2rem;
}

/* Ajustement pour le tableau a l interieur du conteneur */
.grouped-products-table-container .table-responsive {
    border-radius: 10px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.05);
    margin-bottom: 2rem;
}

.grouped-products-table-container .grouped-products-table {
    margin-bottom: 0;
    /* border: none; */ /* Commenter ou supprimer si une bordure interne est souhaitee */
    border-radius: 6px;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08); /* Ombre discrete */
    overflow: hidden; /* Important pour que le radius affecte les coins internes */
    /* Assurer un fond pour que l ombre soit visible si les lignes n ont pas de fond */
    /* background-color: white; */ /* Decommenter si necessaire */
    border-collapse: separate; /* Necessaire pour que border-radius fonctionne sur la table */
    border-spacing: 0;
}

/* Styles pour arrondir les coins du thead et du tbody */
.grouped-products-table-container .grouped-products-table thead tr:first-child th:first-child {
    border-top-left-radius: 6px;
}
.grouped-products-table-container .grouped-products-table thead tr:first-child th:last-child {
    border-top-right-radius: 6px;
}
.grouped-products-table-container .grouped-products-table tbody tr:last-child td:first-child {
    border-bottom-left-radius: 6px;
}
.grouped-products-table-container .grouped-products-table tbody tr:last-child td:last-child {
    border-bottom-right-radius: 6px;
}
.tabs .nav-tabs .nav-link.active, .tabs .nav-tabs .nav-link:hover{
    color: var(--secondary);
    border-color: var(--secondary);
}
.tabs .nav-tabs .nav-link.active{
    color: var(--secondary);
}
.tabs .nav-tabs{
    border:0;
    border-bottom: #f6f6f6 2px solid;
}
.btn-primary.active, .btn-primary:active, .open>.btn-primary.dropdown-toggle{
    color: #000;
background-color: inherit;
border-color: transparent;
background-image: none;
}
.reference .autocomplete-reference{
color: var(--secondary);
font-weight: 800;
font-size: 12px;
}
.product .autocomplete-product-name{
    font-size: 12px;
}

/* Ajuste le lien pour aligner l'image et le texte */
.searchbar-autocomplete li a {
  display: flex;
  align-items: center;
  padding: 5px 0;
}

/* Conteneur pour les textes */
.searchbar-autocomplete .autocomplete-text-container {
  display: flex;
  flex-direction: column; /* Empile reference et nom */
  margin-left: 10px;
  line-height: 1.3;
}

/* Style pour la reference - Selecteur corrige */
.searchbar-autocomplete .autocomplete-reference {
  color: var(--secondary);   /* Votre couleur */
  font-weight: 800;        /* Votre graisse */
  font-size: 12px;         /* Votre taille */
  margin-bottom: 5px;    /* L espace demande precedemment */
}

/* Style pour le nom du produit - Selecteur corrige */
.searchbar-autocomplete .autocomplete-product-name {
    font-size: 12px;         /* Votre taille */
}

/* Optionnel: Ajuster la taille de l image miniature */
/*
.searchbar-autocomplete .autocomplete-thumbnail {
  width: 45px;
  height: 45px;
  object-fit: contain;
}
*/
#main .page-header{
    margin-top: 2rem;
}
#pagenotfound #main .page-header, #products #main .page-header{
    text-align: center;
}
.text-primary,.wishlist-add-to-new i{
    color: var(--primary)!important;
}
.text-secondary{
    color: var(--secondary)!important;
}
.text-primary:hover,.wishlist-add-to-new i:hover,a.text-primary:focus, a.text-primary:hover{
    text-decoration: underline!important;
    color: var(--primary)!important;
}
.text-secondary:hover{
    text-decoration: underline!important;
}
.wishlist-product-price, .wishlist-product-combinations{
display: none!important;
}
.wishlist-product-title{
    font-size: 12px;
    color: var(--dark);
font-weight: 600;
text-align: center;
margin-bottom: 1.315rem;
}
.wishlist-products-item{
    margin: 1.5625rem;
border: none;
border-radius: 10px;
box-shadow: 0 2px 15px rgba(0,0,0,0.05);
padding: 6px;
    }

/* -- Debut Style Bouton Wishlist Miniature -- */

/* Positionnement et style de base du bouton wishlist sur miniature */
.product-miniature .wishlist-button-add {
  position: absolute;
  top: 10px;
  right: 10px;
  background-color: white;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
  color: var(--primary);
  transition: all 0.3s ease;
  z-index: 5; /* Pour etre au dessus des flags */
  border: none; /* Assurer qu il n y a pas de bordure par defaut */
  padding: 0; /* Reinitialiser padding */
}

/* Cacher le bouton par defaut s'il N'EST PAS dans la wishlist */
/* J utilise .wishlist-added comme classe exemple, adaptez si necessaire */
.product-miniature .wishlist-button-add:not(.wishlist-added) {
  opacity: 0;
  pointer-events: none; /* Empecher interaction si invisible */
}

/* Afficher au survol s'il N'EST PAS dans la wishlist */
.product-miniature:hover .wishlist-button-add:not(.wishlist-added) {
  opacity: 1;
  pointer-events: auto; /* Permettre interaction */
}

/* Afficher TOUJOURS le bouton s'il EST dans la wishlist */
.product-miniature .wishlist-button-add.wishlist-added {
  opacity: 1;
  pointer-events: auto; /* Permettre interaction */
}
.product-miniature .wishlist-button-add.wishlist-added i{
    color: var(--primary); /* Assurer que l'icone coeur plein est de la bonne couleur */
}
.product-miniature .wishlist-button-add:not(.wishlist-added) i{
    color: var(--primary); /* Assurer que l'icone coeur vide est de la bonne couleur */
}


/* Style au survol DU BOUTON (applique a tous les etats) */
.wishlist-button-add:hover {
  background-color: var(--primary);
  color: white; /* Pour l'icone au survol */
}
.wishlist-button-add:hover i{
    color: white; /* Assurer que l'icone devient blanche au survol */
}

/* -- Fin Style Bouton Wishlist Miniature -- */
.cart-grid{margin-top: 2rem;}

.text-cente, .address-footer{text-align: center!important;}

.#blockcart-modal .modal-dialog{
  width: 80%;
  max-width: 1140px;
}

/* ==================================================
   🎨 PAGE D'ACCUEIL MODERNE - MALEO EMBALLAGE
   ==================================================
   Styles modernes et interactifs pour la page d'accueil
   Utilise la charte graphique Bordeaux (#a21942) et Bleu Électrique (#5438dc)
   ================================================== */

/* Container principal de la page d'accueil */
.page-home {
    background: var(--light);
    overflow-x: hidden;
}

/* ==================================================
   🎯 HERO SECTION ANIMÉE
   ================================================== */
.home-hero-section {
    position: relative;
    background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
    background-size: 400% 400%;
    animation: gradientShift 15s ease infinite;
    padding: 100px 0;
    margin-bottom: 60px;
    overflow: hidden;
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Effet de particules flottantes dans le hero */
.home-hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 40% 20%, rgba(0, 208, 255, 0.1) 0%, transparent 50%);
    animation: float 20s ease-in-out infinite;
}

@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

.home-hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    color: white;
}

.home-hero-title {
    font-size: 3.5rem;
    font-weight: 700;
    margin-bottom: 20px;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    animation: fadeInUp 1s ease-out;
}

.home-hero-subtitle {
    font-size: 1.5rem;
    font-weight: 300;
    margin-bottom: 40px;
    opacity: 0.95;
    animation: fadeInUp 1s ease-out 0.2s backwards;
}

.home-hero-cta {
    display: inline-block;
    padding: 18px 50px;
    background: white;
    color: var(--primary);
    font-size: 1.2rem;
    font-weight: 600;
    border-radius: 50px;
    text-decoration: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    animation: fadeInUp 1s ease-out 0.4s backwards;
}

.home-hero-cta:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
    color: var(--secondary);
}

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

/* ==================================================
   ✨ SECTIONS DE CONTENU INTERACTIVES
   ================================================== */
.home-section {
    padding: 60px 0;
    animation: fadeIn 1s ease-out;
}

.home-section-title {
    text-align: center;
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 15px;
    position: relative;
    display: inline-block;
    left: 50%;
    transform: translateX(-50%);
}

.home-section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: linear-gradient(90deg, var(--primary), var(--accent));
    border-radius: 2px;
}

.home-section-subtitle {
    text-align: center;
    font-size: 1.2rem;
    color: var(--gray);
    margin-bottom: 50px;
}

/* ==================================================
   🎯 CATÉGORIES EN GRILLE INTERACTIVE
   ================================================== */
.home-categories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
    margin-bottom: 40px;
}

.home-category-card {
    position: relative;
    background: white;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    cursor: pointer;
}

.home-category-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    opacity: 0;
    transition: opacity 0.4s ease;
}

.home-category-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(162, 25, 66, 0.2);
}

.home-category-card:hover::before {
    opacity: 0.95;
}

.home-category-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.home-category-card:hover .home-category-image {
    transform: scale(1.1);
}

.home-category-content {
    position: relative;
    z-index: 2;
    padding: 25px;
    transition: all 0.4s ease;
}

.home-category-card:hover .home-category-content {
    color: white;
}

.home-category-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--dark);
    margin-bottom: 10px;
    transition: color 0.4s ease;
}

.home-category-card:hover .home-category-title {
    color: white;
}

.home-category-description {
    font-size: 1rem;
    color: var(--gray);
    transition: color 0.4s ease;
}

.home-category-card:hover .home-category-description {
    color: rgba(255, 255, 255, 0.9);
}

/* ==================================================
   📦 CARTES PRODUITS MODERNISÉES
   ================================================== */
#products .product-miniature,
.page-home .product-miniature {
    border: none;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    background: white;
}

#products .product-miniature:hover,
.page-home .product-miniature:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(84, 56, 220, 0.15);
}

#products .product-thumbnail,
.page-home .product-thumbnail {
    position: relative;
    overflow: hidden;
    border-radius: 20px 20px 0 0;
}

#products .product-thumbnail img,
.page-home .product-thumbnail img {
    transition: transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

#products .product-miniature:hover .product-thumbnail img,
.page-home .product-miniature:hover .product-thumbnail img {
    transform: scale(1.1);
}

/* Badge "NOUVEAU" amélioré */
.product-flags .new {
    background: linear-gradient(135deg, var(--accent), var(--accent-light));
    color: white;
    padding: 8px 16px;
    border-radius: 20px;
    font-weight: 600;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 10px rgba(0, 208, 255, 0.3);
}

/* Badge promotion */
.product-flags .discount {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    color: white;
    padding: 8px 16px;
    border-radius: 20px;
    font-weight: 600;
    font-size: 0.9rem;
    box-shadow: 0 4px 10px rgba(162, 25, 66, 0.3);
}

/* ==================================================
   🎁 SECTION AVANTAGES
   ================================================== */
.home-benefits-section {
    background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
    padding: 80px 0;
    margin: 60px 0;
    position: relative;
    overflow: hidden;
}

.home-benefits-section::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -10%;
    width: 120%;
    height: 200%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
    animation: rotate 30s linear infinite;
}

@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.home-benefits-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 40px;
    position: relative;
    z-index: 2;
}

.home-benefit-item {
    text-align: center;
    color: white;
    animation: fadeInUp 1s ease-out;
}

.home-benefit-icon {
    font-size: 4rem;
    margin-bottom: 20px;
    display: inline-block;
    animation: bounce 2s ease-in-out infinite;
}

@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.home-benefit-title {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 10px;
}

.home-benefit-description {
    font-size: 1rem;
    opacity: 0.9;
}

/* ==================================================
   📱 RESPONSIVE DESIGN
   ================================================== */
@media (max-width: 768px) {
    .home-hero-title {
        font-size: 2.5rem;
    }
    
    .home-hero-subtitle {
        font-size: 1.2rem;
    }
    
    .home-section-title {
        font-size: 2rem;
    }
    
    .home-categories-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .home-benefits-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

/* ==================================================
   ✨ ANIMATIONS D'APPARITION
   ================================================== */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Animations au scroll */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(50px);
    transition: all 0.8s ease-out;
}

.animate-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ==================================================
   🎯 BOUTONS MODERNISÉS
   ================================================== */
.btn-primary, .page-home .btn-primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-light));
    border: none;
    border-radius: 50px;
    padding: 14px 35px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(162, 25, 66, 0.3);
}

.btn-primary:hover, .page-home .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(162, 25, 66, 0.4);
    background: linear-gradient(135deg, var(--primary-dark), var(--primary));
}

.btn-secondary, .page-home .btn-secondary {
    background: linear-gradient(135deg, var(--secondary), var(--secondary-light));
    border: none;
    border-radius: 50px;
    padding: 14px 35px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(84, 56, 220, 0.3);
}

.btn-secondary:hover, .page-home .btn-secondary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(84, 56, 220, 0.4);
    background: linear-gradient(135deg, var(--secondary-dark), var(--secondary));
}

/* ==================================================
   🎨 SLIDER D'IMAGES AMÉLIORÉ
   ================================================== */
.carousel-inner {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
}

.carousel-item {
    transition: transform 1s ease-in-out;
}

.carousel-control-prev,
.carousel-control-next {
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    width: 60px;
    height: 60px;
    border-radius: 50%;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.8;
    transition: all 0.3s ease;
}

.carousel-control-prev:hover,
.carousel-control-next:hover {
    opacity: 1;
    transform: translateY(-50%) scale(1.1);
}

/* ==================================================
   ✨ FIN DES STYLES PAGE D'ACCUEIL MODERNE
   ================================================== */