/* ============================================================
   AGRIPOINT — Boutique & Panier (styles complémentaires)
   ============================================================ */

/* Cart button in nav */
.cart-btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;background:var(--green-50);
  margin-left:.5rem;
}
.cart-btn svg{width:20px;height:20px;stroke:var(--green-900);fill:none;stroke-width:2}
.cart-btn:hover{background:var(--brand);color:#fff}
.cart-btn:hover svg{stroke:#fff}
.cart-badge{
  position:absolute;top:-4px;right:-4px;
  width:20px;height:20px;border-radius:50%;
  background:var(--accent);color:#fff;
  display:grid;place-items:center;
  font-size:.7rem;font-weight:700;
}

/* Stock badges on product images */
.badge-stock{
  position:absolute;top:1rem;left:1rem;z-index:2;
  padding:.3rem .7rem;border-radius:var(--radius-full);
  font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
}
.badge-stock.out{background:#fee2e2;color:#b91c1c}
.badge-stock.low{background:#fef3c7;color:#b45309}

.add-cart:disabled{opacity:.55;cursor:not-allowed}

/* Search bar */
.shop-search{
  position:relative;max-width:520px;margin:0 auto 1.5rem;
}
.shop-search input{
  width:100%;padding:.95rem 1rem .95rem 3rem;
  border:1.5px solid var(--stone-200);border-radius:var(--radius-full);
  font-family:inherit;font-size:.95rem;background:#fff;
  transition:.2s;
}
.shop-search input:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 4px rgba(21,128,61,.1)}
.shop-search-ico{
  position:absolute;left:1.1rem;top:50%;transform:translateY(-50%);
  width:18px;height:18px;color:var(--stone-500);pointer-events:none;
}

/* Selection heading */
.selection-head{text-align:center;max-width:640px;margin:0 auto 2.5rem}
.selection-head h2{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,3vw,2.4rem);color:var(--green-900);margin-bottom:.6rem}
.selection-head p{color:var(--stone-500);font-size:1rem}

/* Discount badge */
.badge-discount{
  position:absolute;top:1rem;left:1rem;z-index:2;
  background:var(--accent);color:#fff;
  padding:.35rem .75rem;border-radius:.4rem;
  font-size:.78rem;font-weight:700;letter-spacing:.02em;
  box-shadow:0 4px 12px rgba(234,88,12,.3);
}
.badge-stock{top:1rem;right:3.5rem} /* ne chevauche pas le coeur */

/* Wishlist button */
.wishlist-btn{
  position:absolute;top:1rem;right:1rem;z-index:2;
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.95);border:0;
  display:grid;place-items:center;cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,.08);
  color:var(--stone-500);transition:.2s;
}
.wishlist-btn svg{width:17px;height:17px}
.wishlist-btn:hover{color:var(--accent);transform:scale(1.1)}
.wishlist-btn.active{color:var(--accent);background:#fff}

/* Product card refinements */
.product-img{height:240px;position:relative}
.product-tags{
  font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--stone-500);margin-bottom:.4rem;font-weight:500;line-height:1.4;
}
.product-price{
  font-family:'Playfair Display',serif;font-size:1.25rem;
  font-weight:700;color:var(--green-900);margin-bottom:1rem;
  display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;
}
.price-old{
  color:var(--stone-500);text-decoration:line-through;
  font-size:.9rem;font-weight:500;
}
.price-now{color:var(--accent);font-weight:700}
.price-range{color:var(--stone-500);font-weight:400}
.price-note{
  font-size:.75rem;color:var(--stone-500);margin-top:-.5rem;margin-bottom:1rem;
  font-style:italic;font-family:'Inter',sans-serif;font-weight:400;
}

/* Empty */
.empty-row{grid-column:1/-1;text-align:center;padding:3rem;color:var(--stone-500)}

