/* ===================================
   RESET GENERAL
=================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:Arial, Helvetica, sans-serif;
}


body{
    background:#eaeded;
    color:#111;
}

@media(max-width:900px){
    body{
        padding-bottom:78px;
    }
}


/* ===================================
   HEADER (identique aux autres pages)
=================================== */


header{
    background:#131921;
    color:white;
    display:flex;
    justify-content:flex-start;
    align-items:center;
    padding:12px 25px;
    position:sticky;
    top:0;
    z-index:1000;
    flex-wrap:wrap;
    gap:10px;
    box-shadow:0 2px 10px rgba(0,0,0,.25);
}


.logo-container{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    flex-shrink:1;
}


.logo{
    width:52px;
    height:52px;
    object-fit:cover;
    border-radius:10px;
    background:white;
    padding:4px;
    flex-shrink:0;
}


.logo-container h1{
    font-size:22px;
    color:white;
    letter-spacing:.3px;
    white-space:nowrap;
}


.header-actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
    margin-left:auto;
    overflow-x:auto;
    scrollbar-width:none;
    -ms-overflow-style:none;
}

.header-actions::-webkit-scrollbar{
    display:none;
}




.icon-btn{
    position:relative;
    width:42px;
    height:42px;
    border-radius:50%;
    border:none;
    background:#232f3e;
    color:white;
    font-size:19px;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    transition:.2s;
    flex-shrink:0;
}


.icon-btn i{
    line-height:1;
    pointer-events:none;
}


/* Centrage parfait de l'icône (Font Awesome <i>, image ou svg) dans les boutons ronds
   connexion / déconnexion / menu / panier.
   Centrage par position absolue : reste correct quel que soit le display
   appliqué en JS au bouton lui-même (flex, inline-block, none...), donc
   ne casse jamais l'affichage/masquage connexion <-> déconnexion. */
.icon-btn,
.dropbtn,
#logoutBtn{
    position:relative;
    padding:0;
}

.icon-btn i,
.dropbtn i,
#logoutBtn i{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    line-height:1;
    margin:0;
    padding:0;
}

.icon-btn img,
.dropbtn img,
#logoutBtn img,
.icon-btn svg,
.dropbtn svg,
#logoutBtn svg{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    width:55%;
    height:55%;
    object-fit:contain;
    margin:0;
    pointer-events:none;
}



.icon-btn:hover{
    background:#febd69;
    color:#131921;
}


.icon-btn.active-icon{
    background:#febd69;
    color:#131921;
}


#logoutBtn{
    background:#febd69;
    color:#131921;
}


#logoutBtn:hover{
    background:#ff9900;
}


#cartCount{
    position:absolute;
    top:-4px;
    right:-4px;
    background:#ff9900;
    color:#131921;
    min-width:19px;
    height:19px;
    padding:0 3px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    font-weight:bold;
    border:2px solid #131921;
}


.dropbtn{
    background:#232f3e;
    color:white;
    border:none;
    width:42px;
    height:42px;
    border-radius:50%;
    cursor:pointer;
    font-size:18px;
    display:flex;
    align-items:center;
    justify-content:center;
}


.dropdown-content{
    display:none;
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100vh;
    background:white;
    padding-top:90px;
    z-index:9999;
}


.dropdown-content.show{
    display:block;
}


.dropdown-content a{
    display:block;
    width:90%;
    margin:15px auto;
    padding:15px;
    background:#eaeded;
    color:#111;
    text-decoration:none;
    border-radius:8px;
    font-weight:bold;
}


.dropdown-content a:hover{
    background:#131921;
    color:white;
}


.close-menu{
    position:absolute;
    right:25px;
    top:20px;
    font-size:35px;
    color:#111;
    cursor:pointer;
}


@media(min-width:901px){

.close-menu{ display:none; }
.dropdown{ position:static; }

.dropdown-content{
    display:flex !important;
    position:static;
    width:auto;
    height:auto;
    background:none;
    padding:0;
    align-items:center;
    gap:6px;
}

.dropdown-content a{
    width:auto;
    margin:0;
    padding:9px 14px;
    background:none;
    color:#d8dbe0;
    font-weight:600;
    font-size:14.5px;
    border-radius:20px;
}

.dropdown-content a:hover{
    background:#232f3e;
    color:#febd69;
}

.dropbtn{ display:none; }

}


