.spb-wrap{display:flex;flex-direction:column;gap:12px;margin:16px 0;font-family:inherit;max-width:100%}
.spb-row{display:flex;gap:12px;align-items:stretch}
.spb-qty{display:flex;align-items:center;flex:0 0 auto;border:1px solid #dbe2f0;border-radius:var(--spb-radius,12px);background:#f4f6fc;overflow:hidden}
.spb-qty button{width:44px;border:0;background:transparent;font-size:18px;font-weight:700;color:#0f172a;cursor:pointer;padding:0;line-height:1}
.spb-qty button:hover{background:#e6ebf7}
.spb-qty .spb-qty-input{width:56px;border:0;border-left:1px solid #dbe2f0;border-right:1px solid #dbe2f0;border-radius:0;background:#fff;text-align:center;font-weight:700;font-size:15px;padding:0;margin:0;height:100%;-moz-appearance:textfield;appearance:textfield;box-shadow:none}
.spb-qty .spb-qty-input::-webkit-outer-spin-button,.spb-qty .spb-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

.spb-wrap .spb-btn{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 18px;border:0;border-radius:var(--spb-radius,12px);color:var(--spb-text,#fff);font-weight:700;font-size:15px;line-height:1.2;text-decoration:none;cursor:pointer;transition:filter .15s,transform .05s,opacity .15s}
.spb-wrap a.spb-btn:hover,.spb-wrap a.spb-btn:focus{color:var(--spb-text,#fff);text-decoration:none}
.spb-wrap .spb-btn:hover{filter:brightness(1.08)}
.spb-wrap .spb-btn:active{transform:translateY(1px)}
.spb-wrap .spb-add{background-color:var(--spb-add,#0018ff)}
.spb-wrap .spb-buy{background-color:var(--spb-buy,#0f172a)}
.spb-wrap .spb-wa{background-color:var(--spb-wa,#22c55e)}
.spb-wrap .spb-btn.spb-disabled{opacity:.55}
.spb-wrap .spb-btn.is-loading{opacity:.6;pointer-events:none}
.spb-wrap .spb-btn.is-loading .spb-label::after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:spb-spin .7s linear infinite}
.spb-icon{display:inline-flex;align-items:center;line-height:1}
.spb-icon svg,.spb-icon i{width:1em;height:1em;font-size:18px;fill:currentColor}

.spb-price{font-weight:700;font-size:20px}
.spb-vars{display:flex;flex-direction:column;gap:10px}
.spb-var{display:flex;flex-direction:column;gap:4px}
.spb-var label{font-weight:600;font-size:14px}
.spb-var select.spb-var-select{width:100%;padding:10px 12px;border:1px solid #dbe2f0;border-radius:var(--spb-radius,12px);background:#fff;font-size:15px;color:inherit;height:auto}
.spb-var-hidden{display:none}

.spb-msg{padding:10px 14px;border-radius:10px;font-size:14px;line-height:1.4}
.spb-msg[hidden]{display:none}
.spb-msg.is-success{background:#ecfdf5;color:#065f46}
.spb-msg.is-error{background:#fef2f2;color:#991b1b}

.spb-stock{font-weight:700;color:#b91c1c}
.spb-notice{margin-top:8px;padding:8px 12px;border:1px dashed #f59e0b;border-radius:8px;background:#fffbeb;color:#92400e;font-size:13px;line-height:1.4}
@keyframes spb-spin{to{transform:rotate(360deg)}}
@media (max-width:480px){.spb-row{gap:8px}.spb-wrap .spb-btn{font-size:14px;padding:10px 12px}}
