/* ============================================
   OPAJ THEME - DESIGN SYSTEM LUXE
   Basé sur le style boutique moderne
   Police: Poppins | Max-width: 1600px
   ============================================ */

@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap");

/* IMPORTANT: Masquer l'overlay de recherche par défaut - RÈGLES TRÈS FORTES */
#searchOverlay:not(.active),
.search-overlay:not(.active),
body[data-theme="opaj"] #searchOverlay:not(.active),
html[data-theme="opaj"] #searchOverlay:not(.active),
body[data-theme="opaj"] .search-overlay:not(.active),
html[data-theme="opaj"] .search-overlay:not(.active) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: fixed !important;
    top: -9999px !important;
    left: -9999px !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* ============================================
   RÈGLES PRIORITAIRES - Surcharger les styles inline
   ============================================ */

/* Les styles du panier OPAJ sont gérés dans header.php */

/* Masquer l'overlay de recherche par défaut - PRIORITÉ MAXIMALE */
#searchOverlay:not(.active),
.search-overlay:not(.active) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* ============================================
   SEARCH OVERLAY - STYLES CORRIGÉS
   ============================================ */

/* Overlay de recherche actif - styles propres */
#searchOverlay.active,
.search-overlay.active {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(0, 0, 0, 0.7) !important;
    backdrop-filter: blur(5px) !important;
    -webkit-backdrop-filter: blur(5px) !important;
    z-index: 2000 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding-top: 100px !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: all !important;
    width: 100% !important;
    height: 100% !important;
    overflow: auto !important;
}

/* Modal de recherche - styles propres */
#searchOverlay.active .search-modal,
.search-overlay.active .search-modal {
    background: white !important;
    width: 90% !important;
    max-width: 600px !important;
    padding: 30px !important;
    border-radius: 0 !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3) !important;
    position: relative !important;
    transform: translateY(0) !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}

/* Header du modal */
.search-modal-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 20px !important;
    padding-bottom: 15px !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
}

/* Titre du modal */
.search-modal-title {
    font-family: var(--font-family) !important;
    font-weight: 600 !important;
    font-size: 1.2rem !important;
    text-transform: uppercase !important;
    color: #000 !important;
    margin: 0 !important;
}

/* Bouton de fermeture */
.search-modal-close {
    background: transparent !important;
    border: none !important;
    font-size: 2rem !important;
    color: #000 !important;
    cursor: pointer !important;
    padding: 0 !important;
    width: 30px !important;
    height: 30px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0.6 !important;
    transition: opacity 0.3s !important;
    line-height: 1 !important;
}

.search-modal-close:hover {
    opacity: 1 !important;
}

/* Wrapper du champ de recherche */
.search-input-wrapper {
    position: relative !important;
    width: 100% !important;
    margin-bottom: 20px !important;
    box-sizing: border-box !important;
}

/* Champ de recherche */
.search-input {
    width: 100% !important;
    padding: 12px 40px 12px 12px !important;
    border: 1px solid #000 !important;
    background: white !important;
    color: #000 !important;
    font-family: var(--font-family) !important;
    font-size: 1rem !important;
    font-weight: 300 !important;
    outline: none !important;
    transition: all 0.3s !important;
    box-sizing: border-box !important;
    display: block !important;
    margin: 0 !important;
}

.search-input::placeholder {
    color: rgba(0, 0, 0, 0.4) !important;
    font-weight: 300 !important;
}

.search-input:focus {
    border-color: #000 !important;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1) !important;
}

/* Icône de recherche */
.search-icon {
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    opacity: 0.4 !important;
    width: 18px !important;
    height: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.search-icon svg {
    width: 100% !important;
    height: 100% !important;
    stroke: currentColor !important;
    fill: none !important;
    stroke-width: 1.5 !important;
}

/* Résultats de recherche */
.search-results {
    max-height: 400px !important;
    overflow-y: auto !important;
    display: none !important;
}

.search-results.active {
    display: block !important;
}

.search-result-item {
    padding: 14px 12px !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05) !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

.search-result-item:hover {
    background: rgba(0, 0, 0, 0.05) !important;
}

/* Responsive mobile */
@media (max-width: 768px) {
    #searchOverlay.active,
    .search-overlay.active {
        padding-top: 50px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    
    #searchOverlay.active .search-modal,
    .search-overlay.active .search-modal {
        width: 100% !important;
        max-width: 100% !important;
        padding: 20px !important;
        margin: 0 !important;
    }
    
    .search-modal-title {
        font-size: 1rem !important;
    }
    
    .search-input {
        font-size: 16px !important; /* Évite le zoom sur iOS */
        padding: 12px 40px 12px 12px !important;
    }
    
    .search-results {
        max-height: calc(100vh - 300px) !important;
    }
}

/* Masquer la scrollbar des catégories - PRIORITÉ MAXIMALE */
.categories-bar {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.categories-bar::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

/* Masquer le tape-sold dans le header - PRIORITÉ MAXIMALE */
header .tape-sold,
.main-header .tape-sold,
.header-right .tape-sold,
.header-flex .tape-sold,
.header-left .tape-sold,
.header-center .tape-sold,
header * .tape-sold,
.header-right * .tape-sold,
.header-flex * .tape-sold,
header .tape-sold,
header .icon-btn .tape-sold,
header .cart-btn .tape-sold,
.cart-btn .tape-sold,
.icon-btn .tape-sold,
header button .tape-sold,
header a .tape-sold,
header .header-right .tape-sold,
header .header-flex .tape-sold {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    top: -9999px !important;
    left: -9999px !important;
    z-index: -1 !important;
    pointer-events: none !important;
    clip-path: inset(100%) !important;
    clip: rect(0, 0, 0, 0) !important;
}

/* Masquer TOUS les éléments avec background rouge dans le header */
header [style*="background.*red"],
header [style*="background.*#d0021b"],
header [style*="background.*#ff0000"],
header [class*="sold"],
header [class*="tape"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/* Forcer le menu horizontal - PRIORITÉ MAXIMALE */
body[data-theme="opaj"] .nav-links,
html[data-theme="opaj"] .nav-links,
body[data-theme="opaj"] ul.nav-links,
html[data-theme="opaj"] ul.nav-links,
body[data-theme="opaj"] .header-center .nav-links,
html[data-theme="opaj"] .header-center .nav-links,
body[data-theme="opaj"] .main-nav .nav-links,
html[data-theme="opaj"] .main-nav .nav-links,
body[data-theme="opaj"] header .nav-links,
html[data-theme="opaj"] header .nav-links,
body[data-theme="opaj"] .main-header .nav-links,
html[data-theme="opaj"] .main-header .nav-links,
body[data-theme="opaj"] .header-center .main-nav .nav-links,
html[data-theme="opaj"] .header-center .main-nav .nav-links {
    display: flex !important;
    flex-direction: row !important;
    list-style: none !important;
    list-style-type: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 35px !important;
    align-items: center !important;
    -webkit-padding-start: 0 !important;
    padding-inline-start: 0 !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
}

body[data-theme="opaj"] .nav-links li,
html[data-theme="opaj"] .nav-links li,
body[data-theme="opaj"] ul.nav-links li,
html[data-theme="opaj"] ul.nav-links li,
body[data-theme="opaj"] .header-center .nav-links li,
html[data-theme="opaj"] .header-center .nav-links li,
body[data-theme="opaj"] .main-nav .nav-links li,
html[data-theme="opaj"] .main-nav .nav-links li,
body[data-theme="opaj"] header .nav-links li,
html[data-theme="opaj"] header .nav-links li,
body[data-theme="opaj"] .main-header .nav-links li,
html[data-theme="opaj"] .main-header .nav-links li {
    list-style: none !important;
    list-style-type: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-block !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
}

body[data-theme="opaj"] .nav-links li::marker,
html[data-theme="opaj"] .nav-links li::marker,
body[data-theme="opaj"] ul.nav-links li::marker,
html[data-theme="opaj"] ul.nav-links li::marker,
body[data-theme="opaj"] .nav-links li::before,
html[data-theme="opaj"] .nav-links li::before,
body[data-theme="opaj"] ul.nav-links li::before,
html[data-theme="opaj"] ul.nav-links li::before,
body[data-theme="opaj"] .nav-links li::after,
html[data-theme="opaj"] .nav-links li::after,
body[data-theme="opaj"] ul.nav-links li::after,
html[data-theme="opaj"] ul.nav-links li::after {
    display: none !important;
    content: '' !important;
}

/* Forcer le menu principal horizontal */
body[data-theme="opaj"] .main-nav,
html[data-theme="opaj"] .main-nav,
body[data-theme="opaj"] .header-center,
html[data-theme="opaj"] .header-center {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

:root {
    --max-width: 1600px;
    --primary: #000000;
    --gray-bg: #f9f9f9;
    --gray-border: #eeeeee;
    --gray-text: #666666;
    --font-family: 'Poppins', sans-serif;
    --transition: 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-2xl: 3rem;
    --spacing-3xl: 4rem;

    /* Variables de compatibilité pour le JS partagé (panier, etc.) */
    --ink: var(--primary);
    --paper-white: #ffffff;
    --font-main: var(--font-family);
    --font-title: var(--font-family);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-family);
    color: var(--primary);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    background: white;
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100vw; /* Utiliser 100vw pour être sûr */
    box-sizing: border-box;
}

html {
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100vw; /* Utiliser 100vw pour être sûr */
    overflow-x: hidden;
    box-sizing: border-box;
}

body[data-theme="opaj"] {
    font-family: var(--font-family);
    background: white !important;
}

/* Désactiver le body::before du thème 1 pour le thème OPAJ */
body[data-theme="opaj"]::before,
html[data-theme="opaj"] body::before {
    display: none !important;
    content: none !important;
    height: 0 !important;
    width: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* ============================================
   LAYOUT
   ============================================ */

.container-wide {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 40px;
}

.section-padding {
    padding: 60px 0;
}

main,
.page-content,
.gallery-wrapper,
.product-page,
.cart-page,
.checkout-page,
.contact-page,
.about-page,
.legal-page,
.login-page,
.register-page,
.mon-compte-page,
.track-order-page,
.order-detail-page,
.checkout-success-page,
.forgot-password-page,
.reset-password-page,
.unsubscribe-page {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: var(--spacing-xl) 40px;
    width: 100%;
    box-sizing: border-box;
}

.gallery-wrapper {
    display: flex !important;
    flex-direction: column !important;
    max-width: var(--max-width) !important;
    margin: 0 auto !important;
    /* un peu moins d'espace au-dessus de la grille produits */
    padding: var(--spacing-lg) 40px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.gallery-content {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    margin: 0 !important;
    /* Pour que les éléments absolus (ex: toast de notification de catégorie)
       se positionnent par rapport à la zone produits, pas à toute la page */
    position: relative;
}

@media (max-width: 768px) {
    .container-wide {
        padding: 0 20px;
    }
    
    main,
    .page-content,
    .gallery-wrapper,
    .product-page,
    .cart-page,
    .checkout-page,
    .contact-page,
    .about-page,
    .legal-page,
    .login-page,
    .register-page,
    .mon-compte-page,
    .track-order-page,
    .order-detail-page,
    .checkout-success-page,
    .forgot-password-page,
    .reset-password-page,
    .unsubscribe-page {
        padding: var(--spacing-md) 20px;
    }
}

/* ============================================
   HEADER
   ============================================ */

header,
.main-header {
    border-bottom: 1px solid var(--gray-border);
    background: white;
    position: sticky;
    top: 0;
    z-index: 100 !important;
    width: 100vw !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible;
    left: 0;
    right: 0;
}

/* Le contenu du header reste centré dans la colonne */
header .header-flex,
.main-header .header-flex {
    max-width: var(--max-width);
    margin: 0 auto;
    width: 100%;
    padding: 0 40px;
}

/* IMPORTANT: Empêcher les tape-sold de dépasser dans le header */
header,
.main-header {
    position: relative;
    overflow: hidden;
}

header .tape-sold,
.main-header .tape-sold {
    display: none !important;
}

 .header-flex {
     display: flex;
     justify-content: space-between;
     align-items: center;
     height: 80px;
     padding: 0 40px;
     max-width: var(--max-width);
     margin: 0 auto;
     width: 100%;
 }

.header-left {
    flex-shrink: 0;
    /* Assure un alignement vertical parfait du logo dans le header OPAJ */
    display: flex;
    align-items: center;
}

.header-center {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}

.header-center .main-nav {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0;
}

.header-center .main-nav .nav-links,
.main-nav .nav-links,
.nav-links {
    display: flex !important;
    flex-direction: row !important;
    list-style: none !important;
    gap: 35px;
    margin: 0 !important;
    padding: 0 !important;
    align-items: center;
}

.header-center .main-nav .nav-links li,
.main-nav .nav-links li,
.nav-links li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-block !important;
}

.header-center .main-nav .nav-links li::marker,
.main-nav .nav-links li::marker,
.nav-links li::marker {
    display: none !important;
    content: '' !important;
}

 .header-right {
     display: flex;
     gap: 20px;
     align-items: center;
     flex-shrink: 0;
 }

/* Pour OPAJ : même marge que les catégories
   (40px desktop, 20px mobile) afin d’aligner le logo
   avec le bord gauche de la grille produits/catégories
   et les icônes avec le bord droit. */
body[data-theme="opaj"] .main-header .header-flex {
    padding-left: 40px;
    padding-right: 40px;
}

/* Icônes un peu plus rapprochées entre elles */
body[data-theme="opaj"] .header-right {
    gap: 14px;
}

@media (max-width: 768px) {
    body[data-theme="opaj"] .main-header .header-flex {
        padding-left: 20px;
        padding-right: 20px;
    }
    body[data-theme="opaj"] .header-right {
        gap: 10px;
    }
}

header .logo {
    font-size: 24px;
    font-weight: 700;
    text-decoration: none;
    color: black;
    letter-spacing: -1px;
    font-family: var(--font-family);
}

header .logo span {
    color: #aaa;
}

header .logo img {
    height: 40px;
    width: auto;
    /* Évite l'espace de ligne sous l'image et améliore l'alignement vertical */
    display: block;
}

/* Ajustement fin du logo en thème OPAJ pour un centrage visuel parfait */
body[data-theme="opaj"] header .logo img {
    margin-top: 2px;
}

/* Menu principal horizontal au centre */
.main-nav {
    display: none;
}

@media (min-width: 769px) {
    .main-nav {
        display: flex !important;
        align-items: center;
        gap: 0;
        flex: 1;
        justify-content: center;
        margin: 0 var(--spacing-xl);
    }
    
    .nav-links {
        display: flex !important;
        flex-direction: row !important;
        list-style: none !important;
        gap: 35px;
        margin: 0 !important;
        padding: 0 !important;
        align-items: center;
    }
    
    .nav-links li {
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
        display: inline-block !important;
    }
    
    .nav-links li::before,
    .nav-links li::after {
        display: none !important;
        content: none !important;
    }
    
    .main-nav-link {
        font-family: var(--font-family);
        font-weight: 600;
        font-size: 13px;
        text-transform: uppercase;
        letter-spacing: 1px;
        color: black !important;
        text-decoration: none;
        padding: 11px 0; /* padding vertical du menu principal */
        position: relative;
        transition: color var(--transition);
        display: inline-block;
    }
    
    .main-nav-link::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        width: 0;
        height: 2px;
        background: var(--primary);
        transition: width var(--transition);
    }
    
    .main-nav-link:hover,
    .main-nav-link.active {
        color: var(--primary);
    }
    
    .main-nav-link:hover::after,
    .main-nav-link.active::after {
        width: 100%;
    }
}

.header-right {
    display: flex;
    gap: 20px;
    align-items: center;
}

.search-btn,
.account-btn,
.cart-btn {
    background: none;
    border: none;
    cursor: pointer;
    position: relative;
    color: black;
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 10px 15px;
    text-decoration: none;
    transition: opacity var(--transition);
    display: flex;
    align-items: center;
    justify-content: center;
}

.icon-btn {
    background: none;
    border: none;
    cursor: pointer;
    position: relative;
    color: black;
    padding: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity var(--transition);
    width: 40px;
    height: 40px;
}

.icon-btn i,
.icon-btn svg {
    width: 20px;
    height: 20px;
    stroke-width: 2;
}

.icon-btn:hover {
    opacity: 0.7;
}

.search-btn:hover,
.account-btn:hover,
.cart-btn:hover {
    opacity: 0.7;
}

.cart-count {
    position: absolute;
    top: -8px;
    right: -10px;
    background: black;
    color: white;
    font-size: 10px;
    /* véritable pastille ronde, centrée */
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    border-radius: 50%;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important; /* évite le décalage vertical du chiffre */
    box-sizing: border-box;
    padding: 0 !important;
    margin: 0 !important;
    text-align: center !important;
    font-weight: 600;
}

.cart-count * {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}

.mobile-burger {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: var(--spacing-sm);
    color: var(--primary);
}

@media (min-width: 769px) {
    .mobile-burger {
        display: none;
    }
}

@media (max-width: 1024px) {
    .header-flex {
        padding: 0 20px;
        height: 70px;
    }
    
    .main-nav {
        display: none;
    }
}

/* Menu mobile plein écran (hamburger) pour OPAJ */
.mobile-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #ffffff;
    z-index: 2100;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-20px);
    transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s 0.4s;
}

.mobile-nav.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s 0s;
}

.mobile-nav-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.05);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    cursor: pointer;
    color: var(--primary);
    transition: background 0.2s ease, transform 0.2s ease;
}

