/*
 * Naturaleaf E-commerce - Styles principaux
 * Design zen, naturel et apaisant
 * 2025
 */

/* ========================================
   VARIABLES CSS - DESIGN SYSTEM
======================================== */

:root {
    /* Couleurs principales - VERSION TRÈS CHAUDE 🔥 */
    --color-bg-primary: #fdf6eb;        /* Crème abricot très chaud */
    --color-bg-secondary: #f7ead6;      /* Beige doré intense */
    --color-text-primary: #4a5d3a;      /* Vert foncé signature (conservé) */
    --color-text-secondary: #8b7355;    /* Noisette chaud */
    --color-accent-olive: #9d8f56;      /* Or olive très chaud */
    --color-accent-sage: #b5a672;       /* Beige doré chaud */
    --color-accent-terra: #e09d52;      /* Ocre orangé vif */
    --color-stone: #c4b49a;             /* Sable doré */
    --color-wood: #daa76d;              /* Bois miel intense */
    
    /* Couleurs d'état - VERSION TRÈS CHAUDE */
    --color-success: #9db857;           /* Jaune-vert chaud */
    --color-warning: #f6a555;           /* Orange vif */
    --color-error: #e8754a;             /* Terracotta rouge chaud */
    --color-info: #52a589;              /* Vert émeraude chaud */
    
    /* Couleurs pures */
    --color-white: #ffffff;
    --color-black: #4a3a28;             /* Brun chocolat */
    
    /* Typographie - Polices selon cahier des charges */
    --font-primary: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-heading: 'Playfair Display', Georgia, serif;
    
    /* Tailles de police */
    --font-size-xs: 0.75rem;     /* 12px */
    --font-size-sm: 0.875rem;    /* 14px */
    --font-size-base: 1rem;      /* 16px */
    --font-size-lg: 1.125rem;    /* 18px */
    --font-size-xl: 1.25rem;     /* 20px */
    --font-size-2xl: 1.5rem;     /* 24px */
    --font-size-3xl: 1.875rem;   /* 30px */
    --font-size-4xl: 2.25rem;    /* 36px */
    --font-size-5xl: 3rem;       /* 48px */
    
    /* Espacements */
    --spacing-xs: 0.25rem;   /* 4px */
    --spacing-sm: 0.5rem;    /* 8px */
    --spacing-md: 1rem;      /* 16px */
    --spacing-lg: 1.5rem;    /* 24px */
    --spacing-xl: 2rem;      /* 32px */
    --spacing-2xl: 3rem;     /* 48px */
    --spacing-3xl: 4rem;     /* 64px */
    --spacing-4xl: 6rem;     /* 96px */
    
    /* Rayons de bordure */
    --radius-sm: 0.25rem;    /* 4px */
    --radius-md: 0.5rem;     /* 8px */
    --radius-lg: 0.75rem;    /* 12px */
    --radius-xl: 1rem;       /* 16px */
    --radius-full: 9999px;
    
    /* Ombres douces - VERSION TRÈS CHAUDE (tons caramel) */
    --shadow-sm: 0 1px 2px 0 rgba(93, 74, 46, 0.08);
    --shadow-md: 0 4px 6px -1px rgba(93, 74, 46, 0.12), 0 2px 4px -1px rgba(93, 74, 46, 0.08);
    --shadow-lg: 0 10px 15px -3px rgba(93, 74, 46, 0.12), 0 4px 6px -2px rgba(93, 74, 46, 0.08);
    --shadow-xl: 0 20px 25px -5px rgba(93, 74, 46, 0.12), 0 10px 10px -5px rgba(93, 74, 46, 0.06);
    
    /* Transitions */
    --transition-fast: 150ms ease-in-out;
    --transition-normal: 250ms ease-in-out;
    --transition-slow: 350ms ease-in-out;
    
    /* Conteneur */
    --container-max-width: 1200px;
    --container-padding: var(--spacing-md);
    
    /* Grilles */
    --grid-gap: var(--spacing-lg);
}

/* ========================================
   RESET ET BASE
======================================== */

/* Reset moderne */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    line-height: 1.6;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    line-height: 1.6;
    color: var(--color-text-primary);
    background-color: var(--color-bg-primary);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Sélection de texte */
::selection {
    background-color: var(--color-accent-sage);
    color: var(--color-white);
}

/* Focus */
:focus-visible {
    outline: 2px solid var(--color-accent-olive);
    outline-offset: 2px;
}

/* ========================================
   TYPOGRAPHIE
======================================== */

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 600;
    line-height: 1.3;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

h1 { font-size: var(--font-size-4xl); }
h2 { font-size: var(--font-size-3xl); }
h3 { font-size: var(--font-size-2xl); }
h4 { font-size: var(--font-size-xl); }
h5 { font-size: var(--font-size-lg); }
h6 { font-size: var(--font-size-base); }

p {
    margin-bottom: var(--spacing-md);
    color: var(--color-text-secondary);
}

a {
    color: var(--color-accent-olive);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover, a:focus {
    color: var(--color-text-primary);
}

strong, b {
    font-weight: 600;
    color: var(--color-text-primary);
}

/* ========================================
   CONTENEUR ET GRILLES
======================================== */

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

/* Grille générique */
.grid {
    display: grid;
    gap: var(--grid-gap);
}

.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

/* ========================================
   BOUTONS - DESIGN NATUREL
======================================== */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-lg);
    font-family: var(--font-primary);
    font-size: var(--font-size-base);
    font-weight: 500;
    text-decoration: none;
    border: 2px solid transparent;
    border-radius: var(--radius-xl);
    cursor: pointer;
    transition: all var(--transition-normal);
    white-space: nowrap;
}

.btn-primary {
    background-color: var(--color-accent-olive);
    color: var(--color-white);
    border-color: var(--color-accent-olive);
}

.btn-primary:hover, .btn-primary:focus {
    background-color: var(--color-text-primary);
    border-color: var(--color-text-primary);
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.btn-secondary {
    background-color: var(--color-accent-sage);
    color: var(--color-white);
    border-color: var(--color-accent-sage);
}

.btn-secondary:hover, .btn-secondary:focus {
    background-color: var(--color-accent-olive);
    border-color: var(--color-accent-olive);
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.btn-outline {
    background-color: transparent;
    color: var(--color-accent-olive);
    border-color: var(--color-accent-olive);
}

.btn-outline:hover, .btn-outline:focus {
    background-color: var(--color-accent-olive);
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.btn-large {
    padding: var(--spacing-md) var(--spacing-xl);
    font-size: var(--font-size-lg);
}

.btn-small {
    padding: var(--spacing-xs) var(--spacing-md);
    font-size: var(--font-size-sm);
}

/* ========================================
   BANDEAU LÉGAL CBD - VERSION AMÉLIORÉE
======================================== */

.legal-banner {
    background: linear-gradient(135deg, 
        rgba(187, 139, 109, 0.95) 0%, 
        rgba(187, 139, 109, 0.9) 100%
    );
    color: var(--color-white);
    position: relative;
    z-index: 50;
    box-shadow: 0 2px 10px rgba(187, 139, 109, 0.2);
    border-bottom: 2px solid rgba(187, 139, 109, 0.3);
    transition: all var(--transition-normal);
    transform: translateY(0);
    opacity: 1;
}

.legal-banner.hidden {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
}

.legal-banner-content {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) 0;
    min-height: 50px;
}

.legal-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background-color: rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    color: var(--color-white);
}

.legal-notice {
    flex: 1;
    margin: 0;
    font-size: var(--font-size-sm);
    line-height: 1.4;
    font-weight: 400;
    color: var(--color-white);
}

.legal-label {
    font-weight: 600;
    margin-right: var(--spacing-xs);
    opacity: 0.9;
}

.legal-dismiss {
    flex-shrink: 0;
    background: none;
    border: none;
    color: var(--color-white);
    cursor: pointer;
    padding: var(--spacing-xs);
    border-radius: 50%;
    transition: all var(--transition-fast);
    opacity: 0.8;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
}

.legal-dismiss:hover {
    background-color: rgba(255, 255, 255, 0.15);
    opacity: 1;
    transform: scale(1.1);
}

.legal-dismiss:focus {
    outline: 2px solid rgba(255, 255, 255, 0.5);
    outline-offset: 2px;
}

/* Animation de slide-up au chargement */
@keyframes slideDown {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.legal-banner {
    animation: slideDown 0.5s ease-out;
}

/* ========================================
   HEADER & NAVIGATION
======================================== */

.main-header {
    background-color: var(--color-white);
    box-shadow: var(--shadow-md);
    position: sticky;
    top: 0;
    z-index: 100;
}

.header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md) 0;
    gap: var(--spacing-lg);
    min-height: 70px;
}

/* Logo */
.header-logo .logo-image {
    height: 60px;
    width: auto;
    transition: all var(--transition-fast);
}

.header-logo .logo-image:hover {
    transform: scale(1.05);
}

/* Recherche */
.header-search {
    flex: 1;
    max-width: 400px;
    margin: 0 var(--spacing-lg);
}

.search-form {
    position: relative;
    width: 100%;
}

.search-input {
    width: 100%;
    padding: var(--spacing-md) var(--spacing-3xl) var(--spacing-md) var(--spacing-lg);
    border: 2px solid var(--color-stone);
    border-radius: 9999px;
    font-size: var(--font-size-base);
    background-color: var(--color-white);
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

.search-input:focus {
    outline: none;
    border-color: var(--color-accent-olive);
    box-shadow: 0 0 0 3px rgba(139, 149, 109, 0.12), 0 2px 6px rgba(0,0,0,0.06);
    background-color: #fff;
}

.search-button {
    position: absolute;
    right: var(--spacing-sm);
    top: 50%;
    transform: translateY(-50%);
    background: var(--color-white);
    border: 1px solid var(--color-stone);
    color: var(--color-text-secondary);
    cursor: pointer;
    padding: 8px;
    border-radius: 9999px;
    transition: all var(--transition-fast);
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}

.search-button:hover {
    color: var(--color-accent-olive);
    background-color: var(--color-bg-secondary);
    border-color: var(--color-accent-olive);
}

/* Actions header */
.header-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.account-link,
.cart-link {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    color: var(--color-text-primary);
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
    position: relative;
}

.account-link:hover,
.cart-link:hover {
    background-color: var(--color-bg-secondary);
    color: var(--color-accent-olive);
}

.account-text,
.cart-text {
    font-size: var(--font-size-sm);
    font-weight: 500;
}

.cart-count {
    position: absolute;
    top: -8px;
    right: -8px;
    background-color: var(--color-accent-olive);
    color: var(--color-white);
    font-size: var(--font-size-xs);
    font-weight: 700;
    border-radius: 50%;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border: 2px solid var(--color-white);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    z-index: 10;
    transform: scale(1);
    transition: all 0.2s ease;
}

.cart-link:hover .cart-count {
    transform: scale(1.1);
    background-color: var(--color-accent-sage);
}

/* ========================================
   AVIS PRODUITS / REVIEWS
======================================== */

.product-reviews {
    padding: 4rem 0;
    background: var(--color-bg-secondary);
}

.reviews-header {
    margin-bottom: 3rem;
    text-align: center;
}

.reviews-summary {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 2rem;
    margin-top: 2rem;
    box-shadow: var(--shadow-sm);
}

.rating-overview {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 3rem;
    align-items: center;
}

.average-rating {
    text-align: center;
}

.rating-score {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
    display: block;
}

.rating-stars {
    margin-bottom: 0.5rem;
}

.reviews-count {
    color: var(--color-text-secondary);
    font-weight: 500;
}

.rating-breakdown {
    display: grid;
    gap: 0.75rem;
}

.rating-bar {
    display: grid;
    grid-template-columns: 80px 1fr 40px;
    gap: 1rem;
    align-items: center;
}

.rating-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    text-align: right;
}

.bar-container {
    height: 8px;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-full);
    overflow: hidden;
}

.bar-fill {
    height: 100%;
    background: var(--color-accent-olive);
    transition: width 0.3s ease;
}

.rating-count {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    text-align: center;
}

/* Formulaire d'avis */
.review-form-section {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 2rem;
    margin-bottom: 3rem;
    box-shadow: var(--shadow-sm);
}

.form-title {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-bg-secondary);
}

.rating-input {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.rating-input .star {
    font-size: 2rem;
    color: var(--color-stone);
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
}

.rating-input .star:hover,
.rating-input .star.hover {
    color: var(--color-warning);
    transform: scale(1.1);
}

.rating-input .star.active {
    color: var(--color-warning);
}

.form-label.required::after {
    content: ' *';
    color: var(--color-error);
}

/* Notice d'avis */
.review-notice {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 2rem;
    margin-bottom: 3rem;
    text-align: center;
    border: 1px solid var(--color-bg-secondary);
}

.review-notice p {
    color: var(--color-text-secondary);
    margin: 0;
}

/* Liste des avis */
.reviews-list {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 2rem;
    box-shadow: var(--shadow-sm);
}

.reviews-list-title {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-bg-secondary);
}

.review-item {
    padding: 2rem 0;
    border-bottom: 1px solid var(--color-bg-secondary);
}

.review-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.review-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.reviewer-info {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.reviewer-name {
    font-weight: 600;
    color: var(--color-text-primary);
}

.verified-badge {
    font-size: var(--font-size-xs);
    color: var(--color-success);
    font-weight: 500;
    background: rgba(127, 176, 105, 0.1);
    padding: 0.25rem 0.5rem;
    border-radius: var(--radius-md);
    width: fit-content;
}

.review-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
}

.review-rating {
    display: flex;
    gap: 0.25rem;
}

.review-date {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.review-content {
    margin-left: 0;
}

.review-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.75rem;
}

.review-text {
    color: var(--color-text-primary);
    line-height: 1.6;
    margin-bottom: 1rem;
}

.admin-response {
    background: var(--color-bg-secondary);
    padding: 1.5rem;
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-accent-olive);
    margin-top: 1rem;
}

.admin-response strong {
    color: var(--color-text-primary);
    display: block;
    margin-bottom: 0.5rem;
}

.admin-response p {
    color: var(--color-text-secondary);
    margin: 0;
    line-height: 1.5;
}

/* Aucun avis */
.no-reviews {
    text-align: center;
    padding: 3rem 2rem;
}

.no-reviews h3 {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.no-reviews p {
    color: var(--color-text-secondary);
    margin: 0;
}

/* Responsive reviews */
@media (max-width: 768px) {
    .rating-overview {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .review-header {
        flex-direction: column;
        gap: 1rem;
        align-items: stretch;
    }
    
    .review-meta {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
    
    .rating-bar {
        grid-template-columns: 60px 1fr 30px;
        gap: 0.75rem;
    }
    
    .rating-input .star {
        font-size: 1.75rem;
    }
}

/* Menu burger universel */
.menu-toggle {
    display: flex;
    flex-direction: column;
    gap: 3px;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--spacing-sm);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.menu-toggle:hover {
    background-color: var(--color-bg-secondary);
}

.hamburger-line {
    width: 24px;
    height: 2px;
    background-color: var(--color-text-primary);
    transition: all var(--transition-normal);
    border-radius: 1px;
}

/* Animation hamburger vers X */
.menu-toggle.active .hamburger-line:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.menu-toggle.active .hamburger-line:nth-child(2) {
    opacity: 0;
}

.menu-toggle.active .hamburger-line:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -6px);
}

/* ========================================
   MENU PLEIN ÉCRAN
======================================== */

.fullscreen-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition-slow);
}

.fullscreen-menu.active {
    opacity: 1;
    visibility: visible;
}

.fullscreen-menu-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, 
        rgba(247, 245, 241, 0.98) 0%, 
        rgba(240, 237, 230, 0.98) 50%, 
        rgba(235, 231, 220, 0.98) 100%
    );
    backdrop-filter: blur(20px);
}

.fullscreen-menu-content {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: var(--spacing-xl) var(--spacing-2xl);
    overflow-y: auto;
}

/* Header du menu */
.fullscreen-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-3xl);
}

.menu-logo-image {
    height: 40px;
    width: auto;
}

.menu-close {
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--spacing-md);
    border-radius: 50%;
    transition: all var(--transition-fast);
    color: var(--color-text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.menu-close:hover {
    background-color: rgba(134, 142, 112, 0.1);
    transform: rotate(90deg);
}

/* Navigation principale du menu */
.fullscreen-navigation {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fullscreen-nav-list {
    list-style: none;
    width: 100%;
    max-width: 800px;
}

.fullscreen-nav-item {
    margin-bottom: var(--spacing-xl);
    opacity: 0;
    transform: translateY(30px);
    animation: slideInUp 0.6s ease-out forwards;
}

.fullscreen-nav-item:nth-child(1) { animation-delay: 0.1s; }
.fullscreen-nav-item:nth-child(2) { animation-delay: 0.2s; }
.fullscreen-nav-item:nth-child(3) { animation-delay: 0.3s; }
.fullscreen-nav-item:nth-child(4) { animation-delay: 0.4s; }
.fullscreen-nav-item:nth-child(5) { animation-delay: 0.5s; }
.fullscreen-nav-item:nth-child(6) { animation-delay: 0.6s; }

@keyframes slideInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fullscreen-nav-link {
    display: flex;
    align-items: center;
    padding: var(--spacing-lg) var(--spacing-xl);
    text-decoration: none;
    border-radius: var(--radius-xl);
    transition: all var(--transition-normal);
    position: relative;
    overflow: hidden;
    background-color: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(134, 142, 112, 0.2);
}

.fullscreen-nav-link:hover {
    background-color: rgba(134, 142, 112, 0.1);
    transform: translateX(var(--spacing-md));
    box-shadow: var(--shadow-lg);
}

.nav-number {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-accent-olive);
    margin-right: var(--spacing-lg);
    min-width: 30px;
    opacity: 0.7;
}

.nav-title {
    font-size: var(--font-size-2xl);
    font-weight: 600;
    color: var(--color-text-primary);
    font-family: 'Playfair Display', serif;
    margin-right: var(--spacing-md);
}

.nav-description {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-left: auto;
    opacity: 0.8;
}

/* Sous-menu boutique */
.fullscreen-dropdown-menu {
    list-style: none;
    margin-top: var(--spacing-md);
    padding-left: var(--spacing-3xl);
    display: none;
}

.fullscreen-nav-dropdown:hover .fullscreen-dropdown-menu {
    display: block;
}

.fullscreen-dropdown-link {
    display: block;
    padding: var(--spacing-sm) var(--spacing-md);
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
    font-size: var(--font-size-base);
}

.fullscreen-dropdown-link:hover {
    color: var(--color-accent-olive);
    background-color: rgba(134, 142, 112, 0.1);
    transform: translateX(var(--spacing-sm));
}

/* Actions utilisateur dans le menu */
.fullscreen-menu-actions {
    margin: var(--spacing-3xl) 0;
    text-align: center;
}

.user-section-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    text-align: center;
}

.user-nav-list {
    list-style: none;
    display: flex;
    justify-content: center;
    gap: var(--spacing-lg);
    flex-wrap: wrap;
}

.user-nav-link {
    color: var(--color-text-secondary);
    text-decoration: none;
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.user-nav-link:hover {
    color: var(--color-accent-olive);
    background-color: rgba(134, 142, 112, 0.1);
}

.fullscreen-auth-section {
    display: flex;
    justify-content: center;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

.menu-auth-btn {
    min-width: 150px;
}

/* Footer du menu */
.fullscreen-menu-footer {
    text-align: center;
    padding-top: var(--spacing-xl);
    border-top: 1px solid rgba(134, 142, 112, 0.2);
}

.menu-legal-notice {
    font-size: var(--font-size-sm);
    color: var(--color-accent-terracotta);
    margin-bottom: var(--spacing-md);
    font-weight: 500;
}

.menu-contact-info {
    display: flex;
    justify-content: center;
    gap: var(--spacing-lg);
    flex-wrap: wrap;
}

.menu-contact-info p {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin: 0;
}

/* ========================================
   SECTIONS PRINCIPALES
======================================== */

.main-content {
    min-height: calc(100vh - 160px);
}

/* En-têtes de section */
.section-header {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
}

.section-title {
    font-size: var(--font-size-3xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.section-description {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    max-width: 600px;
    margin: 0 auto;
}

.section-footer {
    text-align: center;
    margin-top: var(--spacing-2xl);
}

.footer-description, .footer-hours .hours-text, .newsletter-description, .footer-copyright-text {
    color: var(--color-white);
}

/* ========================================
   HERO SECTION
======================================== */

.hero-section {
    padding: var(--spacing-4xl) 0;
    background: linear-gradient(135deg, var(--color-bg-primary) 0%, var(--color-bg-secondary) 100%);
    position: relative;
    overflow: hidden;
}

.hero-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="%23b5b5b5" opacity="0.1"/><circle cx="75" cy="75" r="1" fill="%23b5b5b5" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');
    opacity: 0.3;
    pointer-events: none;
}

.hero-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-3xl);
    align-items: center;
    position: relative;
    z-index: 1;
}

.hero-title {
    font-size: var(--font-size-5xl);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    line-height: 1.2;
}

.hero-subtitle {
    display: block;
    font-size: var(--font-size-2xl);
    color: var(--color-accent-olive);
    font-weight: 400;
    margin-top: var(--spacing-sm);
}

.hero-description {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xl);
    line-height: 1.6;
}

.hero-actions {
    display: flex;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

.hero-image {
    position: relative;
}

.hero-img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-xl);
    transition: transform var(--transition-slow);
}

.hero-img:hover {
    transform: scale(1.02);
}

/* ========================================
   SECTIONS VALEURS
======================================== */

.values-section {
    padding: var(--spacing-4xl) 0;
    background-color: var(--color-white);
}

.values-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--spacing-xl);
}

.value-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-lg);
    padding: var(--spacing-xl);
    background: var(--color-white);
    border-radius: var(--radius-xl);
    transition: all var(--transition-normal);
    border: 1px solid rgba(139, 149, 109, 0.15);
    box-shadow: var(--shadow-sm);
}

.value-item:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: var(--color-accent-sage);
}

.value-icon {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: var(--radius-full);
    background: linear-gradient(135deg, var(--color-accent-sage), var(--color-accent-olive));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-white);
    box-shadow: var(--shadow-sm);
}

.value-title {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.value-description {
    color: var(--color-text-secondary);
    line-height: 1.6;
}

/* ========================================
   GRILLES PRODUITS ET CATÉGORIES
======================================== */
/* Home: catégories vitrines */
.home-categories-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--spacing-xl); }
.home-category-card { border-radius: var(--radius-2xl); overflow: hidden; position: relative; box-shadow: var(--shadow-sm); background: var(--color-white); transition: box-shadow .25s ease, transform .2s ease; }
.home-category-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.home-category-link { display: grid; grid-template-rows: auto 1fr; color: inherit; text-decoration: none; }
.home-category-media { width: 100%; height: 200px; background: var(--color-bg-secondary); overflow: hidden; }
.home-category-img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.home-category-link:hover .home-category-img { transform: scale(1.04); }
.home-category-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--color-accent-olive); font-size: 28px; }
.home-category-content { padding: var(--spacing-lg); display: grid; gap: 6px; }
.home-category-title { font-family: var(--font-heading); font-size: var(--font-size-lg); color: var(--color-text-primary); margin: 0; }
.home-category-cta { font-size: var(--font-size-sm); color: var(--color-accent-olive); font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }
.home-category-cta i { font-size: 12px; }

@media (max-width: 768px) {
  .home-category-media { height: 180px; }
  .home-category-content { padding: var(--spacing-md) var(--spacing-lg); }
}

/* Home: produits en vedette épurés */
.home-featured-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--spacing-xl); }
.home-product-card { border: 1px solid rgba(139, 149, 109, 0.12); border-radius: var(--radius-2xl); overflow: hidden; background: var(--color-white); transition: transform .25s ease, box-shadow .25s ease; box-shadow: var(--shadow-sm); }
.home-product-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.home-product-media { height: 220px; position: relative; overflow: hidden; }
.home-product-img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.home-product-card:hover .home-product-img { transform: scale(1.05); }
.home-badge { position: absolute; top: var(--spacing-sm); left: var(--spacing-sm); background: var(--color-accent-olive); color: #fff; font-size: var(--font-size-xs); padding: 4px 8px; border-radius: 999px; }
.home-product-content { padding: var(--spacing-lg); }
.home-product-meta { margin-bottom: 6px; }
.home-product-category { color: var(--color-accent-olive); font-size: var(--font-size-xs); font-weight: 700; letter-spacing: .6px; text-transform: uppercase; }
.home-product-name { font-size: var(--font-size-lg); margin: 0 0 6px; color: var(--color-text-primary); }
.home-product-price { display: flex; align-items: baseline; gap: var(--spacing-xs); }

.categories-section,
.featured-products-section {
    padding: var(--spacing-4xl) 0;
    background-color: var(--color-bg-secondary);
}

.featured-products-section {
    background-color: var(--color-bg-primary);
}

.categories-grid,
.products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--spacing-xl);
}