/* Toast de confirmation ajout panier */
.cart-toast{
  position:fixed;bottom:100px;right:1.5rem;z-index:300;
  background:var(--green-800);color:#fff;
  padding:.85rem 1.2rem;border-radius:.7rem;
  font-size:.9rem;font-weight:500;
  box-shadow:0 20px 40px rgba(10,31,18,.25);
  display:flex;align-items:center;gap:.55rem;
  transform:translateY(20px);opacity:0;pointer-events:none;
  transition:.25s ease;max-width:90vw;
}
.cart-toast.show{transform:translateY(0);opacity:1;pointer-events:auto}
.cart-toast svg{width:20px;height:20px;color:#86efac;stroke:currentColor;fill:none;flex-shrink:0}

/* Animation bouton add-to-cart */
.add-cart.added{
  background:var(--green-800) !important;
  transform:scale(.96);
}
.add-cart.added svg{animation:added-pop .5s ease}
@keyframes added-pop{
  0%{transform:scale(1)}
  40%{transform:scale(1.35) rotate(-10deg)}
  100%{transform:scale(1)}
}

/* WhatsApp button */
.btn-whatsapp{
  background:#25d366;color:#fff;border:0;
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.95rem 1.6rem;border-radius:var(--radius-full);
  font-weight:600;font-size:.95rem;transition:.25s;
  box-shadow:0 10px 30px -10px rgba(37,211,102,.45);
}
.btn-whatsapp svg{width:20px;height:20px}
.btn-whatsapp:hover{background:#1ebe57;transform:translateY(-2px)}

/* Cart drawer */
#cart-backdrop{
  position:fixed;inset:0;background:rgba(10,31,18,.55);z-index:200;
  opacity:0;pointer-events:none;transition:.3s;
}
#cart-backdrop.open{opacity:1;pointer-events:auto}
#cart-drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);
  background:#fff;z-index:201;box-shadow:-20px 0 60px rgba(0,0,0,.2);
  transform:translateX(100%);transition:transform .35s ease;
  display:flex;flex-direction:column;
}
#cart-drawer.open{transform:none}
.cart-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.5rem;border-bottom:1px solid var(--stone-200);
}
.cart-head h3{font-family:'Playfair Display',serif}
.cart-head button{
  background:var(--stone-100);border:0;width:36px;height:36px;border-radius:50%;
  cursor:pointer;font-size:1.5rem;line-height:1;
}
.cart-body{flex:1;overflow-y:auto;padding:1rem 1.5rem}
.cart-empty{text-align:center;padding:3rem 1rem;color:var(--stone-500)}
.cart-line{
  display:grid;grid-template-columns:64px 1fr auto;gap:1rem;
  padding:1rem 0;border-bottom:1px solid var(--stone-100);
  align-items:flex-start;
}
.cart-line-img{
  width:64px;height:64px;border-radius:.5rem;background:var(--stone-100);
}
.cart-line-info strong{display:block;font-size:.95rem;margin-bottom:.25rem}
.cart-line-price{font-size:.85rem;color:var(--stone-500);margin-bottom:.5rem}
.qty-ctl{display:flex;align-items:center;gap:.35rem}
.qty-ctl button{
  width:28px;height:28px;border-radius:.4rem;border:1px solid var(--stone-200);
  background:#fff;cursor:pointer;font-weight:600;
}
.qty-ctl span{min-width:24px;text-align:center;font-weight:600}
.qty-ctl .rm{margin-left:.5rem;background:var(--stone-50);font-size:.85rem}
.qty-ctl .rm:hover{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
.cart-line-total{font-weight:700;color:var(--green-900);white-space:nowrap;font-size:.95rem}

.cart-foot{
  padding:1.25rem 1.5rem;border-top:1px solid var(--stone-200);
  background:var(--stone-50);
}
.cart-summary{
  display:flex;justify-content:space-between;align-items:center;
  font-size:1.15rem;margin-bottom:.5rem;
}
.cart-summary strong{font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--green-900)}
.cart-note{font-size:.8rem;color:var(--stone-500);margin-bottom:1rem;line-height:1.5}

/* Checkout page */
.checkout-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:3rem}
.checkout-form, .checkout-summary{
  background:#fff;padding:2rem;border-radius:var(--radius-lg);
  border:1px solid var(--stone-200);
}
.checkout-summary{position:sticky;top:100px;align-self:start}
.checkout-form h3, .checkout-summary h3{
  font-family:'Playfair Display',serif;font-size:1.35rem;margin-bottom:1.25rem;
  padding-bottom:1rem;border-bottom:1px solid var(--stone-100);
}
.pay-options{display:grid;gap:.75rem}
.pay-option{
  display:flex;align-items:center;gap:1rem;
  padding:1rem 1.25rem;border:2px solid var(--stone-200);border-radius:.75rem;
  cursor:pointer;transition:.2s;
}
.pay-option:hover{border-color:var(--brand)}
.pay-option input{margin:0}
.pay-option input:checked ~ .pay-label{color:var(--brand)}
.pay-option:has(input:checked){border-color:var(--brand);background:var(--green-50)}
.pay-label strong{display:block;font-size:.95rem}
.pay-label span{font-size:.82rem;color:var(--stone-500)}

.summary-line{display:flex;justify-content:space-between;padding:.6rem 0;font-size:.95rem}
.summary-line.total{
  border-top:1px solid var(--stone-200);padding-top:1rem;margin-top:.5rem;
  font-size:1.15rem;font-weight:700;
}
.summary-line.total strong{font-family:'Playfair Display',serif;color:var(--green-900);font-size:1.4rem}
.summary-items{max-height:240px;overflow-y:auto;margin-bottom:1rem}
.summary-item{
  display:grid;grid-template-columns:40px 1fr auto;gap:.75rem;
  padding:.5rem 0;font-size:.88rem;align-items:center;
}
.summary-item-img{width:40px;height:40px;border-radius:.4rem;background:var(--stone-100);background-size:cover;background-position:center}
.summary-item-name{font-weight:500}
.summary-item-qty{font-size:.78rem;color:var(--stone-500)}

@media(max-width:900px){
  .checkout-grid{grid-template-columns:1fr}
  .checkout-summary{position:static}
}
