:root{
  --cart-bg: #ffe4f1;           /* drawer background (Kirby pink) */
  --cart-ink:#4a044e;           /* text (deep plum for contrast) */
  --cart-muted:#fbcfe8;         /* secondary text (soft pink) */
  --cart-accent:#ec4899;        /* PINK accent (tab + badge) */
  --cart-accent-2:#f472b6;      /* secondary pink accent */
  --cart-border:rgba(190,24,93,.30); /* rose-ish border on light pink */
  --cart-danger:#ef4444;
  --cart-head-grad: linear-gradient(135deg, #f472b6 0%, #ec4899 100%);
  --cart-width: 400px;          /* drawer width (JS keeps this synced) */
}

/* ===== Pull-tab Cart Button (attached to drawer edge) ===== */
#cartFab {
  position: fixed;
  right: 0;                     /* attached to viewport edge when closed */
  top: 96px;                    /* JS positions this just under the header */
  z-index: 10000;
  display: flex;
  align-items: center;
  gap: .5rem;
  cursor: pointer;

  /* PINK tab */
  background: linear-gradient(180deg, #f472b6, #ec4899);
  border: 1px solid var(--cart-border);
  border-right: none;
  border-radius: 12px 0 0 12px; /* tab shape */
  padding: .38rem .65rem .38rem .5rem;
  box-shadow: 0 10px 30px rgba(0,0,0,.45);

  /* Smoothly follow the drawer edge */
  transition:
    right .22s cubic-bezier(.2,.8,.2,1),
    top .18s ease,
    background .18s ease,
    filter .18s ease;
}

#cartFab:hover { filter: brightness(1.06); }

#cartFab .fab-img-wrap{
  width: 42px; height: 42px; border-radius: 999px; overflow: hidden;
  background: #f9a8d4; display:flex; align-items:center; justify-content:center; /* pink circle behind Kirby */
  border: 1px solid var(--cart-border);
}
#cartFab img { width: 100%; height: 100%; object-fit: contain; filter: none; mix-blend-mode: normal; }

#cartFab .fab-label{
  color: #fff; font-weight: 900; letter-spacing: .2px; padding-right: .2rem;
}

#cartFab .fab-badge{
  min-width: 22px; height: 22px; border-radius: 999px;
  background: var(--cart-accent); color: #fff; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center; font-size: .8rem;
  margin-left: .25rem;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}

/* When cart is open, the tab sticks to the drawer edge and keeps the pink look */
#cartFab.open{
  background: linear-gradient(180deg, #fb72bd, #e11d74);
}

/* ===== Backdrop + Drawer ===== */
#cartBackdrop {
  position: fixed; inset: 0;
  background:
    radial-gradient(1200px 800px at 80% 20%, rgba(236,72,153,.28), transparent 60%),
    linear-gradient(0deg, rgba(236,72,153,.28), rgba(0,0,0,.45));
  z-index: 9998; display: none; opacity: 0; transition: opacity .15s ease;
  backdrop-filter: blur(2px) saturate(1.05);
}
#cartBackdrop.show { display: block; opacity: 1; }

#sideCart {
  position: fixed; top: 0; right: 0; height: 100vh;
  width: var(--cart-width); max-width: 92vw;
  background: var(--cart-bg); color: var(--cart-ink);
  border-left: 1px solid var(--cart-border);
  z-index: 9999; transform: translateX(100%);
  box-shadow: -12px 0 40px rgba(0,0,0,.45);
  display: grid; grid-template-rows: auto 1fr auto;
  transition: transform .22s cubic-bezier(.2,.8,.2,1);
}
#sideCart.show { transform: translateX(0%); }

/* Header with color */
.sc-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:.6rem; padding:1rem .95rem; border-bottom: 1px solid var(--cart-border);
  background: var(--cart-head-grad);
}
.sc-head .title { font-weight: 900; letter-spacing: .2px; color:#fff; }
.sc-head .close {
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35);
  color: #fff; border-radius: 10px; padding: .4rem .65rem; cursor: pointer;
}
.sc-head .close:hover{ filter: brightness(1.1); }

/* List */
.sc-list { overflow:auto; padding: .6rem .95rem; }
.sc-empty { text-align:center; color: var(--cart-muted); padding: 1.2rem .4rem; }

.sc-row{
  display:grid; grid-template-columns: 54px 1fr auto; gap:.6rem; align-items:center;
  padding: .6rem 0; border-bottom: 1px solid var(--cart-border);
  background: linear-gradient(90deg, rgba(236,72,153,.08), transparent 55%); /* light pink wash */
  border-radius: 10px;
}
.sc-row:last-child{ border-bottom: none; }
.sc-row img{ width:54px; height:54px; object-fit:contain; background:#0b1533; border-radius: 10px; }
.sc-row img{ background:#ffe4f1; }
.sc-row .title { font-weight: 800; }
.sc-row .meta { font-size: .9rem; color: var(--cart-ink); }
.qtyWrap { display: flex; gap: .35rem; align-items: center; justify-content: flex-end; }
.qtyBtn{
  width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--cart-border);
  background: #f9a8d4; color: #4a044e; cursor: pointer; /* Kirby pink controls */
}
.qtyBtn:hover{ filter: brightness(1.1); }
.removeBtn{
  border: none; background: transparent; color: #fca5a5; cursor: pointer; font-size: .9rem;
}
.removeBtn:hover{ color: #fecaca; }

/* Footer with pink theme and stacked policy under actions */
.sc-foot{
  border-top: 2px solid rgba(236,72,153,.45);
  padding: .85rem .95rem;
  display:grid; grid-template-columns: 1fr auto; gap:.6rem 1rem;
  grid-template-areas:
    "total actions"
    "total policy";
  background: linear-gradient(180deg, rgba(236,72,153,.12), rgba(236,72,153,.06));
}
.sc-total { font-weight: 900; grid-area: total; }
.sc-actions { grid-area: actions; display:flex; gap:.5rem; flex-wrap: wrap; justify-content: flex-end; }
.sc-actions .btn{
  background: linear-gradient(180deg, #f9a8d4, #ec4899);
  color:#fff; border:1px solid #db2777;
  border-radius:10px; padding:.55rem .9rem; cursor:pointer; font-weight:800;
}
.sc-actions .btn:hover{ filter: brightness(1.06); }
.sc-actions .btn-danger{
  background: var(--cart-danger); color: #fff; border-color: #b91c1c;
}
.sc-policy {
  grid-area: policy;
  font-size: .85rem; color: var(--cart-ink);
  text-align: right; margin-top: .1rem;
}
.sc-policy a{ color: #fecdd3; text-decoration: none; }
.sc-policy a:hover{ text-decoration: underline; }

/* Compact sizing on small screens */
@media (max-width: 480px){
  /* Make the drawer narrower and responsive on small devices */
  :root{ --cart-width: clamp(240px, 82vw, 320px); }
  #sideCart{ max-width: 90vw; }
  #cartFab{ top: 78px; }
  #cartFab .fab-img-wrap{ width: 36px; height: 36px; }
  #cartFab .fab-label{ font-size: .95rem; }
  #cartFab .fab-badge{ min-width: 20px; height: 20px; font-size: .75rem; }
  .sc-head{ padding: .75rem .8rem; }
  .sc-list{ padding: .55rem .8rem; }
  .sc-row{ grid-template-columns: 46px 1fr auto; gap:.5rem; }
  .sc-row img{ width:46px; height:46px; }
  .sc-actions .btn{ padding:.5rem .75rem; font-size:.95rem; }
  .sc-policy{ font-size:.8rem; }
}