/* Cartes catégories */
.category-card {
    background-color: var(--color-white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    transition: transform var(--transition-normal), box-shadow var(--transition-normal);
    box-shadow: var(--shadow-sm);
    border: 1px solid rgba(139, 149, 109, 0.12);
}

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

.category-link {
    display: block;
    color: inherit;
}

.category-image {
    height: 200px;
    overflow: hidden;
}

.category-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.category-card:hover .category-img {
    transform: scale(1.05);
}

.category-content {
    padding: var(--spacing-lg);
}

.category-name {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.category-description {
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-md);
    line-height: 1.5;
}

.category-cta {
    color: var(--color-accent-olive);
    font-weight: 500;
    font-size: var(--font-size-sm);
}

/* Cartes produits */
.product-card {
    background-color: var(--color-white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    transition: transform var(--transition-normal), box-shadow var(--transition-normal);
    box-shadow: var(--shadow-sm);
    position: relative;
    border: 1px solid rgba(139, 149, 109, 0.12);
}

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

.product-link {
    display: block;
    color: inherit;
}

.product-image {
    height: 240px;
    overflow: hidden;
    position: relative;
}

.product-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

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

.product-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-bg-secondary);
    color: var(--color-text-secondary);
    font-style: italic;
}

.product-badge {
    position: absolute;
    top: var(--spacing-sm);
    right: var(--spacing-sm);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-white);
}

.badge-featured {
    background-color: var(--color-accent-terra);
}

.product-content {
    padding: var(--spacing-lg);
}

.product-category {
    font-size: var(--font-size-xs);
    color: var(--color-accent-olive);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: var(--spacing-xs);
}

.product-name {
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    line-height: 1.4;
}

.product-concentration {
    font-size: var(--font-size-sm);
    color: var(--color-accent-sage);
    font-weight: 600;
    margin-bottom: var(--spacing-sm);
}

/* Badges effets CBD */
.product-effects {
    margin-bottom: var(--spacing-md);
}

.effect-badge {
    display: inline-block;
    padding: 2px var(--spacing-xs);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: 500;
    margin-right: var(--spacing-xs);
    margin-bottom: var(--spacing-xs);
    line-height: 1.4;
    color: var(--color-accent-olive);
    background-color: rgba(127, 176, 105, 0.12);
    border: 1px solid rgba(127, 176, 105, 0.25);
}

/* Variantes unifiées et sobres pour éviter l'effet arc-en-ciel */
.badge-blue,
.badge-green,
.badge-red,
.badge-purple,
.badge-orange,
.badge-yellow {
    color: var(--color-accent-olive);
    background-color: rgba(127, 176, 105, 0.12);
    border-color: rgba(127, 176, 105, 0.25);
}

.badge-gray {
    color: var(--color-text-secondary);
    background-color: var(--color-bg-secondary);
    border-color: rgba(0, 0, 0, 0.06);
}

.product-price {
    margin-bottom: var(--spacing-sm);
}

.price-compare {
    text-decoration: line-through;
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    margin-right: var(--spacing-xs);
}

.price-current {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-accent-olive);
}

/* Statuts de stock */
.stock-status {
    font-size: var(--font-size-xs);
    font-weight: 600;
    padding: 2px var(--spacing-xs);
    border-radius: var(--radius-sm);
}

.stock-ok {
    background-color: rgba(127, 176, 105, 0.1);
    color: var(--color-success);
}

.stock-low {
    background-color: rgba(244, 162, 97, 0.1);
    color: var(--color-warning);
}

.stock-out {
    background-color: rgba(231, 111, 81, 0.1);
    color: var(--color-error);
}

/* ========================================
   SECTION À PROPOS
======================================== */

.about-section {
    padding: var(--spacing-4xl) 0;
    background-color: var(--color-white);
}

.about-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-3xl);
    align-items: center;
}

.about-title {
    font-size: var(--font-size-3xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
}

.about-description {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-lg);
}

.about-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
    margin: var(--spacing-xl) 0;
}

.stat-item {
    text-align: center;
    padding: var(--spacing-md);
    background-color: var(--color-bg-primary);
    border-radius: var(--radius-lg);
}

.stat-number {
    font-size: var(--font-size-2xl);
    font-weight: 600;
    color: var(--color-accent-olive);
    font-family: var(--font-heading);
}

.stat-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-top: var(--spacing-xs);
}

.about-image {
    position: relative;
}

.about-img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
}

/* Continue dans le prochain bloc... */ 

/* ========================================
   SECTION BLOG
======================================== */

.blog-section {
    padding: var(--spacing-4xl) 0;
    background-color: var(--color-bg-secondary);
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--spacing-xl);
}

.blog-card {
    background-color: var(--color-white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    transition: all var(--transition-normal);
    box-shadow: var(--shadow-sm);
}

.blog-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.blog-link {
    display: block;
    color: inherit;
}

.blog-image {
    height: 180px;
    overflow: hidden;
}

.blog-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.blog-card:hover .blog-img {
    transform: scale(1.05);
}

.blog-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-bg-secondary);
    font-size: var(--font-size-3xl);
}

.blog-content {
    padding: var(--spacing-lg);
}

.blog-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.blog-category {
    font-size: var(--font-size-xs);
    color: var(--color-accent-olive);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.blog-date {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
}

.blog-title {
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    line-height: 1.4;
}

.blog-excerpt {
    color: var(--color-text-secondary);
    line-height: 1.5;
    margin-bottom: var(--spacing-md);
}

.blog-author {
    font-size: var(--font-size-sm);
    color: var(--color-accent-olive);
    font-style: italic;
}

/* ========================================
   NEWSLETTER CTA
======================================== */

.newsletter-cta-section {
    padding: var(--spacing-4xl) 0;
    background: linear-gradient(135deg, var(--color-accent-olive) 0%, var(--color-accent-sage) 100%);
    color: var(--color-white);
}

.newsletter-cta-content {
    text-align: center;
    max-width: 600px;
    margin: 0 auto;
}

.newsletter-cta-title {
    font-size: var(--font-size-3xl);
    color: var(--color-white);
    margin-bottom: var(--spacing-lg);
}

.newsletter-cta-description {
    font-size: var(--font-size-lg);
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: var(--spacing-xl);
}

.newsletter-cta-form {
    max-width: 400px;
    margin: 0 auto;
}

.newsletter-cta-input-group {
    display: flex;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

.newsletter-cta-input {
    flex: 1;
    padding: var(--spacing-md);
    border: none;
    border-radius: var(--radius-lg);
    font-size: var(--font-size-base);
    background-color: rgba(255, 255, 255, 0.9);
    color: var(--color-text-primary);
}

.newsletter-cta-input:focus {
    outline: none;
    background-color: var(--color-white);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.3);
}

.newsletter-cta-consent {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: var(--font-size-sm);
    color: rgba(255, 255, 255, 0.9);
    cursor: pointer;
}

.newsletter-cta-consent input[type="checkbox"] {
    appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, 0.5);
    border-radius: var(--radius-sm);
    background-color: transparent;
    cursor: pointer;
    position: relative;
}

.newsletter-cta-consent input[type="checkbox"]:checked {
    background-color: var(--color-white);
    border-color: var(--color-white);
}

.newsletter-cta-consent input[type="checkbox"]:checked::after {
    content: '✓';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: var(--color-accent-olive);
    font-weight: bold;
    font-size: 12px;
}

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

.main-footer {
    background-color: var(--color-text-primary);
    color: var(--color-white);
    padding-top: var(--spacing-4xl);
}

.footer-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--spacing-2xl);
    margin-bottom: var(--spacing-3xl);
}

.footer-section {
    color: rgba(255, 255, 255, 0.9);
}

.footer-title {
    font-size: var(--font-size-lg);
    color: var(--color-white);
    margin-bottom: var(--spacing-lg);
    font-weight: 600;
}

.footer-description {
    line-height: 1.6;
    margin-bottom: var(--spacing-lg);
}

.footer-contact .contact-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
    font-size: var(--font-size-sm);
}

.contact-link {
    color: rgba(255, 255, 255, 0.9);
}

.contact-link:hover, .contact-link:focus {
    color: var(--color-accent-sage);
}

.footer-hours {
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-lg);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.hours-title {
    font-size: var(--font-size-base);
    color: var(--color-white);
    margin-bottom: var(--spacing-sm);
    font-weight: 600;
}

.hours-text {
    font-size: var(--font-size-sm);
    line-height: 1.4;
}

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

.footer-nav-list li {
    margin-bottom: var(--spacing-sm);
}

.footer-nav-link {
    color: rgba(255, 255, 255, 0.8);
    font-size: var(--font-size-sm);
    transition: color var(--transition-fast);
}

.footer-nav-link:hover, .footer-nav-link:focus {
    color: var(--color-accent-sage);
}

/* Newsletter footer */
.footer-newsletter {
    margin-top: var(--spacing-lg);
}

.newsletter-title {
    font-size: var(--font-size-base);
    color: var(--color-white);
    margin-bottom: var(--spacing-sm);
}

.newsletter-description {
    font-size: var(--font-size-sm);
    margin-bottom: var(--spacing-md);
}

.newsletter-form {
    max-width: 300px;
}

.newsletter-input-group {
    display: flex;
    margin-bottom: var(--spacing-sm);
}

.newsletter-input {
    flex: 1;
    padding: var(--spacing-sm);
    border: none;
    border-radius: var(--radius-md) 0 0 var(--radius-md);
    font-size: var(--font-size-sm);
}

.newsletter-button {
    background-color: var(--color-accent-sage);
    color: var(--color-white);
    border: none;
    padding: var(--spacing-sm);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    cursor: pointer;
    transition: background-color var(--transition-fast);
}

.newsletter-button:hover, .newsletter-button:focus {
    background-color: var(--color-accent-olive);
}

.newsletter-consent {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-xs);
    font-size: var(--font-size-xs);
    cursor: pointer;
}

.newsletter-consent input[type="checkbox"] {
    margin-top: 2px;
}

.checkmark {
    position: relative;
}

/* Réseaux sociaux */
.footer-social {
    margin-top: var(--spacing-lg);
}

.social-title {
    font-size: var(--font-size-base);
    color: var(--color-white);
    margin-bottom: var(--spacing-sm);
}

.social-links {
    display: flex;
    gap: var(--spacing-sm);
}

.social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--color-white);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.social-link:hover, .social-link:focus {
    background-color: var(--color-accent-sage);
    transform: translateY(-2px);
}

/* Avertissement légal footer */
.footer-legal-notice {
    background-color: rgba(0, 0, 0, 0.2);
    padding: var(--spacing-lg) 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: var(--spacing-lg);
}

.legal-notice-content {
    text-align: center;
}

.legal-warning {
    font-size: var(--font-size-sm);
    color: var(--color-accent-terra);
    margin-bottom: var(--spacing-sm);
    font-weight: 500;
}

.legal-compliance {
    font-size: var(--font-size-xs);
    color: rgba(255, 255, 255, 0.7);
}

/* Copyright et certifications */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: var(--spacing-lg) 0;
}

.footer-bottom-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.footer-copyright {
    font-size: var(--font-size-sm);
    color: rgba(255, 255, 255, 0.7);
}

.footer-tagline {
    font-size: var(--font-size-xs);
    color: var(--color-accent-sage);
    margin-top: var(--spacing-xs);
}

.footer-certifications {
    display: flex;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

.certification-badge {
    padding: var(--spacing-xs) var(--spacing-sm);
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    color: rgba(255, 255, 255, 0.9);
}

.badge-text {
    font-weight: 500;
}

/* ========================================
   MESSAGES FLASH
======================================== */

.flash-messages-container {
    padding: var(--spacing-md) 0;
}

.alert {
    padding: var(--spacing-md) var(--spacing-lg);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-md);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 500;
}

.alert-success {
    background-color: rgba(127, 176, 105, 0.1);
    color: var(--color-success);
    border: 1px solid rgba(127, 176, 105, 0.3);
}

.alert-warning {
    background-color: rgba(244, 162, 97, 0.1);
    color: var(--color-warning);
    border: 1px solid rgba(244, 162, 97, 0.3);
}

.alert-error {
    background-color: rgba(231, 111, 81, 0.1);
    color: var(--color-error);
    border: 1px solid rgba(231, 111, 81, 0.3);
}

.alert-info {
    background-color: rgba(42, 157, 143, 0.1);
    color: var(--color-info);
    border: 1px solid rgba(42, 157, 143, 0.3);
}

.alert-close {
    background: none;
    border: none;
    font-size: var(--font-size-lg);
    cursor: pointer;
    opacity: 0.7;
    transition: opacity var(--transition-fast);
}

.alert-close:hover, .alert-close:focus {
    opacity: 1;
}

/* ========================================
   BREADCRUMBS
======================================== */

.breadcrumbs {
    padding: var(--spacing-md) 0;
    /*background-color: var(--color-bg-secondary);*/
}

.breadcrumbs-list {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    list-style: none;
    font-size: var(--font-size-sm);
}

.breadcrumbs-item::after {
    content: '›';
    margin-left: var(--spacing-sm);
    color: var(--color-text-secondary);
}

.breadcrumbs-item:last-child::after {
    display: none;
}

.breadcrumbs-link {
    color: var(--color-accent-olive);
}

.breadcrumbs-link:hover, .breadcrumbs-link:focus {
    color: var(--color-text-primary);
}

.breadcrumbs-current {
    color: var(--color-text-secondary);
    font-weight: 500;
}

/* ========================================
   PAGINATION
======================================== */

.pagination {
    margin: var(--spacing-xl) 0;
    text-align: center;
}

.pagination-list {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    list-style: none;
}

.pagination-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: var(--spacing-sm);
    color: var(--color-accent-olive);
    border: 1px solid var(--color-bg-secondary);
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
    font-weight: 500;
}

.pagination-link:hover, .pagination-link:focus {
    background-color: var(--color-accent-olive);
    color: var(--color-white);
    border-color: var(--color-accent-olive);
}

.pagination-link-current {
    background-color: var(--color-accent-olive);
    color: var(--color-white);
    border-color: var(--color-accent-olive);
}

.pagination-ellipsis {
    padding: var(--spacing-sm);
    color: var(--color-text-secondary);
}

/* ========================================
   ÉTOILES DE NOTATION
======================================== */

.rating-stars {
    display: inline-flex;
    gap: 2px;
    font-size: var(--font-size-sm);
}

.star {
    color: var(--color-stone);
    transition: color var(--transition-fast);
}

.star-filled {
    color: var(--color-warning);
}

/* ========================================
   UTILITAIRES
======================================== */

/* Espacement */
.mb-0 { margin-bottom: 0; }
.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xl); }

.mt-0 { margin-top: 0; }
.mt-sm { margin-top: var(--spacing-sm); }
.mt-md { margin-top: var(--spacing-md); }
.mt-lg { margin-top: var(--spacing-lg); }
.mt-xl { margin-top: var(--spacing-xl); }

.pt-0 { padding-top: 0; }
.pt-sm { padding-top: var(--spacing-sm); }
.pt-md { padding-top: var(--spacing-md); }
.pt-lg { padding-top: var(--spacing-lg); }
.pt-xl { padding-top: var(--spacing-xl); }

.pb-0 { padding-bottom: 0; }
.pb-sm { padding-bottom: var(--spacing-sm); }
.pb-md { padding-bottom: var(--spacing-md); }
.pb-lg { padding-bottom: var(--spacing-lg); }
.pb-xl { padding-bottom: var(--spacing-xl); }

/* Texte */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-primary { color: var(--color-text-primary); }
.text-secondary { color: var(--color-text-secondary); }
.text-accent { color: var(--color-accent-olive); }
.text-white { color: var(--color-white); }

.font-bold { font-weight: 600; }
.font-medium { font-weight: 500; }
.font-normal { font-weight: 400; }

.text-xs { font-size: var(--font-size-xs); }
.text-sm { font-size: var(--font-size-sm); }
.text-base { font-size: var(--font-size-base); }
.text-lg { font-size: var(--font-size-lg); }
.text-xl { font-size: var(--font-size-xl); }

/* Affichage */
.hidden { display: none; }
.block { display: block; }
.inline-block { display: inline-block; }
.flex { display: flex; }
.grid { display: grid; }

/* Visibilité */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ========================================
   HERO CATÉGORIE - STYLE BOUTIQUE
======================================== */

/* Hero catégorie avec le même style que boutique */
.category-hero {
    background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-primary) 100%);
    padding: 3rem 0;
    margin-bottom: 2rem;
}

.category-hero-content {
    text-align: center;
}

.category-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-4xl);
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.category-description {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin-bottom: 2rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
}

.category-stats {
    display: flex;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.category-stats .stat-item {
    text-align: center;
    padding: 1rem;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    min-width: 150px;
}

.category-stats .stat-item strong {
    display: block;
    color: var(--color-text-primary);
    font-weight: 600;
    font-size: var(--font-size-lg);
    margin-bottom: 0.25rem;
}

/* Responsive pour category hero */
@media (max-width: 768px) {
    .category-title {
        font-size: var(--font-size-3xl);
    }
    
    .category-stats {
        gap: 1rem;
    }
    
    .category-stats .stat-item {
        min-width: 120px;
        padding: 0.75rem;
    }
    
    .category-stats .stat-item strong {
        font-size: var(--font-size-base);
    }
}

/* ========================================
   ANIMATIONS
======================================== */

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

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

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

.animate-fadeIn {
    animation: fadeIn 0.5s ease-in-out;
}

.animate-fadeInUp {
    animation: fadeInUp 0.6s ease-out;
}

.animate-pulse {
    animation: pulse 2s infinite;
}

/* Animations au scroll (optionnel) */
@media (prefers-reduced-motion: no-preference) {
    .scroll-animate {
        opacity: 0;
        transform: translateY(30px);
        transition: all 0.8s ease-out;
    }
    
    .scroll-animate.visible {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ========================================
   BOUTIQUE E-COMMERCE - STYLES
======================================== */

/* Layout boutique */
.shop-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2rem;
    margin-top: 2rem;
}

.shop-sidebar {
    position: sticky;
    top: 2rem;
    height: fit-content;
}

.shop-main {
    min-width: 0; /* Permet le shrinking dans grid */
}

/* Hero boutique */
.shop-hero {
    background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-primary) 100%);
    padding: 3rem 0;
    margin-bottom: 2rem;
}

.shop-hero-content {
    text-align: center;
}

.shop-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-4xl);
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.shop-description {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin-bottom: 2rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.shop-stats {
    display: flex;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.shop-stats .stat-item {
    text-align: center;
    padding: 1rem;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    min-width: 150px;
}

/* Bannière légale */
.legal-banner {
    background-color: var(--color-accent-terra);
    color: var(--color-white);
    padding: 0.75rem 0;
    font-weight: 500;
    text-align: center;
    font-size: var(--font-size-sm);
}

/* Filtres */
.filters-container {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-bg-secondary);
}

.filters-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--color-bg-secondary);
}

.filter-group {
    margin-bottom: 1.5rem;
}

.filter-label {
    display: block;
    font-weight: 500;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
    font-size: var(--font-size-sm);
}

.filter-input,
.filter-select {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--color-stone);
    border-radius: var(--radius-md);
    font-size: var(--font-size-base);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    background: var(--color-white);
}

.filter-input:focus,
.filter-select:focus {
    outline: none;
    border-color: var(--color-accent-olive);
    box-shadow: 0 0 0 2px rgba(139, 149, 109, 0.2);
}

.price-range {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
}

.price-input {
    flex: 1;
    padding: 0.75rem;
    border: 1px solid var(--color-stone);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    min-width: 0; /* Permet le shrinking */
    width: 100%;
}

.price-input:focus {
    outline: none;
    border-color: var(--color-accent-olive);
    box-shadow: 0 0 0 2px rgba(139, 149, 109, 0.2);
}

.price-separator {
    color: var(--color-text-secondary);
    font-weight: 500;
    flex-shrink: 0;
    padding: 0 0.25rem;
}

.filter-actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-bg-secondary);
}

/* Barre d'outils */
.shop-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding: 1rem;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.results-count {
    font-weight: 500;
    color: var(--color-text-primary);
    margin: 0;
}

.sort-form {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.sort-label {
    font-weight: 500;
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    white-space: nowrap;
}

.sort-select {
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--color-stone);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    background: var(--color-white);
    min-width: 150px;
}

/* Grille produits */
.products-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    margin-bottom: 3rem;
}

/* Amélioration des cartes produits existantes */
.product-actions {
    padding: 1rem;
    border-top: 1px solid var(--color-bg-secondary);
    margin-top: auto;
}

.btn-add-to-cart {
    width: 100%;
    justify-content: center;
    gap: 0.5rem;
}

.btn-disabled {
    background-color: var(--color-stone);
    color: var(--color-text-secondary);
    cursor: not-allowed;
}

/* Badges produits supplémentaires */
.badge-out-of-stock {
    background-color: var(--color-error);
}

.badge-low-stock {
    background-color: var(--color-warning);
}

/* No products */
.no-products {
    text-align: center;
    padding: 4rem 2rem;
    background: var(--color-white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.no-products-icon {
    font-size: 4rem;
    margin-bottom: 1rem;
}

.no-products-title {
    font-size: var(--font-size-2xl);
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.no-products-description {
    color: var(--color-text-secondary);
    margin-bottom: 2rem;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}

/* ========================================
   FICHE PRODUIT
======================================== */

.product-detail {
    padding: 2rem 0;
}

.product-detail-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-bottom: 3rem;
}

/* Galerie produit */
.product-gallery {
    position: sticky;
    top: 2rem;
}

.gallery-main {
    position: relative;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-xl);
    overflow: hidden;
    margin-bottom: 1rem;
    aspect-ratio: 1;
}

.gallery-main-item {
    display: none;
    width: 100%;
    height: 100%;
}

.gallery-main-item.active {
    display: block;
}

.gallery-main-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    cursor: zoom-in;
}

.product-placeholder-large {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-secondary);
    font-style: italic;
}

.product-badges {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.gallery-thumbs {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    padding: 0.5rem 0;
}

.gallery-thumb {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    border: 2px solid transparent;
    border-radius: var(--radius-md);
    overflow: hidden;
    cursor: pointer;
    transition: border-color 0.2s ease;
    background: none;
    padding: 0;
}

.gallery-thumb.active {
    border-color: var(--color-accent-olive);
}

.gallery-thumb:hover {
    border-color: var(--color-accent-sage);
}

.gallery-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Informations produit */
.product-info {
    padding: 1rem 0;
}

.product-header {
    margin-bottom: 2rem;
}

.product-category-tag {
    display: inline-block;
    background: var(--color-accent-olive);
    color: var(--color-white);
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 1rem;
}

.product-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-3xl);
    color: var(--color-text-primary);
    margin-bottom: 1rem;
    line-height: 1.2;
}

.product-concentration-main {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.concentration-label {
    color: var(--color-text-secondary);
    font-weight: 500;
}

.concentration-value {
    background: var(--color-accent-sage);
    color: var(--color-white);
    padding: 0.5rem 1rem;
    border-radius: var(--radius-md);
    font-weight: 600;
    font-size: var(--font-size-lg);
}

/* Prix produit */
.product-pricing {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
}

/* Pricing - Version épurée et élégante */
.product-pricing {
    margin-bottom: var(--spacing-xl);
}

.price-group {
    margin-bottom: var(--spacing-sm);
}

.price-main {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-xs);
}

.price-current {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-text-primary);
    line-height: 1;
}

.price-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    background: var(--color-accent-olive);
    color: white;
    font-size: var(--font-size-sm);
    font-weight: 600;
    border-radius: 4px;
}

.price-original {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-sm);
}

.price-compare {
    text-decoration: line-through;
    opacity: 0.7;
}

.price-info {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin: 0;
}

/* Responsive */
@media (max-width: 768px) {
    .price-current {
        font-size: 1.75rem;
    }
    
    .price-main {
        flex-wrap: wrap;
        gap: var(--spacing-sm);
    }
}

/* Anciens styles pour compatibilité */
.price-compare-large {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    text-decoration: line-through;
    margin-bottom: 0.5rem;
}

.price-current-large {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
}

.price-discount {
    display: inline-block;
    background: var(--color-error);
    color: var(--color-white);
    padding: 0.25rem 0.5rem;
    border-radius: var(--radius-md);
    font-size: var(--font-size-xs);
    font-weight: 600;
    margin-left: 1rem;
}

