/* Scoped, dependency-free purchase controls. */
.storefront-cart-form { display: grid; gap: .55rem; margin-top: 1rem; width: 100%; }
.cart-add-label { font-size: .8rem; font-weight: 600; color: var(--muted, #657269); }
.cart-add-row { display: flex; align-items: stretch; gap: .65rem; flex-wrap: wrap; }
.cart-add-row > .button { flex: 1; white-space: nowrap; min-height: 44px; }
.quantity-stepper { display: inline-flex; align-items: center; border: 1px solid var(--border, #dce2d8); border-radius: 12px; overflow: hidden; background: #fff; flex: 0 0 auto; }
.quantity-stepper button { min-width: 40px; min-height: 44px; border: 0; background: transparent; color: var(--green, #315c3a); font: inherit; font-size: 1.25rem; cursor: pointer; }
.quantity-stepper button:hover:not(:disabled) { background: #edf3ec; }
.quantity-stepper button:disabled { opacity: .4; cursor: not-allowed; }
.quantity-stepper button:focus-visible { outline: 2px solid var(--green, #315c3a); outline-offset: -4px; }
.quantity-stepper .input { width: 46px; padding: .4rem 0; min-height: 44px; text-align: center; border: 0; border-left: 1px solid #edf0e8; border-right: 1px solid #edf0e8; border-radius: 0; box-shadow: none; appearance: textfield; -moz-appearance: textfield; }
.quantity-stepper .input::-webkit-inner-spin-button, .quantity-stepper .input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.quantity-stepper output { min-width: 38px; text-align: center; font-weight: 700; }
.cart-form-feedback { font-size: .8rem; line-height: 1.5; color: var(--green, #315c3a); margin: 0; }
.cart-form-feedback:empty { display: none; }
.cart-form-feedback.is-error { color: #922f38; }
.cart-feedback-retry { background: transparent; color: inherit; padding: 0; border: 0; text-decoration: underline; font: inherit; font-weight: 600; cursor: pointer; }
.in-cart-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .7rem .75rem; border: 1px solid #d9e8d4; background: #f3f8ef; border-radius: 12px; }
.in-cart-controls[hidden] { display: none; }
.in-cart-label { color: #315c3a; font-size: .8rem; font-weight: 600; }
.in-cart-stepper { margin-left: auto; }
.in-cart-stepper button { min-width: 38px; min-height: 40px; }
.in-cart-link { font-size: .8rem; font-weight: 600; color: #315c3a; text-decoration: underline; text-underline-offset: 3px; }
.is-cart-busy .quantity-stepper { opacity: .7; }
.storefront-cart-toast { position: fixed; z-index: 60; bottom: 1.5rem; left: 50%; transform: translateX(-50%); width: min(620px, calc(100% - 2rem)); display: flex; align-items: center; gap: 1rem; padding: .95rem 1.15rem; border-radius: 16px; color: #fff; background: #254a31; box-shadow: 0 12px 42px #1531203b; font-size: .9rem; animation: cart-toast-in .18s ease-out; }
.storefront-cart-toast[hidden] { display: none; }
.storefront-cart-toast > span { flex: 1; }
.storefront-cart-toast a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.storefront-cart-toast button { background: transparent; border: 0; color: #fff; font-size: 1.5rem; min-width: 32px; min-height: 40px; cursor: pointer; }
@keyframes cart-toast-in { from { opacity: 0; translate: 0 12px; } to { opacity: 1; translate: 0 0; } }
@media (max-width: 480px) { .storefront-cart-toast { bottom: .75rem; padding: .8rem; gap: .6rem; font-size: .8rem; } .cart-add-row { gap: .5rem; } .cart-add-row > .button { padding-left: .8rem; padding-right: .8rem; } }
@media (prefers-reduced-motion: reduce) { .storefront-cart-toast { animation: none; } }
