/* ============================================================
   ZJO Product Cards v3.0
   يشتغل على: .ova-product-list + ul.products + .related.products
   ✏️  عدّل المتغيرات دي بس
   ============================================================ */
:root {
  --zjo-gold:          #000;
  --zjo-gold-dark:     #333;
  --zjo-gold-glow:     rgba(184,151,58,0.25);
  --zjo-card-bg:       #ffffff;
  --zjo-card-border:   #33333324;
  --zjo-title-color:   #1c1c1c;
  --zjo-price-color:   #b8973a;
  --zjo-cat-color:     #aaaaaa;
  --zjo-card-radius:   0px;
  --zjo-img-radius:    14px;
  --zjo-btn-radius:    0px;
  --zjo-btn-height:    46px;
  --zjo-btn-fz:        0.74rem;
  --zjo-btn-ls:        0.15em;
  --zjo-shadow:        0 2px 20px rgba(0,0,0,0.07);
  --zjo-shadow-hover:  0 12px 40px rgba(0,0,0,0.13);
}

/* ============================================================
   SELECTOR HELPER — كل الـ lists معاً
   ============================================================ */

/* ── CARD ─────────────────────────────────────────────────── */
.ova-product-list li.product,
ul.products li.product {
  background:     var(--zjo-card-bg) !important;
  border:         1px solid var(--zjo-card-border) !important;
  border-radius:  var(--zjo-card-radius) !important;
  box-shadow:     var(--zjo-shadow) !important;
  overflow:       hidden !important;
  padding:        0 !important;
  display:        flex !important;
  flex-direction: column !important;
  transition:     box-shadow .35s ease, transform .35s ease !important;
  position:       relative !important;
}
.ova-product-list li.product:hover,
ul.products li.product:hover {
  box-shadow: var(--zjo-shadow-hover) !important;
  transform:  translateY(-5px) !important;
}

/* ── LINK ─────────────────────────────────────────────────── */
.ova-product-list li.product .woocommerce-loop-product__link,
ul.products li.product .woocommerce-loop-product__link {
  display:         flex !important;
  flex-direction:  column !important;
  text-decoration: none !important;
  flex:            1 !important;
}

/* ── IMAGE WRAP (injected by JS) ──────────────────────────── */
.zjo-img-wrap {
  position:      relative;
  overflow:      hidden;
  border-radius: var(--zjo-img-radius) var(--zjo-img-radius) 0 0;
  background:    #f5f2ec;
  aspect-ratio:  1/1;
  flex-shrink:   0;
  display:       block;
}
.zjo-img-wrap img {
  position:      absolute !important;
  inset:         0 !important;
  width:         100% !important;
  height:        100% !important;
  object-fit:    cover !important;
  display:       block !important;
  border-radius: 0 !important;
  transition:    opacity .55s ease, transform .65s cubic-bezier(.25,.46,.45,.94) !important;
  margin:        0 !important;
}
.zjo-img-front { opacity:1 !important; transform:scale(1) !important;    z-index:1 !important; }
.zjo-img-back  { opacity:0 !important; transform:scale(1.08) !important; z-index:2 !important; }

.ova-product-list li.product:hover .zjo-img-wrap.zjo-has-back .zjo-img-front,
ul.products li.product:hover .zjo-img-wrap.zjo-has-back .zjo-img-front {
  opacity:0 !important; transform:scale(1.05) !important;
}
.ova-product-list li.product:hover .zjo-img-wrap.zjo-has-back .zjo-img-back,
ul.products li.product:hover .zjo-img-wrap.zjo-has-back .zjo-img-back {
  opacity:1 !important; transform:scale(1) !important;
}

/* Fallback — no gallery image (no wrap injected) */
.ova-product-list li.product .woocommerce-loop-product__link > img,
ul.products li.product .woocommerce-loop-product__link > img {
  width:         100% !important;
  display:       block !important;
  aspect-ratio:  1/1 !important;
  object-fit:    cover !important;
  border-radius: var(--zjo-img-radius) var(--zjo-img-radius) 0 0 !important;
  transition:    transform .65s cubic-bezier(.25,.46,.45,.94) !important;
  flex-shrink:   0 !important;
}
.ova-product-list li.product:hover .woocommerce-loop-product__link > img,
ul.products li.product:hover .woocommerce-loop-product__link > img {
  transform: scale(1.06) !important;
}