/* Sections produit */
.product-effects-section,
.product-specs {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-bg-secondary);
}

.effects-title,
.specs-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.effects-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.specs-grid {
    display: grid;
    gap: 0.75rem;
}

.spec-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--color-bg-secondary);
}

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

.spec-label {
    font-weight: 500;
    color: var(--color-text-secondary);
}

.spec-value {
    font-weight: 600;
    color: var(--color-text-primary);
}

/* Variantes produit */
.product-variants {
    margin-bottom: 2rem;
}

.variants-title {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.variants-list {
    display: grid;
    gap: 0.75rem;
}

.variant-option {
    display: block;
    cursor: pointer;
    position: relative;
}

.variant-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.variant-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border: 2px solid var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    transition: all 0.2s ease;
}

.variant-option input:checked + .variant-content {
    border-color: var(--color-accent-olive);
    background: rgba(139, 149, 109, 0.1);
}

.variant-name {
    font-weight: 500;
    color: var(--color-text-primary);
}

.variant-price {
    font-weight: 600;
    color: var(--color-accent-olive);
}

.variant-stock-out {
    color: var(--color-error);
    font-size: var(--font-size-sm);
    font-weight: 500;
}

/* Achat produit */
.product-purchase {
    margin-bottom: 2rem;
}

.stock-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.stock-detail {
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

.purchase-form {
    display: grid;
    gap: 1.5rem;
}

.quantity-selector {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.quantity-label {
    font-weight: 500;
    color: var(--color-text-primary);
    white-space: nowrap;
}

.quantity-controls {
    display: flex;
    align-items: center;
    border: 1px solid var(--color-stone);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.quantity-btn {
    background: var(--color-bg-secondary);
    border: none;
    padding: 0.75rem 1rem;
    cursor: pointer;
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
    transition: background-color 0.2s ease;
    line-height: 1;
}

.quantity-btn:hover {
    background: var(--color-stone);
}

.quantity-input {
    border: none;
    padding: 0.75rem;
    text-align: center;
    width: 80px;
    font-size: var(--font-size-base);
    font-weight: 500;
}

.quantity-input:focus {
    outline: none;
}

.btn-add-to-cart-detail {
    padding: 1rem 2rem;
    font-size: var(--font-size-lg);
    font-weight: 600;
}

.out-of-stock-notice {
    text-align: center;
    padding: 2rem;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-stone);
}

.btn-notify-stock {
    margin-top: 1rem;
}

/* Avantages produit */
.product-benefits {
    margin-top: 2rem;
    padding: 1.5rem;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
}

.benefit-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.benefit-item:last-child {
    margin-bottom: 0;
}

.benefit-icon {
    font-size: var(--font-size-lg);
}

.benefit-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

/* Avantages compacts sous le panier */
.product-benefits-compact {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-bg-secondary);
}

.benefit-compact-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
}

.benefit-compact-item i {
    font-size: var(--font-size-sm);
    color: var(--color-accent-olive);
}

/* Onglets description */
.product-description {
    padding: 3rem 0;
    background: var(--color-bg-secondary);
}

.description-tabs {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.tabs-nav {
    display: flex;
    background: var(--color-bg-secondary);
    border-bottom: 1px solid var(--color-stone);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.tab-button {
    flex: 1 0 auto;
    background: none;
    border: none;
    padding: 1.25rem 1rem;
    font-weight: 500;
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: all 0.2s ease;
    border-bottom: 3px solid transparent;
    font-size: var(--font-size-sm);
    white-space: nowrap;
}

.tab-button.active {
    color: var(--color-text-primary);
    background: var(--color-white);
    border-bottom-color: var(--color-accent-olive);
}

.tab-button:hover:not(.active) {
    color: var(--color-text-primary);
    background: rgba(255, 255, 255, 0.5);
}

.tabs-content {
    padding: 2rem;
}

@media (max-width: 768px) {
  .tab-button { padding: 1rem .75rem; font-size: 14px; }
  .tabs-content { padding: 1.25rem; }
}

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
}

.description-content,
.usage-content,
.legal-content {
    color: var(--color-text-primary);
    line-height: 1.6;
}

.description-short .lead {
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    font-weight: 500;
    margin-bottom: 1.5rem;
}

.specs-table {
    width: 100%;
    border-collapse: collapse;
}

.specs-table td {
    padding: 1rem;
    border-bottom: 1px solid var(--color-bg-secondary);
    vertical-align: top;
}

.specs-table td:first-child {
    font-weight: 500;
    color: var(--color-text-secondary);
    width: 40%;
}

.specs-table td:last-child {
    color: var(--color-text-primary);
}

.usage-warnings {
    margin-top: 2rem;
    padding: 1.5rem;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-warning);
}

.usage-warnings h4 {
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.usage-warnings ul {
    margin: 0;
    padding-left: 1.5rem;
}

.usage-warnings li {
    margin-bottom: 0.5rem;
    color: var(--color-text-secondary);
}

/* ========================================
   PANIER
======================================== */

.cart-section {
    padding: 2rem 0;
}

/* Cacher le sticky checkout sur desktop */
.cart-sticky-checkout {
    display: none;
}

.cart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-bg-secondary);
}

.cart-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-3xl);
    color: var(--color-text-primary);
    margin: 0;
}

.cart-summary-mobile {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--color-bg-secondary);
    border-radius: var(--radius-md);
}

.cart-items-count {
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    font-weight: 500;
}

.cart-total-mobile {
    color: var(--color-text-primary);
    font-size: var(--font-size-lg);
    font-weight: 700;
}

.cart-layout {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 3rem;
}

/* Articles du panier */
.cart-items {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 2rem;
    box-shadow: var(--shadow-sm);
    height: fit-content;
}

.cart-items-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-bg-secondary);
}

.cart-items-header h2 {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin: 0;
}

.btn-clear-cart {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--color-text-secondary);
    text-decoration: none;
    font-size: var(--font-size-sm);
    padding: 0.5rem 0.75rem;
    border-radius: var(--radius-md);
    transition: all 0.2s ease;
    background: transparent;
    border: 1px solid var(--color-bg-secondary);
}

.btn-clear-cart i { 
    color: var(--color-text-secondary);
    font-size: 0.9rem;
}

.btn-clear-cart:hover {
    background: var(--color-bg-secondary);
    border-color: var(--color-text-secondary);
    color: var(--color-text-primary);
}

.btn-clear-cart:hover i {
    color: var(--color-text-primary);
}

/* Icônes Font Awesome dans avantages panier */
.cart-benefits .benefit-icon i {
    color: var(--color-accent-olive);
}

.cart-items-list {
    display: grid;
    gap: 1.5rem;
}

.cart-item {
    display: grid;
    grid-template-columns: 100px 1fr auto;
    gap: 1rem;
    padding: 1.5rem;
    border: 1px solid var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    transition: border-color 0.2s ease;
    position: relative;
}

.cart-item:hover {
    border-color: var(--color-accent-olive);
}

.cart-item-image {
    width: 100px;
    height: 100px;
    border-radius: var(--radius-md);
    overflow: hidden;
}

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

.cart-item-placeholder {
    width: 100%;
    height: 100%;
    background: var(--color-bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-secondary);
    font-style: italic;
    font-size: var(--font-size-sm);
}

.cart-item-details {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.cart-item-name {
    font-weight: 600;
    color: var(--color-text-primary);
    text-decoration: none;
    font-size: var(--font-size-lg);
}

.cart-item-name:hover {
    color: var(--color-accent-olive);
}

.cart-item-variant {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.cart-item-price-unit {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.cart-item-stock {
    margin-top: 0.5rem;
}

.cart-item-actions {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: flex-end;
}

.cart-quantity-controls {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: center;
}

.quantity-input-group {
    display: flex;
    align-items: center;
    border: 1px solid var(--color-stone);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.cart-quantity-input {
    border: none;
    padding: 0.5rem;
    text-align: center;
    width: 60px;
    font-size: var(--font-size-sm);
    font-weight: 500;
}

.cart-quantity-input:focus {
    outline: none;
}

.btn-remove-item {
    color: var(--color-text-secondary);
    text-decoration: none;
    font-size: var(--font-size-sm);
    padding: 0.5rem;
    border-radius: var(--radius-md);
    transition: all 0.2s ease;
    background: transparent;
    border: 1px solid var(--color-bg-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    line-height: 1;
}

.btn-remove-item .btn-label {
    display: none;
}

.btn-remove-item i { 
    color: var(--color-text-secondary);
    font-size: 1rem;
}

.btn-remove-item:hover {
    background: var(--color-bg-secondary);
    border-color: var(--color-text-secondary);
    color: var(--color-text-primary);
}

.btn-remove-item:hover i {
    color: var(--color-text-primary);
}

/* Positionner le bouton supprimer en haut à droite de l'item */
.cart-item .cart-remove-form {
    position: absolute;
    top: 10px;
    right: 10px;
}

.cart-item-total {
    display: flex;
    align-items: center;
    justify-content: center;
}

.item-total-price {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-text-primary);
}

/* Sidebar panier */
.cart-sidebar {
    position: sticky;
    top: 2rem;
    height: fit-content;
}

.cart-summary {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 2rem;
    box-shadow: var(--shadow-sm);
    margin-bottom: 2rem;
}

.summary-title {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-bg-secondary);
}

.summary-details {
    margin-bottom: 2rem;
}

.summary-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.75rem;
}

.summary-label {
    color: var(--color-text-secondary);
    font-weight: 500;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.shipping-method-info {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    font-weight: 400;
    opacity: 0.8;
}

.summary-value {
    color: var(--color-text-primary);
    font-weight: 600;
}

.summary-total {
    font-size: var(--font-size-lg);
    padding-top: 0.75rem;
    border-top: 2px solid var(--color-bg-secondary);
    margin-top: 1rem;
}

.summary-total .summary-label,
.summary-total .summary-value {
    color: var(--color-text-primary);
    font-weight: 700;
}

.summary-tax {
    margin-top: 0.5rem;
    text-align: right;
}

.summary-tax small {
    color: var(--color-text-secondary);
    font-size: var(--font-size-xs);
}

.free-shipping {
    color: var(--color-success);
    font-weight: 600;
}

.summary-notice {
    margin: 1rem 0;
    padding: 1rem;
    background: rgba(139, 149, 109, 0.1);
    border-radius: var(--radius-md);
    border-left: 3px solid var(--color-accent-olive);
}

.free-shipping-notice {
    margin: 0;
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    font-weight: 500;
}

.summary-actions {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Responsive - Panier */
@media (max-width: 768px) {
    .cart-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    .cart-items {
        padding: 1rem;
    }
    .cart-item {
        grid-template-columns: 80px 1fr;
        align-items: start;
    }
    .cart-item-image {
        width: 80px;
        height: 80px;
    }
    .cart-item-details {
        gap: 0.4rem;
    }
    .cart-item-actions {
        align-items: flex-start;
    }
    /* Bouton supprimer: ne pas superposer sur mobile */
    .cart-item .cart-remove-form {
        position: static;
        margin-left: auto;
    }
    .cart-item-total {
        grid-column: 1 / -1;
        justify-content: flex-end;
        margin-top: 0.5rem;
    }
    .cart-quantity-controls {
        flex-direction: row;
        align-items: center;
        gap: 0.5rem;
    }
}

/* Panier vide */
.cart-empty {
    text-align: center;
    padding: 4rem 2rem;
    background: var(--color-white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.cart-empty-icon {
    font-size: 4rem;
    margin-bottom: 2rem;
    opacity: 0.5;
}

.cart-empty-title {
    font-size: var(--font-size-2xl);
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.cart-empty-description {
    color: var(--color-text-secondary);
    margin-bottom: 2rem;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}

/* Avantages panier - Version épurée et stylée */
.cart-benefits {
    background: var(--color-bg-primary);
    border-radius: var(--radius-lg);
    padding: var(--spacing-md);
    margin-top: var(--spacing-lg);
    border: 1px solid var(--color-bg-secondary);
}

.benefits-title {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-sm);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
}

.benefits-list {
    display: grid;
    gap: var(--spacing-sm);
}

.benefit-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-xs) 0;
}

.benefit-icon {
    color: var(--color-accent-olive);
    font-size: 1rem;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(139, 149, 91, 0.08);
    border-radius: 50%;
}

.benefit-icon i {
    font-size: 0.8rem;
}

.benefit-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    line-height: 1.4;
    font-weight: 500;
}

/* ========================================
   SUGGESTIONS PANIER
======================================== */

.cart-suggestions {
    padding: var(--spacing-xl) 0;
    background: var(--color-background);
    border-top: 1px solid var(--color-border);
    margin-top: var(--spacing-xl);
}

.cart-suggestions-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--spacing-md);
}

.cart-suggestions-header {
    text-align: center;
    margin-bottom: var(--spacing-xl);
}

.cart-suggestions-title {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    position: relative;
}

.cart-suggestions-title::after {
    content: '';
    display: block;
    width: 80px;
    height: 4px;
    background: linear-gradient(135deg, var(--color-accent-olive), var(--color-accent-sage));
    margin: var(--spacing-sm) auto 0;
    border-radius: 2px;
}

.cart-suggestions-subtitle {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    margin-bottom: 0;
}

.suggestions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-lg);
    margin-top: var(--spacing-lg);
}

.suggestion-item {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    transition: all 0.3s ease;
    position: relative;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.suggestion-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
    border-color: var(--color-accent-olive);
}

.suggestion-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(135deg, var(--color-accent-olive), var(--color-accent-sage));
    transform: scaleX(0);
    transition: transform 0.3s ease;
    z-index: 1;
}

.suggestion-item:hover::before {
    transform: scaleX(1);
}

.suggestion-image {
    width: 100%;
    height: 200px;
    position: relative;
    overflow: hidden;
    background: var(--color-background);
}

.suggestion-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.suggestion-item:hover .suggestion-img {
    transform: scale(1.08);
}

.suggestion-placeholder {
    width: 100%;
    height: 100%;
    background: var(--color-background);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    border: 2px dashed var(--color-border);
}

.suggestion-placeholder::before {
    content: "📦";
    font-size: var(--font-size-2xl);
    margin-bottom: var(--spacing-xs);
}

.suggestion-badge {
    position: absolute;
    top: var(--spacing-sm);
    right: var(--spacing-sm);
    font-size: var(--font-size-xs);
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    z-index: 2;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.suggestion-badge.featured {
    background: var(--color-accent-olive);
    color: var(--color-white);
}

.suggestion-badge.bestseller {
    background: var(--color-accent-olive);
    color: var(--color-white);
}

.suggestion-badge.new {
    background: var(--color-accent-olive);
    color: var(--color-white);
}

.suggestion-badge.promo {
    background: var(--color-accent-olive);
    color: var(--color-white);
}

.suggestion-content {
    padding: var(--spacing-md);
}

.suggestion-category {
    font-size: var(--font-size-xs);
    color: var(--color-accent-olive);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-weight: 600;
    margin-bottom: var(--spacing-xs);
    display: block;
}

.suggestion-name {
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.6em;
}

.suggestion-name:hover {
    color: var(--color-accent-olive);
}

.suggestion-description {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-md);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 4.5em;
}

.suggestion-effects {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
    margin-bottom: var(--spacing-md);
}

.suggestion-effect {
    font-size: var(--font-size-xs);
    padding: 3px 8px;
    border-radius: 12px;
    background: rgba(139, 165, 115, 0.1);
    color: var(--color-accent-olive);
    font-weight: 500;
    border: 1px solid rgba(139, 165, 115, 0.2);
}

.suggestion-concentration {
    display: inline-block;
    font-size: var(--font-size-sm);
    color: var(--color-accent-sage);
    font-weight: 600;
    background: rgba(139, 165, 115, 0.15);
    padding: 4px 10px;
    border-radius: 6px;
    margin-bottom: var(--spacing-sm);
}

.suggestion-pricing {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--color-border);
}

.suggestion-price {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-xs);
}

.suggestion-price-current {
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: var(--color-accent-olive);
}

.suggestion-price-compare {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    text-decoration: line-through;
}

.suggestion-discount {
    font-size: var(--font-size-xs);
    background: linear-gradient(135deg, #ef4444, #dc2626);
    color: var(--color-white);
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 600;
}

.suggestion-stock {
    font-size: var(--font-size-xs);
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 6px;
    text-align: center;
    margin-bottom: var(--spacing-sm);
}

.suggestion-stock.in-stock {
    background: rgba(16, 185, 129, 0.1);
    color: #059669;
    border: 1px solid rgba(16, 185, 129, 0.2);
}

.suggestion-stock.low-stock {
    background: rgba(245, 158, 11, 0.1);
    color: #d97706;
    border: 1px solid rgba(245, 158, 11, 0.2);
}

.suggestion-stock.out-of-stock {
    background: rgba(239, 68, 68, 0.1);
    color: #dc2626;
    border: 1px solid rgba(239, 68, 68, 0.2);
}

.suggestion-actions {
    display: flex;
    gap: var(--spacing-sm);
}

.btn-add-suggestion {
    flex: 1;
    background: linear-gradient(135deg, var(--color-accent-olive), var(--color-accent-sage));
    color: var(--color-white);
    border: none;
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--border-radius);
    font-weight: 600;
    font-size: var(--font-size-sm);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
    position: relative;
    overflow: hidden;
}

.btn-add-suggestion::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s ease;
}

.btn-add-suggestion:hover::before {
    left: 100%;
}

.btn-add-suggestion:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(139, 165, 115, 0.4);
    background: linear-gradient(135deg, var(--color-accent-sage), var(--color-accent-olive));
}

.btn-add-suggestion:active {
    transform: translateY(0);
}

.btn-view-suggestion {
    padding: var(--spacing-sm);
    background: var(--color-white);
    border: 2px solid var(--color-border);
    border-radius: var(--border-radius);
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
}

.btn-view-suggestion:hover {
    border-color: var(--color-accent-olive);
    color: var(--color-accent-olive);
    background: rgba(139, 165, 115, 0.05);
    transform: scale(1.05);
}

/* État désactivé pour rupture de stock */
.suggestion-stock.out-of-stock ~ .suggestion-actions .btn-add-suggestion {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
    background: var(--color-text-secondary);
}

.suggestion-stock.out-of-stock ~ .suggestion-actions .btn-add-suggestion::before {
    display: none;
}

/* Types de suggestions */
.cart-suggestions.personalized {
    background: linear-gradient(135deg, rgba(139, 165, 115, 0.03), rgba(173, 195, 147, 0.03));
    border-left: 4px solid var(--color-accent-olive);
}

.cart-suggestions.trending {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.03), rgba(249, 115, 22, 0.03));
    border-left: 4px solid #f59e0b;
}

.cart-suggestions.related {
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.03), rgba(168, 85, 247, 0.03));
    border-left: 4px solid #8b5cf6;
}

/* Chargement et états vides */
.suggestions-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 200px;
    color: var(--color-text-secondary);
}

.suggestions-empty {
    text-align: center;
    padding: var(--spacing-xl);
    color: var(--color-text-secondary);
}

.suggestions-empty-icon {
    font-size: var(--font-size-4xl);
    margin-bottom: var(--spacing-md);
    opacity: 0.5;
}

/* Responsive design */
@media (max-width: 1024px) {
    .suggestions-grid {
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: var(--spacing-md);
    }
}

@media (max-width: 768px) {
    .cart-suggestions {
        padding: var(--spacing-lg) 0;
    }
    
    .cart-suggestions-container {
        padding: 0 var(--spacing-sm);
    }
    
    .suggestions-grid {
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
        gap: var(--spacing-sm);
    }
    
    .suggestion-image {
        height: 160px;
    }
    
    .suggestion-content {
        padding: var(--spacing-sm);
    }
    
    .suggestion-actions {
        flex-direction: column;
    }
    
    .btn-view-suggestion {
        padding: var(--spacing-xs) var(--spacing-sm);
        min-width: auto;
        width: 100%;
    }
    
    .cart-suggestions-title {
        font-size: var(--font-size-xl);
    }
}

@media (max-width: 480px) {
    .suggestions-grid {
        grid-template-columns: 1fr;
    }
    
    .suggestion-item {
        margin-bottom: var(--spacing-sm);
    }
    
    .suggestion-image {
        height: 140px;
    }
    
    .cart-suggestions-title {
        font-size: var(--font-size-lg);
    }
    
    .cart-suggestions-title::after {
        width: 60px;
        height: 3px;
    }
}

/* ========================================
   ACCOUNT PAGES (Login, Register, Profile, Orders)
======================================== */

/* ========================================
   LIVRAISON & RETOURS (shipping.php)
   Scope: .shipping-page to avoid side-effects
======================================== */

.shipping-page .hero-section {
    background: linear-gradient(180deg, rgba(139,165,115,.08), transparent);
}

.shipping-page .section-title {
    font-family: var(--font-heading);
    margin-bottom: var(--spacing-sm);
}

.shipping-page .account-layout {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: var(--spacing-2xl);
    align-items: start;
}

.shipping-page .account-card {
    padding: clamp(var(--spacing-lg), 2vw, var(--spacing-xl));
}

/* Listes d'infos et puces cohérentes */
.shipping-page .order-infos-list {
    display: grid;
    gap: var(--spacing-md);
}

.shipping-page .about-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}

.shipping-page .about-list li {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    color: var(--color-text-secondary);
}

.shipping-page .about-list i,
.shipping-page .order-infos-list i {
    color: var(--color-accent-olive);
    min-width: 20px;
    text-align: center;
}

.shipping-page .strong {
    font-weight: 700;
    color: var(--color-text-primary);
}

/* Encadré latéral récapitulatif */
.shipping-page aside.account-card {
    border: 1px solid rgba(139,165,115,0.2);
    background: linear-gradient(180deg, rgba(139,165,115,0.06), transparent);
    border-radius: var(--radius-xl);
}

/* Notices */
.shipping-page .free-shipping { color: var(--color-success); font-weight: 700; }
.shipping-page .note,
.shipping-page .policy-note {
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-accent-olive);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-lg);
    color: var(--color-text-secondary);
}

/* FAQ */
.shipping-page .faq-item { padding: var(--spacing-sm) 0; border-bottom: 1px solid var(--color-bg-secondary); }
.shipping-page .faq-item:last-child { border-bottom: none; }

/* Responsive */
@media (max-width: 1024px) {
    .shipping-page .account-layout { grid-template-columns: 1fr; gap: var(--spacing-xl); }
}

@media (max-width: 640px) {
    .shipping-page .account-card { padding: var(--spacing-lg); }
    .shipping-page .about-list li { align-items: flex-start; }
}

/* ========================================
   Retours & remboursements (returns-section)
   Scoped styles for shipping.php dedicated block
======================================== */

.shipping-page .returns-section {
    padding: var(--spacing-2xl) 0 var(--spacing-3xl);
}

.shipping-page .returns-header {
    text-align: center;
    margin-bottom: var(--spacing-xl);
}

.shipping-page .returns-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-2xl);
    color: var(--color-text-primary);
}

.shipping-page .returns-subtitle {
    color: var(--color-text-secondary);
    margin-top: var(--spacing-xs);
}

.shipping-page .returns-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-xl);
}

.shipping-page .returns-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-xl);
    box-shadow: var(--shadow-sm);
}

.shipping-page .returns-card-title {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.shipping-page .returns-card-title i { color: var(--color-accent-olive); }

.shipping-page .returns-text { color: var(--color-text-secondary); margin: 0 0 var(--spacing-sm) 0; }
.shipping-page .returns-text.subtle { font-size: var(--font-size-sm); opacity: .9; }

.shipping-page .returns-list,
.shipping-page .returns-steps-list {
    margin: var(--spacing-sm) 0 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 6px;
}

.shipping-page .returns-list li { display: flex; align-items: center; gap: var(--spacing-sm); }
.shipping-page .returns-list i { color: var(--color-accent-olive); }

.shipping-page .returns-steps-list li { counter-increment: step; position: relative; padding-left: 28px; }
.shipping-page .returns-steps-list li::before {
    content: counter(step);
    position: absolute;
    left: 0;
    top: 2px;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: rgba(139,165,115,.15);
    color: var(--color-accent-olive);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-xs);
    font-weight: 700;
}

.shipping-page .returns-note {
    margin-top: var(--spacing-sm);
    background: var(--color-bg-secondary);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-accent-olive);
    border-radius: var(--radius-md);
    padding: var(--spacing-sm) var(--spacing-md);
    color: var(--color-text-secondary);
}

@media (max-width: 1024px) {
    .shipping-page .returns-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
    .shipping-page .returns-grid { grid-template-columns: 1fr; gap: var(--spacing-lg); }
    .shipping-page .returns-card { padding: var(--spacing-lg); }
}

