/* DZ Checkout Pro — cart.css v11
   CORE FIX: Drawer uses right/left position animation
   instead of translateX — immune to RTL direction flipping.
*/

body.dzp-no-scroll { overflow: hidden !important; }
* { box-sizing: border-box; }

/* ── FAB ── */
.dzp-cart-fab {
  position: fixed;
  bottom: 22px;
  right: 22px;
  z-index: 9000;
  width: 58px; height: 58px; border-radius: 50%;
  background: linear-gradient(135deg, var(--P,#F47920), var(--PD,#c75e0a));
  color: #fff; font-size: 24px; border: none; cursor: pointer;
  box-shadow: 0 6px 24px rgba(244,121,32,.5);
  display: flex; align-items: center; justify-content: center;
  transition: transform .2s, box-shadow .2s;
  overflow: visible;
}
.dzp-cart-fab:hover { transform: scale(1.08); box-shadow: 0 8px 32px rgba(244,121,32,.65); }
.dzp-cart-fab.dzp-fab-left { right: auto; left: 22px; }

.dzp-fab-count {
  position: absolute; top: -5px; left: -5px;
  min-width: 20px; height: 20px; border-radius: 10px;
  background: #ef4444; color: #fff; font-size: 11px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  padding: 0 5px; border: 2px solid #0c0e14; pointer-events: none;
}

/* ── OVERLAY ── */
.dzp-cart-overlay {
  position: fixed; inset: 0; z-index: 9010;
  background: rgba(0,0,0,.7);
  opacity: 0; pointer-events: none;
  transition: opacity .25s;
}
.dzp-cart-overlay.open { opacity: 1; pointer-events: all; }

/* ══════════════════════════════════════════════
   DRAWER — RTL-safe position animation
   Hidden: right = -(drawer width) = off screen
   Open: right = 0 = snapped to right edge
   This works identically in LTR and RTL.
   No translateX involved.
══════════════════════════════════════════════ */
.dzp-cart-drawer {
  position: fixed;
  top: 0; bottom: 0;
  right: -460px;                /* off screen — wider than max drawer */
  left: auto;
  width: 420px;
  max-width: 100vw;
  z-index: 9020;
  background: var(--SRF,#13161f);
  border-left: 1px solid var(--BR,#272b3a);
  display: flex; flex-direction: column;
  transition: right .32s cubic-bezier(.32,0,.15,1);
  box-shadow: -8px 0 40px rgba(0,0,0,.55);
  font-family: var(--FB,'Cairo',sans-serif);
  color: var(--TX,#f0f2f8);
}
.dzp-cart-drawer.open { right: 0; }

/* Left variant */
.dzp-cart-drawer.dzp-drawer-left {
  right: auto;
  left: -460px;
  border-left: none;
  border-right: 1px solid var(--BR,#272b3a);
  box-shadow: 8px 0 40px rgba(0,0,0,.55);
  transition: left .32s cubic-bezier(.32,0,.15,1);
}
.dzp-cart-drawer.dzp-drawer-left.open { left: 0; }

/* Drawer head */
.dzp-drawer-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px 16px;
  border-bottom: 1px solid var(--BR,#272b3a);
  background: var(--SRF2,#1a1e2c); flex-shrink: 0;
}
.dzp-drawer-title {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--FH,'Syne',sans-serif); font-size: 16px; font-weight: 800;
  color: var(--TX,#f0f2f8);
}
.dzp-drawer-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 22px; height: 22px; border-radius: 11px;
  background: var(--P,#F47920); color: #fff; font-size: 12px; font-weight: 800; padding: 0 6px;
}
.dzp-drawer-close {
  width: 34px; height: 34px; border-radius: 8px;
  border: 1px solid var(--BR,#272b3a); background: transparent;
  color: var(--MU,#7c84a0); cursor: pointer; font-size: 16px;
  display: flex; align-items: center; justify-content: center; transition: all .15s;
}
.dzp-drawer-close:hover { background: rgba(239,68,68,.12); border-color: #ef4444; color: #f87171; }

/* Drawer body */
.dzp-drawer-body {
  flex: 1; overflow-y: auto; padding: 14px;
  display: flex; flex-direction: column; gap: 10px;
  -webkit-overflow-scrolling: touch;
}
.dzp-drawer-body::-webkit-scrollbar { width: 3px; }
.dzp-drawer-body::-webkit-scrollbar-thumb { background: var(--BR,#272b3a); border-radius: 2px; }

/* Empty */
.dzp-drawer-empty { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:40px 20px; text-align:center; }
.dzp-drawer-empty-ico { font-size:48px; opacity:.45; }
.dzp-drawer-empty p { font-size:14px; color:var(--MU,#7c84a0); margin:0; }
.dzp-drawer-shop-btn { display:inline-block; padding:10px 22px; background:var(--P,#F47920); color:#fff; border-radius:8px; font-size:13px; font-weight:700; text-decoration:none; }

/* Drawer item */
.dzp-drawer-item {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 12px; background: var(--SRF2,#1a1e2c);
  border: 1px solid var(--BR,#272b3a); border-radius: 12px;
  position: relative; transition: border-color .15s;
}
.dzp-drawer-item:hover { border-color: rgba(244,121,32,.3); }
.dzp-di-img-wrap { flex-shrink: 0; }
.dzp-di-img { width:64px; height:64px; object-fit:cover; border-radius:8px; border:1px solid var(--BR,#272b3a); display:block; }
.dzp-di-info { flex:1; min-width:0; }
.dzp-di-name { font-size:13px; font-weight:600; color:var(--TX,#f0f2f8); text-decoration:none; display:block; margin-bottom:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dzp-di-name:hover { color:var(--P,#F47920); }
.dzp-di-attrs { font-size:11px; color:var(--MU,#7c84a0); margin-bottom:6px; }
.dzp-di-price-row { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.dzp-di-price { font-family:var(--FH,'Syne',sans-serif); font-size:14px; font-weight:800; color:var(--PRC,#F47920); }
.dzp-di-qty { display:flex; align-items:center; background:var(--BG,#0c0e14); border:1px solid var(--BR,#272b3a); border-radius:7px; overflow:hidden; }
.dzp-qty-btn { width:28px; height:28px; border:none; background:transparent; color:var(--TX,#f0f2f8); cursor:pointer; font-size:16px; font-weight:700; display:flex; align-items:center; justify-content:center; transition:background .12s; }
.dzp-qty-btn:hover { background:rgba(244,121,32,.15); }
.dzp-qty-num { font-size:13px; font-weight:700; min-width:26px; text-align:center; color:var(--TX,#f0f2f8); }
.dzp-di-remove { position:absolute; top:8px; right:8px; width:22px; height:22px; border-radius:50%; background:rgba(239,68,68,.1); border:1px solid rgba(239,68,68,.2); color:#f87171; cursor:pointer; font-size:11px; display:flex; align-items:center; justify-content:center; transition:all .15s; }
.dzp-di-remove:hover { background:#ef4444; color:#fff; border-color:#ef4444; }

/* Drawer foot */
.dzp-drawer-foot { padding:16px 14px; border-top:1px solid var(--BR,#272b3a); background:var(--SRF2,#1a1e2c); flex-shrink:0; display:flex; flex-direction:column; gap:10px; }
.dzp-drawer-subtotal { display:flex; justify-content:space-between; align-items:center; font-size:14px; color:var(--TX,#f0f2f8); }
.dzp-drawer-subtotal-val { font-family:var(--FH,'Syne',sans-serif); font-size:18px; font-weight:900; color:var(--PRC,#F47920); }
.dzp-drawer-checkout-btn { display:block; text-align:center; padding:14px; background:linear-gradient(135deg,var(--P,#F47920),var(--PD,#c75e0a)); color:#fff!important; border-radius:10px; font-family:var(--FH,'Syne',sans-serif); font-size:14px; font-weight:800; text-decoration:none; text-transform:uppercase; letter-spacing:.5px; box-shadow:0 4px 18px rgba(244,121,32,.4); transition:all .2s; }
.dzp-drawer-checkout-btn:hover { box-shadow:0 8px 28px rgba(244,121,32,.55); color:#fff!important; }
.dzp-drawer-cart-link { display:block; text-align:center; font-size:12px; color:var(--MU,#7c84a0); text-decoration:none; transition:color .2s; }
.dzp-drawer-cart-link:hover { color:var(--TX,#f0f2f8); }

/* View cart btn on product pages */
.dzp-view-cart-btn { display:inline-flex; align-items:center; gap:8px; padding:11px 18px; border-radius:8px; border:1px solid var(--P,#F47920); background:transparent; color:var(--P,#F47920); font-size:14px; font-weight:700; cursor:pointer; transition:all .2s; margin-top:8px; font-family:var(--FB,'Cairo',sans-serif); }
.dzp-view-cart-btn:hover { background:rgba(244,121,32,.1); }

/* ── FULL CART PAGE ── */
.dzp-full-cart { font-family:var(--FB,'Cairo',sans-serif); color:var(--TX,#f0f2f8); animation:dzpSlideUp .35s ease both; max-width:1200px; margin:0 auto; padding:0 16px; }
@keyframes dzpSlideUp { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
.dzp-fc-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; padding-bottom:16px; border-bottom:1px solid var(--BR,#272b3a); }
.dzp-fc-title { font-family:var(--FH,'Syne',sans-serif); font-size:clamp(18px,4vw,26px); font-weight:900; color:var(--TX,#f0f2f8); margin:0; }
.dzp-fc-count { font-size:13px; color:var(--MU,#7c84a0); background:var(--SRF,#13161f); border:1px solid var(--BR,#272b3a); padding:4px 12px; border-radius:100px; white-space:nowrap; }
.dzp-fc-empty { text-align:center; padding:60px 20px; display:flex; flex-direction:column; align-items:center; gap:14px; }
.dzp-fc-empty-ico { font-size:60px; opacity:.4; }
.dzp-fc-empty h3 { font-family:var(--FH,'Syne',sans-serif); font-size:22px; color:var(--TX,#f0f2f8); margin:0; }
.dzp-fc-empty p { font-size:14px; color:var(--MU,#7c84a0); margin:0; }
.dzp-fc-shop-btn { display:inline-block; padding:12px 28px; background:linear-gradient(135deg,var(--P,#F47920),var(--PD,#c75e0a)); color:#fff!important; border-radius:10px; font-size:14px; font-weight:700; text-decoration:none; box-shadow:0 4px 18px rgba(244,121,32,.4); }
.dzp-fc-layout { display:grid; grid-template-columns:1fr 300px; gap:20px; align-items:start; }
@media (max-width: 820px) { .dzp-fc-layout { grid-template-columns:1fr; } .dzp-fc-summary { position:static!important; } }
.dzp-fc-items { display:flex; flex-direction:column; gap:10px; }
.dzp-fc-item { display:flex; align-items:center; gap:14px; padding:14px; background:var(--SRF,#13161f); border:1px solid var(--BR,#272b3a); border-radius:12px; transition:border-color .15s; }
.dzp-fc-item:hover { border-color:rgba(244,121,32,.3); }
.dzp-fc-item-img-wrap { flex-shrink:0; }
.dzp-fc-item-img { object-fit:cover; border-radius:8px; border:1px solid var(--BR,#272b3a); display:block; }
.dzp-fc-item-info { flex:1; min-width:0; }
.dzp-fc-item-name { font-size:14px; font-weight:700; color:var(--TX,#f0f2f8); text-decoration:none; display:block; margin-bottom:5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dzp-fc-item-name:hover { color:var(--P,#F47920); }
.dzp-fc-item-attrs { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:5px; }
.dzp-fc-attr { font-size:11px; padding:2px 7px; background:var(--SRF2,#1a1e2c); border:1px solid var(--BR,#272b3a); border-radius:100px; color:var(--MU,#7c84a0); }
.dzp-fc-item-unit { font-size:12px; color:var(--MU,#7c84a0); }
.dzp-fc-item-actions { display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex-shrink:0; }
.dzp-fc-qty-wrap { display:flex; align-items:center; background:var(--IBG,#1a1e2c); border:1px solid var(--IBD,#2e334a); border-radius:8px; overflow:hidden; }
.dzp-fc-qty-btn { width:32px; height:32px; border:none; background:transparent; color:var(--TX,#f0f2f8); cursor:pointer; font-size:18px; display:flex; align-items:center; justify-content:center; transition:background .12s; }
.dzp-fc-qty-btn:hover { background:rgba(244,121,32,.15); }
.dzp-fc-qty-inp { width:38px; height:32px; border:none; background:transparent; color:var(--TX,#f0f2f8); font-size:13px; font-weight:700; text-align:center; }
.dzp-fc-qty-inp::-webkit-outer-spin-button,.dzp-fc-qty-inp::-webkit-inner-spin-button { -webkit-appearance:none; }
.dzp-fc-item-total { font-family:var(--FH,'Syne',sans-serif); font-size:16px; font-weight:900; color:var(--PRC,#F47920); }
.dzp-fc-remove { background:none; border:none; cursor:pointer; font-size:18px; opacity:.4; transition:opacity .15s; padding:0; }
.dzp-fc-remove:hover { opacity:1; }
.dzp-fc-coupon { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:12px 14px; margin-top:2px; background:var(--SRF,#13161f); border:1px solid var(--BR,#272b3a); border-radius:10px; }
.dzp-fc-coup-inp { flex:1; min-width:120px; border:1px solid var(--IBD,#2e334a); background:var(--IBG,#1a1e2c); color:var(--TX,#f0f2f8); font-size:13px; padding:8px 12px; border-radius:7px; outline:none; }
.dzp-fc-coup-inp::placeholder { color:var(--MU,#7c84a0); }
.dzp-fc-coup-inp:focus { border-color:var(--P,#F47920); }
.dzp-fc-coup-btn { background:transparent; border:1px solid var(--BR,#272b3a); color:var(--MU,#7c84a0); padding:8px 16px; border-radius:7px; font-size:13px; font-weight:600; cursor:pointer; transition:all .15s; }
.dzp-fc-coup-btn:hover { border-color:var(--P,#F47920); color:var(--P,#F47920); }
.dzp-fc-summary { background:var(--SRF,#13161f); border:1px solid var(--BR,#272b3a); border-radius:14px; overflow:hidden; position:sticky; top:20px; }
.dzp-fc-sum-head { padding:14px 18px; font-family:var(--FH,'Syne',sans-serif); font-size:15px; font-weight:800; color:var(--TX,#f0f2f8); border-bottom:1px solid var(--BR,#272b3a); }
.dzp-fc-sum-rows { padding:0 18px; }
.dzp-fc-sum-row { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid rgba(39,43,58,.5); font-size:14px; color:var(--TX,#f0f2f8); }
.dzp-fc-sum-row:last-child { border-bottom:none; }
.dzp-fc-sum-disc { color:#34d399!important; }
.dzp-fc-sum-total { font-family:var(--FH,'Syne',sans-serif); font-weight:900; font-size:18px; color:var(--PRC,#F47920)!important; }
.dzp-fc-checkout-btn { display:block; margin:0 18px 10px; padding:14px; background:linear-gradient(135deg,var(--P,#F47920),var(--PD,#c75e0a)); color:#fff!important; border-radius:10px; text-align:center; font-family:var(--FH,'Syne',sans-serif); font-size:14px; font-weight:800; text-decoration:none; text-transform:uppercase; letter-spacing:.5px; box-shadow:0 4px 18px rgba(244,121,32,.4); transition:all .22s; }
.dzp-fc-checkout-btn:hover { box-shadow:0 8px 28px rgba(244,121,32,.55); color:#fff!important; }
.dzp-fc-continue { display:block; text-align:center; padding:6px 18px 14px; font-size:12px; color:var(--MU,#7c84a0); text-decoration:none; transition:color .2s; }
.dzp-fc-continue:hover { color:var(--TX,#f0f2f8); }

@media (max-width: 520px) {
  .dzp-fc-item { flex-wrap:wrap; }
  .dzp-fc-item-actions { flex-direction:row; align-items:center; width:100%; justify-content:space-between; }
  .dzp-fc-item-img { width:60px!important; height:60px!important; }
}

/* ── RECEIPT UPLOAD ── */
.dzp-receipt-section { margin-top:14px; border:1px solid var(--BR,#272b3a); border-radius:10px; overflow:hidden; }
.dzp-receipt-title { padding:9px 14px; background:var(--SRF2,#1a1e2c); font-size:13px; font-weight:600; color:var(--TX,#f0f2f8); display:flex; align-items:center; gap:6px; }
.dzp-receipt-opt { font-size:11px; color:var(--MU,#7c84a0); font-weight:400; }
.dzp-drop { padding:14px; cursor:pointer; transition:background .18s; }
.dzp-drop.dzp-over { background:rgba(244,121,32,.07); }
.dzp-drop-idle { display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center; }
.dzp-drop-ico { font-size:26px; opacity:.55; }
.dzp-drop-txt { font-size:13px; color:var(--MU,#7c84a0); }
.dzp-drop-hint { font-size:11px; color:var(--MU,#7c84a0); opacity:.7; }
.dzp-pick-lbl { color:var(--P,#F47920); cursor:pointer; border-bottom:1px dashed; }
.dzp-pick-lbl input[type=file] { display:none; }
.dzp-prog-bar { height:4px; background:var(--BR,#272b3a); border-radius:4px; overflow:hidden; margin-bottom:6px; }
.dzp-prog-fill { height:100%; background:var(--P,#F47920); transition:width .18s; }
.dzp-prog-txt { font-size:12px; color:var(--MU,#7c84a0); text-align:center; display:block; }
.dzp-drop-done { display:flex; align-items:center; gap:8px; font-size:13px; }
.dzp-done-check { font-size:18px; }
.dzp-done-name { flex:1; color:var(--TX,#f0f2f8); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dzp-done-view { color:var(--P,#F47920); font-size:12px; }
.dzp-done-del { background:none; border:none; color:var(--MU,#7c84a0); cursor:pointer; font-size:13px; padding:2px 6px; }
.dzp-done-del:hover { color:#ef4444; }

/* ── MODAL (cart + checkout popup) ── */
.dzp-modal { position:fixed; inset:0; z-index:9030; display:flex; align-items:center; justify-content:center; padding:12px; pointer-events:none; opacity:0; transition:opacity .22s; }
.dzp-modal.open { pointer-events:all; opacity:1; }
.dzp-modal-box { position:relative; width:100%; max-width:860px; max-height:92vh; background:var(--SRF,#13161f); border:1px solid var(--BR,#272b3a); border-radius:20px; overflow:hidden; display:flex; flex-direction:column; transform:translateY(20px) scale(.97); transition:transform .26s cubic-bezier(.32,0,.15,1); box-shadow:0 32px 80px rgba(0,0,0,.75); }
.dzp-modal.open .dzp-modal-box { transform:translateY(0) scale(1); }
.dzp-modal-head { display:flex; align-items:center; justify-content:space-between; padding:16px 22px; border-bottom:1px solid var(--BR,#272b3a); background:var(--SRF2,#1a1e2c); flex-shrink:0; }
.dzp-modal-title { font-family:var(--FH,'Syne',sans-serif); font-size:17px; font-weight:800; color:var(--TX,#f0f2f8); display:flex; align-items:center; gap:10px; }
.dzp-modal-close { width:34px; height:34px; border-radius:8px; border:1px solid var(--BR,#272b3a); background:transparent; color:var(--MU,#7c84a0); cursor:pointer; font-size:16px; display:flex; align-items:center; justify-content:center; transition:all .15s; }
.dzp-modal-close:hover { background:rgba(239,68,68,.12); border-color:#ef4444; color:#f87171; }
.dzp-modal-tabs { display:flex; flex-shrink:0; border-bottom:1px solid var(--BR,#272b3a); background:var(--SRF2,#1a1e2c); }
.dzp-modal-tab { flex:1; padding:12px 8px; text-align:center; font-size:14px; font-weight:700; cursor:pointer; color:var(--MU,#7c84a0); border:none; background:transparent; border-bottom:3px solid transparent; transition:all .15s; font-family:var(--FB,'Cairo',sans-serif); }
.dzp-modal-tab.active { color:var(--P,#F47920); border-bottom-color:var(--P,#F47920); }
.dzp-modal-panels { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.dzp-modal-panel { display:none; padding:20px; }
.dzp-modal-panel.active { display:block; }
.dzp-modal-items { display:flex; flex-direction:column; gap:10px; margin-bottom:16px; }
.dzp-modal-item { display:flex; align-items:center; gap:12px; padding:12px; background:var(--SRF2,#1a1e2c); border:1px solid var(--BR,#272b3a); border-radius:12px; position:relative; }
.dzp-modal-item-img { width:58px; height:58px; object-fit:cover; border-radius:8px; flex-shrink:0; }
.dzp-modal-item-info { flex:1; min-width:0; }
.dzp-modal-item-name { font-size:13px; font-weight:700; color:var(--TX,#f0f2f8); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:block; margin-bottom:3px; }
.dzp-modal-item-attrs { font-size:11px; color:var(--MU,#7c84a0); margin-bottom:4px; }
.dzp-modal-item-price { font-size:14px; font-weight:800; color:var(--PRC,#F47920); }
.dzp-modal-item-remove { width:20px; height:20px; border-radius:50%; background:rgba(239,68,68,.1); border:1px solid rgba(239,68,68,.2); color:#f87171; cursor:pointer; font-size:11px; display:flex; align-items:center; justify-content:center; transition:all .12s; flex-shrink:0; }
.dzp-modal-item-remove:hover { background:#ef4444; color:#fff; }
.dzp-modal-total-row { display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-top:1px solid var(--BR,#272b3a); font-size:15px; color:var(--TX,#f0f2f8); margin-bottom:14px; }
.dzp-modal-total-val { font-family:var(--FH,'Syne',sans-serif); font-size:22px; font-weight:900; color:var(--PRC,#F47920); }
.dzp-modal-proceed-btn { display:block; width:100%; padding:15px; border:none; cursor:pointer; background:linear-gradient(135deg,var(--P,#F47920),var(--PD,#c75e0a)); color:#fff; border-radius:12px; text-align:center; font-family:var(--FH,'Syne',sans-serif); font-size:15px; font-weight:800; text-transform:uppercase; letter-spacing:.6px; box-shadow:0 4px 20px rgba(244,121,32,.45); transition:all .2s; }
.dzp-modal-proceed-btn:hover { box-shadow:0 8px 30px rgba(244,121,32,.6); }
.dzp-modal-checkout-link { display:block; text-align:center; padding:10px; font-size:12px; color:var(--MU,#7c84a0); text-decoration:none; }
.dzp-modal-checkout-link:hover { color:var(--P,#F47920); }

/* FAB pulse when item added */
@keyframes dzpFabPulse {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.25); box-shadow: 0 0 0 8px rgba(244,121,32,.25); }
  100% { transform: scale(1); box-shadow: 0 6px 24px rgba(244,121,32,.5); }
}
.dzp-cart-fab.dzp-pulse { animation: dzpFabPulse .5s ease; }

/* Smooth item removal */
.dzp-drawer-item { transition: opacity .2s; }

/* Loading spinner */
@keyframes dzpSpin { to { transform: rotate(360deg); } }
