/* Custom Horror basket UI, shared by the postcards drawer and the cart page.
   Production path: /shop/_cart/cart.css (BASKET-SPEC.md 5). Uses the page tokens
   --ink, --ink2, --mute, --line, --line2, --accent, --mono. */

/* lines */
.line{display:grid;grid-template-columns:64px 1fr auto;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}
.line-img img{width:64px;height:auto;box-shadow:0 6px 16px rgba(0,0,0,.5)}
.line-t{font-weight:700;font-size:16px;letter-spacing:-.01em;line-height:1.25}
.line-s{font:500 11px/1.4 var(--mono);color:var(--mute);margin-top:4px}
.line-each{font-size:12px;color:var(--mute);margin-top:2px}
.line-ctl{display:flex;align-items:center;gap:14px;margin-top:12px}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line2);border-radius:999px;height:36px}
.stepper button{width:36px;height:36px;border:0;background:none;cursor:pointer;font-size:18px;line-height:1;color:var(--ink)}
.stepper button:disabled{color:var(--mute);cursor:default}
.stepper output{min-width:24px;text-align:center;font-weight:700;font-size:14px}
.rm{background:none;border:0;color:var(--ink2);font-size:13px;cursor:pointer;padding:8px 0;text-decoration:underline;text-underline-offset:3px}
.rm:hover{color:var(--ink)}
.line-p{font-weight:700;font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}

/* free-shipping nudge: one quiet line and a hairline progress bar */
.ch-nudge{margin:0 0 18px}
.ch-nudge-t{display:flex;align-items:center;gap:7px;margin:0 0 9px;font-size:13px;font-weight:500;color:var(--ink2);letter-spacing:-.005em}
.ch-nudge.is-free .ch-nudge-t{color:var(--ink)}
.ch-nudge-ok{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--accent);color:#000;flex:0 0 auto}
.ch-nudge-ok svg{width:10px;height:10px}
.ch-bar{height:3px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.ch-bar span{display:block;height:100%;border-radius:inherit;background:var(--ink);transition:width .6s cubic-bezier(.2,.7,.2,1)}
.ch-nudge.is-free .ch-bar span{background:var(--accent)}

/* totals */
.ch-totals{margin:0}
.ch-totals div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:5px 0;font-size:15px}
.ch-totals dt{color:var(--ink2)}
.ch-totals dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600}
.ch-dim{color:var(--mute);font-size:13px;margin-left:6px}
.ch-totals .ch-total{border-top:1px solid var(--line);margin-top:8px;padding-top:12px;font-size:20px;font-weight:800;letter-spacing:-.02em}
.ch-totals .ch-total dt{color:var(--ink)}
.ch-totals .ch-total dd{font-weight:800}
@media (prefers-reduced-motion:reduce){.ch-bar span{transition:none}}