.mobile-nav-close:hover {
    background: rgba(0, 0, 0, 0.1);
    transform: rotate(90deg);
}

.mobile-nav-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
}

.mobile-nav-link {
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 20px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--primary);
    text-decoration: none;
    padding: 8px 0;
}

.mobile-nav-link:hover {
    text-decoration: underline;
}

/* ============================================
   BARRE DE CATÉGORIES (CORRIGÉ ET SIMPLIFIÉ)
   ============================================ */

.categories-bar,
.category-nav {
    /* Ligne grise principale sous les catégories */
    border-bottom: 1px solid var(--gray-border) !important;
    background: white;
    position: sticky;
    top: 80px;
    z-index: 99;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    height: 55px !important;
}

/* Conteneur principal */
.categories-bar .container-wide {
    max-width: var(--max-width);
    margin: 0 auto;
    width: 100%;
    padding: 0 40px !important;
    display: block !important;
    box-sizing: border-box;
    height: 100% !important;
    position: relative;
    z-index: 2; /* Passe au-dessus de la ligne grise */
}

/* Liste des catégories */
.categories-bar-content,
.category-links,
ul.category-links {
    display: flex !important;
    flex-wrap: nowrap !important;
    /* On étire chaque lien sur toute la hauteur de la barre
       pour que la barre noire active tombe exactement
       sur la ligne grise du bas. */
    align-items: stretch !important;
    gap: 30px !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    width: 100% !important;
    overflow-x: auto;
    overflow-y: visible; /* Laisser dépasser la petite barre noire si besoin */
    scrollbar-width: none;
    -ms-overflow-style: none;
}

/* Style des liens catégories - TAILLE 13PX */
.category-pill,
.category-links a,
.categories-bar-content a {
    display: flex !important;
    align-items: center !important;
    justify-content: center;
    height: 100% !important;
    text-decoration: none !important;
    color: var(--gray-text) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    /* padding vertical nul pour garder le texte bien centré,
       seul le margin-bottom de l'état actif gère l’alignement de la bordure */
    padding: 0 0 0 0 !important;
    position: relative;
    border-bottom: 2px solid transparent; /* base pour l'underline */
    white-space: nowrap;
    transition: color 0.3s ease;
    font-family: var(--font-family) !important;
    letter-spacing: 0.5px !important;
    background: transparent !important;
    box-sizing: border-box !important;
}

.category-pill:hover,
.category-pill.active {
    color: black !important;
}
/* Soulignement discret de la catégorie active, aligné sur la ligne grise */
body[data-theme="opaj"] nav.category-nav.categories-bar a.category-pill.active {
    border-bottom: 2px solid #000 !important;
    color: #000 !important;
    background-color: transparent !important;
    margin-bottom: -1px !important; /* fait descendre la bordure noire sur la ligne grise */
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .categories-bar {
        top: 70px;
    }
    
    .categories-bar .container-wide {
        padding: 0 20px !important; /* Alignement mobile (20px) */
    }
    
    .categories-bar-content,
    .category-links {
        gap: 20px !important;
    }
    
    .category-pill {
        font-size: 13px !important; /* Garder 13px en mobile aussi */
        padding: 10px 0 !important;
    }
}


/* Masquer la sidebar des catégories */
.categories-sidebar {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: 0 0 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    position: absolute !important;
    left: -9999px !important;
    opacity: 0 !important;
}

.mobile-categories {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
}

/* ============================================
   PRODUITS & GRILLE
   ============================================ */

.shop-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 30px !important;
    margin-top: var(--spacing-md) !important;
    margin-bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
}

.polaroid {
    background: white;
    overflow: visible;
    transition: transform var(--transition);
    position: relative;
}

.polaroid:hover {
    transform: translateY(-4px);
}

/* ============================================
   Cartes produit – affinement thème OPAJ
   (présentation plus "boutique" propre)
   ============================================ */

body[data-theme="opaj"] .polaroid {
    /* pas de contour gris, carte plus légère, mais on garde
       la structure de carte du thème de base */
    border: none !important;
    padding: 0 !important;
    display: block;
}

body[data-theme="opaj"] .polaroid-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 4px 4px 0;
    min-height: 0;
}

body[data-theme="opaj"] .info-header {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body[data-theme="opaj"] .product-name {
    font-size: 1rem;
    letter-spacing: 0.06em;
}

body[data-theme="opaj"] .product-ref {
    font-size: 0.6rem;
    opacity: 0.7;
    border: none;
    padding: 0;
    margin-left: 0;
}

body[data-theme="opaj"] .info-footer {
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

body[data-theme="opaj"] .product-price {
    font-size: 0.95rem;
    font-weight: 600;
}

body[data-theme="opaj"] .btn-view {
    padding: 4px 14px;
    font-size: 0.7rem;
}

/* Le tape-sold doit être TOUJOURS visible sur les produits vendus, pas seulement au survol */
/* Sur l'index : right: 15px pour rester dans la carte (évite le clip par body overflow-x) */
.shop-grid .polaroid .tape-sold,
.shop-grid article .tape-sold,
.shop-grid .product-item .tape-sold,
.gallery-content .polaroid .tape-sold,
.gallery-content .product-item .tape-sold {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    top: 15px !important;
    right: 15px !important;
    z-index: 10 !important;
    pointer-events: none !important;
}

/* Page produit et produits similaires : bandeau qui dépasse */
.polaroid .tape-sold,
article .tape-sold,
.product-item .tape-sold {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    top: 20px !important;
    right: -35px !important;
    z-index: 10 !important;
    pointer-events: none !important;
}

.product-image {
    aspect-ratio: 4/5;
    background: var(--gray-bg);
    overflow: hidden;
    margin-bottom: 15px;
    position: relative;
}

.product-image img,
.polaroid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.8s;
}

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

.product-info h3 {
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 8px;
    color: var(--primary);
    font-family: var(--font-family);
}

.price {
    font-size: 16px;
    font-weight: 600;
    color: var(--primary);
    font-family: var(--font-family);
}

@media (max-width: 1024px) {
    .shop-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 20px !important;
    }
}

@media (max-width: 768px) {
    .shop-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px !important;
    }
}

@media (max-width: 480px) {
    .shop-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }
}

.back-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--primary);
    text-decoration: none;
    font-size: 13px;
    text-transform: uppercase;
    margin-bottom: 30px;
    letter-spacing: 0.5px;
    font-family: var(--font-family);
    font-weight: 500;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 12px 24px;
    border-radius: 4px;
    background: white;
    border: 1.5px solid var(--primary);
    position: relative;
    overflow: hidden;
    z-index: 1; /* S'assurer que le texte est au-dessus du ::before */
}

.back-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: var(--primary); /* Fond noir au hover */
    transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: -1; /* Derrière le texte */
}

.back-link > * {
    position: relative;
    z-index: 2; /* Au-dessus du ::before */
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Le texte directement dans le lien doit aussi être au-dessus */
.back-link {
    position: relative;
    z-index: 1;
}

.back-link:hover {
    color: white !important; /* Texte blanc au hover */
    border-color: var(--primary);
    transform: translateX(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.back-link:hover::before {
    left: 0;
    z-index: -1; /* Le fond noir reste derrière le texte */
}

/* Forcer la couleur blanche sur TOUT le contenu du bouton au hover - règles très spécifiques */
.back-link:hover,
.back-link:hover *,
.back-link:hover > *,
.product-page .back-link:hover,
.product-page .back-link:hover *,
body[data-theme="opaj"] .back-link:hover,
body[data-theme="opaj"] .back-link:hover *,
a.back-link:hover,
a.back-link:hover *,
.product-page a.back-link:hover,
.product-page a.back-link:hover * {
    color: white !important;
}

/* S'assurer que le texte du lien lui-même devient blanc - règles ultra-spécifiques */
a.back-link:hover,
.product-page a.back-link:hover,
body[data-theme="opaj"] a.back-link:hover,
body[data-theme="opaj"] .product-page a.back-link:hover {
    color: white !important;
}

/* Forcer aussi sur le texte directement dans le lien (pas dans un enfant) - règle finale ultra-spécifique */
.back-link:hover,
body[data-theme="opaj"] .back-link:hover,
body[data-theme="opaj"] .product-page .back-link:hover,
.product-page .back-link:hover {
    color: white !important;
}

/* Forcer le texte directement dans le lien (pas dans un enfant) - règle avec sélecteur de type */
a.back-link:hover,
body[data-theme="opaj"] a.back-link:hover,
body[data-theme="opaj"] .product-page a.back-link:hover,
.product-page a.back-link:hover {
    color: white !important;
}

.back-link:hover > * {
    color: white !important; /* Texte et flèche blancs au hover */
    transform: translateX(-4px);
}

.back-link:hover > *:first-child {
    transform: translateX(-4px);
    color: white !important;
}

/* Spécifiquement pour les SVG et leurs paths si présents */
.back-link:hover svg,
.back-link:hover svg *,
.back-link:hover svg path,
.product-page .back-link:hover svg,
.product-page .back-link:hover svg *,
.product-page .back-link:hover svg path {
    color: white !important;
    fill: white !important;
    stroke: white !important;
}

.back-link:active {
    transform: translateX(0);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.product-container {
    display: grid;
    grid-template-columns: 1fr 550px;
    gap: 80px;
    align-items: start;
}

/* ============================================
   GALERIE PRODUIT (avec toutes les fonctionnalités)
   ============================================ */

.product-gallery {
    position: relative;
}

@media (min-width: 769px) {
    .product-gallery {
        position: sticky;
        top: 160px;
        height: fit-content;
    }
}

.main-image {
    width: 100%;
    aspect-ratio: 1/1;
    background: var(--gray-bg);
    margin-bottom: 20px;
    overflow: hidden;
    position: relative;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

#mainMediaContainer {
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.main-image img,
.main-image #mainImageSrc {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    pointer-events: auto;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
    transition: transform 0.3s ease;
}

.main-image.zoomed img {
    cursor: zoom-out;
}

/* Conteneur vidéo YouTube */
#mainMediaContainer .youtube-video-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
}

#mainMediaContainer .youtube-video-container iframe {
    width: 100%;
    height: 100%;
    border: none;
    max-width: 100%;
    max-height: 100%;
}

.main-image.has-video {
    aspect-ratio: 16/9;
}

.main-image.has-image {
    overflow: hidden;
}

.main-image.has-image #mainImageSrc {
    cursor: zoom-in;
    transition: transform 0.3s ease;
}

.main-image.has-image.zoomed #mainImageSrc {
    cursor: zoom-out;
    cursor: grab;
}

.main-image.has-image.zoomed #mainImageSrc:active {
    cursor: grabbing;
}

/* Navigation de la galerie - version OPAJ */
.gallery-nav,
body[data-theme="opaj"] .gallery-nav,
.product-page .gallery-nav,
body[data-theme="opaj"] .product-page .gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    /* pastille noire avec flèche blanche bien visible */
    background: rgba(0, 0, 0, 0.9) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: none !important;
    width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 30 !important;
    opacity: 1 !important;
    pointer-events: all !important;
    border-radius: 50% !important;
    visibility: visible !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

.gallery-nav:hover,
body[data-theme="opaj"] .gallery-nav:hover {
    background: #000 !important;
    transform: translateY(-50%) scale(1.05);
}

.gallery-nav.prev,
body[data-theme="opaj"] .gallery-nav.prev {
    left: 20px !important;
}

.gallery-nav.next,
body[data-theme="opaj"] .gallery-nav.next {
    right: 20px !important;
}

/* Styles pour les SVG - FORCER la visibilité des icônes */
.gallery-nav svg,
body[data-theme="opaj"] .gallery-nav svg,
.product-page .gallery-nav svg,
body[data-theme="opaj"] .product-page .gallery-nav svg {
    width: 20px !important;
    height: 20px !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    stroke: #ffffff !important;
    stroke-width: 3px !important;
    fill: none !important;
    pointer-events: none !important;
    position: relative !important;
    z-index: 1 !important;
    color: #ffffff !important;
}

.gallery-nav svg path,
body[data-theme="opaj"] .gallery-nav svg path,
.product-page .gallery-nav svg path,
body[data-theme="opaj"] .product-page .gallery-nav svg path {
    stroke: #ffffff !important;
    stroke-width: 3px !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    fill: none !important;
    transition: stroke 0.3s;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: #ffffff !important;
}

.gallery-nav:hover svg,
body[data-theme="opaj"] .gallery-nav:hover svg,
.product-page .gallery-nav:hover svg,
body[data-theme="opaj"] .product-page .gallery-nav:hover svg {
    stroke: #ffffff !important;
    color: #ffffff !important;
}

.gallery-nav:hover svg path,
body[data-theme="opaj"] .gallery-nav:hover svg path,
.product-page .gallery-nav:hover svg path,
body[data-theme="opaj"] .product-page .gallery-nav:hover svg path {
    stroke: #ffffff !important;
    color: #ffffff !important;
}

/* Boutons de zoom et lightbox */
.image-controls {
    position: absolute;
    top: 20px;
    right: 20px;
    display: flex;
    gap: 10px;
    z-index: 15;
    opacity: 0;
    transition: opacity 0.3s;
}

.main-image:hover .image-controls {
    opacity: 1;
}

.image-control-btn {
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 2px solid var(--primary);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 0;
}

.image-control-btn:hover {
    background: var(--primary);
    transform: scale(1.1);
}

.image-control-btn:hover svg {
    stroke: white;
}

.image-control-btn svg {
    width: 20px;
    height: 20px;
    stroke: var(--primary);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
    transition: stroke 0.3s;
}

