/* ============================================================
   Banger Labs — slide-out cart drawer + 3-tier rewards bar.
   Reuses bl-cart-slide / bl-btn-shift / bl-btn-shimmer / bl-btn-glow /
   bl-cart-pulse / bl-reward-gold-shift keyframes from style.css.
   ============================================================ */

/* ── ROOT / OVERLAY ─────────────────────────────────────── */
.bl-cart { position: fixed; inset: 0; z-index: 99998; }
.bl-cart[hidden] { display: none; }
.bl-cart-overlay {
  position: absolute; inset: 0;
  background: rgba(13, 8, 25, .55);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  opacity: 0; transition: opacity .35s var(--bl-ease);
}
.bl-cart.bl-cart-open .bl-cart-overlay { opacity: 1; }

/* ── PANEL ──────────────────────────────────────────────── */
.bl-cart-panel {
  position: absolute; top: 0; right: 0; height: 100%;
  width: min(420px, 100vw);
  display: flex; flex-direction: column; overflow: hidden;
  background: #f8f7fc;
  box-shadow: -20px 0 80px rgba(0, 0, 0, .22), -1px 0 0 rgba(124, 92, 255, .12);
  transform: translateX(105%);
}
.bl-cart.bl-cart-open .bl-cart-panel {
  animation: bl-cart-slide .45s var(--bl-ease) forwards;
}

/* ── HEADER ─────────────────────────────────────────────── */
.bl-cart-head {
  position: relative; flex-shrink: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 18px 14px; background: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, .06);
}
.bl-cart-head-rule {
  position: absolute; left: 0; right: 0; bottom: 0; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(124, 92, 255, .3), transparent);
}
.bl-cart-title-wrap { display: flex; align-items: center; gap: 8px; }
.bl-cart-shield {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 26px; height: 26px; border-radius: 7px;
  background: linear-gradient(135deg, rgba(124, 92, 255, .12), rgba(124, 92, 255, .05));
  border: 1px solid rgba(124, 92, 255, .2);
}
.bl-cart-title {
  font-family: var(--font-display); font-size: 15px; font-weight: 700;
  color: var(--bl-ink); letter-spacing: -.1px;
}
.bl-cart-count-pill {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-size: 10px; font-weight: 700; color: #fff;
  min-width: 19px; height: 19px; border-radius: 10px; padding: 0 5px;
  background: var(--bl-grad); box-shadow: 0 2px 8px rgba(124, 92, 255, .4);
}
.bl-cart-count-pill[hidden] { display: none; }
.bl-cart-close {
  display: flex; align-items: center; justify-content: center;
  width: 33px; height: 33px; border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, .08); background: rgba(0, 0, 0, .04);
  color: rgba(0, 0, 0, .4); transition: all .15s;
}
.bl-cart-close:hover { background: rgba(0, 0, 0, .08); color: rgba(0, 0, 0, .7); }

