/* cart.css: STATES ONLY for the EXPERIMENTAL cart (JS/cart.js): /cart-experiment, /checkout-experiment and the
   frame studio's Add to cart. Loaded by those pages' own embeds, not the storefront bundle. Every look and layout
   lives on the Designer's classes; this holds only what a Webflow class can't: attribute-driven states and one
   @keyframes. Keyed by data-adc-* attributes (plus the one spinner class), so a Designer rename can't break it. */

/* A cart line that can no longer be bought (data-adc-cart-invalid): its picture and words fade; its error text
   stays at full strength, and Remove / Save for later / Edit keep working. */
[data-adc-cart-invalid] img,
[data-adc-cart-invalid] [data-adc-bind]:not([data-adc-bind="error"]) { opacity: .45; }
[data-adc-cart-invalid] img { filter: grayscale(1); }

/* A control that can't do anything right now: quantity at 1 or 10, Checkout with nothing that can be bought. */
[data-adc-cart-action][aria-disabled="true"] { pointer-events: none; cursor: default; opacity: .35; }

/* Add to cart while the line is being saved and the cart page opens: one press only. */
form[data-adc-cart-busy] { cursor: progress; }
form[data-adc-cart-busy] [type="submit"] { pointer-events: none; opacity: .6; }

/* The checkout page's loading spinner (a Designer element, class pk-checkout-spinner, shown with
   data-adc-show="checkout:loading"). */
@keyframes adc-cart-spin { to { transform: rotate(360deg); } }
.pk-checkout-spinner { animation: adc-cart-spin .9s linear infinite; }
@media (prefers-reduced-motion: reduce) { .pk-checkout-spinner { animation-duration: 2.4s; } }