.image-control-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.image-control-btn:disabled:hover {
    background: rgba(255, 255, 255, 0.95);
    transform: none;
}

.image-control-btn:disabled:hover svg {
    stroke: var(--primary);
}

/* Grille de thumbnails */
.thumbnail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
    gap: 10px;
    margin-top: 20px;
    position: relative;
    z-index: 1; /* En dessous des flèches de navigation */
}

.thumbnail {
    width: 100%;
    padding-bottom: 100%;
    position: relative;
    overflow: visible; /* Permettre à l'overlay de dépasser si nécessaire */
    background: var(--gray-bg);
    border: 2px solid transparent;
    cursor: pointer;
    border-radius: 4px;
    transition: all var(--transition);
}

.thumbnail.active {
    border-color: var(--primary);
}

.thumbnail:hover {
    border-color: var(--primary);
    transform: scale(1.05);
}

.thumbnail img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Miniatures vidéo (aperçu YouTube) */
.thumbnail-video {
    position: relative;
    width: 100%;
    height: 100%;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.thumbnail-video-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.7;
}

.thumbnail-video-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50px;
    height: 50px;
    background: #ff0000; /* Rond rouge vif */
    border-radius: 50%;
    display: flex !important;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 10 !important; /* S'assurer que l'overlay est au-dessus */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); /* Ombre pour meilleure visibilité */
}

.thumbnail-video-overlay svg {
    width: 24px;
    height: 24px;
    fill: #ffffff !important; /* Flèche play blanche */
    stroke: none;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* S'assurer que l'overlay est visible même si l'image ne charge pas */
.thumbnail-video:not(:has(.thumbnail-video-image)) .thumbnail-video-overlay,
.thumbnail-video .thumbnail-video-overlay {
    opacity: 1 !important;
    visibility: visible !important;
}

/* S'assurer que le conteneur thumbnail-video permet l'affichage de l'overlay */
.thumbnail .thumbnail-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Lightbox */
.lightbox {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.95);
    z-index: 2000;
    display: none;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s;
}

.lightbox.active {
    display: flex;
    opacity: 1;
}

.lightbox-content {
    position: relative;
    max-width: calc(90vw - 200px); /* Réserver de l'espace pour les miniatures et flèches */
    max-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    z-index: 2001;
}

.lightbox-content img {
    max-width: 100%;
    max-height: 90vh;
    width: auto;
    height: auto;
    object-fit: contain;
    background: var(--gray-bg);
    padding: 20px;
    border-radius: 4px;
}

.lightbox-content .youtube-video-container {
    width: 90vw;
    max-width: 1200px;
    padding-bottom: 50.625%;
    height: 0;
    position: relative;
    background: #000;
}

.lightbox-content .youtube-video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

body[data-theme="opaj"] .lightbox-thumbnails {
    position: absolute;
    right: 90px; /* Décalé pour éviter la superposition avec la flèche droite */
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 80vh;
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 2000; /* En dessous des flèches */
    padding: 10px;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(10px);
    border-radius: 8px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.lightbox-thumbnails::-webkit-scrollbar {
    display: none;
}

.lightbox-thumbnail {
    width: 80px;
    height: 80px;
    object-fit: cover;
    cursor: pointer;
    border: 2px solid transparent;
    border-radius: 4px;
    transition: all 0.3s;
    opacity: 0.7;
    position: relative;
    flex-shrink: 0;
}

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

.lightbox-thumbnail:hover,
.lightbox-thumbnail.active {
    opacity: 1;
    border-color: white;
}

.lightbox-thumbnail-video {
    position: relative;
    width: 80px;
    height: 80px;
    background: #000;
    border-radius: 4px;
    overflow: hidden;
    flex-shrink: 0;
}

.lightbox-thumbnail-video img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.7;
}

.lightbox-thumbnail-video::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 24px;
    height: 24px;
    background: rgba(255, 0, 0, 0.9);
    border-radius: 50%;
    pointer-events: none;
}

.lightbox-thumbnail-video::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) translateX(1px);
    width: 0;
    height: 0;
    border-left: 8px solid white;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    pointer-events: none;
    z-index: 1;
}

.lightbox-close {
    position: absolute;
    top: 20px;
    right: 20px; /* dans l'angle, sans toucher les miniatures */
    background: rgba(255, 255, 255, 0.9) !important;
    border: none !important;
    width: 50px !important;
    height: 50px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    border-radius: 50% !important;
    z-index: 2002 !important;
    transition: all var(--transition);
    font-size: 24px;
    color: var(--primary);
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

.lightbox-close:hover {
    background: white !important;
    transform: rotate(90deg);
}

/* Styles pour le SVG du bouton de fermeture */
.lightbox-close svg,
body[data-theme="opaj"] .lightbox-close svg {
    width: 24px !important;
    height: 24px !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    stroke: var(--primary) !important;
    stroke-width: 2px !important;
    fill: none !important;
    pointer-events: none !important;
    position: relative !important;
    z-index: 1 !important;
    color: var(--primary) !important;
}

.lightbox-close svg path,
body[data-theme="opaj"] .lightbox-close svg path {
    stroke: var(--primary) !important;
    stroke-width: 2px !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    fill: none !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--primary) !important;
}

.lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.9) !important;
    border: 2px solid white !important;
    width: 50px !important;
    height: 50px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    border-radius: 50% !important;
    z-index: 2002 !important; /* Au-dessus des miniatures */
    transition: all var(--transition);
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

.lightbox-nav.prev {
    left: 20px !important;
}

.lightbox-nav.next {
    right: 20px !important; /* Les miniatures sont maintenant à droite: 90px, donc pas de superposition */
}

.lightbox-nav:hover {
    background: white !important;
    transform: translateY(-50%) scale(1.1);
}

/* Styles pour les SVG de la lightbox - FORCER la visibilité des icônes */
.lightbox-nav svg,
body[data-theme="opaj"] .lightbox-nav svg {
    width: 24px !important;
    height: 24px !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    stroke: var(--primary) !important;
    stroke-width: 2px !important;
    fill: none !important;
    pointer-events: none !important;
    position: relative !important;
    z-index: 1 !important;
    color: var(--primary) !important;
}

.lightbox-nav svg path,
body[data-theme="opaj"] .lightbox-nav svg path {
    stroke: var(--primary) !important;
    stroke-width: 2px !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    fill: none !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--primary) !important;
}

.lightbox-nav:hover svg,
body[data-theme="opaj"] .lightbox-nav:hover svg {
    stroke: var(--primary) !important;
    color: var(--primary) !important;
}

.lightbox-nav:hover svg path,
body[data-theme="opaj"] .lightbox-nav:hover svg path {
    stroke: var(--primary) !important;
    color: var(--primary) !important;
}

/* Bandeau mobile pour la lightbox */
.lightbox-mobile-header {
    display: none; /* Masqué par défaut (desktop) */
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    z-index: 2003;
    align-items: center;
    justify-content: space-between;
    padding: 0 15px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.lightbox-mobile-back,
.lightbox-mobile-close {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.05);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s;
    padding: 0;
    flex-shrink: 0;
}

.lightbox-mobile-back:hover,
.lightbox-mobile-close:hover {
    background: rgba(0, 0, 0, 0.1);
    transform: scale(1.05);
}

.lightbox-mobile-back svg,
.lightbox-mobile-close svg {
    width: 24px;
    height: 24px;
    stroke: var(--primary);
    stroke-width: 2px;
    fill: none;
}

.lightbox-mobile-title {
    flex: 1;
    text-align: center;
    font-family: var(--font-family);
    font-size: 16px;
    font-weight: 600;
    color: var(--primary);
    padding: 0 15px;
}

/* Responsive mobile pour la lightbox */
@media (max-width: 768px) {
    /* Afficher le bandeau mobile */
    .lightbox-mobile-header {
        display: flex !important;
    }
    
    /* Masquer le bouton close desktop */
    .lightbox-close {
        display: none !important;
    }
    
    /* Ajuster le contenu pour le bandeau (pas besoin d'espace pour les flèches) */
    .lightbox-content {
        max-width: 95vw;
        padding: 80px 20px 120px 20px; /* Espace en haut pour le bandeau, en bas pour les miniatures */
        margin-top: 60px; /* Espace pour le bandeau mobile */
        width: 100%;
    }
    
    /* Repositionner les miniatures SOUS l'image */
    body[data-theme="opaj"] .lightbox-thumbnails {
        position: fixed !important;
        bottom: 20px !important;
        left: 50% !important;
        right: auto !important;
        top: auto !important;
        transform: translateX(-50%) !important;
        flex-direction: row !important; /* Horizontal au lieu de vertical */
        max-height: none !important;
        max-width: calc(100vw - 40px);
        overflow-x: auto;
        overflow-y: hidden;
        padding: 10px !important;
        background: rgba(0, 0, 0, 0.7);
        backdrop-filter: blur(10px);
        border-radius: 12px;
        gap: 8px;
        z-index: 2002;
    }
    
    .lightbox-thumbnail,
    .lightbox-thumbnail-video {
        width: 60px;
        height: 60px;
        flex-shrink: 0;
    }
    
    /* Masquer les flèches sur mobile (navigation au doigt) */
    .lightbox-nav,
    body[data-theme="opaj"] .lightbox-nav {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
    }
}

/* Desktop : masquer le bandeau mobile */
@media (min-width: 769px) {
    .lightbox-mobile-header {
        display: none !important;
    }
    
    .lightbox-close {
        display: flex !important;
    }
}

/* ============================================
   INFORMATIONS PRODUIT
   ============================================ */

.product-details-sticky {
    position: sticky;
    top: 160px;
}

.product-info {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.product-header--no-price {
    margin-bottom: 5px;
}

.product-header--no-price .product-ref {
    margin-bottom: 8px;
}

.product-header--no-price + .product-description {
    margin-top: 5px;
}

.product-title {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 15px;
    font-family: var(--font-family);
    color: var(--primary);
    line-height: 1.2;
}

.product-ref {
    font-size: 10px;
    color: #999;
    text-transform: uppercase;
    margin-bottom: 20px;
    letter-spacing: 1px;
    font-family: var(--font-family);
}

.product-price {
    font-size: 32px;
    margin-bottom: 40px;
    font-weight: 600;
    font-family: var(--font-family);
    color: var(--primary);
}

.product-price.sold {
    color: var(--gray-text);
    text-decoration: line-through;
}

.product-description {
    font-size: 14px;
    color: var(--gray-text);
    line-height: 1.6;
    margin: var(--spacing-lg) 0;
    font-family: var(--font-family);
}

.product-details {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    margin: var(--spacing-lg) 0;
    padding: var(--spacing-lg);
    background: var(--gray-bg);
    border-radius: 4px;
}

.detail-item {
    display: flex;
    justify-content: space-between;
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--gray-border);
}

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

.detail-label {
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 11px;
    color: var(--gray-text);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.detail-value {
    font-family: var(--font-family);
    font-weight: 400;
    font-size: 14px;
    color: var(--primary);
}

.product-actions {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    margin-top: var(--spacing-xl);
}

.product-actions--no-main {
    margin-top: var(--spacing-md);
}

.purchase-row {
    display: flex;
    gap: 15px;
    margin-bottom: 40px;
}

.qty-selector {
    display: flex;
    border: 1px solid var(--gray-border);
    height: 55px;
}

.qty-selector button {
    width: 45px;
    border: none;
    background: none;
    cursor: pointer;
    font-size: 18px;
    font-family: var(--font-family);
}

.qty-selector input {
    width: 45px;
    border: none;
    text-align: center;
    font-family: var(--font-family);
    font-weight: 600;
}

.btn-primary,
.btn-add-cart,
.btn-add-to-cart {
    background: black;
    color: white;
    border: none;
    padding: 18px;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    flex-grow: 1;
    letter-spacing: 1px;
    font-family: var(--font-family);
    transition: all var(--transition);
}

.btn-primary:hover,
.btn-add-cart:hover,
.btn-add-to-cart:hover {
    background: #333;
    transform: translateY(-2px);
}

.btn-primary:disabled,
.btn-add-cart:disabled,
.btn-add-to-cart:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

.btn-share {
    font-family: var(--font-family);
    font-weight: 500;
    font-size: 14px;
    color: var(--primary);
    background: transparent;
    border: 1px solid var(--gray-border);
    padding: 18px;
    cursor: pointer;
    transition: all var(--transition);
    text-transform: uppercase;
    letter-spacing: 1px;
    width: 100%;
}

.btn-share:hover {
    background: var(--gray-bg);
    border-color: var(--primary);
}

.badge-unique {
    display: inline-block;
    background: var(--primary);
    color: white;
    padding: 4px 12px;
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 4px;
    margin: var(--spacing-md) 0;
}

.product-external-stock-notice {
    background: #17a2b8;
    color: white;
    padding: var(--spacing-md);
    border-radius: 4px;
    font-size: 14px;
    margin: var(--spacing-md) 0 var(--spacing-sm) 0;
    font-family: var(--font-family);
}

.product-external-stock-notice + .product-actions {
    margin-top: var(--spacing-sm);
}

.accordion {
    border-top: 1px solid var(--gray-border);
    margin-top: 40px;
}

.accordion details {
    border-bottom: 1px solid var(--gray-border);
    padding: 20px 0;
}

.accordion summary {
    list-style: none;
    display: flex;
    justify-content: space-between;
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    font-family: var(--font-family);
}

.accordion .content {
    padding-top: 15px;
    font-size: 14px;
    color: var(--gray-text);
    line-height: 1.6;
    font-family: var(--font-family);
}

.option-selector {
    margin-bottom: 30px;
}

.option-selector label {
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 700;
    display: block;
    margin-bottom: 15px;
    font-family: var(--font-family);
}

.option-selector label span {
    font-weight: 400;
    text-transform: none;
}

.size-swatches {
    display: flex;
    gap: 10px;
    margin-bottom: 30px;
}

.swatch {
    width: 60px;
    height: 50px;
    border: 1px solid var(--gray-border);
    background: white;
    cursor: pointer;
    font-family: var(--font-family);
    font-weight: 600;
    transition: all var(--transition);
}

.swatch.active {
    border-color: black;
    background: #f0f0f0;
}

.swatch:hover {
    border-color: var(--primary);
    background: var(--gray-bg);
}

.guarantees {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-md);              /* petit espace entre les items */
    margin-top: var(--spacing-lg);       /* espace haut/bas léger mais équilibré */
    margin-bottom: var(--spacing-lg);
    padding-top: var(--spacing-md);
    padding-bottom: var(--spacing-md);
    border-top: 1px solid var(--gray-border);
}

.guarantee-item {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.guarantee-title {
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 16px;
    color: var(--primary);
    margin: 0;
}

.guarantee-text {
    font-family: var(--font-family);
    font-weight: 400;
    font-size: 14px;
    color: var(--gray-text);
    line-height: 1.6;
    margin: 0;
}

/* ============================================
   PRODUITS SIMILAIRES
   ============================================ */

.related-products-section {
    /* On ne s'en sert plus pour tricher sur la marge des garanties */
    margin-top: 0;                      /* pas de "fausse" marge sous .guarantees */
    margin-bottom: 0;                   /* Supprimé le padding en bas */
    padding-top: var(--spacing-xl);     /* espace interne équilibré */
    padding-bottom: 0;                  /* Pas de padding en bas */
    border-top: 1px solid var(--gray-border);
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: 40px;
    padding-right: 40px;
}

.related-products-title {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 24px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: var(--spacing-2xl);
    margin-top: 0;
    padding-top: 0;
    text-align: center;
    color: var(--primary);
}

.related-products-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    width: 100%;
    margin: 0 auto 0 auto !important; /* Supprimé le margin-bottom */
}