/* ===================================
   TITRE PAGE
=================================== */


.page-header{
    width:95%;
    max-width:900px;
    margin:20px auto 0;
    background:white;
    padding:18px 20px;
    border-radius:10px;
    box-shadow:0 2px 8px rgba(0,0,0,.1);
}


.page-header h2{
    font-size:24px;
    color:#131921;
    border-left:5px solid #febd69;
    padding-left:12px;
}


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


.panier-wrapper{
    width:95%;
    max-width:900px;
    margin:20px auto 40px;
    display:flex;
    flex-direction:column;
    gap:20px;
}


.panier-items{
    display:flex;
    flex-direction:column;
    gap:14px;
}


.boutique-groupe{
    background:white;
    border-radius:12px;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
    overflow:hidden;
}


.boutique-groupe-titre{
    background:#f6f7f7;
    padding:12px 16px;
    font-weight:bold;
    font-size:13.5px;
    color:#131921;
    border-bottom:1px solid #eee;
    display:flex;
    align-items:center;
    gap:8px;
}


.panier-item{
    display:flex;
    align-items:center;
    gap:14px;
    padding:14px 16px;
    border-bottom:1px solid #f0f0f0;
}


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


.panier-item img{
    width:64px;
    height:64px;
    object-fit:contain;
    background:#f7f8f8;
    border-radius:8px;
    padding:6px;
    flex-shrink:0;
}


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


.panier-item-info h4{
    font-size:14.5px;
    color:#131921;
    margin-bottom:4px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}


.panier-item-info .prix-unitaire{
    color:#777;
    font-size:12.5px;
}


.panier-item-actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
}


.qte-controle{
    display:flex;
    align-items:center;
    gap:8px;
    background:#f6f7f7;
    border-radius:20px;
    padding:4px 10px;
}


.qte-controle button{
    width:26px;
    height:26px;
    border-radius:50%;
    border:none;
    background:#131921;
    color:white;
    font-size:14px;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
}


.qte-controle button:hover{
    background:#febd69;
    color:#131921;
}


.qte-controle span{
    min-width:16px;
    text-align:center;
    font-weight:bold;
    font-size:13.5px;
}


.panier-item-sous-total{
    min-width:80px;
    text-align:right;
    font-weight:bold;
    color:#1c7a3e;
    font-size:14px;
}


.btn-supprimer{
    width:34px;
    height:34px;
    border-radius:50%;
    border:none;
    background:#fdecee;
    color:#cc0c39;
    cursor:pointer;
    font-size:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:.2s;
}


.btn-supprimer:hover{
    background:#cc0c39;
    color:white;
}


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


.panier-empty{
    background:white;
    border-radius:12px;
    padding:60px 20px;
    text-align:center;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
}


.panier-empty i{
    font-size:48px;
    color:#ccc;
    margin-bottom:16px;
}


.panier-empty p{
    color:#666;
    font-size:15px;
    margin-bottom:20px;
}


.btn-continuer{
    display:inline-block;
    background:#febd69;
    color:#131921;
    padding:12px 26px;
    border-radius:24px;
    text-decoration:none;
    font-weight:bold;
    font-size:14px;
}


.btn-continuer:hover{
    background:#ff9900;
}


/* ===================================
   RESUME COMMANDE
=================================== */


.panier-resume{
    background:white;
    border-radius:12px;
    padding:22px;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
    position:sticky;
    bottom:12px;
}


.panier-resume h3{
    font-size:17px;
    color:#131921;
    margin-bottom:16px;
}


.resume-ligne{
    display:flex;
    justify-content:space-between;
    padding:8px 0;
    font-size:14px;
    color:#555;
}


.resume-ligne.total{
    border-top:2px solid #f0f0f0;
    margin-top:6px;
    padding-top:14px;
    font-size:18px;
    font-weight:bold;
    color:#131921;
}


.btn-commander{
    width:100%;
    height:50px;
    margin-top:18px;
    border:none;
    border-radius:25px;
    background:#25D366;
    color:white;
    font-size:15.5px;
    font-weight:bold;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    transition:.2s;
}


.btn-commander:hover{
    background:#1da851;
}


