/* ============================================================
   Single Product Buttons — Neuro Binding style
   ============================================================ */
.spb-wrap{
	--spb-purple:#A100FF;--spb-purple-deep:#7A00C2;--spb-blue:#003366;
	--spb-line:rgba(0,51,102,.12);--spb-tint:rgba(161,0,255,.06);--spb-tint-2:rgba(161,0,255,.10);
	--spb-sans:"Poppins",system-ui,-apple-system,sans-serif;
	display:flex;flex-wrap:wrap;align-items:center;gap:12px;
}

.spb-layout-column .spb-wrap{flex-direction:column;align-items:stretch}

/* ---------- Quantity ---------- */
.spb-qty{
	display:inline-flex;align-items:center;
	border:1.5px solid var(--spb-line);border-radius:12px;overflow:hidden;
	background:#fff;line-height:1;
	transition:border-color .18s ease,box-shadow .18s ease;
}
.spb-qty:focus-within{border-color:var(--spb-purple);box-shadow:0 0 0 3px rgba(161,0,255,.14)}

.spb-qty input.spb-qty-input{
	width:52px;height:48px;text-align:center;border:none;outline:none;background:transparent;
	font-family:var(--spb-sans);font-size:16px;font-weight:600;color:var(--spb-blue);
	margin:0;padding:0;-moz-appearance:textfield;appearance:textfield;
}
.spb-qty input.spb-qty-input::-webkit-outer-spin-button,
.spb-qty input.spb-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

.spb-qty-btn{
	width:46px;height:48px;border:none;background:transparent;cursor:pointer;
	font-family:var(--spb-sans);font-size:22px;font-weight:500;color:var(--spb-blue);
	display:flex;align-items:center;justify-content:center;line-height:1;user-select:none;
	transition:background .15s ease,color .15s ease,transform .1s ease;
	-webkit-tap-highlight-color:transparent;
}
.spb-qty-btn:hover{background:var(--spb-tint);color:var(--spb-purple)}
.spb-qty-btn:active{transform:scale(.94)}

/* ---------- Buttons ---------- */
.spb-btn{
	position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;
	font-family:var(--spb-sans);font-weight:600;font-size:16px;cursor:pointer;line-height:1;
	padding:15px 26px;border-radius:12px;border:2px solid transparent;
	transition:transform .15s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
	-webkit-tap-highlight-color:transparent;
}
.spb-btn:focus-visible{outline:3px solid var(--spb-purple);outline-offset:3px}
.spb-ic{width:18px;height:18px;flex:none}

/* Add to Cart = outline/secondary */
.spb-add-to-cart{background:#fff;color:var(--spb-blue);border-color:var(--spb-line)}
.spb-add-to-cart:hover{border-color:var(--spb-purple);color:var(--spb-purple);background:var(--spb-tint);transform:translateY(-2px)}
.spb-add-to-cart.is-added{background:var(--spb-tint);border-color:var(--spb-tint-2);color:var(--spb-purple)}

/* Buy Now = primary purple */
.spb-buy-now{background:var(--spb-purple);color:#fff}
.spb-buy-now:hover{background:var(--spb-purple-deep);transform:translateY(-2px);box-shadow:0 12px 24px -8px rgba(161,0,255,.5)}

.spb-layout-column .spb-btn,.spb-layout-column .spb-qty{width:100%}

/* ---------- Loading spinner ---------- */
.spb-spinner{
	display:none;width:16px;height:16px;margin-left:2px;
	border:2px solid currentColor;border-top-color:transparent;border-radius:50%;
	animation:spb-spin .6s linear infinite;
}
.spb-btn.spb-loading{opacity:.85;pointer-events:none}
.spb-btn.spb-loading .spb-spinner{display:inline-block}
@keyframes spb-spin{to{transform:rotate(360deg)}}

/* ---------- Message ---------- */
.spb-message{
	display:none;width:100%;flex:0 0 100%;order:99;margin-top:4px;
	font-family:var(--spb-sans);font-size:14px;
	padding:10px 14px;border-radius:10px;text-align:center;
}
.spb-message.spb-success{background:#e6f7ec;color:#1c7c3f;border:1px solid #b5e3c4}
.spb-message.spb-error{background:#fdecea;color:#b3261e;border:1px solid #f5c2bd}

.spb-notice-editor{
	padding:14px;background:#fff8e5;border:1px dashed #e0c165;border-radius:10px;
	color:#7a5c00;font-family:var(--spb-sans);font-size:14px;
}

@media(prefers-reduced-motion:reduce){.spb-wrap *{animation:none!important;transition:none!important}}