.account-auth-section,
.account-section {
    padding: var(--spacing-4xl) 0;
    background: var(--color-bg-secondary);
}

.auth-layout,
.account-layout {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--spacing-2xl);
}

.auth-card,
.account-card {
    background: var(--color-white);
    border: 1px solid rgba(139, 149, 109, 0.12);
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-sm);
    padding: clamp(var(--spacing-xl), 2vw, var(--spacing-2xl));
}

.auth-title,
.account-heading { 
    font-family: var(--font-heading);
    font-size: var(--font-size-3xl);
    margin-bottom: var(--spacing-sm);
    color: var(--color-text-primary);
}

.auth-subtitle {
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xl);
}

.auth-form .form-group + .form-group,
.account-form .form-group + .form-group { margin-top: var(--spacing-md); }

.auth-form .form-actions,
.account-form .form-actions { margin-top: var(--spacing-xl); display: flex; gap: var(--spacing-md); }

/* Ensure 2 columns rows align inputs perfectly */
.auth-form .form-row,
.account-form .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-xl);
    align-items: baseline;
}
.auth-form .form-group,
.account-form .form-group {
    margin: 0;
}
.auth-form .form-label,
.account-form .form-label {
    display: block;
    font-weight: 600;
    margin-bottom: 8px;
    min-height: 24px; /* keeps inputs aligned when label lengths differ */
}
.auth-form .form-input,
.account-form .form-input {
    width: 100%;
}

.auth-aside,
.account-sidebar { align-self: start; }

.auth-benefits {
    background: linear-gradient(180deg, rgba(139,165,115,0.1), transparent);
    border: 1px solid rgba(139,165,115,0.2);
    border-radius: var(--radius-2xl);
    padding: var(--spacing-xl);
}

.benefits-title { font-family: var(--font-heading); margin-bottom: var(--spacing-md); }
.benefits-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--spacing-sm); }
.benefits-list li { display: flex; align-items: center; gap: var(--spacing-sm); color: var(--color-text-secondary); }
.benefits-list i { color: var(--color-accent-olive); }

/* Account sidebar */
.account-sidebar .account-card { position: sticky; top: var(--spacing-xl); }
.account-title { font-family: var(--font-heading); margin-bottom: var(--spacing-md); }
.account-nav { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.account-nav a { display: flex; align-items: center; gap: var(--spacing-sm); padding: 10px 12px; border-radius: var(--radius-lg); color: var(--color-text-secondary); }
.account-nav a:hover { background: var(--color-bg-secondary); color: var(--color-text-primary); }
.account-nav .active a, .account-nav a.active { background: rgba(139,165,115,0.12); color: var(--color-accent-olive); font-weight: 600; }

/* Orders */
.orders-list { display: grid; gap: var(--spacing-lg); }
.order-item { 
    border: 2px solid var(--color-bg-secondary); 
    border-radius: var(--radius-xl); 
    padding: var(--spacing-lg); 
    background: var(--color-white);
    transition: all 0.2s ease;
}
.order-item:hover {
    border-color: var(--color-accent-olive);
    box-shadow: 0 2px 8px rgba(139, 149, 91, 0.1);
}
.order-header { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--color-bg-secondary);
}
.order-id { 
    font-weight: 700; 
    color: var(--color-text-primary);
    font-size: var(--font-size-lg);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}
.order-cc-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.6rem;
    background: rgba(139, 149, 91, 0.1);
    color: var(--color-accent-olive);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: 600;
}
.order-cc-badge i {
    font-size: 0.85rem;
}
.order-date { 
    color: var(--color-text-secondary); 
    font-size: var(--font-size-sm);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}
.order-date i {
    color: var(--color-accent-olive);
}
.order-body { 
    display: flex; 
    gap: var(--spacing-xl); 
    align-items: center; 
    margin-bottom: var(--spacing-md); 
}
.order-status-badge { 
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--font-size-sm); 
    padding: 0.5rem 0.85rem; 
    border-radius: var(--radius-md); 
    background: var(--color-bg-secondary); 
    color: var(--color-text-secondary); 
    border: 2px solid transparent;
    font-weight: 600;
}
.order-status-badge.status-pending { 
    background: rgba(234,179,8,.12); 
    color: #854d0e; 
    border-color: rgba(234,179,8,.25); 
}
.order-status-badge.status-confirmed { 
    background: rgba(139, 149, 91, 0.1); 
    color: var(--color-accent-olive); 
    border-color: var(--color-accent-olive); 
}
.order-status-badge.status-processing { 
    background: rgba(59,130,246,.1); 
    color: #1d4ed8; 
    border-color: rgba(59,130,246,.25); 
}
.order-status-badge.status-shipped { 
    background: rgba(99,102,241,.1); 
    color: #4f46e5; 
    border-color: rgba(99,102,241,.25); 
}
.order-status-badge.status-delivered { 
    background: rgba(16,185,129,.1); 
    color: #059669; 
    border-color: rgba(16,185,129,.25); 
}
.order-status-badge.status-cancelled { 
    background: rgba(239,68,68,.08); 
    color: #b91c1c; 
    border-color: rgba(239,68,68,.2); 
}
.order-status-badge.status-refunded { 
    background: rgba(14,165,233,.1); 
    color: #0369a1; 
    border-color: rgba(14,165,233,.25); 
}
.order-total { 
    margin-left: auto; 
    font-weight: 700; 
    color: var(--color-text-primary);
    font-size: var(--font-size-xl);
}
.order-actions { 
    display: flex; 
    gap: var(--spacing-sm); 
}
.order-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

/* Empty state */
.empty-state { text-align: center; padding: var(--spacing-2xl); border: 1px dashed var(--color-border); border-radius: var(--radius-2xl); background: var(--color-white); }
.empty-icon { font-size: var(--font-size-4xl); color: var(--color-accent-olive); margin-bottom: var(--spacing-sm); }

/* Checkout minis */
.connected-note { display: flex; gap: var(--spacing-md); align-items: center; background: var(--color-white); border: 1px solid var(--color-border); padding: var(--spacing-md); border-radius: var(--radius-xl); margin-bottom: var(--spacing-lg); }
.connected-icon { color: var(--color-accent-olive); font-size: var(--font-size-xl); }
.item-placeholder--small { display: flex; align-items: center; justify-content: center; color: var(--color-text-secondary); background: var(--color-bg-secondary); }

/* Addresses */
.addresses-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--spacing-xl); }
.address-card { border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-white); overflow: hidden; }
.address-header { display: flex; align-items: center; justify-content: space-between; padding: var(--spacing-md) var(--spacing-lg); border-bottom: 1px solid var(--color-border); }
.address-badges { display: flex; gap: var(--spacing-sm); align-items: center; }
.badge { display: inline-block; font-size: var(--font-size-xs); font-weight: 700; padding: 3px 8px; border-radius: 999px; letter-spacing: .2px; }
.badge-type.billing { background: rgba(99,102,241,.1); color: #4f46e5; border: 1px solid rgba(99,102,241,.2); }
.badge-type.shipping { background: rgba(16,185,129,.1); color: #059669; border: 1px solid rgba(16,185,129,.2); }
.badge-default { background: rgba(139,165,115,.15); color: var(--color-accent-olive); border: 1px solid rgba(139,165,115,.25); }
.address-actions { display: flex; gap: var(--spacing-sm); }
.address-body { padding: var(--spacing-lg); display: grid; gap: 4px; color: var(--color-text-primary); }
.address-line { line-height: 1.5; }
.inline-form { display: inline-block; }

/* Account - Order detail */
.order-detail-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: var(--spacing-xl); margin-top: var(--spacing-lg); }
.order-detail-grid--full { grid-template-columns: 1.2fr 0.8fr; }
.order-infos-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; color: var(--color-text-secondary); }
.order-items { margin-top: var(--spacing-xl); }
.order-items-list { display: grid; gap: var(--spacing-sm); }
.order-items-list--full { grid-template-columns: 1fr; }
.order-item-row { display: grid; grid-template-columns: 1fr auto auto auto; gap: var(--spacing-md); padding: var(--spacing-md); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); }
.order-item-row--full { grid-template-columns: auto 1fr auto auto auto; align-items: center; }
.order-item-row .item-media { width: 56px; height: 56px; border-radius: var(--radius-md); overflow: hidden; background: var(--color-bg-secondary); display: flex; align-items: center; justify-content: center; }
.order-item-row .item-thumb { width: 100%; height: 100%; object-fit: cover; }
.order-item-row .item-name { font-weight: 600; color: var(--color-text-primary); }
.order-item-row .item-total { font-weight: 700; color: var(--color-text-primary); }
.badge.status-confirmed { background: rgba(16,185,129,.1); color: #059669; border: 1px solid rgba(16,185,129,.2); padding: 2px 8px; border-radius: 999px; font-size: var(--font-size-xs); }
.badge.status-pending { background: rgba(234,179,8,.12); color: #854d0e; border: 1px solid rgba(234,179,8,.25); padding: 2px 8px; border-radius: 999px; font-size: var(--font-size-xs); }
.badge.status-processing { background: rgba(59,130,246,.1); color: #1d4ed8; border: 1px solid rgba(59,130,246,.2); padding: 2px 8px; border-radius: 999px; font-size: var(--font-size-xs); }
.badge.status-shipped { background: rgba(99,102,241,.1); color: #4f46e5; border: 1px solid rgba(99,102,241,.2); padding: 2px 8px; border-radius: 999px; font-size: var(--font-size-xs); }
.badge.status-delivered { background: rgba(16,185,129,.1); color: #065f46; border: 1px solid rgba(16,185,129,.2); padding: 2px 8px; border-radius: 999px; font-size: var(--font-size-xs); }
.badge.status-cancelled { background: rgba(239,68,68,.08); color: #b91c1c; border: 1px solid rgba(239,68,68,.2); padding: 2px 8px; border-radius: 999px; font-size: var(--font-size-xs); }
.badge.status-refunded { background: rgba(14,165,233,.1); color: #0369a1; border: 1px solid rgba(14,165,233,.2); padding: 2px 8px; border-radius: 999px; font-size: var(--font-size-xs); }

/* Click & Collect dans commandes */
.click-collect-badge-inline {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.75rem;
    background: rgba(139, 149, 91, 0.1);
    color: var(--color-accent-olive);
    border-radius: var(--radius-md);
    font-weight: 600;
}

.click-collect-badge-inline i {
    color: var(--color-accent-olive);
}

.click-collect-address-block {
    background: rgba(139, 149, 91, 0.05);
    border: 2px solid var(--color-accent-olive);
    padding: var(--spacing-lg);
    border-radius: var(--radius-lg);
    position: relative;
}

.click-collect-address-block .cc-badge {
    display: inline-block;
    background: var(--color-accent-olive);
    color: white;
    padding: 0.25rem 0.75rem;
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--spacing-sm);
}

.click-collect-address-block .cc-info {
    margin-top: var(--spacing-md);
    padding: var(--spacing-sm);
    background: rgba(139, 149, 91, 0.1);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.click-collect-address-block .cc-info i {
    color: var(--color-accent-olive);
}

/* Responsive adjustments for order detail */
/* ===== Guide CBD ===== */
.guide-hero { padding: var(--spacing-4xl) 0 var(--spacing-2xl); background: linear-gradient(180deg, rgba(139,165,115,.08), transparent); }
.guide-hero-content { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: var(--spacing-2xl); align-items: center; }
.guide-hero-actions { display: flex; gap: var(--spacing-sm); justify-content: flex-end; flex-wrap: wrap; }
.guide-summary-section { padding: var(--spacing-2xl) 0; }
.guide-card { padding: var(--spacing-xl); }
.guide-summary { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--spacing-sm); }
.guide-summary a { color: var(--color-accent-olive); font-weight: 600; }
.guide-section { padding: var(--spacing-2xl) 0; }
.guide-note { background: rgba(139,165,115,.08); border: 1px solid rgba(139,165,115,.2); padding: var(--spacing-md); border-radius: var(--radius-lg); margin-top: var(--spacing-md); }
.guide-legal { color: var(--color-text-secondary); font-size: var(--font-size-sm); margin-top: var(--spacing-sm); }
.guide-diff { display: grid; gap: var(--spacing-sm); }
.diff-row { display: grid; grid-template-columns: 220px 1fr; gap: var(--spacing-md); padding: var(--spacing-md); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); }
.diff-label { font-weight: 700; color: var(--color-text-primary); }
.diff-text { color: var(--color-text-secondary); }
.guide-faq { display: grid; gap: var(--spacing-sm); }
.faq-row { display: grid; grid-template-columns: 300px 1fr; gap: var(--spacing-md); padding: var(--spacing-md); border-radius: var(--radius-lg); background: var(--color-bg-secondary); }
.faq-q { font-weight: 700; }
.faq-a { color: var(--color-text-secondary); }

@media (max-width: 992px) {
  .guide-hero-content { grid-template-columns: 1fr; }
  .guide-hero-actions { justify-content: flex-start; }
  .diff-row { grid-template-columns: 1fr; }
  .faq-row { grid-template-columns: 1fr; }
}

/* ===== Contact page: responsive helpers ===== */
@media (max-width: 1200px) {
  .account-layout { grid-template-columns: 1fr !important; gap: var(--spacing-xl); }
  .account-layout .account-card { padding: var(--spacing-lg); }
}

@media (max-width: 768px) {
  .account-form .form-row { grid-template-columns: 1fr; gap: var(--spacing-lg); }
  .form-actions { flex-direction: column; }
  .form-actions .btn { width: 100%; }
  .account-card iframe { height: 280px; }
}

@media (max-width: 420px) {
  .account-layout .account-card { padding: var(--spacing-md); }
}

/* ===== About page ===== */
.about-hero { padding: var(--spacing-4xl) 0 var(--spacing-2xl); background: linear-gradient(180deg, rgba(139,165,115,.08), transparent); }
.about-hero-content { display: grid; grid-template-columns: 1.2fr .8fr; gap: var(--spacing-2xl); align-items: center; }
.about-hero-highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-sm); }
.about-hero-highlights .highlight-item { background: var(--color-white); border: 1px solid var(--color-border); padding: var(--spacing-md); border-radius: var(--radius-lg); display: flex; align-items: center; gap: var(--spacing-sm); box-shadow: var(--shadow-sm); }
.about-section { padding: var(--spacing-xl) 0; }
.about-section:nth-of-type(even) { background: var(--color-bg-secondary); }
.about-card { padding: var(--spacing-xl); }
.about-values { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--spacing-lg); }
.about-value-card { background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-xl); padding: var(--spacing-xl); text-align: center; box-shadow: var(--shadow-sm); transition: transform .2s ease, box-shadow .2s ease; }
.about-value-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.value-icon {
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--color-accent-olive);
  color: #fff;
  border: 1px solid rgba(0,0,0,0.04);
  box-shadow: 0 6px 14px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.04);
  font-size: 22px;
  margin-bottom: var(--spacing-sm);
}
.about-value-card:hover .value-icon { box-shadow: 0 10px 18px rgba(0,0,0,.08), 0 3px 8px rgba(0,0,0,.06); transform: translateY(-1px); }
.value-title { margin-bottom: var(--spacing-xs); }
.value-text { color: var(--color-text-secondary); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-2xl); }
.about-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--spacing-sm); }
.about-list li { display: flex; align-items: center; gap: var(--spacing-sm); }
.about-timeline { position: relative; margin-top: var(--spacing-md); }
.about-timeline::before { content: ""; position: absolute; left: 10px; top: 0; bottom: 0; width: 2px; background: var(--color-border); }
.timeline-item { position: relative; padding-left: 36px; margin-bottom: var(--spacing-lg); }
.timeline-dot { position: absolute; left: 4px; width: 14px; height: 14px; background: var(--color-accent-olive); border-radius: 50%; top: 4px; box-shadow: 0 0 0 4px rgba(139,165,115,.15); }
.timeline-content h4 { margin-bottom: var(--spacing-2xs); }
.about-store { display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--spacing-2xl); align-items: center; }
.store-infos { display: grid; gap: var(--spacing-sm); }
.info-row { display: flex; align-items: center; gap: var(--spacing-sm); }

/* About: stats */
.about-stats-section { padding: var(--spacing-xl) 0; background: linear-gradient(180deg, rgba(139,165,115,.06), transparent); }
.about-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--spacing-lg); }
.stat-item { background: var(--color-white); border: 1px solid var(--color-border); border-radius: var(--radius-lg); text-align: center; padding: var(--spacing-lg); box-shadow: var(--shadow-sm); }
.stat-value { font-size: clamp(24px, 3.2vw, 36px); font-weight: 800; color: var(--color-text-primary); letter-spacing: 0.3px; }
.stat-label { color: var(--color-text-secondary); margin-top: var(--spacing-2xs); }

/* About: section title accent */
.about-card .section-title { position: relative; padding-left: 14px; }
.about-card .section-title::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 4px; border-radius: 4px; background: var(--color-accent-olive); box-shadow: 0 0 0 4px rgba(139,165,115,.12); }

@media (max-width: 1200px) {
  .about-hero-content { grid-template-columns: 1fr; }
  .about-hero-highlights { grid-template-columns: 1fr 1fr; }
  .about-values { grid-template-columns: repeat(2, 1fr); }
  .about-grid { grid-template-columns: 1fr; }
  .about-store { grid-template-columns: 1fr; }
  .about-stats { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .about-hero-highlights { grid-template-columns: 1fr; }
  .about-values { grid-template-columns: 1fr; }
  .about-stats { grid-template-columns: 1fr; }
}
@media (max-width: 992px) {
  .order-detail-grid,
  .order-detail-grid--full {
    grid-template-columns: 1fr;
  }
  .order-item-row {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 768px) {
  .order-item-row--full {
    grid-template-columns: 48px 1fr;
    grid-row-gap: var(--spacing-xs);
  }
  .order-item-row .item-media { width: 48px; height: 48px; }
  .order-item-row .item-name { word-break: break-word; }
  .order-item-row--full .item-qty,
  .order-item-row--full .item-unit,
  .order-item-row--full .item-total {
    justify-self: start;
    display: inline-block;
    margin-right: var(--spacing-md);
  }
  .order-items-list--full { gap: var(--spacing-sm); }
}

/* Tweak orders header and badges on very small screens */
@media (max-width: 540px) {
  .order-header { flex-wrap: wrap; gap: var(--spacing-xs); }
  .order-id { flex: 1 1 100%; min-width: 0; display: flex; align-items: center; gap: var(--spacing-xs); }
  .order-date { width: 100%; justify-content: flex-start; }
  .order-cc-badge { padding: 2px 6px; font-size: var(--font-size-xs); white-space: normal; word-break: break-word; overflow-wrap: anywhere; }
}

/* Checkout: bloc "livrer à une adresse différente" */
.checkout-form #shipping-address-fields {
    margin-top: var(--spacing-lg);
    padding: var(--spacing-lg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
}
.checkout-form #shipping-address-fields .form-row {
    gap: var(--spacing-lg);
}
.checkout-form #shipping-address-fields .form-group + .form-group {
    margin-top: 0;
}

/* Responsive */
@media (max-width: 992px) {
    .auth-layout, .account-layout { grid-template-columns: 1fr; }
    .account-sidebar .account-card { position: static; }
}

@media (max-width: 768px) {
    .auth-form .form-row,
    .account-form .form-row {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
}

/* Animations */
@keyframes suggestionFadeIn {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.suggestion-item {
    animation: suggestionFadeIn 0.5s ease forwards;
    opacity: 0;
}

.suggestion-item:nth-child(1) { animation-delay: 0.1s; }
.suggestion-item:nth-child(2) { animation-delay: 0.2s; }
.suggestion-item:nth-child(3) { animation-delay: 0.3s; }
.suggestion-item:nth-child(4) { animation-delay: 0.4s; }
.suggestion-item:nth-child(5) { animation-delay: 0.5s; }
.suggestion-item:nth-child(6) { animation-delay: 0.6s; }

/* Focus et accessibilité */
.btn-add-suggestion:focus,
.btn-view-suggestion:focus {
    outline: 3px solid rgba(139, 165, 115, 0.5);
    outline-offset: 2px;
}

.suggestion-name:focus {
    outline: 2px solid var(--color-accent-olive);
    outline-offset: 2px;
    border-radius: 2px;
}

/* États de hover pour améliorer l'UX */
.suggestion-item:hover .suggestion-name {
    color: var(--color-accent-olive);
}

.suggestion-item:hover .suggestion-category {
    color: var(--color-accent-sage);
}

.suggestion-item:hover .suggestion-effects .suggestion-effect {
    background: rgba(139, 165, 115, 0.2);
    border-color: rgba(139, 165, 115, 0.3);
}

/* ========================================
   CHECKOUT
======================================== */

.checkout-section {
    padding: 2rem 0;
}

/* Indicateur d'étapes */
.checkout-steps {
    margin-bottom: 3rem;
}

.step-indicator {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    background: var(--color-white);
    padding: 2rem;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    position: relative;
    flex: 1;
    max-width: 120px;
}

.step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 20px;
    left: 100%;
    width: 2rem;
    height: 2px;
    background: var(--color-stone);
    transition: background-color 0.3s ease;
}

.step.completed:not(:last-child)::after {
    background: var(--color-accent-olive);
}

.step-number {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-stone);
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    transition: all 0.3s ease;
}

.step.active .step-number {
    background: var(--color-accent-olive);
    transform: scale(1.1);
}

.step.completed .step-number {
    background: var(--color-accent-olive);
}

.step-label {
    font-weight: 500;
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    text-align: center;
    transition: color 0.3s ease;
}

.step.active .step-label,
.step.completed .step-label {
    color: var(--color-text-primary);
}

/* Layout checkout */
.checkout-layout {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 3rem;
}

.checkout-main {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 2rem;
    box-shadow: var(--shadow-sm);
    height: fit-content;
}

.step-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-2xl);
    color: var(--color-text-primary);
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-bg-secondary);
}

/* Options de connexion */
.checkout-login-options {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 2rem;
    align-items: center;
    margin-bottom: 3rem;
    padding: 2rem;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
}

.login-option,
.guest-option {
    text-align: center;
}

.login-option h3,
.guest-option h3 {
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
}

.login-option p,
.guest-option p {
    color: var(--color-text-secondary);
    margin-bottom: 1rem;
    font-size: var(--font-size-sm);
}

.login-separator {
    font-weight: 600;
    color: var(--color-text-secondary);
    font-size: var(--font-size-lg);
}

/* Formulaires checkout */
.checkout-form {
    max-width: 100%;
}

.form-fieldset {
    border: 1px solid var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    padding: 2rem;
    margin-bottom: 2rem;
}

.form-fieldset legend {
    font-weight: 600;
    color: var(--color-text-primary);
    padding: 0 1rem;
    font-size: var(--font-size-lg);
}

/* Click & Collect Option */
.click-collect-option {
    margin-bottom: var(--spacing-xl);
    padding: var(--spacing-lg);
    border: 2px solid var(--color-accent-olive);
    border-radius: var(--radius-lg);
    background: rgba(139, 149, 91, 0.03);
}

.click-collect-checkbox {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    cursor: pointer;
    padding: var(--spacing-md);
    border-radius: var(--radius-md);
    transition: background 0.2s ease;
}

.click-collect-checkbox:hover {
    background: rgba(139, 149, 91, 0.08);
}

.click-collect-checkbox input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

.click-collect-checkbox .checkbox-custom {
    width: 24px;
    height: 24px;
    border: 2px solid var(--color-accent-olive);
    border-radius: var(--radius-sm);
    flex-shrink: 0;
    position: relative;
    background: white;
    transition: all 0.2s ease;
}

.click-collect-checkbox input:checked + .checkbox-custom {
    background: var(--color-accent-olive);
}

.click-collect-checkbox input:checked + .checkbox-custom::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 7px;
    width: 6px;
    height: 10px;
    border: solid white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.click-collect-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    flex: 1;
}

.click-collect-label i {
    color: var(--color-accent-olive);
    font-size: 1.2rem;
}

.click-collect-label strong {
    color: var(--color-text-primary);
    font-size: var(--font-size-base);
}

.click-collect-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: var(--color-success);
    color: white;
    font-size: var(--font-size-xs);
    font-weight: 600;
    border-radius: var(--radius-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.click-collect-badge-paid {
    background: var(--color-accent-olive);
    color: white;
}

.click-collect-info {
    margin-top: var(--spacing-md);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--color-bg-secondary);
}

.click-collect-address {
    display: flex;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
    background: white;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-bg-secondary);
}

.address-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(139, 149, 91, 0.1);
    border-radius: var(--radius-md);
    color: var(--color-accent-olive);
    font-size: 1.3rem;
    flex-shrink: 0;
}