.related-product-item {
    background: white;
    border: 1px solid var(--gray-border);
    transition: all var(--transition);
    overflow: hidden;
}

.related-product-item:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    transform: translateY(-4px);
    border-color: var(--primary);
}

.related-product-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.related-product-image-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 100%;
    overflow: hidden;
    background: var(--gray-bg);
}

.related-product-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition);
}

.related-product-item:hover .related-product-image {
    transform: scale(1.05);
}

.related-product-sold-badge {
    position: absolute;
    top: var(--spacing-sm);
    right: var(--spacing-sm);
    background: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 4px 8px;
    font-family: var(--font-family);
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    z-index: 2;
    border-radius: 4px;
}

.related-product-info {
    padding: 15px;
}

.related-product-name {
    font-family: var(--font-family);
    font-weight: 500;
    font-size: 14px;
    margin-bottom: 8px;
    color: var(--primary);
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.related-product-ref {
    font-family: var(--font-family);
    font-size: 11px;
    color: var(--gray-text);
    margin-bottom: var(--spacing-md);
}

.related-product-price {
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 16px;
    color: var(--primary);
    margin: 0;
}

/* ============================================
   RESPONSIVE PAGE PRODUIT
   ============================================ */

@media (max-width: 1024px) {
    .product-container {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    
    .product-gallery {
        position: static;
    }
    
    .product-details-sticky {
        position: static;
    }
    
    .guarantees {
        grid-template-columns: 1fr;
    }
    
    .related-products-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .product-page {
        padding: 20px 20px 40px;
    }
    
    .product-title {
        font-size: 24px;
    }
    
    .product-price {
        font-size: 26px;
    }
    
    .image-controls {
        opacity: 1;
        top: 10px;
        right: 10px;
        gap: 8px;
    }
    
    .image-control-btn {
        width: 40px;
        height: 40px;
    }
    
    .image-control-btn svg {
        width: 18px;
        height: 18px;
    }
    
    .gallery-nav,
    body[data-theme="opaj"] .gallery-nav {
        opacity: 1 !important;
        pointer-events: all !important;
        width: 40px !important;
        height: 40px !important;
        display: flex !important;
        visibility: visible !important;
        background: rgba(0, 0, 0, 0.9) !important;
    }
    
    .gallery-nav svg,
    body[data-theme="opaj"] .gallery-nav svg {
        width: 20px !important;
        height: 20px !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        stroke: #fff !important;
    }
    
    .gallery-nav svg path,
    body[data-theme="opaj"] .gallery-nav svg path {
        stroke: #fff !important;
        stroke-width: 3px !important;
        fill: none !important;
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    .related-products-section {
        padding-left: 20px;
        padding-right: 20px;
        margin-bottom: 0; /* Supprimé le padding en bas sur mobile */
        padding-bottom: 0;
    }
    
    .related-products-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-bottom: 0 !important; /* Supprimé le margin-bottom */
    }
    
    .related-products-title {
        font-size: 18px;
        margin-bottom: var(--spacing-xl);
    }
    
    .related-product-info {
        padding: 12px;
    }
    
    .purchase-row {
        flex-direction: column;
    }
    
    .qty-selector {
        width: 100%;
    }
}

/* ============================================
   AUTRES PAGES (Panier, Checkout, etc.)
   ============================================ */

.cart-page,
.checkout-page {
    padding: 100px 40px 80px;
    width: 100%;
    max-width: 1480px; /* Même largeur que index.php */
    margin: 0 auto; /* Centrer le contenu */
    box-sizing: border-box;
    overflow-x: hidden;
}

.cart-container,
.checkout-container {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 60px;
    max-width: 100%; /* S'assurer que le conteneur ne dépasse pas */
}

.cart-items {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xl);
}

.cart-item,
.cart-item-full {
    background: white;
    border: 1px solid var(--gray-border);
    padding: var(--spacing-xl);
    border-radius: 4px;
    display: flex;
    gap: var(--spacing-xl);
    transition: all var(--transition);
}

.cart-item:hover,
.cart-item-full:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    border-color: var(--primary);
}

.cart-item-image {
    width: 150px;
    height: 150px;
    flex-shrink: 0;
    overflow: hidden;
    background: var(--gray-bg);
    border-radius: 4px;
}

.cart-item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cart-item-details,
.cart-item-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.cart-item-name {
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 16px;
    color: var(--primary);
    line-height: 1.3;
}

.cart-item-name a {
    color: var(--primary);
    text-decoration: none;
    transition: color var(--transition);
}

.cart-item-name a:hover {
    color: var(--gray-text);
}

.cart-item-ref {
    font-family: var(--font-family);
    font-weight: 400;
    font-size: 11px;
    color: var(--gray-text);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.cart-item-price {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 18px;
    color: var(--primary);
    margin-top: var(--spacing-sm);
}

.cart-item-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 15px;
}

.cart-item-actions {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 15px;
}

.quantity-btn {
    background: transparent;
    border: 1px solid var(--primary);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1.2rem;
    color: var(--primary);
    transition: all 0.2s;
    border-radius: 4px;
    font-family: var(--font-family);
    padding: 0;
    line-height: 1;
}

.quantity-btn:hover:not(.disabled) {
    background: var(--primary);
    color: white;
}

.quantity-btn.disabled {
    opacity: 0.3;
    cursor: not-allowed;
    background: #ccc;
    border-color: #ccc;
}

.quantity-input {
    width: 60px;
    text-align: center;
    border: none;
    padding: 8px;
    font-family: var(--font-family);
    font-size: 1rem;
    background: white;
    color: var(--primary);
    border-radius: 4px;
}

/* Boutons + et - dans le panier latéral (général - desktop et mobile) */
.cart-sidebar button[onclick*="updateCartQuantity"],
body[data-theme="opaj"] .cart-sidebar button[onclick*="updateCartQuantity"],
.cart-sidebar .cart-qty-btn,
body[data-theme="opaj"] .cart-sidebar .cart-qty-btn {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    border: 1px solid var(--ink) !important;
    background: transparent !important;
    color: var(--ink) !important;
    cursor: pointer !important;
    padding: 0 !important;
    font-size: 16px !important;
    line-height: 1 !important;
    font-family: monospace !important;
    flex-shrink: 0 !important;
    box-sizing: border-box !important;
}

.cart-sidebar button[onclick*="updateCartQuantity"]:hover:not(:disabled),
body[data-theme="opaj"] .cart-sidebar button[onclick*="updateCartQuantity"]:hover:not(:disabled),
.cart-sidebar .cart-qty-btn:hover:not(:disabled),
body[data-theme="opaj"] .cart-sidebar .cart-qty-btn:hover:not(:disabled) {
    background: var(--ink) !important;
    color: white !important;
}

.cart-sidebar button[onclick*="updateCartQuantity"]:disabled,
body[data-theme="opaj"] .cart-sidebar button[onclick*="updateCartQuantity"]:disabled,
.cart-sidebar .cart-qty-btn:disabled,
body[data-theme="opaj"] .cart-sidebar .cart-qty-btn:disabled {
    opacity: 0.3 !important;
    cursor: not-allowed !important;
}

.item-total {
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 1.3rem;
    margin-left: auto;
    color: var(--primary);
}

.cart-item-remove {
    background: transparent;
    border: none;
    color: #999;
    cursor: pointer;
    font-size: 1.2rem;
    padding: 5px;
    transition: color 0.2s;
    width: auto;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cart-item-remove:hover {
    color: var(--primary);
}

.cart-summary {
    background: var(--gray-bg);
    padding: var(--spacing-xl);
    border-radius: 4px;
    border: 1px solid var(--gray-border);
    height: fit-content;
    position: sticky;
    top: 160px;
}

.cart-summary-title {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 20px;
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--primary);
}

.cart-summary-row {
    display: flex;
    justify-content: space-between;
    padding: var(--spacing-md) 0;
    border-bottom: 1px solid var(--gray-border);
    font-size: 14px;
    font-family: var(--font-family);
}

.cart-summary-row:last-of-type,
.summary-row.total {
    border-bottom: none;
    font-weight: 700;
    font-size: 18px;
    padding-top: var(--spacing-md);
    margin-top: var(--spacing-md);
    margin-bottom: 15px; /* Espace entre le total et le bouton */
    border-top: 2px solid var(--gray-border);
}

.btn-checkout,
.checkout-btn {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: white;
    background: var(--primary);
    border: none;
    padding: 18px;
    cursor: pointer;
    transition: all var(--transition);
    width: 100%;
    margin-top: 35px; /* Plus d'espace entre le total et le bouton */
}

.btn-checkout:hover {
    background: #333;
    transform: translateY(-2px);
}

/* Styles pour le résumé des articles dans checkout */
.cart-items-summary,
body[data-theme="opaj"] .cart-items-summary {
    margin-bottom: 20px;
}

.cart-item-summary,
body[data-theme="opaj"] .cart-item-summary {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    padding: 15px 0 !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
}

.cart-item-summary:last-child,
body[data-theme="opaj"] .cart-item-summary:last-child {
    border-bottom: none !important;
}

.cart-item-summary img,
body[data-theme="opaj"] .cart-item-summary img {
    width: 60px !important;
    height: 60px !important;
    max-width: 60px !important;
    max-height: 60px !important;
    object-fit: cover !important;
    flex-shrink: 0 !important;
    border-radius: 4px !important;
    display: block !important;
}

