.cart-button{
  cursor:pointer;
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:120;
  display:flex;
  align-items:center;
  gap:8px;
  padding:12px 16px;
  border-radius:999px;
  background:var(--green);
  color:white;
  box-shadow:0 10px 25px rgba(0,0,0,.25);
  transition:transform .15s ease, box-shadow .2s ease;
}

.cart-button:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(0,0,0,.28);
}

.cart-button:active{
  transform:scale(.96);
}

.cart-button b{
  display:inline-grid;
  place-items:center;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border-radius:999px;
  background:var(--coral);
  color:#fff;
  font-size:.72rem;
}

.cart-panel{
  position:fixed;
  z-index:130;
  top:0;
  right:0;
  width:min(380px,95vw);
  height:100vh;
  height:100dvh;
  max-height:100dvh;
  background:var(--paper);
  box-shadow:-20px 0 60px rgba(0,0,0,.25);
  padding:20px;
  padding-bottom:calc(20px + env(safe-area-inset-bottom));
  transform:translateX(105%);
  transition:transform .25s ease;
  overflow:auto;
}

.cart-panel.open{
  transform:translateX(0);
}

.cart-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:16px;
  margin-bottom:18px;
  border-bottom:1px solid var(--line);
}

.cart-panel-head button{
  border:0;
  background:none;
  font-size:2rem;
  cursor:pointer;
  transition:transform .12s ease;
}

.cart-panel-head button:hover{
  transform:scale(1.08);
}

.cart-panel-head button:active{
  transform:scale(.92);
}

.empty-cart{
  padding:35px 0;
  color:var(--muted);
}

.cart-line{
  display:flex;
  gap:12px;
  align-items:center;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}

.cart-photo{
  width:64px;
  height:64px;
  border-radius:12px;
  background:#f3ead8 center/cover no-repeat;
  object-fit:cover;
  display:block;
  flex:none;
}

.cart-unit-info{
  flex:1;
  min-width:0;
}

.cart-unit-info strong{
  display:block;
  font-size:.95rem;
}

.cart-unit-info small,
.cart-unit-info span{
  display:block;
  margin-top:4px;
  font-size:.78rem;
  color:var(--muted);
}

.cart-quantity-control{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:8px;
}

.cart-quantity-control button{
  width:25px;
  height:25px;
  border-radius:50%;
  border:1px solid #d9c69c;
  background:white;
  color:var(--green);
  font-size:1rem;
  font-weight:800;
  cursor:pointer;
  transition:transform .12s ease, background .15s ease;
}

.cart-quantity-control button:hover{
  background:#fff6dd;
}

.cart-quantity-control button:active{
  transform:scale(.9);
}

.cart-quantity-control b{
  min-width:18px;
  text-align:center;
  font-size:.82rem;
  color:var(--green);
}

.cart-remove{
  width:32px;
  height:32px;
  border-radius:50%;
  border:1px solid var(--line);
  background:white;
  color:var(--coral);
  cursor:pointer;
  font-size:1.2rem;
  transition:transform .12s ease, background .15s ease;
}

.cart-remove:hover{
  background:#fff2ef;
}

.cart-remove:active{
  transform:scale(.9);
}

.cart-total{
  display:flex;
  justify-content:space-between;
  padding:22px 0;
  font-size:1.15rem;
}

.cart-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* Bouton Valider */

.cart-validate{
  transition:transform .12s ease, box-shadow .15s ease;
}

.cart-validate:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(31,56,45,.2);
}

.cart-validate:active{
  transform:scale(.96);
  box-shadow:0 0 0 6px rgba(42,91,70,.18);
}

/* Bouton Vider */

.secondary-cart-action{
  border:1px solid var(--line);
  background:white;
  padding:11px;
  border-radius:22px;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .15s ease, background .15s ease;
}

.secondary-cart-action:hover{
  background:#f8f4ec;
}