/* ── LIVE SOCIAL-PROOF BAR ──────────────────────────────── */
.bl-cart-social {
  flex-shrink: 0; display: flex; align-items: center; gap: 12px;
  padding: 9px 18px;
  background: linear-gradient(90deg, rgba(124, 92, 255, .06), rgba(155, 123, 255, .03));
  border-bottom: 1px solid rgba(124, 92, 255, .1);
}
.bl-cart-live {
  display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0;
  font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: .04em;
  color: #16a34a; background: rgba(22, 163, 74, .1);
  border: 1px solid rgba(22, 163, 74, .25); border-radius: 100px; padding: 2px 8px 2px 7px;
}
.bl-cart-live-dot {
  width: 6px; height: 6px; border-radius: 50%; background: #16a34a;
  animation: bl-cart-pulse 1.8s ease-out infinite;
}
.bl-cart-social-txt {
  font-family: var(--font-display); font-size: 12.5px; color: rgba(0, 0, 0, .5);
  flex: 1; min-width: 0;
}
.bl-cart-social-txt strong { color: var(--bl-ink); font-weight: 700; }
.bl-cart-avatars { display: flex; align-items: center; flex-shrink: 0; }
.bl-cart-av {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%; color: #fff;
  font-family: var(--font-display); font-size: 9px; font-weight: 700;
  border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .15);
}
.bl-cart-av--a { background: linear-gradient(135deg, #16a34a, #22c55e); }
.bl-cart-av--b { background: linear-gradient(135deg, #db2777, #ec4899); margin-left: -8px; }
.bl-cart-av--c { background: var(--bl-grad); margin-left: -8px; }

/* ── REWARDS BAR ────────────────────────────────────────── */
.bl-reward {
  position: relative; flex-shrink: 0; overflow: hidden;
  padding: 12px 16px 14px;
  background: linear-gradient(110deg, #1a0a2e, #2a1245);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .2);
  transition: background .6s ease, box-shadow .6s ease;
}
.bl-reward[hidden] { display: none; }
.bl-reward.bl-reward-gold {
  background: linear-gradient(110deg, #3d2410 0%, #6b4a1a 22%, #a17017 45%, #d4af37 65%, #a17017 85%, #6b4a1a 100%);
  background-size: 280% 100%;
  animation: bl-reward-gold-shift 5s ease-in-out infinite;
  box-shadow: 0 0 24px rgba(212, 175, 55, .45), inset 0 0 14px rgba(212, 175, 55, .25);
}
.bl-reward-sheen {
  position: absolute; top: 0; bottom: 0; left: 0; width: 60%;
  background: linear-gradient(105deg, transparent 0%, rgba(255, 236, 170, .45) 50%, transparent 100%);
  mix-blend-mode: screen; pointer-events: none; opacity: 0;
}
.bl-reward.bl-reward-gold .bl-reward-sheen {
  opacity: 1; animation: bl-reward-gold-sweep 3.4s ease-in-out infinite;
}
@keyframes bl-reward-gold-sweep { 0% { transform: translateX(-110%); } 60%, 100% { transform: translateX(110%); } }
@keyframes bl-reward-node-pop { 0% { transform: scale(.55); opacity: 0; } 60% { transform: scale(1.12); opacity: 1; } 100% { transform: scale(1); opacity: 1; } }
.bl-reward-head {
  position: relative; font-family: var(--font-display); font-size: 12.5px; font-weight: 600;
  color: #fff; margin-bottom: 10px; letter-spacing: .1px;
}
.bl-reward-head strong { color: #F0C75E; }
.bl-reward.bl-reward-gold .bl-reward-head { text-shadow: 0 1px 3px rgba(60, 30, 0, .4); }
.bl-reward-trophy { display: inline; }

.bl-reward-track {
  position: relative; display: flex; align-items: flex-start;
  justify-content: space-between; padding: 0 6px;
}
.bl-reward-line {
  position: absolute; left: 22px; right: 22px; top: 11px; height: 2px;
  background: rgba(255, 255, 255, .13); border-radius: 1px; transition: background .6s ease;
}
.bl-reward.bl-reward-gold .bl-reward-line { background: rgba(120, 70, 15, .55); }
.bl-reward-line-fill {
  position: absolute; left: 22px; top: 11px; height: 2px; width: 0;
  background: linear-gradient(90deg, #7C5CFF, #9B7BFF, #B9A8FF);
  box-shadow: 0 0 6px rgba(155, 123, 255, .55); border-radius: 1px;
  transition: width .6s var(--bl-ease), background .6s ease;
}
.bl-reward.bl-reward-gold .bl-reward-line-fill {
  background: linear-gradient(90deg, #F0C75E, #FFE89B 50%, #F0C75E);
  box-shadow: 0 0 8px rgba(255, 222, 128, .65);
}
.bl-reward-node {
  position: relative; z-index: 1; flex: 0 0 auto;
  display: flex; flex-direction: column; align-items: center; gap: 5px;
}
.bl-reward-dot {
  position: relative; width: 22px; height: 22px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .18);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
  color: rgba(255, 255, 255, .5);
  transition: background .45s ease, border .45s ease, box-shadow .45s ease;
}
.bl-reward-icon { display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-display); font-size: 10px; font-weight: 700; }
.bl-reward-check { display: none; }
.bl-reward-node.bl-unlocked .bl-reward-dot {
  background: linear-gradient(135deg, #7C5CFF, #9B7BFF);
  border: 1px solid rgba(155, 123, 255, .55);
  box-shadow: 0 0 10px rgba(155, 123, 255, .55), inset 0 1px 0 rgba(255, 255, 255, .22);
  animation: bl-reward-node-pop .4s cubic-bezier(.22, 1.6, .36, 1) both;
}
.bl-reward-node.bl-unlocked .bl-reward-icon { display: none; }
.bl-reward-node.bl-unlocked .bl-reward-check { display: block; }
.bl-reward.bl-reward-gold .bl-reward-node.bl-unlocked .bl-reward-dot {
  background: linear-gradient(135deg, #FFE89B 0%, #F0C75E 45%, #D4AF37 100%);
  border: 1px solid rgba(255, 236, 170, .85);
  box-shadow: 0 0 14px rgba(255, 222, 128, .7), inset 0 1px 0 rgba(255, 255, 255, .45);
}
.bl-reward-label {
  font-family: var(--font-display); font-size: 9.5px; font-weight: 600;
  color: rgba(255, 255, 255, .42); white-space: nowrap; letter-spacing: .2px;
  transition: color .5s ease;
}
.bl-reward-node.bl-unlocked .bl-reward-label { color: #fff; }
.bl-reward.bl-reward-gold .bl-reward-node.bl-unlocked .bl-reward-label {
  color: #FFF1C2; text-shadow: 0 1px 2px rgba(60, 30, 0, .45);
}

/* ── SCROLL BODY ────────────────────────────────────────── */
.bl-cart-body {
  flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden;
  background: #f8f7fc;
  scrollbar-width: thin; scrollbar-color: rgba(124, 92, 255, .15) transparent;
}
.bl-cart-body::-webkit-scrollbar { width: 6px; }
.bl-cart-body::-webkit-scrollbar-thumb { background: rgba(124, 92, 255, .15); border-radius: 3px; }

/* Empty state */
.bl-cart-empty {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: 56px 28px 52px; min-height: 340px; justify-content: center;
}
.bl-cart-empty[hidden] { display: none; }
.bl-cart-empty-art { margin-bottom: 24px; opacity: .8; }
.bl-cart-empty-title { font-family: var(--font-display); font-size: 21px; font-weight: 700; color: var(--bl-ink); letter-spacing: -.4px; margin-bottom: 8px; line-height: 1.2; }
.bl-cart-empty-sub { font-size: 13px; color: rgba(0, 0, 0, .35); margin-bottom: 32px; line-height: 1.5; }
.bl-cart-empty-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 0 30px; height: 50px; border-radius: 100px;
  background: linear-gradient(115deg, #5B3BE0, #7C5CFF, #9B7BFF);
  color: #fff; font-family: var(--font-display); font-size: 14px; font-weight: 700;
  box-shadow: 0 6px 24px rgba(124, 92, 255, .5);
  transition: transform .22s var(--bl-ease), box-shadow .22s;
}
.bl-cart-empty-cta:hover { transform: translateY(-2px); box-shadow: 0 10px 34px rgba(124, 92, 255, .65); }

/* ── LINE ITEMS ─────────────────────────────────────────── */
.bl-cart-items { padding: 10px 16px 4px; }
.bl-cart-items:empty { padding: 0; }
.bl-cart-item { display: flex; align-items: center; gap: 14px; padding: 10px 0; border-bottom: 1px solid rgba(0, 0, 0, .055); }
.bl-cart-item-img {
  flex-shrink: 0; width: 56px; height: 56px; border-radius: 11px; overflow: hidden;
  background: linear-gradient(145deg, #ede8f8, #e0d6f5);
  border: 1px solid rgba(124, 92, 255, .1); box-shadow: 0 2px 10px rgba(124, 92, 255, .1);
}
.bl-cart-item-img img { width: 100%; height: 100%; object-fit: cover; }
.bl-cart-item-main { flex: 1; min-width: 0; display: flex; flex-direction: column; row-gap: 4px; }
.bl-cart-item-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.bl-cart-item-name { font-family: var(--font-display); font-size: 13px; font-weight: 600; color: var(--bl-ink); line-height: 1; flex: 1; min-width: 0; }
.bl-cart-item-price { font-family: var(--font-display); font-size: 13.5px; font-weight: 700; color: var(--bl-ink); line-height: 1; flex-shrink: 0; }

.bl-cart-item-bogo-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bl-cart-bogo-badge {
  display: inline-flex; align-items: center; gap: 4px; font-size: 10px; color: var(--bl-p); font-weight: 600;
  background: rgba(124, 92, 255, .07); border: 1px solid rgba(124, 92, 255, .15);
  border-radius: 4px; padding: 1px 6px;
}
.bl-cart-addon-badge {
  display: inline-flex; align-items: center; gap: 4px; font-size: 10px; color: #6e6e73; font-weight: 600;
  background: rgba(0, 0, 0, .04); border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 4px; padding: 1px 6px; width: fit-content;
}
.bl-cart-item-strike {
  font-size: 10.5px; font-weight: 500; color: rgba(0, 0, 0, .3);
  text-decoration: line-through; text-decoration-color: rgba(220, 50, 50, .5);
  line-height: 1; flex-shrink: 0;
}
.bl-cart-item-qtyrow { display: flex; align-items: center; justify-content: space-between; }
.bl-cart-stepper {
  display: flex; align-items: center; overflow: hidden;
  background: #fff; border: 1px solid rgba(0, 0, 0, .1); border-radius: 9px; box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
}
.bl-cart-step-btn {
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; background: transparent; border: none; color: #666; transition: background .12s;
}
.bl-cart-step-btn:hover { background: rgba(124, 92, 255, .07); }
.bl-cart-step-qty { font-family: var(--font-display); font-size: 13px; font-weight: 700; color: var(--bl-ink); min-width: 26px; text-align: center; }
.bl-cart-remove {
  width: 30px; height: 30px; border-radius: 8px; border: none; background: transparent;
  color: rgba(0, 0, 0, .22); display: flex; align-items: center; justify-content: center; transition: all .15s;
}
.bl-cart-remove:hover { background: rgba(220, 50, 50, .07); color: #c0392b; }

/* ── BUNDLE PROMO ───────────────────────────────────────── */
.bl-cart-bundle-wrap { padding: 12px 16px 0; }
.bl-cart-bundle-wrap[hidden] { display: none; }
.bl-cart-bundle {
  width: 100%; display: flex; align-items: center; gap: 12px; text-align: left;
  background: linear-gradient(115deg, rgba(124, 92, 255, .08), rgba(155, 123, 255, .05));
  border: 1.5px solid rgba(124, 92, 255, .4); border-radius: 14px; padding: 13px 15px;
  transition: transform .18s var(--bl-ease), box-shadow .18s, border-color .18s;
}
.bl-cart-bundle:hover { transform: translateY(-1px); box-shadow: 0 6px 22px rgba(124, 92, 255, .22); border-color: rgba(124, 92, 255, .65); }
.bl-cart-bundle svg { flex-shrink: 0; }
.bl-cart-bundle-txt { font-family: var(--font-display); font-size: 13.5px; font-weight: 700; color: #5B3BE0; line-height: 1.35; }
.bl-cart-bundle-sub { display: block; font-weight: 500; color: rgba(91, 59, 224, .7); }

/* ── ADD-ONS RAIL ───────────────────────────────────────── */
.bl-cart-addons { margin-top: 8px; border-top: 1px solid rgba(0, 0, 0, .07); }
.bl-cart-addons[hidden] { display: none; }
.bl-cart-section-head { padding: 11px 16px 4px; display: flex; align-items: center; justify-content: space-between; }
.bl-cart-section-title { font-family: var(--font-display); font-size: 10px; font-weight: 700; color: rgba(0, 0, 0, .3); letter-spacing: .08em; text-transform: uppercase; }
.bl-cart-section-note { font-size: 9.5px; color: rgba(0, 0, 0, .25); }
.bl-cart-addons-copy { padding: 0 16px 8px; margin: 0; font-family: var(--font-display); font-size: 10.5px; font-weight: 500; color: rgba(0, 0, 0, .45); line-height: 1.35; }
.bl-cart-addons-list { display: flex; flex-direction: column; gap: 6px; padding: 0 16px 12px; }
.bl-cart-addon {
  display: flex; align-items: center; gap: 10px; background: #fff;
  border: 1px solid rgba(0, 0, 0, .07); border-radius: 12px; padding: 8px; box-shadow: 0 1px 4px rgba(0, 0, 0, .03);
}
.bl-cart-addon-img { flex-shrink: 0; width: 42px; height: 42px; border-radius: 9px; overflow: hidden; background: linear-gradient(145deg, #ede8f7, #dcd4f0); border: 1px solid rgba(124, 92, 255, .08); }
.bl-cart-addon-img img { width: 100%; height: 100%; object-fit: cover; }
.bl-cart-addon-name { flex: 1; min-width: 0; font-family: var(--font-display); font-size: 12.5px; font-weight: 600; color: var(--bl-ink); line-height: 1.2; }
.bl-cart-addon-price { font-family: var(--font-display); font-size: 12.5px; font-weight: 700; color: var(--bl-ink); flex-shrink: 0; }
.bl-cart-addon-add {
  flex-shrink: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;
  border-radius: 8px; border: none; background: rgba(124, 92, 255, .08); color: var(--bl-p); transition: background .12s;
}
.bl-cart-addon-add:hover { background: rgba(124, 92, 255, .16); }

/* ── RECOMMENDATIONS RAIL (rotated; dose dropdown + BOGO add) ───────────── */
.bl-cart-reco { margin-top: 8px; border-top: 1px solid rgba(0, 0, 0, .07); }
.bl-cart-reco[hidden] { display: none; }
.bl-cart-reco-list { display: flex; flex-direction: column; gap: 8px; padding: 0 16px 14px; }
.bl-cart-reco-card {
  position: relative; display: grid; grid-template-columns: 56px 1fr; gap: 11px;
  align-items: center; background: #fff; border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 14px; padding: 9px; box-shadow: 0 1px 5px rgba(20, 16, 46, .04);
}
.bl-cart-reco-tag {
  position: absolute; top: -7px; left: 12px; z-index: 2; font-family: var(--font-display);
  font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: #fff; background: linear-gradient(120deg, #9B7BFF, #7C5CFF 60%, #5B3BE0);
  border-radius: 20px; padding: 2px 8px; box-shadow: 0 2px 7px -2px rgba(124, 92, 255, .6);
}
.bl-cart-reco-media {
  display: block; width: 56px; height: 56px; border-radius: 11px; overflow: hidden;
  background: linear-gradient(145deg, #ede8f7, #dcd4f0); border: 1px solid rgba(124, 92, 255, .08);
}
.bl-cart-reco-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bl-cart-reco-body { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.bl-cart-reco-name {
  font-family: var(--font-display); font-size: 12.5px; font-weight: 700; color: var(--bl-ink);
  line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bl-cart-reco-sub { font-size: 10.5px; font-weight: 500; color: rgba(0, 0, 0, .45); line-height: 1.3; margin-top: -2px; }
.bl-cart-reco-foot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bl-cart-reco-priceline { display: flex; align-items: center; gap: 7px; flex: 1; min-width: 0; }
.bl-cart-reco-price { font-family: var(--font-display); font-size: 13px; font-weight: 800; color: var(--bl-ink); flex-shrink: 0; }
.bl-cart-reco-dosewrap { position: relative; display: inline-flex; min-width: 0; }
.bl-cart-reco-dose {
  appearance: none; -webkit-appearance: none; max-width: 92px;
  border: 1.5px solid rgba(124, 92, 255, .28); border-radius: 8px;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%237C5CFF' stroke-width='2.5' stroke-linecap='round'><path d='M3 4.5l3 3 3-3'/></svg>") no-repeat right 7px center;
  padding: 4px 24px 4px 8px; font: 600 11.5px/1 var(--font-display, 'Inter', sans-serif);
  color: #14102E; cursor: pointer; text-overflow: ellipsis;
}
.bl-cart-reco-dose:focus { outline: none; border-color: #7C5CFF; box-shadow: 0 0 0 3px rgba(124, 92, 255, .15); }
.bl-cart-reco-add {
  flex-shrink: 0; border: 0; border-radius: 9px; padding: 8px 11px;
  font: 700 11.5px/1 var(--font-display, inherit); color: #fff;
  background: linear-gradient(120deg, #9B7BFF, #7C5CFF 55%, #5B3BE0);
  cursor: pointer; white-space: nowrap; transition: box-shadow .12s, transform .08s; margin-left: auto;
}
.bl-cart-reco-add:hover { box-shadow: 0 6px 16px -6px rgba(124, 92, 255, .7); }
.bl-cart-reco-add:active { transform: translateY(1px); }
.bl-cart-reco-add.is-loading { opacity: .7; cursor: default; }
.bl-cart-reco-link {
  background: rgba(124, 92, 255, .1); color: #5B3BE0; text-decoration: none;
  display: inline-flex; align-items: center; box-shadow: none;
}
.bl-cart-reco-link:hover { background: rgba(124, 92, 255, .18); box-shadow: none; }
.bl-cart-reco-card.is-kit { border-color: rgba(124, 92, 255, .3); background: linear-gradient(180deg, #faf8ff, #fff); }

/* ── FOOTER ─────────────────────────────────────────────── */
.bl-cart-foot { flex-shrink: 0; background: #fff; border-top: 1px solid rgba(0, 0, 0, .07); padding: 14px 16px 0; }
.bl-cart-foot[hidden] { display: none; }
.bl-cart-summary-toggle {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  padding: 0 0 12px; background: none; border: none; user-select: none;
}
.bl-cart-summary-label { font-family: var(--font-display); font-size: 11px; font-weight: 700; color: rgba(0, 0, 0, .38); letter-spacing: .06em; text-transform: uppercase; }
.bl-cart-summary-right { display: flex; align-items: center; gap: 6px; }
.bl-cart-saved-chip { font-size: 12px; font-weight: 700; color: #16a34a; }
.bl-cart-saved-chip[hidden] { display: none; }
.bl-cart-summary-caret { transition: transform .28s; }
.bl-cart-summary-toggle[aria-expanded="true"] .bl-cart-summary-caret { transform: rotate(180deg); }
.bl-cart-summary { overflow: hidden; max-height: 0; transition: max-height .35s ease; }
.bl-cart-summary.bl-open { max-height: 460px; }

.bl-cart-srow { display: flex; justify-content: space-between; font-size: 12px; padding: 4px 0; color: rgba(0, 0, 0, .5); }
.bl-cart-srow strong { font-weight: 600; color: var(--bl-ink); }
.bl-cart-srow--sub { font-size: 11.5px; padding: 4px 0; color: rgba(0, 0, 0, .45); }
.bl-cart-srow--sub .bl-cart-srow-name { max-width: 70%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bl-cart-srow--sub .bl-cart-srow-amt { color: #16a34a; font-weight: 600; }
.bl-cart-srow--ship { font-size: 12px; padding: 6px 0 4px; margin-top: 4px; border-top: 1px solid rgba(0, 0, 0, .07); }
.bl-cart-ship-was { font-size: 11px; text-decoration: line-through; color: rgba(0, 0, 0, .35); margin-right: 6px; }
.bl-cart-ship-free { font-weight: 700; color: #16a34a; }
.bl-cart-savings-banner {
  background: #ecfdf5; border: 1px solid rgba(34, 197, 94, .25); border-radius: 12px;
  padding: 9px 12px; margin: 10px 0 12px; display: flex; align-items: center; gap: 8px;
}
.bl-cart-savings-ico { width: 24px; height: 24px; border-radius: 6px; background: rgba(34, 197, 94, .1); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.bl-cart-savings-body { flex: 1; min-width: 0; }
.bl-cart-savings-h { font-family: var(--font-display); font-size: 10px; font-weight: 700; color: #15803d; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 4px; }
.bl-cart-savings-sub { font-size: 9px; color: rgba(0, 0, 0, .5); font-weight: 500; }
.bl-cart-savings-amt { font-family: var(--font-display); font-size: 12px; font-weight: 700; color: #16a34a; white-space: nowrap; flex-shrink: 0; }

/* ── CHECKOUT CTA ───────────────────────────────────────── */
.bl-cart-cta-wrap { position: relative; padding: 4px 0 16px; }
.bl-cart-cta-glow {
  position: absolute; bottom: 8px; left: 15%; right: 15%; height: 20px; border-radius: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(155, 123, 255, .7), transparent 70%);
  filter: blur(6px); pointer-events: none; animation: bl-btn-glow 3s ease-in-out infinite;
}
.bl-cart-cta {
  position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between;
  width: 100%; height: 60px; border-radius: 16px; padding: 0 20px;
  background: linear-gradient(135deg, #2c1a55 0%, #3d1c6e 20%, #5B3BE0 45%, #7C5CFF 65%, #5B3BE0 80%, #3d1c6e 100%);
  background-size: 300% 100%; animation: bl-btn-shift 6s ease-in-out infinite;
  box-shadow: 0 8px 32px rgba(45, 27, 110, .55), 0 2px 8px rgba(124, 92, 255, .4), inset 0 1px 0 rgba(255, 255, 255, .18), inset 0 -1px 0 rgba(0, 0, 0, .2);
  transition: transform .18s var(--bl-ease), box-shadow .2s;
}
.bl-cart-cta:hover { transform: translateY(-2px) scale(1.008); box-shadow: 0 14px 44px rgba(45, 27, 110, .65), 0 4px 12px rgba(124, 92, 255, .5), inset 0 1px 0 rgba(255, 255, 255, .22), inset 0 -1px 0 rgba(0, 0, 0, .22); }
.bl-cart-cta-shimmer {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 20%, rgba(255, 255, 255, .18) 50%, transparent 80%);
  background-size: 200% 100%; animation: bl-btn-shimmer 3.2s ease-in-out infinite;
}
.bl-cart-cta-left { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; position: relative; z-index: 1; }
.bl-cart-cta-main { font-family: var(--font-display); font-size: 15.5px; font-weight: 700; color: #fff; line-height: 1.1; letter-spacing: .05px; text-shadow: 0 1px 4px rgba(0, 0, 0, .25); }
.bl-cart-cta-ssl { display: flex; align-items: center; gap: 4px; font-size: 9.5px; color: rgba(255, 255, 255, .55); letter-spacing: .25px; }
.bl-cart-cta-right { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; position: relative; z-index: 1; }
.bl-cart-cta-was { font-family: var(--font-display); font-size: 11px; font-weight: 500; color: rgba(255, 255, 255, .4); text-decoration: line-through; text-decoration-color: rgba(100, 255, 100, .5); line-height: 1.2; }
.bl-cart-cta-was[hidden] { display: none; }
.bl-cart-cta-now { font-family: var(--font-display); font-size: 20px; font-weight: 800; color: #fff; line-height: 1; letter-spacing: -.4px; text-shadow: 0 2px 8px rgba(0, 0, 0, .3); }

/* ── BODY SCROLL LOCK ───────────────────────────────────── */
body.bl-cart-locked { overflow: hidden; }

/* ── Shipping Protection toggle (side cart) ── */
.bl-cart-protect{display:flex;align-items:center;gap:11px;padding:13px 14px;margin-bottom:12px;border:1px solid #ece7fb;border-radius:14px;background:#fbfaff;transition:border-color .2s,background .2s;cursor:pointer;user-select:none;}
.bl-cart-protect.is-on{border-color:rgba(124,92,255,.45);background:rgba(124,92,255,.05);}
.bl-cart-protect-ico{flex-shrink:0;width:34px;height:34px;border-radius:10px;background:rgba(124,92,255,.1);display:flex;align-items:center;justify-content:center;}
.bl-cart-protect-txt{display:flex;flex-direction:column;flex:1;min-width:0;}
.bl-cart-protect-title{font-family:var(--font-display);font-size:13.5px;font-weight:600;color:var(--bl-ink);letter-spacing:-.01em;}
.bl-cart-protect-sub{font-size:11px;color:var(--bl-mute);line-height:1.4;margin-top:1px;}
.bl-cart-protect-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.bl-cart-protect-price{font-family:var(--font-display);font-size:12.5px;font-weight:700;color:var(--bl-ink);}
.bl-cart-toggle{position:relative;width:40px;height:23px;border-radius:999px;border:none;background:#d8d2ea;cursor:pointer;padding:0;transition:background .22s var(--bl-ease);flex-shrink:0;}
.bl-cart-toggle.is-on{background:var(--bl-p);}
.bl-cart-toggle-knob{position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .22s var(--bl-ease);}
.bl-cart-toggle.is-on .bl-cart-toggle-knob{transform:translateX(17px);}

/* BAC Water size dropdown in the add-on rail */
.bl-cart-addon--sized .bl-cart-addon-name{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.bl-cart-addon-size{appearance:none;-webkit-appearance:none;border:1.5px solid rgba(124,92,255,.28);border-radius:9px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%237C5CFF' stroke-width='2.5' stroke-linecap='round'><path d='M3 4.5l3 3 3-3'/></svg>") no-repeat right 9px center;padding:6px 28px 6px 10px;font:600 12.5px/1 'Inter',sans-serif;color:#14102E;cursor:pointer}
.bl-cart-addon-size:focus{outline:none;border-color:#7C5CFF;box-shadow:0 0 0 3px rgba(124,92,255,.15)}

/* ============ Pay-in-4 + payment trust (cart drawer + checkout) ============ */
.bl-paytrust { margin-top: 14px; display: flex; flex-direction: column; gap: 11px; }
.bl-paytrust-pay4 { display: flex; align-items: center; gap: 8px; font-size: 12.5px; line-height: 1.3; color: #6B6488; font-family: var(--font-body, 'Inter', sans-serif); }
.bl-paytrust-pay4 strong { color: #14102E; font-weight: 600; }
.bl-pp-text { font-family: Arial, Helvetica, sans-serif; font-style: italic; font-weight: 800; font-size: 13px; color: #003087; flex-shrink: 0; }
.bl-pp-text b { color: #009CDE; font-weight: 800; }
.bl-paytrust-secure { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.bl-paytrust-lock { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #6B6488; font-family: var(--font-body, 'Inter', sans-serif); }
.bl-paytrust-cards { display: inline-flex; gap: 6px; }
.bl-pc { min-width: 30px; height: 22px; padding: 0 6px; border-radius: 4px; background: #fff; border: 1px solid #e6e2f5; display: inline-flex; align-items: center; justify-content: center; font-family: Arial, Helvetica, sans-serif; font-weight: 800; font-size: 8px; letter-spacing: .01em; white-space: nowrap; box-shadow: 0 1px 2px rgba(20,16,46,.06); }
.bl-pc-mc { padding: 0 8px; }
.bl-pc-visa { color: #1A1F71; font-style: italic; }
.bl-pc-amex { color: #2E77BC; }
.bl-pc-disc { color: #1a1a1a; } .bl-pc-disc b { color: #FF6000; font-weight: 800; }
.bl-pc-pp { color: #003087; font-style: italic; } .bl-pc-pp b { color: #009CDE; }
.bl-pc-mc { gap: 0; }
.bl-pc-mc > span { width: 11px; height: 11px; border-radius: 50%; display: block; }
.bl-pc-mc > span:first-child { background: #EB001B; }
.bl-pc-mc > span:last-child { background: #F79E1B; margin-left: -5px; mix-blend-mode: multiply; }