.btn-vider{
    width:100%;
    height:42px;
    margin-top:10px;
    border:none;
    border-radius:25px;
    background:none;
    color:#cc0c39;
    font-size:13.5px;
    font-weight:bold;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}


.btn-vider:hover{
    text-decoration:underline;
}


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


footer{
    margin-top:50px;
    background:#131921;
    color:white;
    text-align:center;
    padding:30px;
}


/* ===================================
   BARRE DE NAVIGATION BASSE (mobile)
=================================== */


.bottom-nav{
    display:none;
}


@media(max-width:900px){

.bottom-nav{
    display:flex;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    background:#131921;
    box-shadow:0 -3px 12px rgba(0,0,0,.25);
    z-index:1500;
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));
}

.bottom-nav a{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    color:#9aa1ab;
    text-decoration:none;
    font-size:10.5px;
    font-weight:bold;
    padding:6px 2px;
    border-radius:10px;
}

.bottom-nav a .bn-icon{
    font-size:18px;
}

.bottom-nav a.active{
    color:#febd69;
}

}


@media(max-width:900px){

header{
    padding:12px 16px;
}

.logo-container h1{
    font-size:19px;
}

}


@media(max-width:600px){

.logo{
    width:44px;
    height:44px;
}

.logo-container h1{
    font-size:17px;
}

.icon-btn,
.dropbtn{
    width:38px;
    height:38px;
    font-size:17px;
}

.panier-item{
    flex-wrap:wrap;
}

.panier-item-sous-total{
    text-align:left;
    margin-left:78px;
}

}


/* ===========================
   Bouton Help Kingdom Market
=========================== */

.help-button{
    position:fixed;
    bottom:25px;
    left:25px;
    width:65px;
    height:65px;
    background:linear-gradient(135deg,#180117,#ffb300);
    color:white;
    display:flex;
    justify-content:center;
    align-items:center;
    border-radius:50%;
    font-size:30px;
    text-decoration:none;
    box-shadow:0 10px 25px rgba(0,0,0,.35);
    z-index:1400;
    transition:.3s;
}

.help-button:hover{
    transform:scale(1.1);
    box-shadow:0 15px 35px rgba(255,152,0,.5);
}

.help-button::before{
    content:"";
    position:absolute;
    width:100%;
    height:100%;
    border-radius:50%;
    background:rgba(255,152,0,.4);
    animation:pulse 2s infinite;
}

.help-button i{
    position:relative;
    z-index:2;
}

@keyframes pulse{
    0%{ transform:scale(1); opacity:.8; }
    70%{ transform:scale(1.5); opacity:0; }
    100%{ transform:scale(1.5); opacity:0; }
}

@media(max-width:768px){
.help-button{
    width:58px;
    height:58px;
    font-size:26px;
    bottom:100px;
    left:20px;
}
}


/* ===================================================
   HEADER — ADAPTATION PETITS ÉCRANS (Android / iPhone compacts)
=================================================== */
@media(max-width:420px){

header{
    padding:10px 12px;
    gap:6px;
}

.logo{
    width:38px;
    height:38px;
}

.logo-container{
    gap:8px;
}

.logo-container h1{
    font-size:15px;
}

.icon-btn,
.dropbtn{
    width:36px;
    height:36px;
    font-size:16px;
}

.header-actions{
    gap:6px;
}

}
/* ===================================
   OPTION LIVRAISON (panier)
=================================== */

.livraison-option{
    padding:14px 0 6px;
    border-top:1px solid #f0f0f0;
    border-bottom:1px solid #f0f0f0;
    margin:6px 0;
}

.livraison-question{
    font-size:13.5px;
    font-weight:bold;
    color:#131921;
    margin-bottom:10px;
}

.livraison-choix{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.livraison-btn{
    width:100%;
    padding:11px 10px;
    border:2px solid #e0e0e0;
    border-radius:20px;
    background:white;
    color:#555;
    font-size:13px;
    font-weight:bold;
    cursor:pointer;
    transition:.2s;
    text-align:center;
}

.livraison-btn:hover{
    border-color:#febd69;
}

.livraison-btn.active{
    background:#febd69;
    border-color:#febd69;
    color:#131921;
}

#btnLivraisonOui.active{
    background:#25D366;
    border-color:#25D366;
    color:white;
}

@media(min-width:500px){

.livraison-choix{
    flex-direction:row;
}

}