.address-content strong {
    display: block;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
    font-size: var(--font-size-base);
}

.address-content p {
    margin: 0;
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

.address-instructions {
    margin-top: var(--spacing-sm);
    padding: var(--spacing-sm);
    background: rgba(139, 149, 91, 0.05);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    display: flex;
    gap: var(--spacing-xs);
}

.address-instructions i {
    color: var(--color-accent-olive);
    margin-top: 2px;
    flex-shrink: 0;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}

.form-row:last-child {
    margin-bottom: 0;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.form-label {
    font-weight: 500;
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
}

.form-input,
.form-select {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid var(--color-stone);
    border-radius: var(--radius-md);
    font-size: var(--font-size-base);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    background: var(--color-white);
}

.form-input:focus,
.form-select:focus {
    outline: none;
    border-color: var(--color-accent-olive);
    box-shadow: 0 0 0 2px rgba(139, 149, 109, 0.2);
}

.form-help {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    font-style: italic;
}

.checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    cursor: pointer;
    font-size: var(--font-size-sm);
    line-height: 1.5;
}

.checkbox-label input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.checkbox-custom {
    width: 20px;
    height: 20px;
    border: 2px solid var(--color-stone);
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    background: var(--color-white);
    flex-shrink: 0;
    margin-top: 2px;
}

.checkbox-label input:checked + .checkbox-custom {
    background: var(--color-accent-olive);
    border-color: var(--color-accent-olive);
}

.checkbox-label input:checked + .checkbox-custom::after {
    content: '✓';
    color: var(--color-white);
    font-weight: 600;
    font-size: 12px;
}

.checkbox-label.required {
    position: relative;
}

.checkbox-label.required::after {
    content: '*';
    color: var(--color-error);
    margin-left: 0.25rem;
}

/* Méthodes de livraison */
.shipping-methods {
    display: grid;
    gap: 1rem;
    margin-bottom: 2rem;
}

.shipping-method {
    border: 2px solid var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: all 0.3s ease;
    margin-bottom: var(--spacing-md);
}

.shipping-method:hover {
    border-color: var(--color-accent-olive);
    box-shadow: 0 2px 8px rgba(139, 149, 91, 0.1);
}

.shipping-method-highlight {
    border-color: var(--color-accent-olive);
    background: rgba(139, 149, 91, 0.03);
}

.shipping-method-label {
    display: block;
    cursor: pointer;
    margin: 0;
}

.shipping-method input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.shipping-method input:checked + .shipping-method-content {
    background: rgba(139, 149, 91, 0.08);
}

.shipping-method-highlight input:checked + .shipping-method-content {
    background: rgba(139, 149, 91, 0.12);
}

.shipping-method-content {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    transition: all 0.2s ease;
}

.method-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-md);
    color: var(--color-accent-olive);
    font-size: 1.3rem;
    flex-shrink: 0;
}

.shipping-method input:checked + .shipping-method-content .method-icon {
    background: var(--color-accent-olive);
    color: white;
}

.method-info {
    flex: 1;
}

.method-name {
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: var(--font-size-lg);
}

.method-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    background: var(--color-accent-olive);
    color: white;
    font-size: var(--font-size-xs);
    font-weight: 600;
    border-radius: var(--radius-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.method-description {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xs);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.method-description i {
    color: var(--color-accent-olive);
    font-size: 0.9rem;
}

.method-instructions {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    margin-top: var(--spacing-xs);
    padding: var(--spacing-xs) var(--spacing-sm);
    background: rgba(139, 149, 91, 0.05);
    border-radius: var(--radius-sm);
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-xs);
    line-height: 1.5;
}

.method-instructions i {
    color: var(--color-accent-olive);
    margin-top: 2px;
    flex-shrink: 0;
}

.method-price {
    font-weight: 700;
    color: var(--color-text-primary);
    text-align: right;
    font-size: var(--font-size-lg);
    flex-shrink: 0;
}

.free-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-xs) var(--spacing-sm);
    background: var(--color-success);
    color: white;
    font-size: var(--font-size-sm);
    font-weight: 600;
    border-radius: var(--radius-md);
}

.free-badge i {
    font-size: 0.9rem;
}

.method-price .original-price {
    text-decoration: line-through;
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    margin-left: 0.5rem;
    display: block;
    margin-top: var(--spacing-xs);
}

/* Méthodes de paiement */
.payment-methods {
    display: grid;
    gap: 1rem;
    margin-bottom: 2rem;
}

.payment-method {
    border: 2px solid var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: border-color 0.2s ease;
}

.payment-method:hover {
    border-color: var(--color-accent-sage);
}

.payment-method-label {
    display: block;
    cursor: pointer;
    margin: 0;
}

.payment-method input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.payment-method input:checked + .payment-method-content {
    background: rgba(139, 149, 109, 0.1);
    border-color: var(--color-accent-olive);
}

.payment-method-content {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem;
    transition: all 0.2s ease;
}

.method-icon {
    font-size: 1.5rem;
}

.checkout-confirmations {
    margin-bottom: 2rem;
    padding: 2rem;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-accent-olive);
}

.checkout-confirmations .form-group {
    margin-bottom: 1rem;
}

.checkout-confirmations .form-group:last-child {
    margin-bottom: 0;
}

.form-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--color-bg-secondary);
}

/* Confirmation commande */
.order-confirmation {
    text-align: center;
    padding: 3rem 2rem;
}

.confirmation-icon {
    font-size: 4rem;
    margin-bottom: 2rem;
}

.confirmation-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-3xl);
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.confirmation-message {
    color: var(--color-text-secondary);
    margin-bottom: 2rem;
    line-height: 1.6;
}

.order-summary-final {
    background: var(--color-bg-secondary);
    padding: 2rem;
    border-radius: var(--radius-lg);
    margin-bottom: 2rem;
}

.order-summary-final h3 {
    margin-bottom: 1rem;
    color: var(--color-text-primary);
}

.order-number,
.order-total {
    margin-bottom: 0.5rem;
    color: var(--color-text-primary);
}

.confirmation-actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
}

/* Sidebar checkout */
.checkout-sidebar {
    position: sticky;
    top: 2rem;
    height: fit-content;
}

.order-summary {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 2rem;
    box-shadow: var(--shadow-sm);
    margin-bottom: 2rem;
}

.summary-items {
    margin-bottom: 1.5rem;
    max-height: 400px;
    overflow-y: auto;
}

.summary-item {
    display: flex;
    gap: 1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--color-bg-secondary);
}

.summary-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.item-image {
    width: 60px;
    height: 60px;
    border-radius: var(--radius-md);
    overflow: hidden;
    flex-shrink: 0;
}

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

.item-placeholder {
    width: 100%;
    height: 100%;
    background: var(--color-bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}

.item-details {
    flex: 1;
    min-width: 0;
}

.item-name {
    font-weight: 500;
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    margin-bottom: 0.25rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.item-variant,
.item-quantity {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
}

.item-price {
    font-weight: 600;
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
    text-align: right;
    flex-shrink: 0;
}

.summary-totals {
    border-top: 1px solid var(--color-bg-secondary);
    padding-top: 1rem;
}

/* Coupon summary */
.summary-coupon-row { display: flex; gap: 0.5rem; }
.summary-coupon-applied { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; flex-wrap: wrap; }

/* Sécurité checkout */
.checkout-trust {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
}

.trust-title {
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.trust-items {
    display: grid;
    gap: 0.75rem;
}

.trust-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.trust-icon {
    font-size: var(--font-size-lg);
}

.trust-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

/* ========================================
   RESPONSIVE DESIGN
======================================== */

@media (max-width: 1024px) {
    .shop-layout {
        grid-template-columns: 250px 1fr;
        gap: 1.5rem;
    }
    
    .cart-layout,
    .checkout-layout {
        grid-template-columns: 1fr 300px;
        gap: 2rem;
    }
    
    .product-detail-layout {
        gap: 2rem;
    }
}

@media (max-width: 768px) {
    /* Layout mobile */
    .shop-layout {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .shop-sidebar {
        order: -1;
        position: static;
    }
    
    .cart-layout,
    .checkout-layout {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .cart-sidebar,
    .checkout-sidebar {
        order: -1;
        position: static;
    }
    
    .product-detail-layout {
        grid-template-columns: 1fr;
        gap: 2rem;
        display: flex;
        flex-direction: column;
    }
    
    .product-gallery {
        position: static;
    }
    
    /* Informations techniques ultra-compactes sur mobile */
    .product-specs {
        padding: var(--spacing-sm);
        margin-bottom: var(--spacing-xs);
        background: transparent;
        border: none;
        border-top: 1px solid var(--color-bg-secondary);
        border-bottom: 1px solid var(--color-bg-secondary);
    }
    
    .specs-title {
        font-size: var(--font-size-xs);
        text-transform: uppercase;
        letter-spacing: 0.5px;
        color: var(--color-text-secondary);
        margin-bottom: var(--spacing-xs);
        font-weight: 600;
    }
    
    .specs-grid {
        display: flex;
        flex-wrap: wrap;
        gap: var(--spacing-xs) var(--spacing-sm);
    }
    
    .spec-item {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 0;
        border: none;
        font-size: 11px !important;
        color: var(--color-text-secondary);
    }
    
    .spec-item::after {
        content: '·';
        margin-left: var(--spacing-xs);
        color: var(--color-text-secondary);
        opacity: 0.5;
    }
    
    .spec-item:last-child::after {
        content: '';
        margin: 0;
    }
    
    .spec-item .spec-label {
        font-size: 11px !important;
        font-weight: 400;
    }
    
    .spec-item .spec-value {
        font-size: 11px !important;
        font-weight: 600;
        color: var(--color-text-primary);
    }
    
    /* Bouton fixe "Ajouter au panier" sur mobile - Version épurée */
    .btn-add-to-cart-detail {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        z-index: 999;
        border-radius: 0 !important;
        margin: 0 !important;
        box-shadow: 0 -2px 8px rgba(93, 74, 46, 0.08);
        animation: slideUpIn 0.3s ease-out;
        padding: var(--spacing-md) !important;
        font-size: var(--font-size-base);
    }
    
    @keyframes slideUpIn {
        from {
            transform: translateY(100%);
            opacity: 0;
        }
        to {
            transform: translateY(0);
            opacity: 1;
        }
    }
    
    /* Espace pour le bouton fixe */
    .product-purchase {
        margin-bottom: 70px;
    }
    
    /* Bouton sticky checkout sur page panier (mobile uniquement) - Version épurée */
    .cart-sticky-checkout {
        display: block !important;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 999;
        background: white;
        border-top: 1px solid var(--color-bg-secondary);
        box-shadow: 0 -2px 8px rgba(93, 74, 46, 0.08);
        padding: var(--spacing-sm) var(--spacing-md);
        animation: slideUpIn 0.3s ease-out;
    }
    
    /* Ajouter espace en bas pour ne pas cacher le contenu */
    .cart-section {
        padding-bottom: 100px !important;
    }
    
    .sticky-checkout-content {
        display: flex;
        flex-direction: column;
        gap: var(--spacing-sm);
        max-width: 600px;
        margin: 0 auto;
    }
    
    .sticky-checkout-info {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        padding-bottom: var(--spacing-xs);
    }
    
    .sticky-total-label {
        font-size: var(--font-size-sm);
        color: var(--color-text-secondary);
        font-weight: 400;
    }
    
    .sticky-total-value {
        font-size: var(--font-size-xl);
        font-weight: 700;
        color: var(--color-text-primary);
    }
    
    .btn-sticky-checkout {
        width: 100%;
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: var(--font-size-base);
    }
    
    /* Cartes produits mobile */
    .products-grid {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 1rem;
    }
    
    /* Toolbar mobile */
    .shop-toolbar {
        flex-direction: column;
        gap: 1rem;
        align-items: stretch;
    }
    
    .toolbar-left,
    .toolbar-right {
        text-align: center;
    }
    
    /* Panier mobile */
    .cart-header {
        flex-direction: column;
        gap: 1rem;
        align-items: stretch;
    }
    
    .cart-summary-mobile {
        display: flex;
    }
    
    /* Réorganisation : produits puis récap sur mobile */
    .cart-layout {
        display: flex;
        flex-direction: column;
        gap: var(--spacing-lg);
    }
    
    .cart-items {
        order: 1;
    }
    
    .cart-sidebar {
        order: 2;
    }
    
    .cart-item {
        grid-template-columns: 80px 1fr;
        gap: 1rem;
    }
    
    .cart-item-total {
        grid-column: 1 / -1;
        margin-top: 1rem;
        padding-top: 1rem;
        border-top: 1px solid var(--color-bg-secondary);
        justify-content: space-between;
    }
    
    .cart-item-actions {
        align-items: stretch;
    }
    
    /* Checkout mobile */
    .step-indicator {
        gap: 0.5rem;
        padding: 1rem;
    }
    
    .step {
        max-width: 80px;
    }
    
    .step:not(:last-child)::after {
        width: 1rem;
    }
    
    .step-label {
        font-size: var(--font-size-xs);
    }
    
    .checkout-login-options {
        grid-template-columns: 1fr;
        gap: 1rem;
        text-align: center;
    }
    
    .login-separator {
        grid-row: 2;
    }
    
    .form-row {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .form-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }
    
    /* Summary mobile */
    .summary-items {
        max-height: 250px;
    }

    .summary-coupon-row { flex-direction: column; }
    .summary-coupon-row .btn { width: 100%; }
    
    .summary-item {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0.5rem;
    }
    
    .item-details {
        text-align: center;
    }
    
    .item-name {
        white-space: normal;
    }
}

@media (max-width: 480px) {
    /* Layout très petit mobile */
    .products-grid {
        grid-template-columns: 1fr;
    }
    
    .cart-item {
        grid-template-columns: 1fr;
        text-align: center;
    }
    
    .cart-item-image {
        justify-self: center;
    }
    
    .confirmation-actions {
        flex-direction: column;
        align-items: stretch;
    }
    
    /* Hero responsive */
    .shop-stats {
        gap: 1rem;
    }
    
    .shop-stats .stat-item {
        min-width: auto;
        flex: 1;
        padding: 0.75rem;
    }
    
    /* Filtres responsive */
    .filters-container {
        padding: 1rem;
    }
    
    .filter-actions {
        gap: 0.5rem;
    }
}

/* Alertes et notifications */
.alert {
    padding: 1rem 1.5rem;
    border-radius: var(--radius-lg);
    margin-bottom: 1rem;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 500;
}

.alert-success {
    background: rgba(127, 176, 105, 0.1);
    color: var(--color-success);
    border: 1px solid var(--color-success);
}

.alert-error {
    background: rgba(231, 111, 81, 0.1);
    color: var(--color-error);
    border: 1px solid var(--color-error);
}

.alert-warning {
    background: rgba(244, 162, 97, 0.1);
    color: var(--color-warning);
    border: 1px solid var(--color-warning);
}

.alert-info {
    background: rgba(42, 157, 143, 0.1);
    color: var(--color-info);
    border: 1px solid var(--color-info);
}

.alert-close {
    background: none;
    border: none;
    font-size: 1.25rem;
    cursor: pointer;
    color: inherit;
    opacity: 0.7;
    transition: opacity 0.2s ease;
    padding: 0;
    margin-left: 1rem;
}

.alert-close:hover {
    opacity: 1;
}

.flash-messages {
    margin-bottom: 2rem;
}

/* Utilitaires boutique */
.btn-block {
    width: 100%;
}

.btn-large {
    padding: 1rem 2rem;
    font-size: var(--font-size-lg);
}

.btn-text {
    background: none;
    border: none;
    color: var(--color-text-secondary);
    text-decoration: underline;
    cursor: pointer;
    padding: 0.5rem;
    font-size: var(--font-size-sm);
}

.btn-text:hover {
    color: var(--color-text-primary);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ========================================
   HERO CATÉGORIE - STYLE BOUTIQUE
======================================== */

/* Hero catégorie avec le même style que boutique */
.category-hero {
    background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-primary) 100%);
    padding: 3rem 0;
    margin-bottom: 2rem;
}

.category-hero-content {
    text-align: center;
}

.category-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-4xl);
    color: var(--color-text-primary);
    margin-bottom: 1rem;
}

.category-description {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin-bottom: 2rem;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
}

.category-stats {
    display: flex;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.category-stats .stat-item {
    text-align: center;
    padding: 1rem;
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    min-width: 150px;
}

.category-stats .stat-item strong {
    display: block;
    color: var(--color-text-primary);
    font-weight: 600;
    font-size: var(--font-size-lg);
    margin-bottom: 0.25rem;
}

/* Responsive pour category hero */
@media (max-width: 768px) {
    .category-title {
        font-size: var(--font-size-3xl);
    }
    
    .category-stats {
        gap: 1rem;
    }
    
    .category-stats .stat-item {
        min-width: 120px;
        padding: 0.75rem;
    }
    
    .category-stats .stat-item strong {
        font-size: var(--font-size-base);
    }
}

/* ================================
   SEARCH PAGE - NATURALEAF STYLE
   ================================ */

/* Search Hero */
.search-hero {
    background: linear-gradient(135deg, var(--color-accent-olive) 0%, var(--color-accent-sage) 100%);
    padding: var(--spacing-4xl) 0 var(--spacing-2xl);
    margin-bottom: 0;
    color: var(--color-white);
    text-align: center;
}

.search-hero-content {
    max-width: 800px;
    margin: 0 auto;
}

.search-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-3xl);
    font-weight: 300;
    margin-bottom: var(--spacing-xl);
    color: var(--color-white);
}

.search-form-main {
    margin-bottom: var(--spacing-lg);
}

.search-input-group {
    display: flex;
    max-width: 500px;
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.9);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.search-input {
    flex: 1;
    padding: var(--spacing-md) var(--spacing-lg);
    border: none;
    font-size: var(--font-size-base);
    background: transparent;
    color: var(--color-text-primary);
    font-family: var(--font-primary);
}

.search-input:focus {
    outline: none;
}

.search-input::placeholder {
    color: var(--color-text-secondary);
    font-style: italic;
}

.search-button i {
    margin-right: var(--spacing-xs);
    font-size: 0.9rem;
}

.search-stats {
    color: rgba(255, 255, 255, 0.9);
    font-size: var(--font-size-sm);
}

.search-results-count {
    margin: 0;
    font-weight: 500;
    color: var(--color-text-primary);
    font-size: var(--font-size-base);
}

/* Popular Searches */
.popular-searches {
    padding: var(--spacing-2xl) 0;
    background: var(--color-bg-secondary);
}

.popular-searches .section-title {
    text-align: center;
    margin-bottom: var(--spacing-xl);
    font-family: var(--font-heading);
    color: var(--color-text-primary);
    font-weight: 300;
}

.popular-searches-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--spacing-md);
    max-width: 800px;
    margin: 0 auto;
}

.popular-search-tag {
    display: inline-block;
    padding: var(--spacing-sm) var(--spacing-lg);
    background: var(--color-white);
    color: var(--color-text-primary);
    text-decoration: none;
    border-radius: var(--radius-full);
    font-weight: 400;
    font-size: var(--font-size-sm);
    transition: all var(--transition-normal);
    border: 1px solid var(--color-stone);
    box-shadow: var(--shadow-sm);
}

.popular-search-tag:hover {
    background: var(--color-accent-olive);
    color: var(--color-white);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--color-accent-olive);
}

/* Search Content */
.search-content {
    padding: var(--spacing-2xl) 0;
    min-height: 60vh;
}

/* Search Suggestions */
.search-suggestions {
    text-align: center;
    padding: var(--spacing-2xl) 0;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    margin: var(--spacing-xl) 0;
}

.suggestions-title {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xl);
    font-weight: 300;
}

.suggestions-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--spacing-md);
    max-width: 600px;
    margin: 0 auto;
}

.suggestion-link {
    display: inline-block;
    padding: var(--spacing-sm) var(--spacing-lg);
    background: var(--color-accent-sage);
    color: var(--color-white);
    text-decoration: none;
    border-radius: var(--radius-lg);
    font-weight: 400;
    font-size: var(--font-size-sm);
    transition: all var(--transition-normal);
    box-shadow: var(--shadow-sm);
}

.suggestion-link:hover {
    background: var(--color-accent-olive);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* No Results */
.no-results {
    text-align: center;
    padding: var(--spacing-4xl) 0;
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    margin: var(--spacing-xl) 0;
}

.no-results-content {
    max-width: 500px;
    margin: 0 auto;
}

.no-results-icon {
    font-size: 4rem;
    margin-bottom: var(--spacing-lg);
    opacity: 0.6;
    color: var(--color-text-secondary);
}

.no-results-title {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    font-family: var(--font-heading);
    font-weight: 300;
}

.no-results-description {
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xl);
    font-size: var(--font-size-base);
    line-height: 1.6;
}

.no-results-actions {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    max-width: 280px;
    margin: 0 auto;
}

/* Search Categories */
.search-categories {
    padding: var(--spacing-2xl) 0;
}

.search-categories .section-title {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
    font-family: var(--font-heading);
    color: var(--color-text-primary);
    font-weight: 300;
}

.categories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-xl);
    margin-bottom: var(--spacing-2xl);
}

.category-search-card {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    text-decoration: none;
    color: var(--color-text-primary);
    transition: all var(--transition-normal);
    border: 1px solid var(--color-stone);
    box-shadow: var(--shadow-sm);
}

.category-search-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
    border-color: var(--color-accent-olive);
}

.category-search-card .category-image {
    height: 200px;
    position: relative;
    overflow: hidden;
    background: var(--color-bg-secondary);
}

.category-search-card .category-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-normal);
}

.category-search-card:hover .category-img {
    transform: scale(1.05);
}

.category-search-card .category-placeholder {
    width: 100%;
    height: 100%;
    background: var(--color-bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    color: var(--color-text-secondary);
}

.category-search-card .category-content {
    padding: var(--spacing-lg);
}

.category-search-card .category-name {
    font-size: var(--font-size-lg);
    font-weight: 500;
    margin-bottom: var(--spacing-sm);
    color: var(--color-text-primary);
    font-family: var(--font-heading);
}

.category-search-card .category-description {
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.5;
    margin: 0;
}

/* Popular Products in Search */
.popular-products {
    padding: var(--spacing-2xl) 0;
    background: var(--color-bg-secondary);
}

.popular-products .section-title {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
    font-family: var(--font-heading);
    color: var(--color-text-primary);
    font-weight: 300;
}

/* Responsive Search */
@media (max-width: 768px) {
    .search-hero {
        padding: var(--spacing-2xl) 0 var(--spacing-lg);
    }
    
    .search-title {
        font-size: var(--font-size-2xl);
        margin-bottom: var(--spacing-lg);
    }
    
    .search-input-group {
        max-width: 100%;
        margin: 0 var(--spacing-md);
    }
    
    .search-input,
    .search-button {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: var(--font-size-sm);
    }
    
    .popular-searches-list,
    .suggestions-list {
        flex-direction: column;
        align-items: center;
        gap: var(--spacing-sm);
    }
    
    .popular-search-tag,
    .suggestion-link {
        width: 100%;
        max-width: 280px;
        text-align: center;
    }
    
    .no-results-actions {
        max-width: 100%;
    }
    
    .categories-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .category-search-card .category-image {
        height: 150px;
    }
    
    .category-search-card .category-content {
        padding: var(--spacing-md);
    }
}

@media (max-width: 480px) {
    .search-hero {
        padding: var(--spacing-xl) 0 var(--spacing-md);
    }
    
    .search-title {
        font-size: var(--font-size-xl);
    }
    
    .search-input-group {
        margin: 0 var(--spacing-sm);
        border-radius: var(--radius-lg);
    }
    
    .search-button {
        border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
    }
    
    .popular-search-tag,
    .suggestion-link {
        padding: var(--spacing-xs) var(--spacing-md);
        font-size: var(--font-size-xs);
    }
    
    .no-results,
    .search-suggestions {
        margin: var(--spacing-md) 0;
        padding: var(--spacing-xl) var(--spacing-md);
    }
}

/* ================================
   SHOP INFO SECTION - NATURALEAF ZEN
   ================================ */

   .shop-info {
    margin-top: 100px;
    padding: var(--spacing-4xl) 0;
    background-color: var(--color-white);
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--spacing-xl);
}

.info-item {
    text-align: center;
    padding: var(--spacing-xl);
    background-color: var(--color-bg-primary);
    border-radius: var(--radius-xl);
    transition: all var(--transition-normal);
    border: 2px solid transparent;
}

.info-item:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
    border-color: var(--color-accent-sage);
}

.info-icon {
    font-size: var(--font-size-4xl);
    margin-bottom: var(--spacing-md);
    display: block;
}

