/* Drawer do carrinho e toast */

.cart-overlay{
  position:fixed; inset:0; background:rgba(10,10,10,.4);
  opacity:0; pointer-events:none; transition:opacity .35s ease; z-index:300;
}
.cart-overlay.open{ opacity:1; pointer-events:auto; }

.cart-drawer{
  position:fixed; top:0; right:0; height:100vh; width:420px; max-width:92vw;
  background:#fff; z-index:310; display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform .4s cubic-bezier(.19,1,.22,1);
  box-shadow:-24px 0 60px -30px rgba(10,10,10,.25);
}
.cart-drawer.open{ transform:translateX(0); }

.cart-drawer-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:26px 28px; border-bottom:1px solid var(--line, #E5E5E7);
}
.cart-drawer-head h2{
  font-family:'Poppins', sans-serif; font-size:1.15rem; font-weight:600; letter-spacing:-0.02em; margin:0;
}
.cart-drawer-close{
  width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; transition:background .2s ease;
}
.cart-drawer-close:hover{ background:var(--panel, #F5F5F7); }
.cart-drawer-close svg{ width:17px; height:17px; color:var(--ink, #0A0A0A); }

.cart-drawer-body{ flex:1; overflow-y:auto; padding:10px 28px; }
.cart-drawer-foot{ padding:20px 28px 28px; border-top:1px solid var(--line, #E5E5E7); }

.cart-item{
  display:grid; grid-template-columns:64px 1fr auto; gap:14px;
  padding:20px 0; border-bottom:1px solid var(--line, #E5E5E7);
  align-items:flex-start;
}
.cart-item img, .cart-item-noimg{
  width:64px; height:64px; border-radius:12px; object-fit:cover;
  border:1px solid var(--line, #E5E5E7); background:var(--panel, #F5F5F7);
}
.cart-item .info{ min-width:0; }
.cart-item .name{ font-weight:600; font-size:0.94rem; line-height:1.3; }
.cart-item .variant{ font-size:0.8rem; color:var(--gray, #86868B); margin-top:2px; }
.cart-item .unit-price{ font-size:0.78rem; color:var(--gray, #86868B); margin-top:4px; }
.cart-item .qty{ display:flex; align-items:center; gap:10px; margin-top:10px; }
.cart-item .qty button{
  width:24px; height:24px; border:1px solid var(--line, #E5E5E7); border-radius:50%;
  font-size:0.9rem; display:flex; align-items:center; justify-content:center; transition:border-color .2s ease;
}
.cart-item .qty button:hover{ border-color:var(--ink, #0A0A0A); }
.cart-item .qty span{ font-size:0.88rem; font-weight:500; min-width:14px; text-align:center; }
.cart-item .remove{
  font-size:0.76rem; color:var(--gray, #86868B); margin-left:6px; border-bottom:1px solid transparent;
}
.cart-item .remove:hover{ color:#D92D20; border-color:#D92D20; }
.cart-item .line-price{ font-weight:600; font-size:0.92rem; white-space:nowrap; }

.cart-empty{ text-align:center; padding:64px 12px; }
.cart-empty-title{ font-family:'Poppins', sans-serif; font-weight:600; font-size:1.05rem; }
.cart-empty-sub{ margin-top:8px; color:var(--gray, #86868B); font-size:0.92rem; }
.cart-empty .btn{ margin-top:22px; }

.cart-summary-row{ display:flex; justify-content:space-between; font-size:0.9rem; padding:6px 0; color:var(--ink-soft, #4A4F58); }
.cart-summary-row.muted{ color:var(--gray, #86868B); font-size:0.85rem; }
.cart-summary-row.total{ font-weight:600; font-size:1.05rem; color:var(--ink, #0A0A0A); padding-top:12px; margin-top:6px; border-top:1px solid var(--line, #E5E5E7); }

.cart-checkout-btn{
  width:100%; margin-top:16px; padding:15px 24px; border-radius:100px;
  background:var(--ink, #0A0A0A); color:#fff; font-weight:500; font-size:0.96rem;
  transition:background .2s ease;
}
.cart-checkout-btn:hover{ background:var(--blue, #115EF5); }
.cart-secure-note{ text-align:center; margin-top:14px; font-size:0.78rem; color:var(--gray, #86868B); }

body.naf-drawer-open{ overflow:hidden; }

/* toast */
.naf-toast{
  position:fixed; bottom:28px; left:50%; transform:translateX(-50%) translateY(16px);
  background:var(--ink, #0A0A0A); color:#fff; padding:13px 22px; border-radius:100px;
  font-family:'Poppins', sans-serif; font-size:0.88rem; font-weight:500;
  opacity:0; pointer-events:none; transition:opacity .3s ease, transform .3s ease; z-index:400;
}
.naf-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

@media (max-width:760px){
  .cart-drawer{ width:100vw; max-width:100vw; }
  .cart-drawer-head{ padding:20px 20px; }
  .cart-drawer-body{ padding:6px 20px; }
  .cart-drawer-foot{ padding:16px 20px 24px; }
}
