/* ===========================================================================
 * DUNEUS · Cart bundle popup — prominent modal on the cart page.
 * Presentation only.
 * ======================================================================== */
.dn-cbp{
  position:fixed; inset:0; z-index:100000; display:flex; align-items:center;
  justify-content:center; padding:18px; opacity:0; visibility:hidden;
  transition:opacity .26s ease, visibility .26s ease;
  font-family:'Montserrat','Tajawal',sans-serif;
}
[dir="rtl"] .dn-cbp{ font-family:'Tajawal','Montserrat',sans-serif; }
.dn-cbp.is-open{ opacity:1; visibility:visible; }

.dn-cbp__scrim{ position:absolute; inset:0; background:rgba(10,10,12,.62); backdrop-filter:blur(3px); }

.dn-cbp__panel{
  position:relative; width:100%; max-width:430px; background:#fff; color:#111214;
  border-radius:20px; padding:30px 26px 24px; box-shadow:0 30px 80px rgba(0,0,0,.38);
  transform:translateY(14px) scale(.98); transition:transform .3s cubic-bezier(.2,.75,.2,1);
  max-height:92vh; overflow:auto; text-align:center;
}
.dn-cbp.is-open .dn-cbp__panel{ transform:none; }

.dn-cbp__x{
  position:absolute; top:12px; inset-inline-end:12px; width:34px; height:34px;
  border:0; background:#f2f2f3; border-radius:50%; cursor:pointer; color:#111;
  display:flex; align-items:center; justify-content:center; transition:background .18s ease;
}
.dn-cbp__x:hover{ background:#e4e4e6; }
.dn-cbp__x svg{ width:17px; height:17px; }

.dn-cbp__eyebrow{
  display:inline-flex; align-items:center; gap:8px; font-weight:800; font-size:11px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--dn-accent,#FF5100);
}
[dir="rtl"] .dn-cbp__eyebrow{ letter-spacing:.02em; text-transform:none; }
.dn-cbp__eyebrow svg{ width:22px; height:22px; }

.dn-cbp__title{
  margin:12px 0 0; font-weight:900; font-size:1.25rem; line-height:1.2; letter-spacing:-.01em;
}
.dn-cbp__msg{ margin:10px 0 0; color:#5c5c63; font-size:.95rem; line-height:1.5; }

.dn-cbp__save{
  display:inline-block; margin:14px 0 2px; font-weight:800; font-size:12px; color:#fff;
  background:#16a34a; border-radius:7px; padding:6px 13px; letter-spacing:.04em;
}

.dn-cbp__row{
  display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin:18px 0 4px;
}
.dn-cbp__item{
  flex:0 0 128px; max-width:132px; display:flex; flex-direction:column; gap:7px;
  text-decoration:none; color:#111214; border:1px solid #ededee; border-radius:13px;
  padding:9px; transition:border-color .18s ease, transform .18s ease;
}
.dn-cbp__item:hover{ border-color:#111214; transform:translateY(-2px); }
.dn-cbp__thumb{
  width:100%; aspect-ratio:1/1; border-radius:9px; overflow:hidden;
  background:radial-gradient(120% 120% at 60% 20%,#3a3d44,#16171b);
}
.dn-cbp__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.dn-cbp__iname{
  font-weight:700; font-size:12px; line-height:1.3; text-align:center;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.dn-cbp__iprice{ font-weight:900; font-size:12.5px; }

.dn-cbp__cta{
  display:block; margin:20px 0 0; text-decoration:none; text-align:center;
  background:#111214; color:#fff; border-radius:13px; font-weight:800; font-size:13px;
  letter-spacing:.09em; text-transform:uppercase; padding:16px; transition:background .2s ease;
}
[dir="rtl"] .dn-cbp__cta{ letter-spacing:.02em; text-transform:none; }
.dn-cbp__cta:hover{ background:var(--dn-accent,#FF5100); color:#fff; }

.dn-cbp__skip{
  display:block; width:100%; margin:10px 0 0; border:0; background:none; cursor:pointer;
  color:#9a9aa0; font-size:12.5px; font-weight:600; padding:6px;
  font-family:inherit; transition:color .18s ease;
}
.dn-cbp__skip:hover{ color:#5c5c63; }

@media (max-width:480px){
  .dn-cbp{ align-items:flex-end; padding:0; }
  .dn-cbp__panel{
    max-width:none; border-radius:20px 20px 0 0; padding:26px 20px 20px;
    transform:translateY(100%);
  }
  .dn-cbp.is-open .dn-cbp__panel{ transform:none; }
  .dn-cbp__item{ flex-basis:116px; }
}

@media (prefers-reduced-motion:reduce){
  .dn-cbp, .dn-cbp__panel{ transition:none; }
}