.info-title {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    font-family: var(--font-heading);
}

.info-description {
    color: var(--color-text-secondary);
    line-height: 1.6;
}

/* Legal Notice */

.legal-notice-full ul {
    list-style-type: none;
    padding-left: 0;
}

.legal-notice-full ul li {
    margin-bottom: 10px;
}

/* ========================================
   BLOG STYLES - NATURALEAF
======================================== */

/* ========================================
   BLOG HERO & LAYOUT
======================================== */

.blog-hero,
.category-hero,
.search-hero {
    background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-primary) 100%);
    padding: var(--spacing-4xl) 0 var(--spacing-3xl);
    border-bottom: 1px solid rgba(139, 149, 109, 0.1);
}

.blog-hero-content,
.category-hero-content,
.search-hero-content {
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.blog-title,
.category-title,
.search-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-4xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    line-height: 1.2;
}

.blog-description,
.category-description,
.search-description {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xl);
    line-height: 1.6;
}

.blog-stats,
.category-stats {
    display: flex;
    justify-content: center;
    gap: var(--spacing-xl);
    flex-wrap: wrap;
}

.stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-xs);
}

.stat-item strong {
    font-size: var(--font-size-xl);
    color: var(--color-accent-olive);
    font-weight: 600;
}

/* ========================================
   SEARCH FORMS
======================================== */

.search-hero-form {
    margin: var(--spacing-xl) 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.search-hero-input-group {
    display: flex;
    background: var(--color-white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    overflow: hidden;
}

.search-hero-input {
    flex: 1;
    padding: var(--spacing-lg);
    border: none;
    font-size: var(--font-size-base);
    background: transparent;
}

.search-hero-input:focus {
    outline: none;
}

.search-hero-btn {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-lg) var(--spacing-xl);
    background: var(--color-accent-olive);
    color: var(--color-white);
    border: none;
    cursor: pointer;
    font-weight: 500;
    transition: background-color var(--transition-fast);
}

.search-hero-btn:hover {
    background: var(--color-text-primary);
}

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

.blog-layout,
.category-layout,
.search-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--spacing-3xl);
    align-items: start;
}

.blog-sidebar,
.category-sidebar,
.search-sidebar {
    position: sticky;
    top: var(--spacing-xl);
}

.blog-main,
.category-main,
.search-main {
    min-width: 0; /* Permet au contenu de se rétrécir */
}

/* ========================================
   FILTERS SIDEBAR
======================================== */

.filters-container {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: var(--spacing-xl);
    box-shadow: var(--shadow-sm);
    border: 1px solid rgba(139, 149, 109, 0.1);
}

.filters-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    border-bottom: 2px solid var(--color-accent-sage);
    padding-bottom: var(--spacing-sm);
}

.filter-group {
    margin-bottom: var(--spacing-xl);
}

.filter-label {
    display: block;
    font-weight: 500;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    font-size: var(--font-size-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.filter-sublabel {
    display: block;
    font-weight: 400;
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xs);
    margin-top: var(--spacing-md);
    font-size: var(--font-size-sm);
}

.filter-input,
.filter-select {
    width: 100%;
    padding: var(--spacing-sm) var(--spacing-md);
    border: 1px solid rgba(139, 149, 109, 0.3);
    border-radius: var(--radius-md);
    font-size: var(--font-size-base);
    transition: border-color var(--transition-fast);
}

.filter-input:focus,
.filter-select:focus {
    outline: none;
    border-color: var(--color-accent-olive);
}

.search-input-group {
    position: relative;
}

.search-btn {
    position: absolute;
    right: var(--spacing-sm);
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--color-accent-olive);
    cursor: pointer;
    padding: var(--spacing-xs);
    border-radius: var(--radius-sm);
    transition: background-color var(--transition-fast);
}

.search-btn:hover {
    background: rgba(139, 149, 109, 0.1);
}

/* Categories List */
.categories-list,
.resources-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.categories-list li,
.resources-list li {
    margin-bottom: var(--spacing-xs);
}

.category-link,
.resource-link {
    display: block;
    padding: var(--spacing-sm) var(--spacing-md);
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
    border-left: 3px solid transparent;
}

.category-link:hover,
.resource-link:hover,
.category-link.active {
    background: rgba(139, 149, 109, 0.1);
    color: var(--color-text-primary);
    border-left-color: var(--color-accent-olive);
}

/* Popular Keywords */
.popular-keywords {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.keyword-tag {
    padding: var(--spacing-xs) var(--spacing-sm);
    background: var(--color-bg-secondary);
    color: var(--color-text-secondary);
    text-decoration: none;
    border-radius: var(--radius-lg);
    font-size: var(--font-size-sm);
    transition: all var(--transition-fast);
}

.keyword-tag:hover {
    background: var(--color-accent-sage);
    color: var(--color-white);
    transform: translateY(-1px);
}

/* ========================================
   ARTICLES GRID & CARDS
======================================== */

.blog-toolbar,
.category-toolbar,
.search-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-xl);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid rgba(139, 149, 109, 0.1);
}

.results-count {
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    margin: 0;
}

/* Featured Articles Grid */
.featured-articles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--spacing-xl);
}

.featured-article-card {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: all var(--transition-normal);
    border: 1px solid rgba(139, 149, 109, 0.1);
}

.featured-article-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-xl);
}

.featured-article-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.featured-article-image {
    position: relative;
    max-height: 260px;
    overflow: hidden;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
}

.featured-article-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow), filter var(--transition-fast);
    filter: saturate(1.05) contrast(1.03);
}

.featured-article-card:hover .featured-article-img {
    transform: scale(1.05);
}

.featured-article-placeholder {
    width: 100%;
    height: 100%;
    background: var(--color-bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-4xl);
}

.featured-badge {
    position: absolute;
    top: var(--spacing-md);
    right: var(--spacing-md);
    background: linear-gradient(135deg, var(--color-accent-sage), var(--color-accent-olive));
    color: var(--color-white);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-lg);
    font-size: var(--font-size-xs);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: var(--shadow-sm);
}

.featured-article-content {
    padding: var(--spacing-xl);
}

.featured-article-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.featured-article-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    line-height: 1.3;
}

.featured-article-excerpt {
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-md);
}

.featured-article-author {
    color: var(--color-accent-olive);
    font-size: var(--font-size-sm);
    font-weight: 500;
}

/* Regular Articles Grid */
.articles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--spacing-xl);
}

.article-card {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: all var(--transition-normal);
    border: 1px solid rgba(139, 149, 109, 0.1);
}

.article-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}

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

.article-image {
    position: relative;
    max-height: 220px;
    overflow: hidden;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.article-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow), filter var(--transition-fast);
    filter: saturate(1.02) contrast(1.02);
}

.article-card:hover .article-img {
    transform: scale(1.03);
    filter: saturate(1.08) contrast(1.05);
}

.article-placeholder {
    width: 100%;
    height: 100%;
    background: var(--color-bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-3xl);
}

.article-badge {
    position: absolute;
    top: var(--spacing-sm);
    right: var(--spacing-sm);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-lg);
    font-size: var(--font-size-xs);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.badge-featured {
    background: var(--color-accent-olive);
    color: var(--color-white);
}

.article-content {
    padding: var(--spacing-lg);
}

.article-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-sm);
    flex-wrap: wrap;
}

.article-category {
    background: var(--color-accent-sage);
    color: var(--color-white);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-lg);
    font-size: var(--font-size-xs);
    font-weight: 500;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.article-date {
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

.article-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-md);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    line-height: 1.3;
}

.article-excerpt {
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-md);
}

.article-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
}

.article-author {
    color: var(--color-accent-olive);
    font-size: var(--font-size-sm);
    font-weight: 500;
}

.article-views {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

/* ========================================
   ARTICLE DETAIL PAGE
======================================== */

.article-detail {
    padding: var(--spacing-3xl) 0;
}

.article-header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto var(--spacing-3xl);
}

.article-meta-top {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
    flex-wrap: wrap;
}

.article-badges {
    display: flex;
    gap: var(--spacing-sm);
}

.article-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    line-height: 1.2;
}

.article-excerpt {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-xl);
    font-style: italic;
}

.article-meta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-xl);
    flex-wrap: wrap;
}

.article-author {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.author-avatar {
    width: 50px;
    height: 50px;
    background: var(--color-accent-sage);
    color: var(--color-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: var(--font-size-lg);
}

.author-info {
    text-align: left;
}

.author-name {
    font-weight: 500;
    color: var(--color-text-primary);
}

.author-role {
    font-size: var(--font-size-sm);
    color: var(--color-accent-olive);
}

.article-stats {
    display: flex;
    gap: var(--spacing-lg);
    flex-wrap: wrap;
}

.stat-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

.article-featured-image {
    margin: var(--spacing-3xl) 0;
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}

.featured-img {
    width: 100%;
    height: auto;
    display: block;
}

.article-content-wrapper {
    max-width: 800px;
    margin: 0 auto;
}

.article-content {
    font-size: var(--font-size-lg);
    line-height: 1.8;
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-3xl);
}

.article-content h1,
.article-content h2,
.article-content h3,
.article-content h4,
.article-content h5,
.article-content h6 {
    color: var(--color-text-primary);
    margin-top: var(--spacing-2xl);
    margin-bottom: var(--spacing-lg);
}

.article-content p {
    margin-bottom: var(--spacing-lg);
}

.article-content ul,
.article-content ol {
    margin-bottom: var(--spacing-lg);
    padding-left: var(--spacing-xl);
}

.article-content li {
    margin-bottom: var(--spacing-sm);
}

.article-content blockquote {
    background: var(--color-bg-secondary);
    border-left: 4px solid var(--color-accent-olive);
    padding: var(--spacing-lg);
    margin: var(--spacing-xl) 0;
    border-radius: var(--radius-md);
    font-style: italic;
}

.article-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    margin: var(--spacing-xl) 0;
}

/* Article Share */
.article-share {
    background: var(--color-bg-secondary);
    padding: var(--spacing-xl);
    border-radius: var(--radius-xl);
    text-align: center;
}

.share-title {
    font-family: var(--font-heading);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
}

.share-buttons {
    display: flex;
    justify-content: center;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

.share-btn {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-lg);
    border-radius: var(--radius-xl);
    text-decoration: none;
    font-size: var(--font-size-sm);
    font-weight: 500;
    transition: all var(--transition-fast);
    border: none;
    cursor: pointer;
}

.share-facebook {
    background: #1877f2;
    color: white;
}

.share-twitter {
    background: #1da1f2;
    color: white;
}

.share-linkedin {
    background: #0077b5;
    color: white;
}

.share-copy {
    background: var(--color-accent-olive);
    color: white;
}

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

/* ========================================
   RELATED ARTICLES
======================================== */

.related-articles-section {
    background: var(--color-bg-secondary);
    padding: var(--spacing-4xl) 0;
}

.related-articles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--spacing-xl);
}

.related-article-card {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: all var(--transition-normal);
}

.related-article-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}

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

.related-article-image {
    height: 200px;
    overflow: hidden;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.related-article-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.related-article-card:hover .related-article-img {
    transform: scale(1.03);
}

.related-article-placeholder {
    width: 100%;
    height: 100%;
    background: var(--color-bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-2xl);
}

.related-article-content {
    padding: var(--spacing-lg);
}

.related-article-meta {
    display: flex;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.related-article-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    line-height: 1.3;
}

.related-article-excerpt {
    color: var(--color-text-secondary);
    line-height: 1.6;
}

/* ========================================
   NO RESULTS & EMPTY STATES
======================================== */

.no-articles,
.no-results {
    text-align: center;
    padding: var(--spacing-4xl) var(--spacing-xl);
}

.no-articles-content,
.no-results-content {
    max-width: 500px;
    margin: 0 auto;
}

.no-articles-icon,
.no-results-icon {
    font-size: var(--font-size-5xl);
    margin-bottom: var(--spacing-lg);
    opacity: 0.5;
}

.no-articles-title,
.no-results-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-2xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.no-articles-description,
.no-results-description {
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-xl);
}

.no-articles-actions,
.no-results-actions {
    display: flex;
    justify-content: center;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

.search-suggestions {
    text-align: left;
    background: var(--color-bg-secondary);
    padding: var(--spacing-lg);
    border-radius: var(--radius-md);
    margin: var(--spacing-xl) 0;
}

.search-suggestions h4 {
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.search-suggestions ul {
    color: var(--color-text-secondary);
    margin: 0;
    padding-left: var(--spacing-lg);
}

.search-suggestions li {
    margin-bottom: var(--spacing-sm);
}

/* ========================================
   SEARCH WELCOME
======================================== */

.search-welcome {
    text-align: center;
    padding: var(--spacing-3xl) 0;
}

.search-welcome-content {
    max-width: 600px;
    margin: 0 auto var(--spacing-3xl);
}

.search-welcome-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-3xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
}

.search-welcome-description {
    color: var(--color-text-secondary);
    line-height: 1.6;
    font-size: var(--font-size-lg);
}

.popular-articles {
    margin-top: var(--spacing-3xl);
}

.popular-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-2xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xl);
    text-align: center;
}

.popular-articles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--spacing-lg);
}

.popular-article-card {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: all var(--transition-normal);
}

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

.popular-article-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.popular-article-image {
    aspect-ratio: 16/9;
    overflow: hidden;
}

.popular-article-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.popular-article-placeholder {
    width: 100%;
    height: 100%;
    background: var(--color-bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-xl);
}

.popular-article-content {
    padding: var(--spacing-lg);
}

.popular-article-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-base);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    line-height: 1.3;
}

.popular-article-meta {
    display: flex;
    justify-content: space-between;
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
}

/* ========================================
   CTA SECTIONS
======================================== */

.article-cta-section,
.category-cta-section {
    background: var(--color-bg-secondary);
    padding: var(--spacing-4xl) 0;
    text-align: center;
}

.article-cta-content,
.category-cta-content {
    max-width: 600px;
    margin: 0 auto;
}

.cta-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-3xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
}

.cta-description {
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-xl);
    font-size: var(--font-size-lg);
}

.cta-actions {
    display: flex;
    justify-content: center;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

/* ========================================
   RESPONSIVE DESIGN
======================================== */

@media (max-width: 968px) {
    .blog-layout,
    .category-layout,
    .search-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
    }
    
    .blog-sidebar,
    .category-sidebar,
    .search-sidebar {
        position: static;
        order: 2;
    }
    
    .filters-container {
        padding: var(--spacing-lg);
    }
    
    .categories-list {
        display: flex;
        flex-wrap: wrap;
        gap: var(--spacing-sm);
    }
    
    .category-link {
        white-space: nowrap;
        border-left: none;
        border-bottom: 2px solid transparent;
    }
    
    .category-link.active,
    .category-link:hover {
        border-left: none;
        border-bottom-color: var(--color-accent-olive);
    }
}

@media (max-width: 768px) {
    .blog-title,
    .category-title,
    .search-title {
        font-size: var(--font-size-3xl);
    }
    
    .article-title {
        font-size: var(--font-size-4xl);
    }
    
    .blog-stats,
    .category-stats {
        gap: var(--spacing-lg);
    }
    
    .featured-articles-grid {
        grid-template-columns: 1fr;
    }
    
    .articles-grid {
        grid-template-columns: 1fr;
    }
    
    .related-articles-grid {
        grid-template-columns: 1fr;
    }
    
    .popular-articles-grid {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    }
    
    .article-meta {
        justify-content: center;
        gap: var(--spacing-lg);
    }
    
    .article-stats {
        justify-content: center;
        gap: var(--spacing-md);
    }
    
    .share-buttons {
        gap: var(--spacing-sm);
    }
    
    .share-btn {
        padding: var(--spacing-sm);
        font-size: var(--font-size-xs);
    }
    
    .search-hero-input-group {
        flex-direction: column;
    }
    
    .search-hero-btn {
        border-radius: 0 0 var(--radius-xl) var(--radius-xl);
    }
    
    .cta-actions {
        flex-direction: column;
        align-items: center;
    }
}

@media (max-width: 480px) {
    .blog-hero,
    .category-hero,
    .search-hero {
        padding: var(--spacing-3xl) 0 var(--spacing-xl);
    }
    
    .blog-title,
    .category-title,
    .search-title {
        font-size: var(--font-size-2xl);
    }
    
    .article-title {
        font-size: var(--font-size-3xl);
    }
    
    .article-content {
        font-size: var(--font-size-base);
    }
    
    .blog-stats,
    .category-stats {
        flex-direction: column;
        gap: var(--spacing-md);
    }
    
    .article-meta {
        flex-direction: column;
        gap: var(--spacing-md);
    }
    
    .article-footer {
        flex-direction: column;
        gap: var(--spacing-sm);
        align-items: flex-start;
    }
    
    .featured-article-content,
    .article-content,
    .related-article-content {
        padding: var(--spacing-md);
    }
    
    .popular-articles-grid {
        grid-template-columns: 1fr;
    }
}

/* PAGES */

#what-is-cbd ul, #legality ul {
    list-style-type: none;
}

/* Password strength meter */
.password-meter { margin-top: 6px; }
.password-meter-bar { height: 6px; background: #e5e7eb; border-radius: 8px; width: 0%; transition: width .25s ease, background .25s ease; }
.password-meter-text { font-size: var(--font-size-xs); color: var(--color-text-secondary); margin-top: 4px; }
.password-meter-bar.s1 { width: 20%; background: #ef4444; }
.password-meter-bar.s2 { width: 40%; background: #f59e0b; }
.password-meter-bar.s3 { width: 60%; background: #fbbf24; }
.password-meter-bar.s4 { width: 80%; background: #84cc16; }
.password-meter-bar.s5 { width: 100%; background: #16a34a; }

/* ========================================
   Boutique - Section bénéfices (shop-benefits)
   Scoped to keep style consistent with Naturaleaf
======================================== */
.shop-benefits { padding: var(--spacing-2xl) 0; margin-top: var(--spacing-2xl); background: var(--color-bg-secondary); }
.shop-benefits-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spacing-lg);
}
.shop-benefit-card {
    display: grid;
    grid-template-columns: 52px 1fr;
    align-items: start;
    gap: var(--spacing-md);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-xl);
    padding: var(--spacing-lg);
    box-shadow: var(--shadow-sm);
}
.shop-benefit-card .benefit-icon {
    width: 52px; height: 52px; border-radius: 12px;
    background: var(--color-accent-terra);
    color: var(--color-accent-olive);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px;
}
.shop-benefit-card .benefit-title { margin: 0 0 4px; font-family: var(--font-heading); font-size: var(--font-size-lg); color: var(--color-text-primary); }
.shop-benefit-card .benefit-text { margin: 0; color: var(--color-text-secondary); }

@media (max-width: 1024px) {
    .shop-benefits-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
    .shop-benefits { padding: var(--spacing-xl) 0; }
    .shop-benefits-grid { grid-template-columns: 1fr; }
    .shop-benefit-card { grid-template-columns: 44px 1fr; gap: var(--spacing-sm); }
    .shop-benefit-card .benefit-icon { width: 44px; height: 44px; font-size: 18px; }
}

/* ========================================
   FICHE PRODUIT - AMÉLIORATIONS 2025
======================================== */

/* Section Bénéfices & Usages */
.product-benefits-section {
    margin: var(--spacing-2xl) 0;
    padding: var(--spacing-xl);
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
}

.benefits-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-2xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    text-align: center;
}

.benefits-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-lg);
    margin-top: var(--spacing-xl);
}

.benefit-card {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: var(--spacing-lg);
    box-shadow: var(--shadow-sm);
    transition: transform var(--transition-normal), box-shadow var(--transition-normal);
    border: 1px solid rgba(157, 143, 86, 0.1);
}

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

.benefit-icon {
    font-size: 2.5rem;
    margin-bottom: var(--spacing-md);
    color: var(--color-accent-olive);
}

.benefit-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.benefit-desc {
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    line-height: 1.6;
    margin: 0;
}

/* Onglets - Spécifications améliorées */
.spec-highlight-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-2xl);
}

.spec-highlight-card {
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    text-align: center;
    border: 2px solid rgba(157, 143, 86, 0.15);
    transition: border-color var(--transition-normal);
}

.spec-highlight-card:hover {
    border-color: var(--color-accent-olive);
}

.spec-icon {
    font-size: 2rem;
    margin-bottom: var(--spacing-sm);
    color: var(--color-accent-olive);
}

.spec-value {
    display: block;
    font-family: var(--font-heading);
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
}

.spec-label {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.spec-details {
    margin-top: var(--spacing-2xl);
}

.spec-detail-item {
    margin-bottom: var(--spacing-2xl);
    padding: var(--spacing-lg);
    background: var(--color-bg-primary);
    border-left: 4px solid var(--color-accent-olive);
    border-radius: 8px;
}

.spec-detail-item:last-child {
    margin-bottom: 0;
}

.spec-detail-item h4 {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin: 0 0 var(--spacing-md) 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.spec-detail-item h4 i {
    color: var(--color-accent-olive);
    font-size: 1.2em;
}

.spec-detail-text {
    color: var(--color-text-secondary);
    line-height: 1.8;
    margin-bottom: var(--spacing-md);
}

.spec-detail-text:last-child {
    margin-bottom: 0;
}

.spec-detail-note {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    background: #fff9e6;
    border-radius: 6px;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-top: var(--spacing-md);
}

.spec-detail-note i {
    color: var(--color-accent-gold);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Anciens styles pour compatibilité */
.spec-details h4 {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin: var(--spacing-xl) 0 var(--spacing-md) 0;
}

.spec-details h4:first-child {
    margin-top: 0;
}

/* Onglet Analyses Laboratoire */
.laboratory-content,
.traceability-content {
    padding: var(--spacing-xl) 0;
}

.lab-header,
.trace-header {
    text-align: center;
    margin-bottom: var(--spacing-3xl);
}

.lab-icon-large,
.trace-icon-large {
    font-size: 4rem;
    margin-bottom: var(--spacing-md);
    color: var(--color-accent-olive);
}

.lab-header h3,
.trace-header h3 {
    font-family: var(--font-heading);
    font-size: var(--font-size-3xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.lab-subtitle,
.trace-subtitle {
    color: var(--color-text-secondary);
    font-size: var(--font-size-lg);
}

.lab-batch,
.trace-dates {
    margin-top: var(--spacing-md);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.trace-dates {
    display: flex;
    gap: var(--spacing-lg);
    justify-content: center;
    flex-wrap: wrap;
}

.trace-dates span {
    padding: var(--spacing-xs) var(--spacing-md);
    background: var(--color-bg-secondary);
    border-radius: var(--radius-md);
}

.lab-details-section {
    background: var(--color-bg-primary);
    border-left: 4px solid var(--color-accent-olive);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-xl);
    border-radius: var(--radius-lg);
}

.lab-details-section h4 {
    font-family: var(--font-heading);
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.lab-details-text {
    color: var(--color-text-secondary);
    line-height: 1.6;
}

.lab-results-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-3xl);
}

.lab-result-card {
    background: var(--color-bg-secondary);
    border-radius: var(--radius-xl);
    padding: var(--spacing-xl);
    text-align: center;
    border: 2px solid transparent;
    transition: all var(--transition-normal);
}

.lab-result-card:hover {
    border-color: var(--color-accent-olive);
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.lab-result-icon {
    font-size: 2.5rem;
    margin-bottom: var(--spacing-md);
    color: var(--color-accent-olive);
}

.lab-result-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.lab-result-value {
    font-family: var(--font-heading);
    font-size: var(--font-size-2xl);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.lab-result-status {
    display: inline-block;
    padding: var(--spacing-xs) var(--spacing-md);
    border-radius: var(--radius-full);
    font-size: var(--font-size-sm);
    font-weight: 500;
}

.lab-result-status.success {
    background: rgba(136, 181, 98, 0.15);
    color: var(--color-success);
}

.lab-coa-section {
    background: var(--color-white);
    border: 2px dashed var(--color-accent-olive);
    border-radius: var(--radius-xl);
    padding: var(--spacing-xl);
    text-align: center;
}

.lab-coa-section h4 {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.lab-coa-section p {
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-lg);
}

/* Onglet Traçabilité */
.trace-timeline {
    position: relative;
    margin-bottom: var(--spacing-3xl);
}

.trace-timeline::before {
    content: '';
    position: absolute;
    left: 24px;
    top: 60px;
    bottom: 60px;
    width: 2px;
    background: linear-gradient(to bottom, var(--color-accent-olive), var(--color-accent-sage));
}

.trace-step {
    position: relative;
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: var(--spacing-xl);
    margin-bottom: var(--spacing-3xl);
}

.trace-step:last-child {
    margin-bottom: 0;
}

.trace-step-number {
    width: 48px;
    height: 48px;
    background: var(--color-accent-olive);
    color: var(--color-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    font-weight: 600;
    position: relative;
    z-index: 1;
    box-shadow: 0 0 0 8px var(--color-bg-primary);
}

.trace-step-content {
    background: var(--color-white);
    border-radius: var(--radius-xl);
    padding: var(--spacing-xl);
    box-shadow: var(--shadow-md);
}

.trace-step-content h4 {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
}

.trace-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-md);
    background: var(--color-bg-secondary);
    border-radius: var(--radius-md);
}

.trace-detail {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.trace-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.trace-value {
    font-weight: 600;
    color: var(--color-text-primary);
}

.trace-description {
    color: var(--color-text-secondary);
    line-height: 1.7;
    margin: 0;
}

.trace-commitment {
    background: var(--color-bg-secondary);
    border-radius: var(--radius-xl);
    padding: var(--spacing-xl);
    border-left: 4px solid var(--color-accent-olive);
}

.trace-commitment h4 {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
}

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

.commitment-list li {
    color: var(--color-text-secondary);
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid rgba(157, 143, 86, 0.1);
}

.commitment-list li i {
    color: var(--color-success);
    margin-right: var(--spacing-sm);
}

.commitment-list li:last-child {
    border-bottom: none;
}

/* Section Upsell / Produits Complémentaires */
.product-upsell {
    padding: var(--spacing-3xl) 0;
    background: var(--color-white);
    border-top: 1px solid var(--color-bg-secondary);
    border-bottom: 1px solid var(--color-bg-secondary);
}

.product-upsell .section-header {
    text-align: center;
    margin-bottom: var(--spacing-2xl);
    position: relative;
}

.product-upsell .section-header::before {
    content: '';
    position: absolute;
    top: -1.5rem;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 4px;
    background: linear-gradient(90deg, var(--color-accent-olive), var(--color-accent-sage));
    border-radius: var(--radius-full);
}

.product-upsell .section-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-3xl);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.product-upsell .section-description {
    color: var(--color-text-secondary);
    font-size: var(--font-size-lg);
}

.upsell-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--spacing-xl);
}

.upsell-card {
    background: var(--color-bg-primary);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: all var(--transition-normal);
    border: 2px solid transparent;
}

.upsell-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-xl);
    border-color: var(--color-accent-olive);
}

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

.upsell-image {
    position: relative;
    width: 100%;
    height: 200px;
    overflow: hidden;
    background: var(--color-bg-secondary);
}

.upsell-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.upsell-card:hover .upsell-img {
    transform: scale(1.05);
}

.upsell-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    color: var(--color-accent-olive);
}

