/* Style général pour la démo */
/* body {
   font-family: Arial, sans-serif;
   background-color: #f4f4f4;
   padding: 20px 100px;
} */

/* Conteneur principal de la section */
.product-scroller {
   background-color: #fff;
   /* padding: 15px; */
   padding: 0px;
   border-radius: 5px;
   box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.scroller-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-bottom: 15px;
   border-bottom: 1px solid #eee;
   padding: 10px;
}

.scroller-header h2 {
   margin: 0;
   font-size: 1.2em;
}

.scroller-header .view-all {
   text-decoration: none;
   color: var(--primary); /* Couleur orange de Jumia */
   font-weight: bold;
}

/* Conteneur des produits et des flèches */
.scroller-container {
   position: relative; /* Indispensable pour positionner les flèches */
   padding: 0 5px;
}

/* Le conteneur qui défile */
.product-container {
   display: flex; /* Aligne les produits horizontalement */
   overflow-x: hidden; /* Cache la barre de défilement native */
   scroll-behavior: smooth; /* Active le défilement fluide */
   gap: 15px; /* Espace entre les produits */
   padding-bottom: 10px;
   overflow-y: hidden;
}

/* Style de chaque carte produit */
.product-card {
    flex: 0 0 200px; /* Chaque carte fait 200px de large et ne se déforme pas */
    /* border: 1px solid #eee; */
    border-radius: 5px;
    overflow: hidden;
    background-color: #fff; /* Assurez-vous d'avoir un fond blanc */
    margin: 10px 0;

   /* Ajout des transitions pour une animation fluide */
    transition: transform 0.3s ease, box-shadow 0.3s ease;

    /* Optionnel: Assure que la carte est sur sa propre couche pour de meilleures perfs */
    will-change: transform, box-shadow;
}

.product-card:hover {
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    transform: translateY(-5px) scale(1.02); /* Soulève légèrement et agrandit un peu */
    box-shadow: 0 8px 16px rgba(0,0,0,0.2); /* Ombre plus prononcée */
    z-index: 5; /* Assurez-vous qu'elle est au-dessus des autres cartes */
}

.product-card a {
   text-decoration: none;
   color: #333;
   display: block;
}

.product-card img {
   width: 100%;
   /* height: auto; */
   height: 200px; /* Fixez une hauteur pour éviter les sauts de page (layout shift) */
   display: block;
   background-color: #f0f0f1; /* Couleur de fond légère pendant le chargement */
   object-fit: cover; /* Assure que l'image remplira l'espace sans se déformer */
}

/* .product-card img.lazy-load {
   padding: 50px;
} */

.product-card .product-name {
   padding: 5px 10px;
   font-size: 0.75em;
   /* line-height: 1.2rem; */
   /* Pour que les cartes gardent la même hauteur */
   /* min-height: 1em; */
   /* overflow: hidden; */
   margin: 0;
}

.product-card .product-price {
   padding: 0 10px 10px;
   font-weight: bold;
   font-size: 1.1em;
   margin: 0;
}

.product-card .product-old-price {
   text-decoration: line-through;
   color: #888;
   font-size: 0.8em;
   padding: 0 10px 10px;
}

.product-card .product-discount {
   background-color: #fef2e8;
   color: var(--primary);
   font-size: 0.7em;
   padding: 2px 5px;
   border-radius: 3px;
   margin: 0 10px;
   display: inline-block;
}


/* Style des flèches de navigation */
.scroll-btn {
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   background-color: rgba(255, 255, 255, 0.8);
   border: 1px solid #ddd;
   border-radius: 50%;
   width: 36px;
   height: 36px;
   font-size: 20px;
   cursor: pointer;
   z-index: 10;
   box-shadow: 0 2px 5px rgba(0,0,0,0.2);
   display: flex;
   align-items: center;
   justify-content: center;
}

.scroll-btn:hover {
   background-color: var(--primary);
   color: #fff;
   border: 1px solid var(--primary);
}

.prev-btn {
   /* left: -20px; */
   left: 0px;
}

