/* ═════════════════════════════════════════════════════════════
   Sweetlab extras — bundles, coupon field, order success screen.
   Palette A (original). Colors come from tokens.css only.
   ═════════════════════════════════════════════════════════════ */

/* ── disabled buttons: not "busy", just unavailable ── */
body .add-btn:disabled,body .size-btn:disabled{cursor:not-allowed;opacity:.55;transform:none}
body .size-btn:disabled{text-decoration:line-through;text-decoration-thickness:1.5px}

/* ── bundles ── */
.bundles{margin-top:clamp(24px,5vw,40px)}
.bundles[hidden]{display:none}
.b-parts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 8px}
.b-parts li{font:700 12.5px/1.3 var(--font-ui);padding:5px 10px;border:var(--stroke) dashed var(--sl-brown);border-radius:999px;background:var(--cream-2)}
.b-parts li + li::before{content:'+';margin-inline-end:8px;opacity:.7}
.b-was{opacity:.7;font-weight:500;margin-inline-start:4px}
.b-na{font:600 13px var(--font-ui);color:var(--brown-soft)}

/* ── cart: bundle composition ── */
.cart-item-parts{font-size:11.5px;line-height:1.5;color:var(--brown-soft);margin-top:3px}

/* ── coupon field ── */
.coupon-box[hidden]{display:none}
.coupon-row{display:flex;gap:8px;align-items:stretch}
.coupon-row input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.08em}
.coupon-row input:read-only{background:var(--cream-2)!important;border-style:dashed!important}
body .coupon-btn{padding:.6em 1.1em;font-size:14px;white-space:nowrap}
.coupon-msg{min-height:0;font:600 12.5px/1.5 var(--font-ui);color:var(--sl-brown);margin-top:0}
.coupon-msg.show{margin-top:6px}
.coupon-msg.error{color:var(--sl-terracotta)}
.coupon-msg.ok::before{content:'';display:inline-block;width:.55em;height:.55em;margin-inline-end:.5em;background:var(--sl-olive);border:1.5px solid var(--sl-brown);border-radius:50%}
.summary-discount span:last-child{font-weight:700;color:var(--sl-brown)}
.summary-discount span:first-child{color:var(--sl-brown)}

/* ── order success ── */
.ok-screen{text-align:center;padding:6px 0 4px}
.ok-mark{width:92px;height:92px;display:block;margin:2px auto 10px;overflow:visible}
.ok-ofs{fill:var(--sl-sand)}
.ok-ring{fill:var(--sl-cream);stroke:var(--sl-brown);stroke-width:3}
.ok-tick{fill:none;stroke:var(--sl-brown);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:70;stroke-dashoffset:70;animation:ok-draw .55s .15s var(--ease) forwards}
@keyframes ok-draw{to{stroke-dashoffset:0}}
.ok-screen h3{font:700 clamp(26px,6vw,32px)/1.2 var(--font-display);color:var(--sl-brown);margin:0 0 4px;outline:none}
.form-sheet .ok-lead{font:500 15px/1.6 var(--font-ui);color:var(--sl-brown);margin:0 0 16px}
.ok-id{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:10px 14px;margin:0 auto 16px;max-width:360px;border:var(--stroke) dashed var(--sl-brown);border-radius:var(--r-md);background:var(--cream-2)}
.ok-id-label{font:600 13px var(--font-ui);color:var(--sl-brown)}
.ok-id .ok-id-val{font:700 18px/1 var(--font-note);letter-spacing:.12em;color:var(--sl-brown)!important;direction:ltr}
.ok-copy{font:700 13px var(--font-ui);padding:6px 12px;min-height:32px;border:var(--stroke) solid var(--sl-brown);border-radius:999px;background:var(--sl-cream);color:var(--sl-brown);cursor:pointer;box-shadow:2px 2px 0 var(--sl-sand)}
.ok-copy:active{transform:translate(2px,2px);box-shadow:none}
.ok-receipt{text-align:start;background:var(--cream-2)!important;border:var(--stroke) solid var(--sl-brown);border-radius:var(--r-md)!important;box-shadow:4px 4px 0 var(--sl-sand);margin-bottom:18px!important}
.ok-receipt .summary-item,.ok-receipt .summary-item span{color:var(--sl-brown)!important}
.ok-receipt .summary-total{color:var(--sl-brown)!important;border-top:2.5px dotted var(--line-soft)!important}
.ok-addr{margin-top:10px;font:500 12.5px/1.6 var(--font-ui);color:var(--brown-soft)}
.ok-actions{display:grid;gap:10px;margin:0 auto 14px;max-width:360px}
.ok-actions .btn{width:100%}
.ok-actions .btn[hidden]{display:none}
.form-sheet .ok-note{font:500 13px/1.7 var(--font-ui);color:var(--brown-soft);margin:0;padding-top:12px;border-top:2.5px dotted var(--line-soft)}

/* floating contact buttons + sticky cart bar must not sit on top of the cart/checkout sheets */
body.modal-open .float-stack,body.modal-open .cart-bar{display:none!important}

/* close icon buttons */
.close-btn .ic,.form-x .ic{width:20px;height:20px;stroke-width:2.6}

@media (prefers-reduced-motion:reduce){
  .ok-tick{animation:none;stroke-dashoffset:0}
}