.upsell-badge {
    position: absolute;
    top: var(--spacing-md);
    right: var(--spacing-md);
    background: var(--color-warning);
    color: var(--color-white);
    padding: var(--spacing-xs) var(--spacing-md);
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.upsell-content {
    padding: var(--spacing-lg);
}

.upsell-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-lg);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    line-height: 1.3;
}

.upsell-concentration {
    display: inline-block;
    background: rgba(157, 143, 86, 0.1);
    color: var(--color-accent-olive);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: 600;
    margin-bottom: var(--spacing-md);
}

.upsell-price {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
}

.upsell-price-compare {
    text-decoration: line-through;
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

.upsell-price-current {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--color-text-primary);
}

.upsell-action {
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--color-bg-secondary);
}

.btn-upsell {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    color: var(--color-accent-olive);
    font-weight: 600;
    font-size: var(--font-size-sm);
    transition: color var(--transition-fast);
}

.upsell-card:hover .btn-upsell {
    color: var(--color-text-primary);
}

/* Responsive - Fiche Produit Améliorée */
@media (max-width: 768px) {
    .benefits-grid {
        grid-template-columns: 1fr;
    }
    
    .spec-highlight-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .lab-results-grid {
        grid-template-columns: 1fr;
    }
    
    .trace-timeline::before {
        left: 18px;
    }
    
    .trace-step {
        grid-template-columns: 36px 1fr;
        gap: var(--spacing-md);
    }
    
    .trace-step-number {
        width: 36px;
        height: 36px;
        font-size: var(--font-size-lg);
        box-shadow: 0 0 0 6px var(--color-bg-primary);
    }
    
    .trace-detail-grid {
        grid-template-columns: 1fr;
    }
    
    .trace-dates {
        flex-direction: column;
        align-items: center;
    }
    
    .lab-details-section {
        padding: var(--spacing-md);
    }
    
    .upsell-grid {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    }
}

@media (max-width: 480px) {
    .spec-highlight-grid {
        grid-template-columns: 1fr;
    }
    
    .lab-results-grid {
        grid-template-columns: 1fr;
    }
    
    .product-benefits-section {
        padding: var(--spacing-lg);
    }
    
    .benefit-card {
        padding: var(--spacing-md);
    }
    
    .trace-dates span {
        width: 100%;
        text-align: center;
    }
}

/* ===== Age Gate (Vérification d'âge +18) ===== */
.age-gate-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99999;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-lg);
}

.age-gate-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(45, 55, 40, 0.97);
    backdrop-filter: blur(8px);
}

.age-gate-content {
    position: relative;
    background: white;
    border-radius: var(--radius-2xl);
    padding: var(--spacing-3xl) var(--spacing-2xl);
    max-width: 560px;
    width: 100%;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: ageGateSlideIn 0.4s ease-out;
}

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

.age-gate-logo {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-accent-olive), rgba(139, 149, 91, 0.7));
    border-radius: 50%;
    box-shadow: 0 8px 20px rgba(139, 149, 91, 0.3);
}

.age-gate-logo i {
    font-size: 2.5rem;
    color: white;
}

.age-gate-title {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    font-family: var(--font-heading);
}

.age-gate-text {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-md);
    line-height: 1.6;
}

.age-gate-text strong {
    color: var(--color-accent-olive);
    font-weight: 700;
}

.age-gate-subtext {
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xl);
}

.age-gate-buttons {
    display: grid;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.btn-age-gate {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-lg) var(--spacing-xl);
    border: none;
    border-radius: var(--radius-lg);
    font-size: var(--font-size-lg);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    font-family: inherit;
}

.btn-age-confirm {
    background: var(--color-accent-olive);
    color: white;
    box-shadow: 0 4px 12px rgba(139, 149, 91, 0.3);
}

.btn-age-confirm:hover {
    background: #8b7a46;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(139, 149, 91, 0.4);
}

.btn-age-decline {
    background: var(--color-bg-secondary);
    color: var(--color-text-secondary);
}

.btn-age-decline:hover {
    background: rgba(239, 68, 68, 0.1);
    color: #b91c1c;
}

.age-gate-legal {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--color-bg-secondary);
}

.age-gate-legal i {
    color: var(--color-accent-olive);
    font-size: var(--font-size-sm);
}

/* Responsive Age Gate */
@media (max-width: 768px) {
    .age-gate-content {
        padding: var(--spacing-2xl) var(--spacing-lg);
    }
    
    .age-gate-title {
        font-size: var(--font-size-2xl);
    }
    
    .age-gate-text {
        font-size: var(--font-size-base);
    }
    
    .age-gate-subtext {
        font-size: var(--font-size-lg);
    }
    
    .btn-age-gate {
        padding: var(--spacing-md) var(--spacing-lg);
        font-size: var(--font-size-base);
    }
    
    .age-gate-logo {
        width: 64px;
        height: 64px;
    }
    
    .age-gate-logo i {
        font-size: 2rem;
    }
}

/* ===== Newsletter Popup (-10%) ===== */
.newsletter-popup-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99998;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-lg);
}

.newsletter-popup-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
}

.newsletter-popup-content {
    position: relative;
    background: white;
    border-radius: var(--radius-2xl);
    padding: var(--spacing-2xl);
    max-width: 520px;
    width: 100%;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: newsletterSlideIn 0.4s ease-out;
}

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

.newsletter-popup-close {
    position: absolute;
    top: var(--spacing-md);
    right: var(--spacing-md);
    width: 36px;
    height: 36px;
    border: none;
    background: var(--color-bg-secondary);
    color: var(--color-text-secondary);
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    font-size: var(--font-size-lg);
}

.newsletter-popup-close:hover {
    background: var(--color-accent-olive);
    color: white;
    transform: rotate(90deg);
}

.newsletter-popup-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto var(--spacing-md);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-accent-olive), rgba(139, 149, 91, 0.7));
    border-radius: 50%;
    box-shadow: 0 8px 20px rgba(139, 149, 91, 0.3);
}

.newsletter-popup-icon i {
    font-size: 2rem;
    color: white;
}

.newsletter-popup-title {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
    text-align: center;
    font-family: var(--font-heading);
}

.newsletter-popup-subtitle {
    font-size: var(--font-size-xl);
    color: var(--color-accent-olive);
    margin-bottom: var(--spacing-md);
    text-align: center;
    font-weight: 600;
}

.newsletter-popup-subtitle strong {
    font-size: var(--font-size-2xl);
    font-weight: 700;
}

.newsletter-popup-text {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-lg);
    text-align: center;
    line-height: 1.6;
}

.newsletter-popup-text strong {
    color: var(--color-accent-olive);
    font-weight: 600;
}

.newsletter-popup-form {
    margin-bottom: var(--spacing-md);
}

.newsletter-form-group {
    margin-bottom: var(--spacing-md);
}

.newsletter-input {
    width: 100%;
    padding: var(--spacing-md);
    border: 2px solid var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    font-size: var(--font-size-base);
    font-family: inherit;
    transition: all 0.2s ease;
}

.newsletter-input:focus {
    outline: none;
    border-color: var(--color-accent-olive);
    box-shadow: 0 0 0 3px rgba(139, 149, 91, 0.1);
}

.newsletter-message {
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    margin-bottom: var(--spacing-md);
    text-align: center;
}

.newsletter-message-error {
    background: rgba(239, 68, 68, 0.1);
    color: #b91c1c;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.newsletter-message-success {
    background: rgba(16, 185, 129, 0.1);
    color: #059669;
    border: 1px solid rgba(16, 185, 129, 0.3);
}

.btn-newsletter-submit {
    width: 100%;
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--color-accent-olive);
    color: white;
    border: none;
    border-radius: var(--radius-lg);
    font-size: var(--font-size-lg);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    font-family: inherit;
    box-shadow: 0 4px 12px rgba(139, 149, 91, 0.3);
}

.btn-newsletter-submit:hover:not(:disabled) {
    background: #8b7a46;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(139, 149, 91, 0.4);
}

.btn-newsletter-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.newsletter-popup-legal {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    text-align: center;
    margin-top: var(--spacing-md);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
    line-height: 1.5;
}

.newsletter-popup-legal i {
    color: var(--color-accent-olive);
    flex-shrink: 0;
}

.newsletter-dismiss-link {
    display: block;
    width: 100%;
    padding: var(--spacing-sm);
    background: none;
    border: none;
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    text-align: center;
    cursor: pointer;
    transition: color 0.2s ease;
    text-decoration: underline;
    font-family: inherit;
}

.newsletter-dismiss-link:hover {
    color: var(--color-text-primary);
}

/* Écran de succès */
.newsletter-success-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--color-success), #059669);
    border-radius: 50%;
    box-shadow: 0 8px 20px rgba(16, 185, 129, 0.3);
}

.newsletter-success-icon i {
    font-size: 2.5rem;
    color: white;
}

.newsletter-success-title {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    text-align: center;
    font-family: var(--font-heading);
}

.newsletter-success-text {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-lg);
    text-align: center;
}

.newsletter-coupon-box {
    background: var(--color-bg-secondary);
    border: 2px dashed var(--color-accent-olive);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    text-align: center;
}

.coupon-code {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-accent-olive);
    font-family: 'Courier New', monospace;
    margin-bottom: var(--spacing-md);
    letter-spacing: 2px;
}

.btn-copy-code {
    padding: var(--spacing-sm) var(--spacing-lg);
    background: white;
    color: var(--color-accent-olive);
    border: 2px solid var(--color-accent-olive);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-family: inherit;
}

.btn-copy-code:hover {
    background: var(--color-accent-olive);
    color: white;
}

.newsletter-success-info {
    display: grid;
    gap: var(--spacing-xs);
    margin-bottom: var(--spacing-lg);
}

.newsletter-success-info p {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin: 0;
}

.newsletter-success-info i {
    color: var(--color-success);
}

.btn-newsletter-close {
    width: 100%;
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--color-accent-olive);
    color: white;
    border: none;
    border-radius: var(--radius-lg);
    font-size: var(--font-size-lg);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    font-family: inherit;
    box-shadow: 0 4px 12px rgba(139, 149, 91, 0.3);
}

.btn-newsletter-close:hover {
    background: #8b7a46;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(139, 149, 91, 0.4);
}

/* Responsive Newsletter Popup */
@media (max-width: 768px) {
    .newsletter-popup-content {
        padding: var(--spacing-xl) var(--spacing-lg);
    }
    
    .newsletter-popup-title {
        font-size: var(--font-size-xl);
    }
    
    .newsletter-popup-subtitle {
        font-size: var(--font-size-lg);
    }
    
    .newsletter-popup-subtitle strong {
        font-size: var(--font-size-xl);
    }
    
    .newsletter-popup-icon {
        width: 56px;
        height: 56px;
    }
    
    .newsletter-popup-icon i {
        font-size: 1.75rem;
    }
    
    .newsletter-success-icon {
        width: 64px;
        height: 64px;
    }
    
    .newsletter-success-icon i {
        font-size: 2rem;
    }
    
    .newsletter-success-title {
        font-size: var(--font-size-2xl);
    }
    
    .coupon-code {
        font-size: var(--font-size-xl);
    }
}

/* ===== PAGE ABONNEMENTS ===== */

/* Hero Section */
.subscription-hero {
    background: linear-gradient(135deg, rgba(139, 149, 91, 0.05) 0%, rgba(139, 149, 91, 0.15) 100%);
    padding: var(--spacing-4xl) 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.subscription-hero::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(139, 149, 91, 0.1) 0%, transparent 70%);
    border-radius: 50%;
}

.subscription-hero-content {
    position: relative;
    z-index: 1;
    max-width: 800px;
    margin: 0 auto;
}

.subscription-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-xs) var(--spacing-md);
    background: white;
    color: var(--color-accent-olive);
    border-radius: var(--radius-full);
    font-size: var(--font-size-sm);
    font-weight: 600;
    margin-bottom: var(--spacing-lg);
    box-shadow: 0 2px 8px rgba(139, 149, 91, 0.15);
}

.subscription-hero-title {
    font-size: var(--font-size-4xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    line-height: 1.2;
}

.gradient-text {
    background: linear-gradient(135deg, var(--color-accent-olive), #a8b76e);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.subscription-hero-subtitle {
    font-size: var(--font-size-xl);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2xl);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.subscription-hero-features {
    display: flex;
    justify-content: center;
    gap: var(--spacing-2xl);
    margin-bottom: var(--spacing-2xl);
    flex-wrap: wrap;
}

.hero-feature {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    color: var(--color-text-primary);
    font-weight: 600;
}

.hero-feature i {
    color: var(--color-accent-olive);
    font-size: var(--font-size-xl);
}

.subscription-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
    box-shadow: 0 4px 16px rgba(139, 149, 91, 0.3);
}

/* Benefits Section */
.subscription-benefits {
    padding: var(--spacing-4xl) 0;
    background: var(--color-white);
}

.benefits-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: var(--spacing-2xl);
    margin-top: var(--spacing-3xl);
}

.benefit-card {
    text-align: center;
    padding: var(--spacing-2xl);
    border-radius: var(--radius-xl);
    transition: all 0.3s ease;
}

.benefit-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 8px 24px rgba(139, 149, 91, 0.15);
}

.benefit-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto var(--spacing-lg);
    background: linear-gradient(135deg, var(--color-accent-olive), #a8b76e);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(139, 149, 91, 0.25);
}

.benefit-icon i {
    font-size: 2rem;
    color: white;
}

.benefit-title {
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.benefit-desc {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: 1.6;
}

/* Packs Section */
.subscription-packs {
    padding: var(--spacing-4xl) 0;
    background: var(--color-white);
}

.subscription-packs-alt {
    background: var(--color-bg-secondary);
}

.packs-theme-header {
    text-align: center;
    margin-bottom: var(--spacing-3xl);
}

.theme-icon {
    font-size: 3rem;
    display: block;
    margin-bottom: var(--spacing-md);
}

.packs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: var(--spacing-2xl);
    max-width: 1200px;
    margin: 0 auto;
}

.pack-card {
    background: white;
    border: 2px solid var(--color-bg-secondary);
    border-radius: var(--radius-2xl);
    padding: var(--spacing-2xl);
    position: relative;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
}

.pack-card:hover {
    border-color: var(--color-accent-olive);
    box-shadow: 0 8px 24px rgba(139, 149, 91, 0.15);
    transform: translateY(-4px);
}

.pack-featured {
    border-color: var(--color-accent-olive);
    box-shadow: 0 8px 32px rgba(139, 149, 91, 0.2);
}

.pack-badge {
    position: absolute;
    top: -12px;
    right: var(--spacing-xl);
    background: var(--color-accent-olive);
    color: white;
    padding: var(--spacing-xs) var(--spacing-md);
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    box-shadow: 0 2px 8px rgba(139, 149, 91, 0.3);
}

.pack-header {
    text-align: center;
    margin-bottom: var(--spacing-lg);
}

.pack-name {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
}

.pack-gramme {
    display: inline-block;
    padding: var(--spacing-xs) var(--spacing-md);
    background: var(--color-text-primary);
    color: var(--color-accent-olive);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    font-weight: 600;
}

.pack-price {
    text-align: center;
    margin-bottom: var(--spacing-xl);
}

.price-amount {
    font-size: 3.5rem;
    font-weight: 700;
    color: var(--color-accent-olive);
    line-height: 1;
}

.price-currency {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-accent-olive);
    vertical-align: super;
}

.price-period {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    display: block;
    margin-top: var(--spacing-xs);
}

.pack-description {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    text-align: center;
    margin-bottom: var(--spacing-xl);
    line-height: 1.6;
}

.pack-features {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
    flex-grow: 1;
}

.pack-feature {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
}

.pack-feature i {
    color: var(--color-success);
    font-size: var(--font-size-base);
    flex-shrink: 0;
}

.btn-pack {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md) var(--spacing-lg);
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-disabled {
    background: #e0e0e0 !important;
    color: #9e9e9e !important;
    cursor: not-allowed !important;
    border: 2px solid #bdbdbd !important;
    opacity: 0.6;
}

.btn-disabled:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* How It Works Section - Timeline */
.subscription-how-it-works {
    padding: var(--spacing-4xl) 0;
    background: var(--color-bg-secondary);
}

.steps-timeline {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-2xl);
    max-width: 900px;
    margin: 0 auto;
    flex-wrap: wrap;
}

.step-timeline-item {
    text-align: center;
    flex: 1;
    min-width: 180px;
}

.step-timeline-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-md);
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(139, 149, 91, 0.2);
    transition: all 0.3s ease;
}

.step-timeline-item:hover .step-timeline-icon {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(139, 149, 91, 0.3);
}

.step-timeline-icon i {
    font-size: 2rem;
    color: var(--color-accent-olive);
}

.step-timeline-title {
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
}

.step-timeline-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.step-timeline-arrow {
    color: var(--color-accent-olive);
    font-size: var(--font-size-2xl);
    opacity: 0.4;
}

/* FAQ Section */
.subscription-faq {
    padding: var(--spacing-4xl) 0;
    background: var(--color-white);
}

.faq-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: var(--spacing-xl);
    margin-top: var(--spacing-3xl);
}

.faq-item {
    padding: var(--spacing-xl);
    background: var(--color-bg-secondary);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--color-accent-olive);
}

.faq-question {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.faq-question i {
    color: var(--color-accent-olive);
    flex-shrink: 0;
}

.faq-answer {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: 1.7;
}

/* CTA Final Section - Box Design */
.subscription-cta-final {
    padding: var(--spacing-4xl) 0;
    background: var(--color-white);
}

.cta-final-box {
    background: linear-gradient(135deg, var(--color-accent-olive), #a8b76e);
    border-radius: var(--radius-2xl);
    padding: var(--spacing-3xl);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-3xl);
    box-shadow: 0 8px 32px rgba(139, 149, 91, 0.25);
}

.cta-final-left {
    flex: 1;
    color: white;
}

.cta-final-title {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    color: white;
    margin-bottom: var(--spacing-md);
}

.cta-final-text {
    font-size: var(--font-size-lg);
    color: rgba(255, 255, 255, 0.95);
    margin-bottom: var(--spacing-lg);
    line-height: 1.6;
}

.cta-final-features {
    display: flex;
    gap: var(--spacing-lg);
    flex-wrap: wrap;
}

.cta-final-features span {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: white;
}

.cta-final-features i {
    font-size: var(--font-size-base);
}

.cta-final-right {
    flex-shrink: 0;
}

.btn-cta-large {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-lg) var(--spacing-2xl);
    background: white;
    color: var(--color-accent-olive);
    border-radius: var(--radius-lg);
    font-size: var(--font-size-lg);
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
}

.btn-cta-large:hover {
    background: var(--color-bg-secondary);
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.2);
}

.btn-cta-large i {
    transition: transform 0.3s ease;
}

.btn-cta-large:hover i {
    transform: translateX(4px);
}

/* Responsive Abonnements */
@media (max-width: 768px) {
    .subscription-hero {
        padding: var(--spacing-3xl) 0;
    }
    
    .subscription-hero-title {
        font-size: var(--font-size-3xl);
    }
    
    .subscription-hero-subtitle {
        font-size: var(--font-size-lg);
    }
    
    .subscription-hero-features {
        flex-direction: column;
        gap: var(--spacing-md);
        align-items: center;
    }
    
    .subscription-benefits,
    .subscription-packs,
    .subscription-how-it-works,
    .subscription-faq,
    .subscription-cta-final {
        padding: var(--spacing-2xl) 0;
    }
    
    .benefits-grid,
    .packs-grid,
    .steps-grid,
    .faq-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .benefit-icon {
        width: 64px;
        height: 64px;
    }
    
    .benefit-icon i {
        font-size: 1.75rem;
    }
    
    .price-amount {
        font-size: 2.5rem;
    }
    
    .step-timeline-arrow {
        display: none;
    }
    
    .steps-timeline {
        flex-direction: column;
        gap: var(--spacing-xl);
    }
    
    .cta-final-box {
        flex-direction: column;
        text-align: center;
        padding: var(--spacing-2xl);
    }
    
    .cta-final-title {
        font-size: var(--font-size-2xl);
    }
    
    .cta-final-text {
        font-size: var(--font-size-base);
    }
    
    .cta-final-features {
        flex-direction: column;
        gap: var(--spacing-sm);
    }
    
    .btn-cta-large {
        width: 100%;
        justify-content: center;
    }
}

/* ============================================
   SUBSCRIPTION CHECKOUT PAGE
   ============================================ */

.page-subscription-checkout {
    padding: var(--spacing-3xl) 0;
    background: var(--color-bg-secondary);
    min-height: 70vh;
}

.checkout-header {
    margin-bottom: var(--spacing-3xl);
}

.checkout-header h1 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-top: var(--spacing-md);
}

.btn-back {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    color: var(--color-text-secondary);
    text-decoration: none;
    font-size: var(--font-size-sm);
    transition: color 0.3s ease;
}

.btn-back:hover {
    color: var(--color-accent-olive);
}

.checkout-grid {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: var(--spacing-2xl);
    align-items: start;
}

.section-box {
    background: white;
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    margin-bottom: var(--spacing-lg);
}

.section-box h2 {
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.section-box h2 i {
    color: var(--color-accent-olive);
}

/* Pack sélectionné */
.pack-selected {
    background: linear-gradient(135deg, var(--color-accent-olive), #a8b76e);
    color: white;
}

.pack-selected h2 {
    color: white;
}

.pack-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-lg);
}

.pack-details h3 {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: white;
    margin-bottom: var(--spacing-xs);
}

.pack-gramme {
    font-size: var(--font-size-base);
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: var(--spacing-sm);
}

.pack-desc {
    font-size: var(--font-size-sm);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.5;
}

.pack-price-box {
    text-align: right;
    flex-shrink: 0;
}

.pack-price-box .price-amount {
    display: block;
    font-size: var(--font-size-3xl);
    font-weight: 700;
    color: white;
}

.pack-price-box .price-period {
    font-size: var(--font-size-sm);
    color: rgba(255, 255, 255, 0.9);
}

/* Options de livraison */
.delivery-options {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.delivery-option {
    display: block;
    cursor: pointer;
    position: relative;
}

.delivery-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.option-content {
    padding: var(--spacing-lg);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-md);
    background: white;
    transition: all 0.3s ease;
}