.next-btn {
   /* right: -20px; */
   right: 0px;
}

/* Classe pour cacher les boutons quand on est au début ou à la fin */
.hidden {
   display: none;
}


/* Conteneur principal du slider */
.slider-container {
    flex: 1; /* Le slider prend tout l'espace restant au milieu */
    /* On retire les largeurs fixes pour qu'il soit flexible */
    /* aspect-ratio: 16 / 7; */
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    height: 100%;
}

/* Le reste du CSS du slider (slides, slide, prev-btn, next-btn, dot) reste INCHANGÉ. */
/* Copiez-collez le CSS de la réponse précédente ici. */
.slides {
    display: flex;
    width: 100%;
    height: 100%;
    transition: transform 0.5s ease-in-out;
}
.slide {
    min-width: 100%;
    height: 100%;
    box-sizing: border-box;
}
.slide a {
    width: 100%;
    height: 100%;
}
.slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.slider-prev-btn, .slider-next-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(0, 0, 0, 0.4);
    color: white;
    border: none;
    padding: 0px;
    cursor: pointer;
    z-index: 10;
    font-size: 16px;
    line-height: 16px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.3s ease;
}
.slider-prev-btn:hover, .slider-next-btn:hover {
    background-color: rgba(0, 0, 0, 0.7);
}
.slider-prev-btn {
    left: 4px;
    /* border-radius: 5px 0 0 5px; */
}
.slider-next-btn {
    right: 4px;
    /* border-radius: 0 5px 5px 0; */
}
.pagination-dots { position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    z-index: 10;
}
.dot { width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.5);
    margin: 0 5px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}
.dot.active {
    background-color: var(--primary);
}

/* NOUVEAU : Conteneur principal de la section hero */
.hero-section {
    /* La clé de notre mise en page ! */
    /* display: flex; */
    /* Espace entre les colonnes */
    /* gap: 15px; */
    width: 100%;
    /* Augmenter la largeur max pour accueillir les sidebars */
    /* max-width: 1200px; */
    /* Centrer la section */
    /* margin: 0 auto; */
}