.secondary-cart-action:active{
  transform:scale(.96);
  box-shadow:0 0 0 6px rgba(42,91,70,.15);
}

.cart-spice-control{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:8px;
  padding:7px 9px;
  border-radius:11px;
  background:#fbf3e2;
  border:1px solid #ead9b9;
}

.cart-spice-control button{
  width:24px;
  height:24px;
  border-radius:50%;
  border:1px solid #d9c69c;
  background:white;
  cursor:pointer;
  transition:transform .12s ease, background .15s ease;
}

.cart-spice-control button:hover{
  background:#fff6dd;
}

.cart-spice-control button:active{
  transform:scale(.9);
}

/* Confirmation de commande */

.order-success{
  text-align:center;
  padding:30px 15px;
}

.success-icon{
  width:72px;
  height:72px;
  margin:0 auto 18px;
  border-radius:50%;
  background:#2a5b46;
  color:white;
  display:grid;
  place-items:center;
  font-size:2rem;
  font-weight:bold;
}

.order-success h3{
  margin:0 0 10px;
}

.pickup-reminder{
  margin-top:15px;
  color:var(--green);
  font-weight:600;
}

/* Le bouton panier reste attaché à l'en-tête sticky.
   Il suit donc l'écran avec le header au lieu de rester en bas de l'écran. */

.cart-button{
  position:static;
  flex:none;
}

.site-header{
  position:sticky;
}

.site-header > .cart-button{
  margin-left:auto;
}

.site-header nav{
  display:flex;
  align-items:center;
}

@media(max-width:620px){

  .site-header{
    position:sticky;
    top:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
  }

  .site-header .brand{
    width:auto;
    min-width:0;
    margin-right:0;
  }

  .site-header > .cart-button{
    grid-column:2;
    grid-row:1;
    margin-left:0;
  }

  .site-header nav{
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
  }

  .cart-panel{
    width:100vw;
    max-width:100vw;
    padding:18px;
  }

}


/* Confirmation visuelle après ajout au panier */
.cart-button.cart-bump{
  animation:cart-bump .45s ease;
}

@keyframes cart-bump{
  0%{transform:scale(1)}
  35%{transform:scale(1.08)}
  65%{transform:scale(.96)}
  100%{transform:scale(1)}
}

.cart-unit-info span small{
  display:inline;
  margin:0;
  font-size:.72rem;
}


/* Miniatures réelles dans le panier */
.cart-photo-placeholder{
  display:grid;
  place-items:center;
  color:var(--green);
  font-size:1.5rem;
}
.cart-photo-error{
  visibility:hidden;
}


/* V2.06.26 — Formulaire de commande affiché en premier dans le panneau */
#order-form[hidden], #cart-content[hidden]{display:none!important}
#order-form{width:100%;margin:0 0 16px;scroll-margin-top:12px}
.checkout-pickup{display:flex;flex-direction:column;gap:6px;font-weight:700;margin:0 0 12px}
.checkout-pickup select{width:100%;min-height:44px;border:1px solid #d8c8aa;border-radius:10px;padding:10px;background:#fffdf8;color:var(--ink);font:inherit}
.promo-note{margin:8px 0 12px!important;min-height:0!important;padding:8px 10px;border-radius:10px;background:#fff0ed;color:#9a3f32!important;font-weight:800;font-size:.8rem!important}


/* V3.08 — choix du moyen de paiement */
.checkout-payment{margin:14px 0;padding:12px;border:1px solid #ded7f8;border-radius:12px;display:grid;gap:10px;min-width:0}
.checkout-payment legend{padding:0 5px;font-weight:800;color:var(--ink)}
.checkout-payment label{display:flex;align-items:center;gap:9px;line-height:1.4}
.checkout-payment input[type="radio"]{accent-color:#4f39f6;width:18px;height:18px;flex:0 0 auto}
.payment-note{margin:2px 0 0;color:#5d6470;font-size:.84rem;line-height:1.45}