/* ── CATEGORY ─────────────────────────────────────────────── */
.ova-product-list li.product .cat_product,
ul.products li.product .cat_product {
  font-family:    'Jost',sans-serif !important;
  font-size:      0.65rem !important;
  font-weight:    400 !important;
  color:          var(--zjo-cat-color) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding:        13px 16px 2px !important;
  display:        block !important;
}

/* ── TITLE ────────────────────────────────────────────────── */
.ova-product-list li.product .woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Cormorant Garamond',Georgia,serif !important;
  font-size:   1.1rem !important;
  font-weight: 600 !important;
  color:       var(--zjo-title-color) !important;
  padding:     3px 16px 4px !important;
  margin:      0 !important;
  line-height: 1.3 !important;
  transition:  color .2s !important;
}
.ova-product-list li.product:hover .woocommerce-loop-product__title,
ul.products li.product:hover .woocommerce-loop-product__title {
  color: var(--zjo-gold) !important;
}

/* ── PRICE ────────────────────────────────────────────────── */
.ova-product-list li.product .price,
ul.products li.product .price {
  font-family: 'Jost',sans-serif !important;
  font-size:   0.9rem !important;
  font-weight: 500 !important;
  color:       var(--zjo-price-color) !important;
  padding:     1px 16px 13px !important;
  display:     block !important;
  margin:      0 !important;
}
.ova-product-list li.product .price .woocommerce-Price-amount,
.ova-product-list li.product .price bdi,
ul.products li.product .price .woocommerce-Price-amount,
ul.products li.product .price bdi { color: var(--zjo-price-color) !important; }

.ova-product-list li.product .price del,
ul.products li.product .price del { color:#c5bfb4 !important; font-size:.85em !important; }

/* ── BUTTON ───────────────────────────────────────────────── */
.ova-product-list li.product .add_to_cart_button,
.ova-product-list li.product .product_type_variable,
ul.products li.product .add_to_cart_button,
ul.products li.product .product_type_variable {
  display:         flex !important;
  align-items:     center !important;
  justify-content: center !important;
  gap:             8px !important;
  width:           calc(100% - 32px) !important;
  margin:          0 16px 16px !important;
  height:          var(--zjo-btn-height) !important;
  background:      var(--zjo-gold) !important;
  color:           #fff !important;
  border:          none !important;
  border-radius:   var(--zjo-btn-radius) !important;
  font-family:     'Jost',sans-serif !important;
  font-size:       var(--zjo-btn-fz) !important;
  font-weight:     600 !important;
  letter-spacing:  var(--zjo-btn-ls) !important;
  text-transform:  uppercase !important;
  text-decoration: none !important;
  cursor:          pointer !important;
  box-shadow:      0 2px 14px var(--zjo-gold-glow) !important;
  transition:      background .25s, transform .15s, box-shadow .25s !important;
  position:        relative !important;
  overflow:        hidden !important;
  line-height:     1 !important;
  padding:         0 !important;
}

/* Shine */
.ova-product-list li.product .add_to_cart_button::before,
.ova-product-list li.product .product_type_variable::before,
ul.products li.product .add_to_cart_button::before,
ul.products li.product .product_type_variable::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);
  transform:translateX(-100%); transition:transform .55s ease;
}
.ova-product-list li.product .add_to_cart_button:hover::before,
.ova-product-list li.product .product_type_variable:hover::before,
ul.products li.product .add_to_cart_button:hover::before,
ul.products li.product .product_type_variable:hover::before { transform:translateX(100%); }

