.nav-cart{ position:relative; }
.cart-count-badge{
  display:none; align-items:center; justify-content:center;
  position:absolute; top:-6px; right:-6px;
  min-width:18px; height:18px; padding:0 4px;
  border-radius:999px; background:var(--pink-deep); color:var(--white);
  font-size:0.625rem; font-weight:700; line-height:1; font-variant-numeric:tabular-nums;
}
@keyframes cartPulse{ 0%{ transform:scale(1); } 30%{ transform:scale(1.25); } 100%{ transform:scale(1); } }
.nav-cart.pulse{ animation:cartPulse 0.4s ease; }

.cart-overlay{
  position:fixed; inset:0; background:rgba(58,37,48,0.45);
  z-index:300; opacity:0; pointer-events:none; transition:opacity 0.35s ease;
}
.cart-overlay.open{ opacity:1; pointer-events:auto; }

.cart-drawer{
  position:fixed; top:0; right:0; bottom:0; width:400px; max-width:92vw;
  background:var(--white); z-index:301;
  display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform 0.4s cubic-bezier(.22,.61,.36,1);
  box-shadow:-20px 0 60px rgba(58,37,48,0.18);
}
.cart-drawer.open{ transform:translateX(0); }

.cart-drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:26px 26px 20px; border-bottom:1px solid var(--line);
}
.cart-drawer-title{ font-family:var(--font-display); font-size:1.625rem; font-weight:600; letter-spacing:var(--ls-display-sm); line-height:1.2; color:var(--ink); }
.cart-close{
  width:36px; height:36px; border-radius:50%; border:none; background:var(--pink-pale);
  color:var(--ink); cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background 0.25s ease;
}
.cart-close:hover{ background:var(--pink-deep); color:var(--white); }
.cart-close svg{ width:16px; height:16px; }

.cart-empty{
  display:none; padding:60px 30px; text-align:center; color:var(--ink-soft); font-size:var(--fs-body); font-weight:400; line-height:var(--lh-lead); text-wrap:pretty;
}

.cart-items{
  flex:1; overflow-y:auto; padding:10px 26px;
}
.cart-item{
  display:flex; align-items:flex-start; gap:14px; padding:18px 0; border-bottom:1px solid var(--line);
}
.cart-item-img{
  width:64px; height:64px; border-radius:14px; background-size:cover; background-position:center;
  background-color:var(--pink-pale-2); flex-shrink:0;
}
.cart-item-body{ flex:1; }
.cart-item-name{ font-size:var(--fs-body-sm); font-weight:600; letter-spacing:-0.005em; line-height:1.35; color:var(--ink); margin-bottom:4px; }
.cart-item-price{ font-size:var(--fs-caption); color:var(--pink-deep); font-weight:700; letter-spacing:-0.01em; font-variant-numeric:tabular-nums; margin-bottom:10px; }
.cart-item-qty{ display:flex; align-items:center; gap:12px; }
.qty-btn{
  width:26px; height:26px; border-radius:50%; border:1px solid var(--line); background:var(--white);
  color:var(--ink); font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background 0.2s ease, border-color 0.2s ease;
}
.qty-btn:hover{ background:var(--pink-pale); border-color:var(--pink-deep); }
.qty-val{ font-size:var(--fs-caption); font-weight:600; font-variant-numeric:tabular-nums; color:var(--ink); min-width:16px; text-align:center; }
.cart-item-remove{
  border:none; background:none; color:var(--ink-soft); font-size:20px; line-height:1; cursor:pointer;
  padding:4px; transition:color 0.2s ease;
}
.cart-item-remove:hover{ color:var(--pink-deep); }

.cart-footer{ display:none; padding:22px 26px 28px; border-top:1px solid var(--line); }
.cart-total-row{
  display:flex; justify-content:space-between; align-items:center;
  font-size:var(--fs-body-sm); font-weight:500; color:var(--ink); margin-bottom:18px;
}
.cart-total{ font-size:1.375rem; font-weight:700; letter-spacing:-0.018em; font-variant-numeric:tabular-nums; color:var(--pink-deep); }
.cart-checkout{ width:100%; text-align:center; border:none; cursor:pointer; }

.cart-order-form{
  display:none; flex-direction:column; gap:16px;
  padding:22px 26px 28px; overflow-y:auto; flex:1;
}
.cart-order-form.open{ display:flex; }
.cart-form-field{ display:flex; flex-direction:column; gap:6px; }
.cart-form-field label{ font-size:var(--fs-micro); font-weight:600; letter-spacing:0.02em; color:var(--ink); }
.cart-form-field input, .cart-form-field textarea{
  border:1px solid var(--line); border-radius:12px; padding:12px 14px;
  font-size:var(--fs-body-sm); font-family:var(--font-sans); font-weight:400; line-height:1.5; color:var(--ink); background:var(--white);
  transition:border-color 0.2s ease;
}
.cart-form-field input:focus, .cart-form-field textarea:focus{ outline:none; border-color:var(--pink-deep); }
.cart-form-field textarea{ resize:vertical; min-height:60px; }
.cart-form-error{
  display:none; font-size:var(--fs-micro); font-weight:500; line-height:1.55; color:#c0392b; background:#fdecea; border-radius:10px; padding:10px 14px;
}
.cart-submit-order{ width:100%; text-align:center; border:none; cursor:pointer; }
.cart-submit-order:disabled{ opacity:0.6; cursor:not-allowed; }
.cart-form-back{
  background:none; border:none; color:var(--ink-soft); font-family:var(--font-sans);
  font-size:var(--fs-micro); font-weight:500; cursor:pointer;
  text-align:center; padding:4px; transition:color 0.2s ease;
}
.cart-form-back:hover{ color:var(--pink-deep); }

.cart-success{ padding:70px 20px; text-align:center; color:var(--ink); }
.cart-success svg{ width:52px; height:52px; stroke:var(--pink-deep); margin-bottom:18px; }
.cart-success-title{ font-family:var(--font-display); font-size:1.625rem; font-weight:600; letter-spacing:var(--ls-display-sm); line-height:1.2; margin-bottom:10px; text-wrap:balance; }
.cart-success-text{ font-size:var(--fs-caption); font-weight:400; color:var(--ink-soft); line-height:var(--lh-lead); text-wrap:pretty; }

@media (max-width: 900px){
  .cart-drawer{ width:100%; max-width:100%; }
}