.cart-item-summary-info,
body[data-theme="opaj"] .cart-item-summary-info {
    flex: 1 !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

.cart-item-summary-name,
body[data-theme="opaj"] .cart-item-summary-name {
    font-weight: 600 !important;
    margin-bottom: 5px !important;
    font-family: var(--font-family) !important;
    font-size: 14px !important;
    color: var(--primary) !important;
}

.cart-item-summary-ref,
body[data-theme="opaj"] .cart-item-summary-ref {
    font-size: 0.85rem !important;
    color: var(--gray-text) !important;
    font-family: var(--font-family) !important;
}

.cart-item-summary-price,
body[data-theme="opaj"] .cart-item-summary-price {
    font-weight: 700 !important;
    margin-top: 5px !important;
    font-family: var(--font-family) !important;
    font-size: 16px !important;
    color: var(--primary) !important;
}

@media (max-width: 968px) {
    .cart-container,
    .checkout-container {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .cart-summary {
        position: static;
    }
}

/* Responsive mobile pour checkout */
@media (max-width: 768px) {
    .checkout-page,
    body[data-theme="opaj"] .checkout-page {
        padding: 20px 20px 40px 20px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
    
    .checkout-container,
    body[data-theme="opaj"] .checkout-container {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
        padding: 0 !important;
        margin: 0 !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }
    
    .checkout-form,
    body[data-theme="opaj"] .checkout-form {
        padding: 20px 15px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
    
    .checkout-summary,
    body[data-theme="opaj"] .checkout-summary {
        position: static !important;
        padding: 20px 15px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .form-row,
    body[data-theme="opaj"] .form-row {
        grid-template-columns: 1fr !important;
        gap: 15px !important;
    }
    
    .form-group,
    body[data-theme="opaj"] .form-group {
        width: 100% !important;
        max-width: 100% !important;
    }
    
    .form-group input,
    .form-group select,
    .form-group textarea,
    body[data-theme="opaj"] .form-group input,
    body[data-theme="opaj"] .form-group select,
    body[data-theme="opaj"] .form-group textarea {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding: 12px !important;
        font-size: 16px !important; /* Évite le zoom sur iOS */
    }
    
    .promo-code-input,
    body[data-theme="opaj"] .promo-code-input {
        flex-direction: column !important;
        gap: 10px !important;
    }
    
    .promo-code-input input,
    body[data-theme="opaj"] .promo-code-input input {
        width: 100% !important;
    }
    
    .promo-code-input button,
    body[data-theme="opaj"] .promo-code-input button {
        width: 100% !important;
    }
    
    .cart-items-summary,
    body[data-theme="opaj"] .cart-items-summary {
        width: 100% !important;
        max-width: 100% !important;
    }
    
    .cart-item-summary,
    body[data-theme="opaj"] .cart-item-summary {
        display: flex !important;
        align-items: center !important;
        flex-wrap: wrap !important;
        gap: 15px !important;
        padding: 15px 0 !important;
    }
    
    .cart-item-summary img,
    body[data-theme="opaj"] .cart-item-summary img {
        width: 60px !important;
        height: 60px !important;
        max-width: 60px !important;
        max-height: 60px !important;
        object-fit: cover !important;
        flex-shrink: 0 !important;
        border-radius: 4px !important;
        display: block !important;
    }
    
    .cart-item-summary-info,
    body[data-theme="opaj"] .cart-item-summary-info {
        min-width: 0 !important;
        flex: 1 !important;
        display: flex !important;
        flex-direction: column !important;
    }
    
    .cart-item-summary-name,
    body[data-theme="opaj"] .cart-item-summary-name {
        font-size: 0.9rem !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    .summary-item,
    body[data-theme="opaj"] .summary-item {
        flex-wrap: wrap !important;
        gap: 5px !important;
        word-break: break-word !important;
        padding: 10px 0 !important;
    }
    
    .checkout-btn,
    body[data-theme="opaj"] .checkout-btn {
        width: 100% !important;
        padding: 15px !important;
        font-size: 0.9rem !important;
        margin-top: 25px !important;
    }
    
    .page-title,
    body[data-theme="opaj"] .page-title {
        font-size: 1.5rem !important;
        margin-bottom: 20px !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    .back-link,
    body[data-theme="opaj"] .back-link {
        padding: 10px 18px !important;
        font-size: 12px !important;
        margin-bottom: 15px !important;
    }
}

/* Responsive mobile pour le panier */
@media (max-width: 768px) {
    /* Règles globales pour éviter les débordements sur iPhone */
    .cart-page *,
    body[data-theme="opaj"] .cart-page * {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    /* Forcer html et body à ne jamais dépasser */
    html,
    body {
        max-width: 100vw !important;
        width: 100vw !important;
        overflow-x: hidden !important;
        position: relative !important;
    }
    
    /* Forcer html et body à ne jamais dépasser sur mobile */
    html,
    body {
        max-width: 100vw !important;
        width: 100vw !important;
        overflow-x: hidden !important;
        position: relative !important;
    }
    
    .cart-page,
    body[data-theme="opaj"] .cart-page {
        padding: 20px 10px 40px 10px !important;
        width: 100vw !important;
        max-width: 100vw !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        position: relative !important;
        margin: 0 !important;
        left: 0 !important;
        right: 0 !important;
    }
    
    /* Forcer le body et html à ne jamais dépasser */
    body.cart-page-open,
    html.cart-page-open {
        overflow-x: hidden !important;
        max-width: 100vw !important;
        width: 100vw !important;
    }
    
    .cart-container,
    body[data-theme="opaj"] .cart-container {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }
    
    .cart-item-full,
    body[data-theme="opaj"] .cart-item-full {
        flex-direction: row !important;
        padding: 15px !important;
        gap: 15px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        align-items: flex-start !important;
    }
    
    .cart-item-image,
    body[data-theme="opaj"] .cart-item-image {
        width: 80px !important;
        max-width: 80px !important;
        height: 80px !important;
        min-height: 80px !important;
        flex-shrink: 0 !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
        border-radius: 4px !important;
        margin: 0 !important;
    }
    
    .cart-item-image img,
    body[data-theme="opaj"] .cart-item-image img {
        width: 100% !important;
        max-width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
        border-radius: 4px !important;
    }
    
    .cart-item-details,
    body[data-theme="opaj"] .cart-item-details {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        gap: 10px !important;
        flex: 1 1 auto !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }
    
    .cart-item-header,
    body[data-theme="opaj"] .cart-item-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        position: relative !important;
        overflow-x: hidden !important;
    }
    
    .cart-item-name,
    body[data-theme="opaj"] .cart-item-name {
        font-size: 1rem !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        hyphens: auto !important;
    }
    
    .cart-item-name a,
    body[data-theme="opaj"] .cart-item-name a {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        max-width: 100% !important;
        display: inline-block !important;
    }
    
    .cart-item-ref,
    body[data-theme="opaj"] .cart-item-ref {
        font-size: 0.75rem !important;
        word-wrap: break-word !important;
    }
    
    .cart-item-price,
    body[data-theme="opaj"] .cart-item-price {
        font-size: 1rem !important;
        margin-top: 5px !important;
    }
    
    .cart-item-actions,
    body[data-theme="opaj"] .cart-item-actions {
        flex-wrap: wrap !important;
        gap: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        align-items: center !important;
        justify-content: flex-start !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
    
    .quantity-btn,
    body[data-theme="opaj"] .quantity-btn {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
        font-size: 1rem !important;
        flex-shrink: 0 !important;
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        background: transparent !important;
        border: 1px solid var(--primary) !important;
        color: var(--primary) !important;
        cursor: pointer !important;
        align-items: center !important;
        justify-content: center !important;
        box-sizing: border-box !important;
        padding: 0 !important;
        border-radius: 4px !important;
    }
    
    .quantity-btn:hover:not(.disabled),
    body[data-theme="opaj"] .quantity-btn:hover:not(.disabled) {
        background: var(--primary) !important;
        color: white !important;
    }
    
    .quantity-btn.disabled,
    body[data-theme="opaj"] .quantity-btn.disabled {
        opacity: 0.3 !important;
        cursor: not-allowed !important;
        background: #ccc !important;
        border-color: #ccc !important;
    }
    
    .quantity-input,
    body[data-theme="opaj"] .quantity-input {
        width: 50px !important;
        min-width: 50px !important;
        max-width: 60px !important;
        padding: 8px 4px !important;
        font-size: 0.9rem !important;
        text-align: center !important;
        box-sizing: border-box !important;
        flex-shrink: 0 !important;
        border-radius: 4px !important;
        border: none !important;
    }
    
    .item-total,
    body[data-theme="opaj"] .item-total {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
    }
    
    .cart-item-remove,
    body[data-theme="opaj"] .cart-item-remove {
        position: absolute !important;
        top: 15px !important;
        right: 15px !important;
        width: 32px !important;
        height: 32px !important;
        font-size: 1.5rem !important;
        z-index: 10 !important;
    }
    
    .cart-summary,
    body[data-theme="opaj"] .cart-summary {
        position: static !important;
        padding: 20px 15px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
    
    .cart-summary *,
    body[data-theme="opaj"] .cart-summary * {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .summary-row,
    .cart-summary-row,
    body[data-theme="opaj"] .summary-row,
    body[data-theme="opaj"] .cart-summary-row {
        word-break: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    .checkout-btn,
    body[data-theme="opaj"] .checkout-btn {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .cart-summary *,
    body[data-theme="opaj"] .cart-summary * {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .summary-title,
    .cart-summary-title,
    body[data-theme="opaj"] .summary-title,
    body[data-theme="opaj"] .cart-summary-title {
        font-size: 1.2rem !important;
        margin-bottom: 20px !important;
        padding-bottom: 15px !important;
    }
    
    .summary-row,
    .cart-summary-row,
    body[data-theme="opaj"] .summary-row,
    body[data-theme="opaj"] .cart-summary-row {
        font-size: 0.9rem !important;
        padding: 10px 0 !important;
        flex-wrap: wrap !important;
        gap: 5px !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .summary-row span,
    .cart-summary-row span,
    body[data-theme="opaj"] .summary-row span,
    body[data-theme="opaj"] .cart-summary-row span {
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        max-width: 100% !important;
    }
    
    .summary-row.total,
    body[data-theme="opaj"] .summary-row.total {
        font-size: 1.1rem !important;
        margin-top: 15px !important;
        padding-top: 15px !important;
        margin-bottom: 10px !important; /* Ajouter de l'espace en bas */
    }
    
    .checkout-btn,
    body[data-theme="opaj"] .checkout-btn {
        width: 100% !important;
        max-width: 100% !important;
        padding: 15px !important;
        font-size: 0.9rem !important;
        margin-top: 25px !important; /* Plus d'espace entre le total et le bouton */
        box-sizing: border-box !important;
    }
    
    /* Règles supplémentaires pour éviter les débordements sur iPhone */
    .cart-page *,
    body[data-theme="opaj"] .cart-page * {
        max-width: 100% !important;
    }
    
    .cart-items,
    body[data-theme="opaj"] .cart-items {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }
    
    .back-link,
    body[data-theme="opaj"] .back-link {
        max-width: 100% !important;
        word-wrap: break-word !important;
    }
    
    .page-title,
    body[data-theme="opaj"] .page-title {
        max-width: 100% !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    .cart-empty,
    body[data-theme="opaj"] .cart-empty {
        padding: 60px 20px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .cart-empty-title,
    body[data-theme="opaj"] .cart-empty-title {
        font-size: 1.5rem !important;
        margin-bottom: 15px !important;
    }
    
    .cart-empty-text,
    body[data-theme="opaj"] .cart-empty-text {
        font-size: 0.9rem !important;
        margin-bottom: 20px !important;
    }
    
    .btn-continue,
    body[data-theme="opaj"] .btn-continue {
        padding: 12px 30px !important;
        font-size: 0.85rem !important;
    }
    
    .page-title,
    body[data-theme="opaj"] .page-title {
        font-size: 1.5rem !important;
        margin-bottom: 20px !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    .back-link,
    body[data-theme="opaj"] .back-link {
        padding: 10px 18px !important;
        font-size: 12px !important;
        margin-bottom: 20px !important;
        min-width: auto !important;
        gap: 8px !important;
    }
    
    .back-link:hover,
    body[data-theme="opaj"] .back-link:hover {
        transform: translateX(-1px) !important;
    }
}

/* Règles spécifiques pour iPhone et très petits écrans */
@media (max-width: 480px) {
    /* Règle globale ultra-stricte pour iPhone */
    body[data-theme="opaj"] .cart-page,
    .cart-page {
        padding: 20px 8px 40px 8px !important;
        width: 100vw !important;
        max-width: 100vw !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        position: relative !important;
        margin: 0 !important;
        left: 0 !important;
        right: 0 !important;
    }
    
    /* Forcer tous les enfants à respecter la largeur */
    body[data-theme="opaj"] .cart-page *,
    .cart-page * {
        max-width: 100% !important;
        box-sizing: border-box !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    /* Forcer html et body à ne jamais dépasser sur iPhone */
    html,
    body {
        max-width: 100vw !important;
        width: 100vw !important;
        overflow-x: hidden !important;
    }
    
    body[data-theme="opaj"] .cart-container,
    .cart-container {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        overflow-x: hidden !important;
        box-sizing: border-box !important;
    }
    
    /* Tous les conteneurs flex doivent respecter la largeur */
    body[data-theme="opaj"] .cart-item-full,
    .cart-item-full,
    body[data-theme="opaj"] .cart-item-header,
    .cart-item-header,
    body[data-theme="opaj"] .cart-item-actions,
    .cart-item-actions {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
    
    .cart-item-full,
    body[data-theme="opaj"] .cart-item-full {
        flex-direction: row !important;
        align-items: flex-start !important;
        padding: 12px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        gap: 12px !important;
    }
    
    .cart-summary,
    body[data-theme="opaj"] .cart-summary {
        padding: 15px 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
    
    .cart-item-image,
    body[data-theme="opaj"] .cart-item-image {
        height: 70px !important;
        min-height: 70px !important;
        width: 70px !important;
        max-width: 70px !important;
        min-width: 70px !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
        border-radius: 4px !important;
        margin: 0 !important;
    }
    
    .cart-item-image img,
    body[data-theme="opaj"] .cart-item-image img {
        width: 100% !important;
        max-width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block !important;
        border-radius: 4px !important;
    }
    
    .quantity-btn,
    body[data-theme="opaj"] .quantity-btn {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        max-width: 32px !important;
        font-size: 0.9rem !important;
        flex-shrink: 0 !important;
        box-sizing: border-box !important;
        padding: 0 !important;
        border-radius: 4px !important;
    }
    
    .quantity-input,
    body[data-theme="opaj"] .quantity-input {
        width: 45px !important;
        min-width: 45px !important;
        max-width: 45px !important;
        font-size: 0.85rem !important;
        box-sizing: border-box !important;
        flex-shrink: 0 !important;
        border-radius: 4px !important;
        border: none !important;
    }
    
    /* Tous les éléments de texte doivent casser les mots */
    .cart-item-name,
    .cart-item-name a,
    .cart-item-ref,
    .item-total,
    .summary-row,
    .summary-row span,
    .cart-summary-row,
    .cart-summary-row span,
    body[data-theme="opaj"] .cart-item-name,
    body[data-theme="opaj"] .cart-item-name a,
    body[data-theme="opaj"] .cart-item-ref,
    body[data-theme="opaj"] .item-total,
    body[data-theme="opaj"] .summary-row,
    body[data-theme="opaj"] .summary-row span,
    body[data-theme="opaj"] .cart-summary-row,
    body[data-theme="opaj"] .cart-summary-row span {
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        hyphens: auto !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    /* Tous les conteneurs doivent respecter la largeur */
    .cart-items,
    .cart-item,
    .cart-item-details,
    .cart-item-header,
    .cart-item-actions,
    body[data-theme="opaj"] .cart-items,
    body[data-theme="opaj"] .cart-item,
    body[data-theme="opaj"] .cart-item-details,
    body[data-theme="opaj"] .cart-item-header,
    body[data-theme="opaj"] .cart-item-actions {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
}

/* ============================================
   FOOTER
   ============================================ */

.main-footer.dark {
    background: #000;
    color: #fff;
    /* marges hautes et basses équilibrées */
    padding: 60px 0 60px;
    margin-top: 100px;
}

.footer-grid,
.footer-grid.container-wide {
    display: grid !important;
    grid-template-columns: 1.5fr 1fr 1fr !important;
    gap: 80px !important;
    max-width: var(--max-width) !important;
    margin: 0 auto !important;
    padding: 0 40px !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body[data-theme="opaj"] .footer-grid,
html[data-theme="opaj"] .footer-grid,
body[data-theme="opaj"] .footer-grid.container-wide,
html[data-theme="opaj"] .footer-grid.container-wide {
    display: grid !important;
    grid-template-columns: 1.5fr 1fr 1fr !important;
    gap: 80px !important;
    max-width: var(--max-width) !important;
    margin: 0 auto !important;
    padding: 0 40px !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.footer-logo {
    font-size: 42px;
    letter-spacing: 10px;
    margin-bottom: 20px;
    font-weight: 700;
    font-family: var(--font-family);
}

.footer-logo-img {
    height: 50px;
    width: auto;
    margin-bottom: 20px;
    filter: brightness(0) invert(1);
    display: block;
}

.footer-info-text {
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 30px;
    opacity: 0.9;
    font-family: var(--font-family);
}

.footer-info-text p {
    margin: 0 0 0.5rem 0;
}

.exchange-rate {
    font-weight: 700;
    margin-top: 15px;
    font-family: var(--font-family);
}

.exchange-rate span {
    color: #888;
    font-weight: 400;
    font-size: 11px;
}

.footer-selectors {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.selector-group {
    display: flex;
    align-items: center;
    gap: 15px;
}

.selector-group label {
    font-size: 12px;
    width: 60px;
    font-family: var(--font-family);
}

.selector-group select {
    background: white;
    color: black;
    border: 1px solid #333;
    padding: 10px;
    width: 160px;
    font-family: var(--font-family);
    cursor: pointer;
}

/* Pour le thème OPAJ et les styles inline du footer - champ select blanc avec texte noir */
footer select,
.footer-selectors select,
.selector-group select,
#footer_currency,
#footer_language {
    background: white !important;
    color: black !important;
    border-color: #333 !important;
}

.selector-group select option {
    background: white;
    color: black;
    padding: 8px;
}

/* Pour le thème OPAJ et les styles inline du footer */
footer select option,
.footer-selectors select option,
#footer_currency option,
#footer_language option {
    background: white !important;
    color: black !important;
    padding: 8px !important;
}

.footer-col h4 {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 25px;
    font-family: var(--font-family);
    font-weight: 600;
}

.footer-links {
    list-style: none;
}

.footer-links li {
    margin-bottom: 12px;
}

.footer-links a {
    color: white;
    text-decoration: none;
    font-size: 13px;
    opacity: 0.7;
    transition: 0.3s;
    font-family: var(--font-family);
}

.footer-links a:hover {
    opacity: 1;
}

.newsletter-form-boxed {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    align-items: center; /* Aligner verticalement au centre */
}

.newsletter-form-boxed input {
    background: transparent;
    border: 1px solid #333;
    color: white;
    padding: 12px;
    flex-grow: 1;
    outline: none;
    font-family: var(--font-family);
    height: auto;
    line-height: 1.5;
}

.newsletter-form-boxed button {
    background: #1a1a1a;
    color: white;
    border: 1px solid #333;
    padding: 12px 20px; /* Padding vertical aligné avec l'input */
    font-weight: 700;
    cursor: pointer;
    text-transform: uppercase;
    font-size: 11px;
    font-family: var(--font-family);
    transition: all var(--transition);
    height: auto; /* Laisser la hauteur s'adapter */
    line-height: 1.5; /* Aligné avec l'input */
    white-space: nowrap; /* Empêcher le texte de se couper */
    flex-shrink: 0; /* Empêcher le bouton de rétrécir */
}

.newsletter-form-boxed button:hover {
    background: #333;
}

@media (max-width: 1024px) {
    .footer-grid,
    body[data-theme="opaj"] .footer-grid,
    html[data-theme="opaj"] .footer-grid,
    body[data-theme="opaj"] .footer-grid.container-wide,
    html[data-theme="opaj"] .footer-grid.container-wide {
        grid-template-columns: 1fr !important;
        gap: 40px !important;
        padding: 0 20px !important;
    }
}

@media (max-width: 768px) {
    .main-footer.dark {
        padding: 40px 0 40px !important;
        margin-top: 60px !important;
    }
    
    .footer-grid,
    body[data-theme="opaj"] .footer-grid,
    html[data-theme="opaj"] .footer-grid,
    body[data-theme="opaj"] .footer-grid.container-wide,
    html[data-theme="opaj"] .footer-grid.container-wide {
        grid-template-columns: 1fr !important;
        gap: 30px !important;
        padding: 0 20px !important;
    }
    
    .footer-col,
    .footer-block {
        align-items: center !important;
        text-align: center !important;
    }
    
    .footer-logo-img {
        margin: 0 auto 20px auto !important;
    }
    
    .footer-info-text {
        text-align: center;
        margin-bottom: 25px;
    }
    
    .footer-selectors {
        align-items: center;
        width: 100%;
    }
    
    .selector-group {
        justify-content: center;
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
    }
    
    .selector-group select {
        flex: 1;
        max-width: 200px;
    }
    
    .footer-links {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
    }
    
    .footer-links li {
        margin-bottom: 0;
    }
    
    .newsletter-form-boxed {
        flex-direction: column;
        width: 100%;
        max-width: 300px;
        margin: 20px auto 0;
    }
    
    .newsletter-form-boxed input,
    .newsletter-form-boxed button {
        width: 100%;
    }
}

/* ============================================
   FORMULAIRES & BOUTONS GÉNÉRAUX
   ============================================ */

input[type="text"],
input[type="email"],
input[type="password"],
textarea,
select {
    font-family: var(--font-family);
    font-size: 14px;
    color: var(--primary);
    background: white;
    border: 1px solid var(--gray-border);
    padding: 12px;
    border-radius: 4px;
    transition: all var(--transition);
    width: 100%;
}

input:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
}

button,
.btn {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 14px;
    color: white;
    background: var(--primary);
    border: 2px solid var(--primary);
    padding: 12px 24px;
    cursor: pointer;
    transition: all var(--transition);
    border-radius: 4px;
    text-decoration: none;
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 1px;
}

button:hover,
.btn:hover {
    background: #333;
    border-color: #333;
    transform: translateY(-2px);
}

/* ============================================
   PAGE 404
   ============================================ */

.error-404-page {
    padding: 120px 40px 60px;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.error-404-title {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 48px;
    margin-bottom: var(--spacing-lg);
    color: var(--primary);
}

.error-404-message {
    font-family: var(--font-family);
    font-size: 18px;
    margin-bottom: var(--spacing-xl);
    color: var(--gray-text);
}

.error-404-link {
    display: inline-block;
    padding: 18px 36px;
    background: var(--primary);
    color: white;
    text-decoration: none;
    font-family: var(--font-family);
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: 4px;
    transition: all var(--transition);
    letter-spacing: 1px;
}

.error-404-link:hover {
    background: #333;
    transform: translateY(-2px);
}

/* ============================================
   PAGES LÉGALES & FORMULAIRES UNIFIÉS
   Style harmonisé avec la charte graphique
   ============================================ */

/* Pages légales (mentions-legales, CGV, CGU, cookies, politique-confidentialite) */
.legal-page,
body[data-theme="opaj"] .legal-page,
html[data-theme="opaj"] .legal-page {
    padding: 100px 40px 60px;
    max-width: 900px;
    margin: 0 auto;
    font-family: var(--font-family);
}

.legal-page h1,
body[data-theme="opaj"] .legal-page h1,
html[data-theme="opaj"] .legal-page h1 {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 2.5rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 40px;
    color: var(--primary);
}

.legal-page h2,
body[data-theme="opaj"] .legal-page h2,
html[data-theme="opaj"] .legal-page h2 {
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 40px;
    margin-bottom: 20px;
    color: var(--primary);
}

.legal-page p,
body[data-theme="opaj"] .legal-page p,
html[data-theme="opaj"] .legal-page p {
    font-family: var(--font-family);
    font-size: 0.95rem;
    line-height: 1.8;
    margin-bottom: 20px;
    color: var(--primary);
}

.legal-page ul,
body[data-theme="opaj"] .legal-page ul,
html[data-theme="opaj"] .legal-page ul {
    margin-left: 30px;
    margin-bottom: 20px;
}

.legal-page li,
body[data-theme="opaj"] .legal-page li,
html[data-theme="opaj"] .legal-page li {
    font-family: var(--font-family);
    font-size: 0.95rem;
    line-height: 1.8;
    margin-bottom: 10px;
    color: var(--primary);
}

.legal-page a,
body[data-theme="opaj"] .legal-page a,
html[data-theme="opaj"] .legal-page a {
    color: var(--primary);
    text-decoration: underline;
    transition: opacity 0.3s;
}

.legal-page a:hover,
body[data-theme="opaj"] .legal-page a:hover,
html[data-theme="opaj"] .legal-page a:hover {
    opacity: 0.7;
}

/* Conteneur de contenu pour pages légales */
.legal-page > div[style*="background: white"],
body[data-theme="opaj"] .legal-page > div[style*="background: white"],
html[data-theme="opaj"] .legal-page > div[style*="background: white"] {
    background: white !important;
    padding: 40px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
    border-radius: 0 !important;
    line-height: 1.8 !important;
}

/* Page login */
.login-page,
body[data-theme="opaj"] .login-page,
html[data-theme="opaj"] .login-page {
    padding: 100px 40px 60px;
    max-width: 500px;
    margin: 0 auto;
    min-height: 80vh;
    font-family: var(--font-family);
}

.login-form,
body[data-theme="opaj"] .login-form,
html[data-theme="opaj"] .login-form {
    background: white;
    padding: 40px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    border-radius: 0;
}

.page-title,
body[data-theme="opaj"] .page-title,
html[data-theme="opaj"] .page-title {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 2rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 30px;
    text-align: center;
    color: var(--primary);
}

.form-group,
body[data-theme="opaj"] .form-group,
html[data-theme="opaj"] .form-group {
    margin-bottom: 25px;
}

.form-group label,
body[data-theme="opaj"] .form-group label,
html[data-theme="opaj"] .form-group label {
    display: block;
    font-family: var(--font-family);
    font-size: 0.85rem;
    font-weight: 500;
    margin-bottom: 8px;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.form-group input,
.form-group select,
.form-group textarea,
body[data-theme="opaj"] .form-group input,
body[data-theme="opaj"] .form-group select,
body[data-theme="opaj"] .form-group textarea,
html[data-theme="opaj"] .form-group input,
html[data-theme="opaj"] .form-group select,
html[data-theme="opaj"] .form-group textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    font-family: var(--font-family);
    font-size: 0.9rem;
    background: white;
    color: var(--primary);
    transition: border-color 0.3s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
body[data-theme="opaj"] .form-group input:focus,
body[data-theme="opaj"] .form-group select:focus,
body[data-theme="opaj"] .form-group textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05);
}

.btn-submit,
body[data-theme="opaj"] .btn-submit,
html[data-theme="opaj"] .btn-submit {
    width: 100%;
    padding: 15px;
    background: var(--primary);
    color: white;
    border: 2px solid var(--primary);
    font-family: var(--font-family);
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.3s;
    margin-top: 10px;
    letter-spacing: 1px;
}

.btn-submit:hover,
body[data-theme="opaj"] .btn-submit:hover,
html[data-theme="opaj"] .btn-submit:hover {
    background: #333;
    border-color: #333;
    transform: translateY(-2px);
}

.tabs,
body[data-theme="opaj"] .tabs,
html[data-theme="opaj"] .tabs {
    display: flex;
    border-bottom: 2px solid rgba(0, 0, 0, 0.1);
    margin-bottom: 30px;
}

.tab-btn,
body[data-theme="opaj"] .tab-btn,
html[data-theme="opaj"] .tab-btn {
    flex: 1;
    padding: 15px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    font-family: var(--font-family);
    font-size: 0.9rem;
    font-weight: 500;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.3s;
    color: var(--primary);
    opacity: 0.6;
    margin-bottom: -2px;
    letter-spacing: 0.5px;
}

.tab-btn:hover,
body[data-theme="opaj"] .tab-btn:hover,
html[data-theme="opaj"] .tab-btn:hover {
    opacity: 1;
}

.tab-btn.active,
body[data-theme="opaj"] .tab-btn.active,
html[data-theme="opaj"] .tab-btn.active {
    opacity: 1;
    border-bottom-color: var(--primary);
    font-weight: 700;
}

.error-message,
body[data-theme="opaj"] .error-message,
html[data-theme="opaj"] .error-message {
    background: #f8d7da;
    color: #721c24;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 0;
    font-size: 0.9rem;
    font-family: var(--font-family);
}

.success-message,
body[data-theme="opaj"] .success-message,
html[data-theme="opaj"] .success-message {
    background: #d4edda;
    color: #155724;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 0;
    font-size: 0.9rem;
    font-family: var(--font-family);
}

.rgpd-checkbox,
body[data-theme="opaj"] .rgpd-checkbox,
html[data-theme="opaj"] .rgpd-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.rgpd-checkbox input[type="checkbox"],
body[data-theme="opaj"] .rgpd-checkbox input[type="checkbox"],
html[data-theme="opaj"] .rgpd-checkbox input[type="checkbox"] {
    width: auto;
    margin-top: 3px;
    flex-shrink: 0;
    cursor: pointer;
}

.rgpd-checkbox label,
body[data-theme="opaj"] .rgpd-checkbox label,
html[data-theme="opaj"] .rgpd-checkbox label {
    cursor: pointer;
    font-weight: normal;
    text-transform: none;
    font-size: 0.85rem;
    line-height: 1.5;
}

.rgpd-checkbox a,
body[data-theme="opaj"] .rgpd-checkbox a,
html[data-theme="opaj"] .rgpd-checkbox a {
    color: var(--primary);
    text-decoration: underline;
}

.rgpd-checkbox a:hover,
body[data-theme="opaj"] .rgpd-checkbox a:hover,
html[data-theme="opaj"] .rgpd-checkbox a:hover {
    opacity: 0.7;
}

/* Page mon-compte */
.account-page,
body[data-theme="opaj"] .account-page,
html[data-theme="opaj"] .account-page {
    padding: 100px 40px 60px;
    max-width: 1200px;
    margin: 0 auto;
    font-family: var(--font-family);
}

.page-header,
body[data-theme="opaj"] .page-header,
html[data-theme="opaj"] .page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--primary);
}

.account-page .page-title,
body[data-theme="opaj"] .account-page .page-title,
html[data-theme="opaj"] .account-page .page-title {
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 2.5rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0;
    padding: 0;
    border: none;
    color: var(--primary);
}

.logout-link,
body[data-theme="opaj"] .logout-link,
html[data-theme="opaj"] .logout-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--primary);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.7;
    transition: opacity 0.3s;
    padding: 8px 12px;
    border: 1px solid rgba(0, 0, 0, 0.2);
    font-family: var(--font-family);
}

.logout-link:hover,
body[data-theme="opaj"] .logout-link:hover,
html[data-theme="opaj"] .logout-link:hover {
    opacity: 1;
    border-color: var(--primary);
}

.account-section,
body[data-theme="opaj"] .account-section,
html[data-theme="opaj"] .account-section {
    background: white;
    padding: 40px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    margin-bottom: 30px;
    border-radius: 0;
}

.account-section h2,
body[data-theme="opaj"] .account-section h2,
html[data-theme="opaj"] .account-section h2 {
    font-family: var(--font-family);
    font-weight: 600;
    font-size: 1.5rem;
    text-transform: uppercase;
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--primary);
    color: var(--primary);
    letter-spacing: 0.5px;
}

.btn-edit,
.btn-action,
body[data-theme="opaj"] .btn-edit,
body[data-theme="opaj"] .btn-action,
html[data-theme="opaj"] .btn-edit,
html[data-theme="opaj"] .btn-action {
    display: inline-block;
    padding: 10px 20px;
    background: var(--primary);
    color: white;
    border: 2px solid var(--primary);
    font-family: var(--font-family);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.3s;
    margin-top: 10px;
    text-decoration: none;
    letter-spacing: 0.5px;
}

.btn-edit:hover,
.btn-action:hover,
body[data-theme="opaj"] .btn-edit:hover,
body[data-theme="opaj"] .btn-action:hover,
html[data-theme="opaj"] .btn-edit:hover,
html[data-theme="opaj"] .btn-action:hover {
    background: #333;
    border-color: #333;
    transform: translateY(-2px);
}

.btn-cancel,
.btn-secondary,
body[data-theme="opaj"] .btn-cancel,
body[data-theme="opaj"] .btn-secondary,
html[data-theme="opaj"] .btn-cancel,
html[data-theme="opaj"] .btn-secondary {
    display: inline-block;
    padding: 10px 20px;
    background: transparent;
    color: var(--primary);
    border: 2px solid var(--primary);
    font-family: var(--font-family);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    transition: all 0.3s;
    margin-top: 10px;
    margin-left: 10px;
    text-decoration: none;
    letter-spacing: 0.5px;
}

.btn-cancel:hover,
.btn-secondary:hover,
body[data-theme="opaj"] .btn-cancel:hover,
body[data-theme="opaj"] .btn-secondary:hover,
html[data-theme="opaj"] .btn-cancel:hover,
html[data-theme="opaj"] .btn-secondary:hover {
    background: var(--primary);
    color: white;
}

.message,
body[data-theme="opaj"] .message,
html[data-theme="opaj"] .message {
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 0;
    font-size: 0.9rem;
    font-family: var(--font-family);
}

.message-success,
body[data-theme="opaj"] .message-success,
html[data-theme="opaj"] .message-success {
    background: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
}

.message-error,
body[data-theme="opaj"] .message-error,
html[data-theme="opaj"] .message-error {
    background: #f8d7da;
    color: #721c24;
    border: 1px solid #f5c6cb;
}

/* Responsive mobile */
@media (max-width: 768px) {
    .legal-page,
    .login-page,
    .account-page,
    body[data-theme="opaj"] .legal-page,
    body[data-theme="opaj"] .login-page,
    body[data-theme="opaj"] .account-page {
        padding: 80px 20px 40px;
    }
    
    .legal-page h1,
    .account-page .page-title,
    body[data-theme="opaj"] .legal-page h1,
    body[data-theme="opaj"] .account-page .page-title {
        font-size: 2rem;
    }
    
    .page-header,
    body[data-theme="opaj"] .page-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }
    
    .logout-link,
    body[data-theme="opaj"] .logout-link {
        align-self: flex-end;
    }
    
    .account-section,
    .login-form,
    body[data-theme="opaj"] .account-section,
    body[data-theme="opaj"] .login-form {
        padding: 30px 20px;
    }
    
    .form-row,
    body[data-theme="opaj"] .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

/* Section préférences cookies */
.cookie-preferences-section,
body[data-theme="opaj"] .cookie-preferences-section,
html[data-theme="opaj"] .cookie-preferences-section {
    background: white !important;
    padding: 40px !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
    margin-bottom: 30px !important;
    line-height: 1.8 !important;
    border-radius: 0 !important;
}

.cookie-preferences-section label,
body[data-theme="opaj"] .cookie-preferences-section label,
html[data-theme="opaj"] .cookie-preferences-section label {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px;
    border: 2px solid var(--primary);
    cursor: pointer;
    margin-bottom: 10px;
    font-family: var(--font-family);
    transition: background 0.3s;
}

.cookie-preferences-section label:hover,
body[data-theme="opaj"] .cookie-preferences-section label:hover,
html[data-theme="opaj"] .cookie-preferences-section label:hover {
    background: rgba(0, 0, 0, 0.02);
}

.cookie-preferences-section input[type="checkbox"],
body[data-theme="opaj"] .cookie-preferences-section input[type="checkbox"],
html[data-theme="opaj"] .cookie-preferences-section input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    flex-shrink: 0;
}

.cookie-preferences-section strong,
body[data-theme="opaj"] .cookie-preferences-section strong,
html[data-theme="opaj"] .cookie-preferences-section strong {
    text-transform: uppercase;
    font-size: 0.9rem;
    font-weight: 600;
    font-family: var(--font-family);
    color: var(--primary);
}

.cookie-preferences-section p,
body[data-theme="opaj"] .cookie-preferences-section p,
html[data-theme="opaj"] .cookie-preferences-section p {
    margin: 5px 0 0 0;
    font-size: 0.85rem;
    color: #666;
    font-family: var(--font-family);
    line-height: 1.6;
}

/* Styles supplémentaires pour mon-compte */
.info-grid,
body[data-theme="opaj"] .info-grid,
html[data-theme="opaj"] .info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

.info-item,
body[data-theme="opaj"] .info-item,
html[data-theme="opaj"] .info-item {
    padding: 15px;
    background: #f9f9f9;
    border-left: 3px solid var(--primary);
    font-family: var(--font-family);
}

.info-label,
body[data-theme="opaj"] .info-label,
html[data-theme="opaj"] .info-label {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.85rem;
    margin-bottom: 5px;
    color: #666;
    font-family: var(--font-family);
}

.info-value,
body[data-theme="opaj"] .info-value,
html[data-theme="opaj"] .info-value {
    font-size: 1rem;
    color: var(--primary);
    font-family: var(--font-family);
}

.orders-table,
body[data-theme="opaj"] .orders-table,
html[data-theme="opaj"] .orders-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    font-family: var(--font-family);
}

.orders-table th,
.orders-table td,
body[data-theme="opaj"] .orders-table th,
body[data-theme="opaj"] .orders-table td,
html[data-theme="opaj"] .orders-table th,
html[data-theme="opaj"] .orders-table td {
    padding: 15px;
    text-align: left;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.orders-table th,
body[data-theme="opaj"] .orders-table th,
html[data-theme="opaj"] .orders-table th {
    font-family: var(--font-family);
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.9rem;
    background: #f9f9f9;
    color: var(--primary);
}

.orders-table tr:hover,
body[data-theme="opaj"] .orders-table tr:hover,
html[data-theme="opaj"] .orders-table tr:hover {
    background: #f9f9f9;
}

/* Responsive mobile pour le tableau des commandes */
@media (max-width: 768px) {
    .orders-table,
    body[data-theme="opaj"] .orders-table,
    html[data-theme="opaj"] .orders-table {
        display: block;
        width: 100%;
    }
    
    .orders-table thead,
    body[data-theme="opaj"] .orders-table thead,
    html[data-theme="opaj"] .orders-table thead {
        display: none;
    }
    
    .orders-table tbody,
    body[data-theme="opaj"] .orders-table tbody,
    html[data-theme="opaj"] .orders-table tbody {
        display: block;
        width: 100%;
    }
    
    .orders-table tr,
    body[data-theme="opaj"] .orders-table tr,
    html[data-theme="opaj"] .orders-table tr {
        display: block;
        width: 100%;
        margin-bottom: 20px;
        background: white;
        border: 1px solid rgba(0, 0, 0, 0.1);
        border-radius: 0;
        padding: 20px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    }
    
    .orders-table tr:hover,
    body[data-theme="opaj"] .orders-table tr:hover,
    html[data-theme="opaj"] .orders-table tr:hover {
        background: white;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    }
    
    .orders-table td,
    body[data-theme="opaj"] .orders-table td,
    html[data-theme="opaj"] .orders-table td {
        display: block;
        width: 100%;
        padding: 10px 0;
        border: none;
        border-bottom: 1px solid rgba(0, 0, 0, 0.05);
        text-align: left;
    }
    
    .orders-table td:last-child,
    body[data-theme="opaj"] .orders-table td:last-child,
    html[data-theme="opaj"] .orders-table td:last-child {
        border-bottom: none;
        padding-top: 15px;
    }
    
    /* Ajouter des labels avant chaque cellule sur mobile */
    .orders-table td::before,
    body[data-theme="opaj"] .orders-table td::before,
    html[data-theme="opaj"] .orders-table td::before {
        content: attr(data-label);
        display: block;
        font-weight: 700;
        text-transform: uppercase;
        font-size: 0.75rem;
        color: #666;
        margin-bottom: 5px;
        letter-spacing: 0.5px;
    }
    
    /* Style spécial pour la première cellule (numéro de commande) comme titre de la carte */
    .orders-table td:first-child,
    body[data-theme="opaj"] .orders-table td:first-child,
    html[data-theme="opaj"] .orders-table td:first-child {
        padding-bottom: 15px;
        border-bottom: 2px solid var(--primary);
        margin-bottom: 10px;
        font-size: 1.1rem;
    }
    
    .orders-table td:first-child strong,
    body[data-theme="opaj"] .orders-table td:first-child strong,
    html[data-theme="opaj"] .orders-table td:first-child strong {
        font-weight: 700;
        font-size: 1rem;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .orders-table td:first-child a,
    body[data-theme="opaj"] .orders-table td:first-child a,
    html[data-theme="opaj"] .orders-table td:first-child a {
        font-weight: 700;
    }
    
    /* Style pour les actions sur mobile */
    .orders-table td:last-child > div,
    body[data-theme="opaj"] .orders-table td:last-child > div,
    html[data-theme="opaj"] .orders-table td:last-child > div {
        display: flex;
        flex-direction: column;
        gap: 10px;
        width: 100%;
    }
    
    .orders-table td:last-child .btn-action,
    body[data-theme="opaj"] .orders-table td:last-child .btn-action,
    html[data-theme="opaj"] .orders-table td:last-child .btn-action {
        width: 100%;
        text-align: center;
        padding: 12px;
        margin: 0;
    }
    
    .orders-table td:last-child span,
    body[data-theme="opaj"] .orders-table td:last-child span,
html[data-theme="opaj"] .orders-table td:last-child span {
        font-size: 0.85rem;
        line-height: 1.6;
        word-break: break-word;
        display: block;
        margin-top: 5px;
    }
    
    /* Badge de statut sur mobile */
    .orders-table td .badge,
    body[data-theme="opaj"] .orders-table td .badge,
    html[data-theme="opaj"] .orders-table td .badge {
        display: inline-block;
        margin-top: 5px;
    }
}

.badge,
body[data-theme="opaj"] .badge,
html[data-theme="opaj"] .badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 0;
    font-size: 0.8rem;
    text-transform: uppercase;
    font-weight: 700;
    font-family: var(--font-family);
}

.badge-pending { background: #fff3cd; color: #856404; }
.badge-paid { background: #d4edda; color: #155724; }
.badge-processing { background: #cce5ff; color: #004085; }
.badge-shipped { background: #d1ecf1; color: #0c5460; }
.badge-delivered { background: #d4edda; color: #155724; }
.badge-cancelled { background: #f8d7da; color: #721c24; }

.empty-state,
body[data-theme="opaj"] .empty-state,
html[data-theme="opaj"] .empty-state {
    text-align: center;
    padding: 60px 20px;
    color: #666;
    font-family: var(--font-family);
}

.empty-state p,
body[data-theme="opaj"] .empty-state p,
html[data-theme="opaj"] .empty-state p {
    font-size: 1.1rem;
    margin-bottom: 20px;
}

.form-row,
body[data-theme="opaj"] .form-row,
html[data-theme="opaj"] .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

#addressForm,
body[data-theme="opaj"] #addressForm,
html[data-theme="opaj"] #addressForm {
    display: none;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 2px solid var(--primary);
}

#addressForm.active,
body[data-theme="opaj"] #addressForm.active,
html[data-theme="opaj"] #addressForm.active {
    display: block;
}

/* Animation fadeIn pour les tabs */
.tab-content,
body[data-theme="opaj"] .tab-content,
html[data-theme="opaj"] .tab-content {
    animation: fadeIn 0.3s;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ============================================
   TAPE SOLD (Badge produit vendu)
   ============================================ */

.tape-sold {
    position: absolute;
    top: 20px;
    right: -35px;
    background: #d0021b;
    color: white;
    padding: 8px 50px;
    font-family: var(--font-family);
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 2px;
    transform: rotate(45deg);
    z-index: 100;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Le tape-sold doit être visible directement sur les produits, pas au survol */
.polaroid .tape-sold,
.product-item .tape-sold,
article .tape-sold {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* IMPORTANT: Le tape-sold ne doit JAMAIS apparaître dans le header - RÈGLES ULTRA FORTES */
body[data-theme="opaj"] header .tape-sold,
html[data-theme="opaj"] header .tape-sold,
body[data-theme="opaj"] .main-header .tape-sold,
html[data-theme="opaj"] .main-header .tape-sold,
body[data-theme="opaj"] header * .tape-sold,
html[data-theme="opaj"] header * .tape-sold,
body[data-theme="opaj"] .main-header * .tape-sold,
html[data-theme="opaj"] .main-header * .tape-sold,
body[data-theme="opaj"] .header-right .tape-sold,
html[data-theme="opaj"] .header-right .tape-sold,
body[data-theme="opaj"] .header-left .tape-sold,
html[data-theme="opaj"] .header-left .tape-sold,
body[data-theme="opaj"] .header-center .tape-sold,
html[data-theme="opaj"] .header-center .tape-sold,
body[data-theme="opaj"] .header-flex .tape-sold,
html[data-theme="opaj"] .header-flex .tape-sold,
body[data-theme="opaj"] .cart-btn .tape-sold,
html[data-theme="opaj"] .cart-btn .tape-sold,
body[data-theme="opaj"] .icon-btn .tape-sold,
html[data-theme="opaj"] .icon-btn .tape-sold,
body[data-theme="opaj"] button .tape-sold,
html[data-theme="opaj"] button .tape-sold,
header a .tape-sold,
.main-header a .tape-sold,
header .tape-sold,
.main-header .tape-sold,
header * .tape-sold,
.main-header * .tape-sold {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    top: -9999px !important;
    left: -9999px !important;
    z-index: -1 !important;
    pointer-events: none !important;
    clip-path: inset(100%) !important;
    clip: rect(0, 0, 0, 0) !important;
}

/* Masquer TOUS les éléments avec background rouge dans le header - RÈGLES ULTRA FORTES */
body[data-theme="opaj"] header [style*="red"],
html[data-theme="opaj"] header [style*="red"],
body[data-theme="opaj"] header [style*="#d0021b"],
html[data-theme="opaj"] header [style*="#d0021b"],
body[data-theme="opaj"] header [style*="#ff0000"],
html[data-theme="opaj"] header [style*="#ff0000"],
body[data-theme="opaj"] header [class*="sold"],
html[data-theme="opaj"] header [class*="sold"],
body[data-theme="opaj"] header [class*="tape"],
html[data-theme="opaj"] header [class*="tape"],
body[data-theme="opaj"] .main-header [class*="sold"],
html[data-theme="opaj"] .main-header [class*="sold"],
body[data-theme="opaj"] .main-header [class*="tape"],
html[data-theme="opaj"] .main-header [class*="tape"],
header [style*="red"],
header [style*="#d0021b"],
header [style*="#ff0000"],
header [class*="sold"],
header [class*="tape"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    top: -9999px !important;
    left: -9999px !important;
    z-index: -1 !important;
    pointer-events: none !important;
}

/* IMPORTANT: Masquer le tape-sold dans le header - RÈGLES TRÈS FORTES */
header .tape-sold,
.main-header .tape-sold,
header * .tape-sold,
.main-header * .tape-sold,
header button .tape-sold,
header .icon-btn .tape-sold,
header .cart-btn .tape-sold,
header .header-right .tape-sold,
header .header-flex .tape-sold,
header .header-left .tape-sold,
header .header-center .tape-sold {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    top: -9999px !important;
    left: -9999px !important;
    z-index: -1 !important;
    pointer-events: none !important;
    clip-path: inset(100%) !important;
    clip: rect(0, 0, 0, 0) !important;
}

.tape-sold::before {
    content: attr(data-sold-text);
}

@media (max-width: 768px) {
    .tape-sold {
        top: 10px;
        right: -30px;
        padding: 6px 40px;
        font-size: 10px;
    }
}

/* ============================================
   CORRECTIONS SPÉCIFIQUES THÈME OPAJ
   ============================================ */

/* Forcer le menu horizontal */
body[data-theme="opaj"] .header-center .main-nav,
body[data-theme="opaj"] .main-nav,
html[data-theme="opaj"] .header-center .main-nav,
html[data-theme="opaj"] .main-nav {
    display: flex !important;
    flex-direction: row !important;
}

body[data-theme="opaj"] .nav-links {
    display: flex !important;
    flex-direction: row !important;
    list-style: none !important;
}

body[data-theme="opaj"] .nav-links li {
    list-style: none !important;
    display: inline-block !important;
}

/* S'assurer que le contenu principal est centré */
body[data-theme="opaj"] main {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: var(--spacing-xl) 40px;
}

/* Masquer les éléments du thème 1 */
body[data-theme="opaj"] .categories-sidebar {
    display: none !important;
}

body[data-theme="opaj"] .mobile-categories {
    display: none !important;
}

/* Masquer le triangle rouge du tape-sold dans le header - RÈGLES TRÈS FORTES */
body[data-theme="opaj"] header .tape-sold,
html[data-theme="opaj"] header .tape-sold,
body[data-theme="opaj"] .main-header .tape-sold,
html[data-theme="opaj"] .main-header .tape-sold,
body[data-theme="opaj"] header * .tape-sold,
html[data-theme="opaj"] header * .tape-sold,
body[data-theme="opaj"] .header-right .tape-sold,
html[data-theme="opaj"] .header-right .tape-sold,
body[data-theme="opaj"] .header-flex .tape-sold,
html[data-theme="opaj"] .header-flex .tape-sold,
body[data-theme="opaj"] .header-left .tape-sold,
html[data-theme="opaj"] .header-left .tape-sold,
body[data-theme="opaj"] .header-center .tape-sold,
html[data-theme="opaj"] .header-center .tape-sold {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    top: -9999px !important;
    left: -9999px !important;
    z-index: -1 !important;
    pointer-events: none !important;
}

/* ============================================
   NOTIFICATIONS CATÉGORIE (Thème OPAJ)
   ============================================ */

body[data-theme="opaj"] .category-notification-toast {
    /* Placé en haut à droite de la zone produits, sans créer une ligne vide */
    position: absolute !important;
    top: 0;
    right: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    background: transparent !important;
    box-shadow: none !important;  /* retire tout box-shadow hérité (ex: 0 2px 8px rgba(...)) */
    border: none !important;
    border-radius: 0 !important;
    z-index: 1;
    font-family: var(--font-family);
    font-size: 0.8rem;
    font-weight: 300;
    color: var(--primary);
    transition: none !important;
    animation: none !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    max-width: 400px;
}

body[data-theme="opaj"] .category-notification-toast:not(.show),
html[data-theme="opaj"] .category-notification-toast:not(.show) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/* Masquer l'overlay de notification catégorie quand non actif */
body[data-theme="opaj"] #categoryNotificationOverlay:not(.active),
html[data-theme="opaj"] #categoryNotificationOverlay:not(.active) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

body[data-theme="opaj"] .category-notification-toast.show {
    display: flex !important;
}

/* Réserver l'espace même quand la notification n'est pas visible mais qu'une catégorie est active - DESKTOP */
body[data-theme="opaj"] .gallery-content:has(.category-pill.active) .category-notification-toast,
body[data-theme="opaj"] .gallery-content:has(nav.category-nav a.active) .category-notification-toast,
body[data-theme="opaj"] .gallery-content:has(nav.category-nav .category-pill.active) .category-notification-toast {
    display: flex !important;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    min-height: 30px;
}

body[data-theme="opaj"] .gallery-content:has(.category-pill.active) .category-notification-toast.show,
body[data-theme="opaj"] .gallery-content:has(nav.category-nav a.active) .category-notification-toast.show,
body[data-theme="opaj"] .gallery-content:has(nav.category-nav .category-pill.active) .category-notification-toast.show {
    visibility: visible;
    opacity: 1;
    pointer-events: all;
}

/* Réserver l'espace pour le contenu quand une catégorie est active - DESKTOP */
body[data-theme="opaj"] .gallery-content:has(.category-pill.active) .shop-grid,
body[data-theme="opaj"] .gallery-content:has(nav.category-nav a.active) .shop-grid,
body[data-theme="opaj"] .gallery-content:has(nav.category-nav .category-pill.active) .shop-grid,
body[data-theme="opaj"] .gallery-content.has-active-category .shop-grid {
    padding-top: 30px !important;
}

/* Réserver l'espace quand la notification est visible - DESKTOP */
body[data-theme="opaj"] .gallery-content:has(.category-notification-toast.show) .shop-grid,
body[data-theme="opaj"] .gallery-content.has-notification .shop-grid {
    padding-top: 30px !important;
}

body[data-theme="opaj"] .gallery-content .shop-grid {
    transition: none;
}

body[data-theme="opaj"] .category-notification-toast-icon {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    opacity: 0.5;
}

body[data-theme="opaj"] .category-notification-toast-icon svg {
    width: 100%;
    height: 100%;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body[data-theme="opaj"] .category-notification-toast-text {
    flex: 1;
    white-space: nowrap;
}

body[data-theme="opaj"] .category-notification-toast-text .category-name {
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

body[data-theme="opaj"] .category-notification-toast-link {
    color: var(--primary);
    text-decoration: underline;
    cursor: pointer;
    opacity: 0.7;
    transition: opacity 0.3s;
    white-space: nowrap;
    margin-left: 5px;
}

body[data-theme="opaj"] .category-notification-toast-link:hover {
    opacity: 1;
}

body[data-theme="opaj"] .category-notification-toast-close {
    width: 16px;
    height: 16px;
    border: none;
    background: transparent;
    cursor: pointer;
    opacity: 0.4;
    transition: opacity 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    line-height: 1;
    color: var(--primary);
    padding: 0;
    flex-shrink: 0;
}

body[data-theme="opaj"] .category-notification-toast-close:hover {
    opacity: 0.8;
}

@media (max-width: 768px) {
    body[data-theme="opaj"] .category-notification-toast {
        right: 0;
        left: 0;
        padding: 10px 15px;
        font-size: 0.75rem;
        min-height: 50px;
        width: 100%;
        box-sizing: border-box;
    }
    
    body[data-theme="opaj"] .category-notification-toast-text {
        white-space: normal;
        line-height: 1.4;
    }
    
    /* Réserver l'espace même quand la notification n'est pas visible mais qu'une catégorie est active - MOBILE */
    body[data-theme="opaj"] .gallery-content:has(.mobile-category-btn.active:not([onclick*="closeCategoryNotificationToast"])) .category-notification-toast,
    body[data-theme="opaj"] .gallery-content:has(.category-pill.active) .category-notification-toast,
    body[data-theme="opaj"] .gallery-content.has-active-category .category-notification-toast {
        display: flex !important;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        min-height: 50px;
    }
    
    body[data-theme="opaj"] .gallery-content:has(.mobile-category-btn.active:not([onclick*="closeCategoryNotificationToast"])) .category-notification-toast.show,
    body[data-theme="opaj"] .gallery-content:has(.category-pill.active) .category-notification-toast.show,
    body[data-theme="opaj"] .gallery-content.has-active-category .category-notification-toast.show {
        visibility: visible;
        opacity: 1;
        pointer-events: all;
    }
    
    /* Réserver l'espace quand une catégorie est active (cochée) - TOUJOURS - MOBILE */
    body[data-theme="opaj"] .gallery-content:has(.mobile-category-btn.active:not([onclick*="closeCategoryNotificationToast"])) .mobile-categories,
    body[data-theme="opaj"] .gallery-content:has(.category-pill.active) .mobile-categories,
    body[data-theme="opaj"] .gallery-content.has-active-category .mobile-categories {
        padding-top: 60px;
    }
    
    body[data-theme="opaj"] .gallery-content:has(.category-notification-toast.show) .mobile-categories,
    body[data-theme="opaj"] .gallery-content.has-notification .mobile-categories {
        padding-top: 60px;
    }
    
    body[data-theme="opaj"] .gallery-content:has(.mobile-category-btn.active:not([onclick*="closeCategoryNotificationToast"])) .shop-grid,
    body[data-theme="opaj"] .gallery-content:has(.category-pill.active) .shop-grid,
    body[data-theme="opaj"] .gallery-content.has-active-category .shop-grid {
        padding-top: 0;
    }
}

/* ============================================
   BANNIÈRE MAINTENANCE (Thème OPAJ)
   ============================================ */

body[data-theme="opaj"] .maintenance-banner,
html[data-theme="opaj"] .maintenance-banner,
.maintenance-banner {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: #000 !important;
    color: #fff !important;
    padding: 12px 20px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    z-index: 10000 !important;
    font-family: var(--font-family) !important;
    font-size: 0.85rem !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important;
    max-width: 100% !important;
    width: 100% !important;
    gap: 20px !important;
    flex-wrap: wrap !important;
}

body[data-theme="opaj"] .maintenance-banner-content,
html[data-theme="opaj"] .maintenance-banner-content,
.maintenance-banner-content {
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    max-width: var(--max-width) !important;
    width: 100% !important;
    justify-content: center !important;
    margin: 0 auto !important;
}

body[data-theme="opaj"] .maintenance-banner-actions,
html[data-theme="opaj"] .maintenance-banner-actions,
.maintenance-banner-actions {
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
}

body[data-theme="opaj"] .maintenance-banner-text {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

body[data-theme="opaj"] .maintenance-banner-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}

body[data-theme="opaj"] .maintenance-banner-btn {
    background: transparent;
    border: 1px solid #fff;
    color: #fff;
    padding: 6px 15px;
    font-family: var(--font-family);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
    transition: all 0.3s ease;
}

body[data-theme="opaj"] .maintenance-banner-btn:hover {
    background: #fff;
    color: #000;
}

body[data-theme="opaj"].has-maintenance-banner {
    padding-top: 50px;
}

body[data-theme="opaj"].has-maintenance-banner header,
body[data-theme="opaj"].has-maintenance-banner .main-header {
    top: 50px;
}

@media (max-width: 768px) {
    body[data-theme="opaj"] .maintenance-banner {
        flex-direction: column;
        gap: 10px;
        padding: 10px 15px;
    }
    
    body[data-theme="opaj"] .maintenance-banner-content {
        width: 100%;
        justify-content: center;
    }
    
    body[data-theme="opaj"] .maintenance-banner-actions {
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
    }
    
    body[data-theme="opaj"].has-maintenance-banner {
        padding-top: 80px;
    }
    
    body[data-theme="opaj"].has-maintenance-banner header,
    body[data-theme="opaj"].has-maintenance-banner .main-header {
        top: 80px;
    }
}

/* ============================================
   POLICES POUR LES PAGES ABOUT, CONTACT ET CHECKOUT
   ============================================ */
body[data-theme="opaj"] .about-text,
body[data-theme="opaj"] .about-text h1,
body[data-theme="opaj"] .about-text h2,
body[data-theme="opaj"] .about-text h3,
body[data-theme="opaj"] .about-text p,
html[data-theme="opaj"] .about-text,
html[data-theme="opaj"] .about-text h1,
html[data-theme="opaj"] .about-text h2,
html[data-theme="opaj"] .about-text h3,
html[data-theme="opaj"] .about-text p {
    font-family: 'Poppins', sans-serif !important;
}

body[data-theme="opaj"] .contact-page h1,
body[data-theme="opaj"] .contact-page input,
body[data-theme="opaj"] .contact-page textarea,
body[data-theme="opaj"] .contact-page button,
body[data-theme="opaj"] .contact-page label,
html[data-theme="opaj"] .contact-page h1,
html[data-theme="opaj"] .contact-page input,
html[data-theme="opaj"] .contact-page textarea,
html[data-theme="opaj"] .contact-page button,
html[data-theme="opaj"] .contact-page label,
body[data-theme="opaj"] [style*="font-family: var(--font-title)"],
body[data-theme="opaj"] [style*="font-family: var(--font-main)"],
html[data-theme="opaj"] [style*="font-family: var(--font-title)"],
html[data-theme="opaj"] [style*="font-family: var(--font-main)"] {
    font-family: 'Poppins', sans-serif !important;
}

body[data-theme="opaj"] .page-title,
body[data-theme="opaj"] .checkout-page h1,
body[data-theme="opaj"] .checkout-page h2,
body[data-theme="opaj"] .checkout-page input,
body[data-theme="opaj"] .checkout-page label,
body[data-theme="opaj"] .checkout-page button,
html[data-theme="opaj"] .page-title,
html[data-theme="opaj"] .checkout-page h1,
html[data-theme="opaj"] .checkout-page h2,
html[data-theme="opaj"] .checkout-page input,
html[data-theme="opaj"] .checkout-page label,
html[data-theme="opaj"] .checkout-page button {
    font-family: 'Poppins', sans-serif !important;
}

/* Forcer le menu principal à disparaître sur mobile/tablette pour le thème OPAJ,
   afin de ne laisser que le header avec icônes + hamburger */
@media (max-width: 1024px) {
    body[data-theme="opaj"] .main-nav,
    html[data-theme="opaj"] .main-nav,
    body[data-theme="opaj"] .nav-links,
    html[data-theme="opaj"] .nav-links {
        display: none !important;
    }
}

/* ============================================
   PANIER LATÉRAL (CART SIDEBAR) - RÈGLES STRICTES
   ============================================ */

/* Règles de base : le panier doit être caché par défaut (sans .active) */
body[data-theme="opaj"] #cartSidebar:not(.active),
#cartSidebar:not(.active) {
    right: -450px !important;
    left: auto !important;
}

/* Règles globales pour le panier latéral sur mobile */
@media (max-width: 768px) {
    /* Par défaut, le panier doit être caché à droite */
    body[data-theme="opaj"] #cartSidebar:not(.active),
    #cartSidebar:not(.active) {
        right: -100% !important;
        left: auto !important;
        width: 100vw !important;
        max-width: 100vw !important;
    }
    
    /* Forcer le panier latéral à ne jamais dépasser QUAND IL EST ACTIF */
    body[data-theme="opaj"] #cartSidebar.active,
    #cartSidebar.active {
        width: 100vw !important;
        max-width: 100vw !important;
        min-width: 0 !important;
        left: 0 !important;
        right: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        position: fixed !important;
    }
    
    /* Forcer tous les enfants du panier à respecter la largeur */
    .cart-sidebar *,
    body[data-theme="opaj"] .cart-sidebar * {
        max-width: 100% !important;
        box-sizing: border-box !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    /* Exception pour les boutons de quantité - ne pas limiter leur largeur */
    .cart-sidebar button[onclick*="updateCartQuantity"],
    body[data-theme="opaj"] .cart-sidebar button[onclick*="updateCartQuantity"],
    .cart-sidebar .cart-qty-btn,
    body[data-theme="opaj"] .cart-sidebar .cart-qty-btn {
        max-width: 30px !important;
        min-width: 30px !important;
        width: 30px !important;
    }
    
    /* Header du panier */
    .cart-header,
    body[data-theme="opaj"] .cart-header {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 20px 15px !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 10px !important;
    }
    
    /* Titre du panier */
    .cart-title,
    body[data-theme="opaj"] .cart-title {
        font-size: 1.2rem !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
        max-width: calc(100% - 50px) !important;
        flex: 1 !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
    
    /* Bouton fermer */
    .cart-close,
    body[data-theme="opaj"] .cart-close {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        max-width: 40px !important;
        flex-shrink: 0 !important;
        box-sizing: border-box !important;
    }
    
    /* Contenu du panier */
    .cart-content,
    body[data-theme="opaj"] .cart-content {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }
    
    /* Footer du panier */
    .cart-footer,
    body[data-theme="opaj"] .cart-footer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 20px 15px !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }
    
    .cart-footer > div,
    body[data-theme="opaj"] .cart-footer > div {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    
    /* Éléments générés dynamiquement dans le panier */
    .cart-sidebar .cart-item,
    .cart-sidebar .cart-item-full,
    .cart-sidebar .cart-item-image,
    .cart-sidebar .cart-item-details,
    .cart-sidebar .cart-item-name,
    .cart-sidebar .cart-item-price,
    .cart-sidebar .cart-item-actions,
    .cart-sidebar .quantity-btn,
    .cart-sidebar .quantity-input,
    .cart-sidebar .summary-row,
    .cart-sidebar .checkout-btn,
    body[data-theme="opaj"] .cart-sidebar .cart-item,
    body[data-theme="opaj"] .cart-sidebar .cart-item-full,
    body[data-theme="opaj"] .cart-sidebar .cart-item-image,
    body[data-theme="opaj"] .cart-sidebar .cart-item-details,
    body[data-theme="opaj"] .cart-sidebar .cart-item-name,
    body[data-theme="opaj"] .cart-sidebar .cart-item-price,
    body[data-theme="opaj"] .cart-sidebar .cart-item-actions,
    body[data-theme="opaj"] .cart-sidebar .quantity-btn,
    body[data-theme="opaj"] .cart-sidebar .quantity-input,
    body[data-theme="opaj"] .cart-sidebar .summary-row,
    body[data-theme="opaj"] .cart-sidebar .checkout-btn {
        max-width: 100% !important;
        box-sizing: border-box !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    .cart-sidebar .cart-item-name,
    .cart-sidebar .cart-item-price,
    body[data-theme="opaj"] .cart-sidebar .cart-item-name,
    body[data-theme="opaj"] .cart-sidebar .cart-item-price {
        hyphens: auto !important;
    }
    
    /* Boutons + et - dans le panier latéral (index.php) */
    .cart-sidebar button[onclick*="updateCartQuantity"],
    body[data-theme="opaj"] .cart-sidebar button[onclick*="updateCartQuantity"],
    .cart-sidebar .cart-qty-btn,
    body[data-theme="opaj"] .cart-sidebar .cart-qty-btn {
        width: 30px !important;
        height: 30px !important;
        min-width: 30px !important;
        max-width: 30px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        visibility: visible !important;
        opacity: 1 !important;
        border: 1px solid var(--ink) !important;
        background: transparent !important;
        color: var(--ink) !important;
        cursor: pointer !important;
        padding: 0 !important;
        font-size: 16px !important;
        line-height: 1 !important;
        font-family: monospace !important;
        flex-shrink: 0 !important;
        box-sizing: border-box !important;
    }
    
    .cart-sidebar button[onclick*="updateCartQuantity"]:hover:not(:disabled),
    body[data-theme="opaj"] .cart-sidebar button[onclick*="updateCartQuantity"]:hover:not(:disabled),
    .cart-sidebar .cart-qty-btn:hover:not(:disabled),
    body[data-theme="opaj"] .cart-sidebar .cart-qty-btn:hover:not(:disabled) {
        background: var(--ink) !important;
        color: white !important;
    }
    
    .cart-sidebar button[onclick*="updateCartQuantity"]:disabled,
    body[data-theme="opaj"] .cart-sidebar button[onclick*="updateCartQuantity"]:disabled,
    .cart-sidebar .cart-qty-btn:disabled,
    body[data-theme="opaj"] .cart-sidebar .cart-qty-btn:disabled {
        opacity: 0.3 !important;
        cursor: not-allowed !important;
    }
}

/* Règles spécifiques pour iPhone */
@media (max-width: 480px) {
    .cart-sidebar,
    body[data-theme="opaj"] .cart-sidebar {
        width: 100vw !important;
        max-width: 100vw !important;
    }
    
    .cart-header,
    body[data-theme="opaj"] .cart-header {
        padding: 15px 12px !important;
    }
    
    .cart-title,
    body[data-theme="opaj"] .cart-title {
        font-size: 1.1rem !important;
        padding-right: 10px !important;
    }
    
    .cart-footer,
    body[data-theme="opaj"] .cart-footer {
        padding: 15px 12px !important;
    }
}