.ova-product-list li.product .add_to_cart_button:hover,
.ova-product-list li.product .product_type_variable:hover,
ul.products li.product .add_to_cart_button:hover,
ul.products li.product .product_type_variable:hover {
  background: var(--zjo-gold-dark) !important;
  transform:  translateY(-2px) !important;
  box-shadow: 0 6px 22px var(--zjo-gold-glow) !important;
}
.ova-product-list li.product .add_to_cart_button:active,
ul.products li.product .add_to_cart_button:active { transform:scale(.97) !important; }

.ova-product-list li.product .add_to_cart_button.loading .zjo-icon svg,
ul.products li.product .add_to_cart_button.loading .zjo-icon svg {
  animation: zjo-spin .7s linear infinite;
}

.ova-product-list li.product .added_to_cart.wc-forward,
ul.products li.product .added_to_cart.wc-forward {
  display: none !important;
}
@keyframes zjo-spin { to { transform:rotate(360deg); } }

/* ── STAR RATING ──────────────────────────────────────────── */
.ova-product-list li.product .star-rating,
ul.products li.product .star-rating {
  margin: 0 16px 4px !important;
  font-size: .75em !important;
}

/* ── SALE BADGE ───────────────────────────────────────────── */
.ova-product-list li.product .onsale,
ul.products li.product .onsale {
  position:    absolute !important;
  top:         12px !important;
  left:        12px !important;
  z-index:     10 !important;
  background:  var(--zjo-gold) !important;
  color:       #fff !important;
  font-family: 'Jost',sans-serif !important;
  font-size:   .68rem !important;
  font-weight: 600 !important;
  padding:     4px 10px !important;
  border-radius: 50px !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  border:      none !important;
}

/* ── MODAL OVERLAY ────────────────────────────────────────── */
#zjo-modal {
  display:         none;
  position:        fixed;
  inset:           0;
  z-index:         999999;
  align-items:     center;
  justify-content: center;
}
#zjo-modal.open { display:flex; }

.zjo-backdrop {
  position: absolute; inset: 0;
  background: rgba(6,4,2,.62);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  animation: zjo-bg-in .25s ease;
}
@keyframes zjo-bg-in { from{opacity:0} to{opacity:1} }

