/* Tiroirs latéraux (connexion + panier), partagés par toutes les pages. */

/* voile */
.tiroir-voile{position:fixed;inset:0;z-index:90;background:rgba(20,17,14,.55);
  opacity:0;pointer-events:none;transition:opacity .35s ease}
.tiroir-voile.est-ouvert{opacity:1;pointer-events:auto}

/* panneau */
.tiroir{position:fixed;top:0;right:0;bottom:0;z-index:100;width:min(480px,100vw);
  background:#F7F5F1;color:#211D18;display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform .4s cubic-bezier(.32,.72,.24,1);
  box-shadow:-24px 0 60px rgba(20,17,14,.18);
  font-family:'Saira Condensed',sans-serif;font-weight:300}
.tiroir.est-ouvert{transform:translateX(0)}
.tiroir[hidden]{display:none}

/* pas de scroll derrière le tiroir */
body.tiroir-actif{overflow:hidden}

.tiroir__entete{display:flex;align-items:flex-start;justify-content:space-between;
  padding:30px 36px 0;flex:0 0 auto}
.tiroir__titre{font-family:'Fjalla One',sans-serif;font-size:20px;letter-spacing:.5px}
.tiroir__fermer{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:none;border:none;cursor:pointer;color:#211D18;transition:background .25s}
.tiroir__fermer:hover{background:rgba(33,29,24,.07)}
.tiroir__fermer svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none}

.tiroir__corps{flex:1 1 auto;overflow-y:auto;padding:0 36px 40px}
.tiroir__pied{flex:0 0 auto;padding:20px 36px 28px;border-top:1px solid rgba(33,29,24,.12);background:#F7F5F1}

/* ---------- Connexion ---------- */
/* rythme repris de la référence : grand blanc après le titre, champs hauts,
   intervalle large entre e-mail et mot de passe */
.cnx__sous-titre{font-family:'Fjalla One',sans-serif;font-size:17px;letter-spacing:.4px;margin:44px 0 26px}
.cnx__oauth{display:flex;flex-direction:column;gap:13px}
.cnx__oauth button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;
  border:1px solid rgba(33,29,24,.28);background:none;cursor:pointer;
  padding:18px 16px;font:inherit;font-size:14.5px;color:#211D18;transition:border-color .25s,background .25s}
.cnx__oauth button:hover{border-color:#211D18;background:rgba(33,29,24,.03)}
.cnx__oauth svg{width:18px;height:18px}

/* « Ou » seul, sans traits de séparation */
.cnx__ou{text-align:center;margin:34px 0 24px;color:#5D574E;font-size:14px}

.cnx__obligatoires{text-align:right;font-size:12.5px;color:#8F8B85;margin-bottom:10px}
.champ{margin-bottom:26px}
.champ:last-of-type{margin-bottom:0}
.champ label{display:block;font-size:13.5px;letter-spacing:.3px;margin-bottom:10px}
.champ__zone{position:relative;display:flex;align-items:center}
.champ input{width:100%;border:1px solid rgba(33,29,24,.28);background:#fff;
  padding:17px 44px 17px 15px;font:inherit;font-size:15px;color:#211D18;outline:none;
  transition:border-color .25s}
.champ input:focus{border-color:#A8875B}
.champ input[aria-invalid="true"]{border-color:#B4483C}
.champ__oeil{position:absolute;right:10px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  background:none;border:none;cursor:pointer;color:#6C665D}
.champ__oeil svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4}
/* le message d'erreur ne réserve plus d'espace quand il est vide */
.champ__erreur{font-size:12.5px;color:#B4483C;margin-top:8px}
.champ__erreur:empty{display:none}

/* collé sous le champ mot de passe, comme sur la référence */
.cnx__lien{font-size:13.5px;color:#5D574E;border-bottom:1px solid currentColor;padding-bottom:1px;cursor:pointer;background:none;border-left:0;border-right:0;border-top:0}
.cnx__lien:hover{color:#211D18}
.cnx__oubli{display:inline-block;margin-top:10px}
.cnx__magique{font-size:13.5px;color:#5D574E;margin:36px 0 30px;line-height:1.6}

.btn-plein{width:100%;background:#211D18;color:#F4F1EC;border:1px solid #211D18;cursor:pointer;
  padding:19px 0;font:inherit;font-size:12px;letter-spacing:2.6px;text-transform:uppercase;
  transition:background .3s,color .3s}
.btn-plein:hover{background:#3A342C;border-color:#3A342C}
.btn-vide{width:100%;background:none;color:#211D18;border:1px solid #211D18;cursor:pointer;
  padding:15px 0;font:inherit;font-size:12px;letter-spacing:2.6px;text-transform:uppercase;
  transition:background .3s,color .3s;display:block;text-align:center}
.btn-vide:hover{background:#211D18;color:#F4F1EC}

.cnx__sep{border:0;border-top:1px solid rgba(33,29,24,.12);margin:30px 0 24px}
.cnx__creer p{font-size:14px;line-height:1.7;color:#5D574E;margin-bottom:16px}
.tiroir__note{font-size:12.5px;color:#A8875B;margin-top:14px;min-height:17px}

/* ---------- Panier ---------- */
.panier__ligne{display:grid;grid-template-columns:88px 1fr;gap:16px;padding:20px 0;
  border-bottom:1px solid rgba(33,29,24,.1)}
.panier__ligne img{width:88px;height:88px;object-fit:cover;background:#EDE9E1;display:block}
.panier__nom{font-size:15px}
.panier__matiere{font-size:12.5px;letter-spacing:1.4px;text-transform:uppercase;color:#8F8B85;margin-top:4px}
.panier__bas{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.qte{display:flex;align-items:center;border:1px solid rgba(33,29,24,.24)}
.qte button{width:30px;height:30px;background:none;border:none;cursor:pointer;font:inherit;font-size:15px;color:#211D18;line-height:1}
.qte button:disabled{color:rgba(33,29,24,.3);cursor:not-allowed}
.qte span{min-width:30px;text-align:center;font-size:14px}
.panier__prix{font-size:15px}
.panier__supprimer{background:none;border:none;cursor:pointer;font:inherit;font-size:12px;
  letter-spacing:1.4px;text-transform:uppercase;color:#8F8B85;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}
.panier__supprimer:hover{color:#211D18;border-bottom-color:#211D18}

.panier__totaux{display:flex;justify-content:space-between;font-size:15px;margin-bottom:6px}
.panier__totaux--fort{font-family:'Fjalla One',sans-serif;font-size:18px;margin:12px 0 18px}
.panier__mention{font-size:12.5px;color:#8F8B85;margin-bottom:16px}

/* ---------- État vide (commun) ---------- */
.tiroir__vide{text-align:center;padding:56px 10px}
.tiroir__vide svg{width:42px;height:42px;fill:none;stroke:#C4BEB3;stroke-width:1.2;margin-bottom:22px}
.tiroir__vide h3{font-family:'Fjalla One',sans-serif;font-size:19px;letter-spacing:.4px}
.tiroir__vide p{font-size:14.5px;line-height:1.7;color:#5D574E;margin:12px auto 26px;max-width:34ch}

@media(max-width:520px){
  .tiroir__entete{padding:20px 20px 16px}
  .tiroir__corps{padding:6px 20px 24px}
  .tiroir__pied{padding:18px 20px 24px}
}

@media(prefers-reduced-motion:reduce){
  .tiroir,.tiroir-voile{transition:none}
}