/* NOUVEAU : Style de la barre latérale gauche (Catégories) */
.sidebar-left {
    /* Ne grandit pas, ne rétrécit pas, base de 240px */
    /* flex: 0 0 240px; */
    background-color: white;
    padding: 5px;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.sidebar-left h3 {
    margin-top: 0;
    font-size: 16px;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

.sidebar-left ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.sidebar-left li a {
    display: block;
    padding: 8px 5px;
    text-decoration: none;
    color: #333;
    font-size: 14px;
    border-radius: 4px;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.sidebar-left li a:hover {
    background-color: #f0f0f0;
    color: var(--primary); /* Une couleur orange comme Jumia */
}

/* ============================================= */
/* ## STYLES POUR LE MÉGA MENU ## */
/* ============================================= */

/* Rendre le parent positionnable */
.sidebar-left {
    /* Indispensable pour positionner le menu enfant */
    position: relative;
}

/* Le conteneur principal du méga menu */
.mega-menu {
    position: absolute;   /* Le sort du flux normal de la page */
    left: 95%;           /* Se positionne exactement à droite de la sidebar */
    top: 0;               /* S'aligne en haut de son parent <li> */
    bottom: 0;
    overflow-y: auto;
    width: 700px;         /* Définissez la largeur de votre méga menu */
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    border-left: 3px solid var(--primary); /* Bordure orange pour le style */
    box-shadow: 3px 3px 10px rgba(0,0,0,0.1);
    border-radius: 0 8px 8px 0;
    padding: 10px;
    z-index: 100;         /* S'assure qu'il passe au-dessus des autres éléments */

    display: flex;        /* Aligne les colonnes horizontalement */
    gap: 15px;            /* Espace entre les colonnes */
    flex-wrap: wrap;

    /* Cacher le menu par défaut avec une transition douce */
    visibility: hidden;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* ## L'EFFET MAGIQUE : AFFICHER LE MENU AU SURVOL ## */
/* Quand on survole un <li> qui a un méga-menu, on le rend visible */
.sidebar-left ul li.has-megamenu:hover > .mega-menu {
    visibility: visible;
    display: flex;
    flex-wrap: wrap;
    opacity: 1;
}

.sidebar-left ul li.has-megamenu > .menu-1 {
    position: relative;
    display: flex;
    gap: 5px;
}
.sidebar-left ul li.has-megamenu > .menu-1::after {
    position: absolute;
    font-family: 'Material Design Icons';
    content: "";
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}

.sidebar-left ul li > .menu-1 .icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.1);
    color: var(--primary);
    font-size: 16px;
    line-height: 16px;
}
.sidebar-left ul li.has-megamenu > .menu-1 .text {
    flex: 1;
}

/* Style des colonnes */
.mega-menu-column {
    flex: 1; /* Chaque colonne prend une part égale de l'espace disponible */
}

.mega-menu-column h4 {
    margin-top: 0;
    font-size: 15px;
    color: #333;
    padding-bottom: 8px;
    border-bottom: 2px solid #f0f0f0; /* Ligne de séparation sous les titres */
    margin-bottom: 10px;
}

.mega-menu-column h4 a {
    text-decoration: none;
    color: inherit;
}

/* Style des listes de sous-catégories (Niveau 3) */
.sub-category {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0; /* Espace sous chaque bloc de sous-catégories */
}

.sub-category li a {
    color: #555;
    font-size: 14px;
    padding: 6px 0; /* Ajustement du padding */
}

/* On s'assure que le survol dans le méga-menu a la bonne couleur */
.sub-category li a:hover {
    color: var(--primary);
    background-color: transparent; /* Annule le fond du survol parent */
}

/* Style pour la colonne promotionnelle */
.promo-column img {
    width: 100%;
    border-radius: 5px;
    height: auto;
}


/* NOUVEAU : Style de la barre latérale droite (Promotions) */
.sidebar-right {
    /* Base de 220px */
    /* flex: 0 0 220px; */
    display: flex;
    flex-direction: column; /* Aligne les promotions verticalement */
    gap: 15px; /* Espace entre les images promo */
}

.promo-item {
    background-color: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

.promo-item img {
    width: 100%;
    display: block; /* Enlève l'espace blanc sous l'image */
    transition: transform 0.3s ease;
}

.promo-item a:hover img {
    transform: scale(1.05); /* Effet de zoom au survol */
}

@media (max-width: 768px) {
    .scroll-btn {
        display: none; /* Cache les flèches sur mobile */
    }
    .product-container {
        overflow-x: auto; /* Active le défilement natif au doigt */
        -webkit-overflow-scrolling: touch; /* Pour un défilement fluide sur iOS */
        scrollbar-width: none; /* Cache la barre de défilement sur Firefox */
    }
    .product-container::-webkit-scrollbar {
        display: none; /* Cache la barre de défilement sur Chrome/Safari */
    }

    .product-scroller {
        border-radius: 0;
    }

    .hero-section {
        flex-direction: column; /* Les colonnes se superposent verticalement */
    }

    .slider-container {
        border-radius: 0;
    }

    /* Sur mobile, les sidebars peuvent prendre toute la largeur */
    .sidebar-left, .sidebar-right {
        flex-basis: auto; /* Réinitialise la base de largeur */
        width: 100%;
        border-radius: 0;
    }

    .sidebar-left ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .sidebar-left ul li {
        flex: 1;
    }
    .sidebar-left ul li .menu-1 {
        display: flex;
        flex-direction: column;
        align-content: center;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
        gap: 0px;
    }
    .sidebar-left ul li .menu-1 .icon {
        width: 60px;
        height: 60px;
    }
    .sidebar-left ul li .menu-1 .icon .mdi {
        font-size: 36px !important;
        line-height: 36px !important;
    }
    .sidebar-right {
        flex-direction: row; /* Les promos peuvent être côte à côte si l'espace le permet */
    }

    .promo-item {
        flex: 1; /* Chaque promo prend une part égale de l'espace */
    }
}