.zjo-box {
  position:      relative;
  z-index:       1;
  background:    #fff;
  border-radius: 22px;
  width:         min(520px, 94vw);
  max-height:    88vh;
  overflow-y:    auto;
  padding:       36px 30px 30px;
  box-shadow:    0 28px 80px rgba(0,0,0,.2);
  animation:     zjo-box-in .38s cubic-bezier(.34,1.56,.64,1);
}
@keyframes zjo-box-in {
  from { opacity:0; transform:translateY(40px) scale(.96); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}
.zjo-box::-webkit-scrollbar       { width:4px; }
.zjo-box::-webkit-scrollbar-track { background:#f5f0e8; border-radius:4px; }
.zjo-box::-webkit-scrollbar-thumb { background:var(--zjo-gold); border-radius:4px; }

/* ── CLOSE BUTTON ─────────────────────────────────────────── */
.zjo-close {
  position:        absolute;
  top:             16px;
  right:           16px;
  width:           36px;
  height:          36px;
  border-radius:   50%;
  border:          1px solid #e2d7c4;
  background:      #fff;
  cursor:          pointer;
  display:         flex;
  align-items:     center;
  justify-content: center;
  padding:         0;
  transition:      background .2s, border-color .2s, transform .2s ease, box-shadow .2s;
  flex-shrink:     0;
}
.zjo-close:hover {
  background:   #f7f1e6;
  border-color: var(--zjo-gold);
  transform:    scale(1.04);
  box-shadow:   0 6px 16px rgba(184,151,58,.2);
}
.zjo-close svg {
  width:12px; height:12px;
  stroke:#6f5f48; stroke-width:2.3;
  stroke-linecap:round;
  transition: stroke .2s;
  display:block;
}
.zjo-close:hover svg { stroke: #8f712a; }

/* ── MODAL HEADER ─────────────────────────────────────────── */
.zjo-mhead {
  display:       flex;
  align-items:   center;
  gap:           18px;
  margin-bottom: 24px;
  padding-right: 28px;
}
.zjo-mhead-img {
  width:80px; height:80px;
  object-fit:cover;
  border-radius:12px;
  background:#f5f2ec;
  flex-shrink:0;
  display:block;
}
.zjo-mhead-name {
  font-family:'Cormorant Garamond',serif;
  font-size:1.22rem; font-weight:600;
  color:#1c1c1c; margin:0 0 5px;
  line-height:1.2;
}
.zjo-mhead-price {
  font-family:'Jost',sans-serif;
  font-size:.92rem; font-weight:500;
  color:var(--zjo-gold);
}
.zjo-mhead-price .woocommerce-Price-amount,
.zjo-mhead-price bdi { color:var(--zjo-gold) !important; }

/* ── DIVIDER ──────────────────────────────────────────────── */
.zjo-divider {
  height:1px;
  background:linear-gradient(to right,transparent,#e8e0d0 40%,#e8e0d0 60%,transparent);
  margin:0 0 22px;
}

/* ── VARIATION ROWS ───────────────────────────────────────── */
.zjo-attr-row {
  display:     flex;
  align-items: center;
  gap:         12px;
  margin:      0 0 14px;
}
.zjo-attr-label {
  font-family:    'Jost',sans-serif;
  font-size:      .74rem;
  font-weight:    600;
  color:          #7a6a55;
  text-transform: uppercase;
  letter-spacing: .08em;
  white-space:    nowrap;
  min-width:      38px;
  flex-shrink:    0;
  line-height:    32px; /* match pill height */
}
.zjo-pills {
  display:     flex;
  flex-wrap:   wrap;
  gap:         8px;
  align-items: center;
}
.zjo-pill {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  height:          32px;
  padding:         0 15px;
  border-radius:   50px;
  border:          1.5px solid #ddd6ca;
  background:      #faf7f2;
  font-family:     'Jost',sans-serif;
  font-size:       .78rem;
  font-weight:     500;
  color:           #4a3f30;
  cursor:          pointer;
  transition:      border-color .2s, background .2s, color .2s, transform .15s, box-shadow .2s;
  white-space:     nowrap;
  user-select:     none;
  line-height:     1;
}
.zjo-pill:hover:not(.out-of-stock) {
  border-color: var(--zjo-gold);
  color:        var(--zjo-gold-dark);
  transform:    translateY(-1px);
  box-shadow:   0 3px 10px var(--zjo-gold-glow);
}
.zjo-pill.active {
  border-color: var(--zjo-gold) !important;
  background:   var(--zjo-gold) !important;
  color:        #fff !important;
  box-shadow:   0 3px 12px var(--zjo-gold-glow) !important;
  transform:    translateY(-1px);
}
.zjo-pill.out-of-stock {
  opacity:.38; cursor:not-allowed; text-decoration:line-through;
}

/* ── MODAL ADD BUTTON ─────────────────────────────────────── */
.zjo-modal-add {
  display:         flex;
  align-items:     center;
  justify-content: center;
  gap:             9px;
  width:           100%;
  height:          50px;
  margin-top:      22px;
  background:      var(--zjo-gold);
  color:           #fff;
  border:          none;
  border-radius:   var(--zjo-btn-radius);
  font-family:     'Jost',sans-serif;
  font-size:       .78rem;
  font-weight:     600;
  letter-spacing:  .15em;
  text-transform:  uppercase;
  cursor:          pointer;
  box-shadow:      0 2px 14px var(--zjo-gold-glow);
  transition:      background .25s, transform .15s, box-shadow .2s;
  position:        relative;
  overflow:        hidden;
}
.zjo-modal-add::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);
  transform:translateX(-100%); transition:transform .55s ease;
}
.zjo-modal-add:hover:not(:disabled)::before { transform:translateX(100%); }
.zjo-modal-add:hover:not(:disabled) { background:var(--zjo-gold-dark); transform:translateY(-1px); }
.zjo-modal-add:active:not(:disabled) { transform:scale(.97); }
.zjo-modal-add:disabled { background:#ccc5b8; box-shadow:none; cursor:not-allowed; transform:none !important; }
.zjo-modal-add.success { background:#3d7a4e !important; }

/* ── LOADING ──────────────────────────────────────────────── */
.zjo-mloading {
  text-align:center; padding:32px 0;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.zjo-mloading-ring {
  width:28px; height:28px;
  border:2.5px solid #ede8df;
  border-top-color:var(--zjo-gold);
  border-radius:50%;
  animation:zjo-spin .7s linear infinite;
}

/* ── BODY LOCK ────────────────────────────────────────────── */
body.zjo-locked { overflow:hidden !important; }

/* ── RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 640px) {
  .zjo-box { padding:28px 20px 24px; }
  .zjo-mhead-img { width:64px; height:64px; }
  .zjo-mhead-name { font-size:1.05rem; }
}

/* ============================================================
   ZJO CART ICON + PANEL
   ============================================================ */

/* ── Cart icon wrapper ────────────────────────────────────── */
.zjo-cart-wrap {
  display: inline-flex;
  align-items: center;
}

.zjo-cart-icon {
  position:   relative;
  background: #fff;
  border:     1px solid #e8dfd1;
  border-radius: 999px;
  width: 42px;
  height: 42px;
  padding:    0;
  cursor:     pointer;
  display:    flex;
  align-items: center;
  justify-content: center;
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.zjo-cart-icon:hover {
  transform: scale(1.06);
  border-color: #d9c8a0;
  box-shadow: 0 6px 18px rgba(184,151,58,.22);
}
.zjo-cart-icon svg {
  width:  26px;
  height: 26px;
  stroke: #b8973a;
  transition: stroke .2s;
  display: block;
}
.zjo-cart-icon img {
  width: 26px;
  height: 26px;
  object-fit: contain;
  display: block;
}
.zjo-cart-icon i {
  font-size: 26px;
  color: #b8973a;
  line-height: 1;
}

/* Badge */
.zjo-cart-badge {
  position:        absolute;
  top:             -4px;
  inset-inline-end: -5px;
  min-width:       20px;
  height:          20px;
  border-radius:   50%;
  background:      #b8973a;
  color:           #fff;
  border:          1.5px solid #fff;
  font-family:     'Jost', sans-serif;
  font-size:       .65rem;
  font-weight:     700;
  display:         flex;
  align-items:     center;
  justify-content: center;
  padding:         0 4px;
  line-height:     1;
  transition:      transform .25s cubic-bezier(.34,1.56,.64,1);
}
.zjo-cart-badge.hidden { transform: scale(0); }

/* ── Overlay ──────────────────────────────────────────────── */
#zjo-panel-overlay {
  display:  none;
  position: fixed;
  inset:    0;
  z-index:  99998;
  background: rgba(6,4,2,.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  animation: zjo-bg-in .25s ease;
}
#zjo-panel-overlay.open { display: block; }

/* ── Side Panel ───────────────────────────────────────────── */
.zjo-panel {
  --zjo-panel-gold: #000;

  position:   fixed;
  top:        0;
  inset-inline-end: 0;
  width:      min(400px, 100vw);
  height:     100dvh;
  background: #ffffff;
  z-index:    99999;
  display:    flex;
  flex-direction: column;
  box-shadow: -8px 0 40px rgba(0,0,0,.15);
  transform:  translateX(110%);
  transition: transform .38s cubic-bezier(.4,0,.2,1);
  overflow:   hidden;
}
/* RTL: slide from left */
[dir="rtl"] .zjo-panel,
body.rtl .zjo-panel {
  inset-inline-end: auto;
  inset-inline-start: 0;
  transform: translateX(-110%);
  box-shadow: 8px 0 40px rgba(0,0,0,.15);
}

.zjo-panel.open {
  transform: translateX(0) !important;
}

/* ── Panel Header ─────────────────────────────────────────── */
.zjo-ph {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         20px 22px;
  border-bottom:   1px solid #f0ebe2;
  flex-shrink:     0;
}
.zjo-ph-title {
  font-family:    'Cormorant Garamond', serif;
  font-size:      1.15rem;
  font-weight:    600;
  color:          #1c1c1c;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin:         0;
}
.zjo-ph-close {
  width:           34px;
  height:          34px;
  border-radius:   50%;
  border:          1.5px solid #ddd6ca;
  background:      #faf7f2;
  cursor:          pointer;
  display:         flex;
  align-items:     center;
  justify-content: center;
  transition:      background .2s, border-color .2s, transform .2s ease, box-shadow .2s;
  flex-shrink:     0;
  padding: 0;
  margin:0;
}
.zjo-ph-close:hover {
  background:   #f0e8d8;
  border-color: var(--zjo-panel-gold);
  transform:    scale(1.04);
  box-shadow:   0 6px 14px rgba(184,151,58,.18);
}
.zjo-ph-close svg {
  width:11px; height:11px;
  stroke:#7a6a55; stroke-width:2.2;
  stroke-linecap:round; display:block;
}
.zjo-ph-close:hover svg { stroke: #9a7c2e; }

/* ── Items area ───────────────────────────────────────────── */
.zjo-items {
  flex:       1;
  overflow-y: auto;
  padding:    12px 0;
}
.zjo-items::-webkit-scrollbar       { width: 3px; }
.zjo-items::-webkit-scrollbar-track { background: #f5f0e8; }
.zjo-items::-webkit-scrollbar-thumb { background: var(--zjo-panel-gold); border-radius:3px; }

/* Empty state */
.zjo-empty {
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  justify-content: center;
  height:          100%;
  gap:             12px;
  color:           #bbb;
  font-family:     'Jost', sans-serif;
  font-size:       .9rem;
  padding:         40px;
}
.zjo-empty svg { width:48px; height:48px; stroke:#ddd; stroke-width:1.2; }

/* Loading */
.zjo-panel-loading {
  display:         flex;
  align-items:     center;
  justify-content: center;
  height:          120px;
}
.zjo-panel-ring {
  width:30px; height:30px;
  border:2.5px solid #ede8df;
  border-top-color: var(--zjo-panel-gold);
  border-radius:50%;
  animation:zjo-spin .7s linear infinite;
}

/* ── Cart Item ────────────────────────────────────────────── */
.zjo-item {
  display:     flex;
  align-items: flex-start;
  gap:         14px;
  padding:     14px 22px;
  border-bottom: 1px solid #f5f0ea;
  transition:  background .2s;
  animation:   zjo-item-in .3s ease;
}
@keyframes zjo-item-in {
  from { opacity:0; transform:translateY(8px); }
  to   { opacity:1; transform:translateY(0); }
}
.zjo-item:last-child { border-bottom: none; }
.zjo-item:hover { background: #faf8f4; }

.zjo-item-img {
  width:         72px;
  height:        72px;
  object-fit:    cover;
  border-radius: 10px;
  flex-shrink:   0;
  background:    #f5f2ec;
  display:       block;
}
.zjo-item-info {
  flex: 1;
  min-width: 0;
}
.zjo-item-name {
  font-family: 'Cormorant Garamond', serif;
  font-size:   1rem;
  font-weight: 600;
  color:       #1c1c1c;
  margin:      0 0 3px;
  line-height: 1.25;
  white-space: nowrap;
  overflow:    hidden;
  text-overflow: ellipsis;
}
.zjo-item-var {
  font-family: 'Jost', sans-serif;
  font-size:   .72rem;
  color:       #aaa;
  margin:      0 0 8px;
}
.zjo-item-price {
  font-family: 'Jost', sans-serif;
  font-size:   .88rem;
  font-weight: 500;
  color:       var(--zjo-panel-gold);
}
.zjo-item-price .woocommerce-Price-amount { color: var(--zjo-panel-gold) !important; }

/* Qty controls */
.zjo-qty-row {
  display:     flex;
  align-items: center;
  gap:         8px;
  margin-top:  10px;
}
.zjo-qty-btn {
  width:           32px;
  height:          32px;
  border-radius:   50%;
  border:          1.5px solid #e0d8cc;
  background:      #faf7f2;
  cursor:          pointer;
  display:         flex;
  align-items:     center;
  justify-content: center;
  font-size:       1rem;
  line-height:     1;
  color:           #4a3f30;
  transition:      background .2s, border-color .2s;
  flex-shrink:     0;
  padding: 0;
  margin: 0;
}
.zjo-qty-btn:hover { background:#f0e8d8; border-color:var(--zjo-panel-gold); }
.zjo-qty-num {
  font-family: 'Jost', sans-serif;
  font-size:   .85rem;
  font-weight: 600;
  color:       #1c1c1c;
  min-width:   20px;
  text-align:  center;
}
.zjo-remove-btn {
  background:  transparent;
  border:      none;
  cursor:      pointer;
  color:       #ccc;
  padding:     4px;
  line-height: 1;
  margin-inline-start: auto;
  transition:  color .2s;
}
.zjo-remove-btn:hover { color: #e05555; }
.zjo-remove-btn svg { width:14px; height:14px; stroke:currentColor; stroke-width:2; display:block; }

/* ── Panel Footer ─────────────────────────────────────────── */
.zjo-pf {
  border-top:  1px solid #f0ebe2;
  padding:     18px 22px 22px;
  flex-shrink: 0;
  background:  #fff;
}
.zjo-subtotal-row {
  display:         flex;
  justify-content: space-between;
  align-items:     baseline;
  margin-bottom:   16px;
}
.zjo-subtotal-label {
  font-family: 'Jost', sans-serif;
  font-size:   .8rem;
  font-weight: 600;
  color:       #888;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.zjo-subtotal-val {
  font-family: 'Cormorant Garamond', serif;
  font-size:   1.18rem;
  font-weight: 600;
  color:       #1c1c1c;
}
.zjo-subtotal-val .woocommerce-Price-amount { color: inherit !important; }

/* Buttons */
.zjo-pf-btns { display:flex; flex-direction:column; gap:10px; }

.zjo-btn-cart,
.zjo-btn-checkout {
  display:         flex;
  align-items:     center;
  justify-content: center;
  gap:             8px;
  width:           100%;
  height:          48px;
  border-radius:   50px;
  font-family:     'Jost', sans-serif;
  font-size:       .76rem;
  font-weight:     600;
  letter-spacing:  .14em;
  text-transform:  uppercase;
  text-decoration: none;
  cursor:          pointer;
  border:          none;
  transition:      background .25s, transform .15s, box-shadow .25s;
  position:        relative;
  overflow:        hidden;
}
.zjo-btn-cart::before,
.zjo-btn-checkout::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.2) 50%,transparent 70%);
  transform:translateX(-100%); transition:transform .55s ease;
}
.zjo-btn-cart:hover::before,
.zjo-btn-checkout:hover::before { transform:translateX(100%); }

.zjo-btn-cart {
  background: transparent;
  border:     1.5px solid var(--zjo-panel-gold);
  color:      var(--zjo-panel-gold);
}
.zjo-btn-cart:hover { background: rgba(184,151,58,.08); transform:translateY(-1px); }

.zjo-btn-checkout {
  background: var(--zjo-panel-gold);
  color:      #fff;
  box-shadow: 0 2px 14px rgba(184,151,58,.28);
}
.zjo-btn-checkout:hover {
  background: #9a7c2e;
  transform:  translateY(-1px);
  box-shadow: 0 6px 20px rgba(184,151,58,.35);
}

/* ── RTL support ──────────────────────────────────────────── */
[dir="rtl"] .zjo-ph-title,
body.rtl .zjo-ph-title {
  font-family: 'Tajawal', 'Cairo', sans-serif;
}

[dir="rtl"] .zjo-close,
body.rtl .zjo-close {
  right: auto;
  left: 16px;
}

[dir="rtl"] .zjo-mhead,
body.rtl .zjo-mhead {
  padding-right: 0;
  padding-left: 28px;
}

/* ── Mobile ───────────────────────────────────────────────── */
@media (max-width: 480px) {
  .zjo-panel { width: 100vw; }
  .zjo-item  { padding: 12px 16px; }
  .zjo-pf    { padding: 14px 16px 18px; }
}