.delivery-option input:checked + .option-content {
    border-color: var(--color-accent-olive);
    background: rgba(139, 149, 91, 0.05);
}

.option-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-sm);
}

.option-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(139, 149, 91, 0.1);
    border-radius: 50%;
    flex-shrink: 0;
}

.delivery-option input:checked + .option-content .option-icon {
    background: var(--color-accent-olive);
    color: white;
}

.option-icon i {
    font-size: var(--font-size-lg);
    color: var(--color-accent-olive);
}

.delivery-option input:checked + .option-content .option-icon i {
    color: white;
}

.option-title {
    flex: 1;
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text-primary);
}

.option-badge {
    padding: var(--spacing-xs) var(--spacing-sm);
    background: var(--color-bg-secondary);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text-secondary);
}

.delivery-option input:checked + .option-content .option-badge {
    background: var(--color-accent-olive);
    color: white;
}

.option-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-left: 56px;
}

/* Code promo */
.coupon-form {
    display: flex;
    gap: var(--spacing-sm);
}

.coupon-form input {
    flex: 1;
    border: 1px solid var(--color-accent-terra);
    border-radius: var(--radius-md);
    padding: var(--spacing-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    background: var(--color-white);
    transition: all 0.3s ease;
}

.coupon-form input:focus {
    outline: none;
    border-color: var(--color-accent-olive);
    box-shadow: 0 0 0 2px rgba(139, 149, 109, 0.2);
    background: rgba(139, 149, 91, 0.05);
}

.coupon-message {
    margin-top: var(--spacing-sm);
    font-size: var(--font-size-sm);
}

.coupon-message .success {
    color: var(--color-success);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.coupon-message .error {
    color: var(--color-danger);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.coupon-message .loading {
    color: var(--color-text-secondary);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

/* Récapitulatif */
.checkout-summary {
    position: sticky;
    top: var(--spacing-2xl);
}

.summary-box {
    background: white;
    padding: var(--spacing-xl);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.summary-box h2 {
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--color-border);
}

.summary-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-sm) 0;
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
}

.summary-discount {
    color: var(--color-success);
    font-weight: 600;
}

.summary-box hr {
    border: none;
    border-top: 1px solid var(--color-border);
    margin: var(--spacing-lg) 0;
}

.summary-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) 0;
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: var(--color-text-primary);
}

.summary-info {
    display: flex;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    background: rgba(139, 149, 91, 0.05);
    border-radius: var(--radius-md);
    margin-top: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

.summary-info i {
    color: var(--color-accent-olive);
    flex-shrink: 0;
    margin-top: 2px;
}

.summary-info p {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    line-height: 1.5;
    margin: 0;
}

.btn-block {
    width: 100%;
}

.payment-icons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--color-border);
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
}

.payment-icons i {
    font-size: var(--font-size-xl);
    color: var(--color-text-secondary);
}

/* ============================================
   SUBSCRIPTION SUCCESS PAGE
   ============================================ */

.page-subscription-success {
    padding: var(--spacing-4xl) 0;
    background: var(--color-bg-secondary);
    min-height: 70vh;
}

.success-confirmed,
.success-pending,
.success-error {
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
}

.icon-success,
.icon-pending,
.icon-error {
    width: 100px;
    height: 100px;
    margin: 0 auto var(--spacing-xl);
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.icon-success i {
    font-size: 3rem;
    color: var(--color-success);
}

.icon-pending i {
    font-size: 3rem;
    color: var(--color-warning);
}

.icon-error i {
    font-size: 3rem;
    color: var(--color-danger);
}

.success-confirmed h1,
.success-pending h1,
.success-error h1 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.success-message {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-2xl);
}

.subscription-details {
    background: white;
    padding: var(--spacing-2xl);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-2xl);
    text-align: left;
}

.subscription-details h2 {
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    text-align: center;
}

.detail-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) 0;
    border-bottom: 1px solid var(--color-border);
}

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

.detail-item .label {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
}

.detail-item .value {
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--color-text-primary);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.detail-item.highlight {
    background: rgba(139, 149, 91, 0.05);
    padding: var(--spacing-md);
    border-radius: var(--radius-md);
    border: none;
}

.detail-item.highlight .value {
    color: var(--color-success);
}

.next-steps {
    background: white;
    padding: var(--spacing-2xl);
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    margin-bottom: var(--spacing-2xl);
    text-align: left;
}

.next-steps h3 {
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
}

.next-steps h3 i {
    color: var(--color-accent-olive);
}

.next-steps ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.next-steps li {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: 1.6;
}

.next-steps li i {
    color: var(--color-accent-olive);
    margin-top: 2px;
    flex-shrink: 0;
}

.actions {
    display: flex;
    gap: var(--spacing-md);
    justify-content: center;
    flex-wrap: wrap;
}

.actions .btn {
    min-width: 200px;
}

/* Responsive Checkout & Success */
@media (max-width: 768px) {
    .checkout-grid {
        grid-template-columns: 1fr;
    }
    
    .checkout-summary {
        position: static;
    }
    
    .pack-info {
        flex-direction: column;
        text-align: center;
    }
    
    .pack-price-box {
        text-align: center;
    }
    
    .coupon-form {
        flex-direction: column;
    }
    
    .actions {
        flex-direction: column;
    }
    
    .actions .btn {
        width: 100%;
    }
    
    .subscription-invoices {
        padding: var(--spacing-lg);
    }
    
    .invoice-item {
        padding: var(--spacing-sm) var(--spacing-md);
    }
    
    .invoice-icon {
        width: 32px;
        height: 32px;
        font-size: var(--font-size-sm);
    }
}

/* ============================================
   ACCOUNT SUBSCRIPTIONS PAGE
   ============================================ */

/* Hero Section */
.subscription-hero2 {
    background: linear-gradient(135deg, rgba(139, 149, 91, 0.08) 0%, rgba(139, 149, 91, 0.03) 100%);
    border-radius: var(--radius-xl);
    padding: var(--spacing-3xl) var(--spacing-2xl);
    margin: var(--spacing-3xl) 0;
    text-align: center;
    border: 1px solid rgba(139, 149, 91, 0.15);
}

.subscription-hero2 h1 {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-md);
}

.subscription-hero2 h1 i {
    color: var(--color-accent-olive);
}

.subscription-hero2 p {
    font-size: var(--font-size-lg);
    color: var(--color-text-secondary);
    margin: 0;
}

.subscriptions-list {
    display: grid;
    gap: var(--spacing-2xl);
    margin: var(--spacing-2xl) 0;
}

/* Carte d'abonnement - Base */
.subscription-card {
    background: white;
    border-radius: var(--radius-xl);
    overflow: hidden;
    border: 2px solid var(--color-border);
    transition: all 0.3s ease;
    position: relative;
}

.subscription-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--color-accent-olive);
    transition: all 0.3s ease;
}

.subscription-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* États visuels */
.subscription-card.status-cancelled {
    border-color: #e0e0e0;
    opacity: 0.7;
}

.subscription-card.status-cancelled::before {
    background: #6c757d;
}

.subscription-card.status-paused::before {
    background: #ffc107;
}

.subscription-card.status-past_due::before {
    background: #dc3545;
}

/* Header de la carte */
.subscription-header {
    padding: var(--spacing-2xl);
    background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-xl);
}

.subscription-info {
    flex: 1;
}

.subscription-info h3 {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin: 0 0 var(--spacing-sm) 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.subscription-info .badge {
    font-size: var(--font-size-xs);
    padding: 4px 10px;
    border-radius: var(--radius-full);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.badge-success {
    background: #d4edda;
    color: #155724;
}

.badge-warning {
    background: #fff3cd;
    color: #856404;
}

.badge-danger {
    background: #f8d7da;
    color: #721c24;
}

.badge-secondary {
    background: #e2e3e5;
    color: #383d41;
}

/* Prix */
.subscription-price {
    text-align: right;
    padding: var(--spacing-sm) var(--spacing-lg);
    background: rgba(139, 149, 91, 0.08);
    border-radius: var(--radius-lg);
}

.subscription-price .price {
    display: block;
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-accent-olive);
    line-height: 1;
    margin-bottom: 2px;
}

.subscription-price .period {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
    font-weight: 500;
}

/* Détails */
.subscription-details {
    padding: var(--spacing-2xl);
    display: grid;
    gap: var(--spacing-sm);
}

.detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md);
    background: var(--color-bg-secondary);
    border-radius: var(--radius-md);
    transition: background 0.2s ease;
}

.detail-row:hover {
    background: #e8ede3;
}

.detail-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    font-weight: 500;
}

.detail-label i {
    color: var(--color-accent-olive);
    width: 18px;
    text-align: center;
}

.detail-value {
    font-weight: 600;
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
}

.detail-row.highlight-danger {
    background: linear-gradient(135deg, #fff5f5 0%, #ffe0e0 100%);
    border: 1px solid #ffcdd2;
    padding: var(--spacing-md);
}

.detail-row.highlight-danger .detail-label,
.detail-row.highlight-danger .detail-label i {
    color: #c62828;
}

.detail-row.highlight-danger .detail-value {
    color: #c62828;
    font-weight: 700;
}

/* Actions */
.subscription-actions {
    padding: var(--spacing-xl) var(--spacing-2xl);
    background: #fafafa;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.subscription-actions .btn-sm {
    padding: 8px 16px;
    font-size: var(--font-size-xs);
    font-weight: 600;
    border-radius: var(--radius-md);
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    line-height: 1;
}

.subscription-actions .btn-sm i {
    font-size: 13px;
}

.btn-warning {
    background: #ffc107;
    color: #000;
    border: none;
}

.btn-warning:hover {
    background: #ffb300;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(255, 193, 7, 0.3);
}

.btn-danger {
    background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
    color: white;
    border: none;
    box-shadow: 0 2px 8px rgba(220, 53, 69, 0.25);
}

.btn-danger:hover {
    background: linear-gradient(135deg, #c82333 0%, #bd2130 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(220, 53, 69, 0.4);
}

.btn-success {
    background: linear-gradient(135deg, #28a745 0%, #218838 100%);
    color: white;
    border: none;
    box-shadow: 0 2px 8px rgba(40, 167, 69, 0.25);
}

.btn-success:hover {
    background: linear-gradient(135deg, #218838 0%, #1e7e34 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(40, 167, 69, 0.4);
}

/* Formulaire de changement de livraison */
.delivery-form {
    padding: var(--spacing-2xl);
    background: #f8f9fa;
    border-top: 2px dashed var(--color-border);
    animation: slideDown 0.3s ease;
}

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

.delivery-form h4 {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.radio-group {
    display: grid;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
}

.radio-option {
    position: relative;
    cursor: pointer;
}

.radio-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.radio-option span {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: white;
    border: 2px solid var(--color-border);
    border-radius: var(--radius-lg);
    transition: all 0.3s ease;
    font-weight: 500;
}

.radio-option span i {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    text-align: center;
    vertical-align: middle;
    color: var(--color-text-primary);
    transition: all 0.3s ease;
}


.radio-option input[type="radio"]:checked + span {
    border-color: var(--color-accent-olive);
    background: rgba(139, 149, 91, 0.08);
    font-weight: 600;
    box-shadow: 0 4px 12px rgba(139, 149, 91, 0.15);
}

.radio-option input[type="radio"]:checked + span i {
    color: var(--color-text-primary)
}

.form-actions {
    display: flex;
    gap: var(--spacing-sm);
}

/* Factures/Historique */
.subscription-invoices {
    padding: var(--spacing-2xl);
    background: #f8f9fa;
    border-top: 2px solid var(--color-border);
}

.subscription-invoices h4 {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-lg);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.subscription-invoices h4 i {
    color: var(--color-accent-olive);
}

.invoices-list {
    display: grid;
    gap: var(--spacing-sm);
}

.invoice-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) var(--spacing-lg);
    background: white;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    transition: all 0.2s ease;
}

.invoice-item:hover {
    border-color: var(--color-accent-olive);
    box-shadow: 0 2px 8px rgba(139, 149, 91, 0.1);
}

.invoice-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.invoice-icon {
    width: 36px;
    height: 36px;
    background: rgba(139, 149, 91, 0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-accent-olive);
}

.invoice-details {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.invoice-date {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-text-primary);
}

.invoice-amount {
    font-size: var(--font-size-xs);
    color: var(--color-text-secondary);
}

.invoice-status {
    padding: 4px 10px;
    border-radius: var(--radius-full);
    font-size: var(--font-size-xs);
    font-weight: 600;
}

.invoice-status.paid {
    background: #d4edda;
    color: #155724;
}

.invoice-status.failed {
    background: #f8d7da;
    color: #721c24;
}

.invoice-status.pending {
    background: #fff3cd;
    color: #856404;
}

.no-invoices {
    text-align: center;
    padding: var(--spacing-xl);
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

/* Info box */
.info-box {
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
    border-left: 4px solid #2196f3;
    padding: var(--spacing-lg);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-xl);
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
}

.info-box i {
    color: #1976d2;
    font-size: var(--font-size-xl);
    margin-top: 2px;
}

.info-box-content {
    flex: 1;
}

.info-box-content h4 {
    font-size: var(--font-size-base);
    font-weight: 700;
    color: #1976d2;
    margin: 0 0 var(--spacing-xs) 0;
}

.info-box-content p {
    font-size: var(--font-size-sm);
    color: #0d47a1;
    margin: 0;
    line-height: 1.5;
}

/* État vide */
.empty-state {
    text-align: center;
    padding: var(--spacing-4xl) var(--spacing-2xl);
    background: white;
    border-radius: var(--radius-xl);
    border: 2px dashed var(--color-border);
}

.empty-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto var(--spacing-xl);
    background: var(--color-bg-secondary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.empty-icon i {
    font-size: 2.5rem;
    color: var(--color-text-secondary);
}

.empty-state h2 {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.empty-state p {
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xl);
}

/* Responsive */
@media (max-width: 768px) {
    .subscription-header {
        flex-direction: column;
        gap: var(--spacing-md);
    }
    
    .subscription-price {
        width: 100%;
        text-align: center;
    }
    
    .subscription-details {
        padding: var(--spacing-lg);
    }
    
    .subscription-actions {
        padding: var(--spacing-lg);
        gap: var(--spacing-xs);
    }
    
    .subscription-actions .btn-sm,
    .subscription-actions form {
        width: 100%;
    }
    
    .subscription-actions .btn-sm {
        justify-content: center;
    }
    
    .form-actions {
        flex-direction: column;
    }
    
    .form-actions .btn {
        width: 100%;
    }
}

/* ===================================
   CART BENEFITS BOUTIQUE - Panier
   =================================== */
.cart-benefits-boutique {
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
    border: 1px solid #e8e9ea;
    border-radius: 12px;
    padding: 0;
    margin-top: 20px;
    overflow: hidden;
}

.benefits-boutique-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 20px;
    border-bottom: 1px solid #e8e9ea;
    transition: all 0.3s ease;
}

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

.benefits-boutique-item:hover {
    background-color: rgba(163, 140, 73, 0.03);
}

.benefits-boutique-item i {
    font-size: 22px;
    color: #a38c49;
    min-width: 28px;
    text-align: center;
    transition: transform 0.3s ease;
}

.benefits-boutique-item:hover i {
    transform: scale(1.1);
}

.benefits-boutique-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
}

.benefits-boutique-title {
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.3;
}

.benefits-boutique-desc {
    font-size: 13px;
    color: #6c757d;
    font-weight: 400;
    line-height: 1.3;
}

/* Responsive */
@media (max-width: 768px) {
    .benefits-boutique-item {
        padding: 16px 18px;
        gap: 12px;
    }
    
    .benefits-boutique-item i {
        font-size: 20px;
        min-width: 24px;
    }
    
    .benefits-boutique-title {
        font-size: 13px;
    }
    
    .benefits-boutique-desc {
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .cart-benefits-boutique {
        margin-top: 16px;
        border-radius: 10px;
    }
    
    .benefits-boutique-item {
        padding: 14px 16px;
        gap: 10px;
    }
    
    .benefits-boutique-item i {
        font-size: 18px;
        min-width: 22px;
    }
}

/* ===================================
   CONTENU PACK - Pages abonnements
   =================================== */

/* Checkout page */
.contenu-pack-checkout {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e5e7eb;
}

.contenu-pack-checkout-titre {
    font-size: 0.875rem;
    font-weight: 600;
    color: #FFF;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.75rem;
}

.contenu-pack-checkout-titre i {
    margin-right: 0.5rem;
    color: #FFF;
}

.contenu-pack-checkout-liste {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.contenu-pack-checkout-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem;
    background: #f9fafb;
    border-radius: 6px;
}

.contenu-pack-checkout-qty {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-accent-olive);
    color: white;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
}

.contenu-pack-checkout-nom {
    flex: 1;
    font-size: 0.875rem;
    color: #374151;
}

/* Page abonnements */
.contenu-pack-abonnements {
    margin-top: .5rem;
    margin-bottom: 2rem;
    padding: 1rem;
    background: transparent;
    border-radius: 8px;
    border: 1px solid rgba(163, 140, 73, 0.2);
}

.contenu-pack-abonnements-titre {
    font-size: 0.75rem;
    font-weight: 700;
    color: #a38c49;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.contenu-pack-abonnements-titre i {
    font-size: 0.875rem;
}

.contenu-pack-abonnements-liste {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.contenu-pack-abonnements-item {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0.625rem;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 6px;
    transition: all 0.2s ease;
}

.contenu-pack-abonnements-item:hover {
    background: rgba(255, 255, 255, 0.08);
    transform: translateX(3px);
}

.contenu-pack-abonnements-qty {
    min-width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #a38c49 0%, #8b7a46 100%);
    color: white;
    border-radius: 5px;
    font-size: 0.6875rem;
    font-weight: 700;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.contenu-pack-abonnements-item span:last-child {
    flex: 1;
    font-size: 0.875rem;
    color: var(--color-text-primary);
    font-weight: 500;
}

/* Page compte */
.contenu-pack-compte {
    margin-top: 1rem;
}

.contenu-pack-compte-titre {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.75rem;
}

.contenu-pack-compte-titre i {
    margin-right: 0.5rem;
    color: var(--color-accent-olive);
}

.contenu-pack-compte-liste {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.contenu-pack-compte-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.contenu-pack-compte-item:hover {
    background: #f3f4f6;
}

.contenu-pack-compte-qty {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-accent-olive);
    color: white;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
}

.contenu-pack-compte-nom {
    flex: 1;
    font-size: 0.875rem;
    color: var(--color-text-primary);
    font-weight: 500;
}

/* ====================================================================
   CHECKOUT - STRIPE PAYMENT
   ==================================================================== */

.payment-method-stripe {
    border: 2px solid var(--color-accent-olive);
    border-radius: 8px;
    padding: 1.5rem;
    background: linear-gradient(135deg, #fafaf9 0%, #f5f5f4 100%);
}

.payment-method-stripe .payment-method-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.stripe-card-wrapper {
    margin: 1.5rem 0;
}

.stripe-card-element {
    border: 2px solid #e5e7eb;
    border-radius: 6px;
    padding: 14px 16px;
    background: white;
    transition: border-color 0.2s ease;
}

.stripe-card-element:hover {
    border-color: #d1d5db;
}

.stripe-card-element.StripeElement--focus {
    border-color: var(--color-accent-olive);
    box-shadow: 0 0 0 3px rgba(139, 122, 70, 0.1);
}

.stripe-card-element.StripeElement--invalid {
    border-color: #ef4444;
}

.stripe-card-errors {
    color: #ef4444;
    font-size: 0.875rem;
    margin-top: 0.5rem;
    min-height: 20px;
}

.payment-method-stripe .payment-method-content {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.payment-method-stripe .method-icon {
    font-size: 2rem;
    color: var(--color-accent-olive);
}

.payment-method-stripe .method-info {
    flex: 1;
}

.payment-method-stripe .method-name {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.25rem;
}

.payment-method-stripe .method-description {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
}

.stripe-badges {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding-top: 1rem;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.stripe-badges img {
    height: 28px;
    width: auto;
    object-fit: contain;
}

.stripe-badges i {
    font-size: 1.25rem;
    color: var(--color-accent-olive);
}

.payment-security-info {
    margin-top: 1.5rem;
    padding: 1rem;
    background: #f0fdf4;
    border-left: 4px solid #10b981;
    border-radius: 6px;
    display: flex;
    gap: 0.75rem;
    align-items: start;
}

.payment-security-info i {
    font-size: 1.5rem;
    color: #10b981;
    margin-top: 0.25rem;
}

.payment-security-info p {
    margin: 0;
    font-size: 0.875rem;
    color: #065f46;
    line-height: 1.5;
}

.payment-security-info strong {
    display: block;
    margin-bottom: 0.25rem;
    color: #064e3b;
}

@media (max-width: 768px) {
    .stripe-badges {
        justify-content: center;
    }
    
    .payment-security-info {
        flex-direction: column;
        text-align: center;
    }
    
    .payment-security-info i {
        margin: 0 auto;
    }
}

/* ====================================================================
   HOME - SUBSCRIPTION PACKS SECTION
   ==================================================================== */

.subscription-packs-home {
    padding: var(--spacing-4xl) 0;
    background: linear-gradient(135deg, var(--color-bg-secondary) 0%, var(--color-bg-primary) 50%, var(--color-bg-secondary) 100%);
    position: relative;
    overflow: hidden;
}

.subscription-packs-home::before {
    content: '';
    position: absolute;
    top: 0;
    left: -50%;
    width: 200%;
    height: 100%;
    background: radial-gradient(circle at 30% 50%, rgba(157, 143, 86, 0.08) 0%, transparent 50%);
    pointer-events: none;
}

.subscription-packs-home .container {
    position: relative;
    z-index: 1;
}

.subscription-packs-home .section-header {
    text-align: center;
    margin-bottom: var(--spacing-3xl);
}

.packs-home-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-xl);
    margin-bottom: var(--spacing-3xl);
}

.pack-home-card {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-2xl);
    box-shadow: var(--shadow-md);
    transition: all var(--transition-normal);
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(157, 143, 86, 0.1);
}

.pack-home-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-accent-olive), var(--color-accent-terra));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-normal);
}

.pack-home-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--shadow-xl);
    border-color: var(--color-accent-olive);
}

.pack-home-card:hover::before {
    transform: scaleX(1);
}

.pack-home-icon {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin-bottom: var(--spacing-lg);
    transition: all var(--transition-normal);
}

.pack-detente .pack-home-icon {
    background: var(--color-accent-terra);
    color: var(--color-bg-primary);
}

.pack-energie .pack-home-icon {
    background: linear-gradient(135deg, var(--color-wood) 0%, var(--color-accent-terra) 100%);
    color: var(--color-bg-primary);
}

.pack-home-card:hover .pack-home-icon {
    transform: scale(1.1) rotate(5deg);
}

.pack-home-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.pack-home-description {
    color: var(--color-text-secondary);
    line-height: 1.7;
    margin-bottom: var(--spacing-lg);
    font-size: var(--font-size-sm);
}

.pack-home-features {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-lg) 0;
    border-top: 1px solid var(--color-stone);
    border-bottom: 1px solid var(--color-stone);
}

.pack-home-feature {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

.pack-home-feature i {
    color: var(--color-success);
    font-size: var(--font-size-base);
    flex-shrink: 0;
}

.pack-home-price {
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    text-align: center;
    padding: var(--spacing-md);
    background: var(--color-bg-primary);
    border-radius: var(--radius-md);
}

.pack-home-price strong {
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-accent-olive);
    display: block;
    margin-top: var(--spacing-xs);
}

.packs-home-cta {
    text-align: center;
    padding: var(--spacing-xl);
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    border: 1px solid rgba(157, 143, 86, 0.1);
}

.packs-home-cta .btn {
    margin-bottom: var(--spacing-md);
}

.packs-home-cta-note {
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
}

.packs-home-cta-note i {
    color: var(--color-accent-olive);
}

@media (max-width: 992px) {
    .packs-home-grid {
        gap: var(--spacing-lg);
    }
    
    .pack-home-card {
        padding: var(--spacing-xl);
    }
}

@media (max-width: 768px) {
    .subscription-packs-home {
        padding: var(--spacing-3xl) 0;
    }
    
    .packs-home-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .pack-home-title {
        font-size: var(--font-size-xl);
    }
    
    .pack-home-icon {
        width: 56px;
        height: 56px;
        font-size: 1.75rem;
    }
    
    .packs-home-cta {
        padding: var(--spacing-lg);
    }
    
    .packs-home-cta-note {
        flex-direction: column;
        gap: var(--spacing-xs);
    }
}