/* ==========================================================================
   Mini Cart: the content of Elementor Pro's Mini Cart drawer (every storefront page).

   Specificity without forcing priority: every rule starts with
       body :is(.widget_shopping_cart_content,#stbhh-mc)
   :is() takes the weight of its strongest entry, and #stbhh-mc is an ID that no element has,
   so the whole prefix weighs an ID while it still matches the mini cart's content element.
   That outranks Elementor's, the kit's and the theme's rules (all class based).
   Keep the prefix on every new rule.

   Notes
   - The text of the product name, the price and the two buttons is left to the Mini Cart
     widget's Style tab (this file does not set their font, color or button look). The layout,
     the stepper, the totals, Order details and the loading look are this file's.
   - Where Elementor exposes a CSS variable (the buttons' display, the price color, the
     variations color), it is read first, with this file's value as the fallback.
   - It relies on Elementor Pro's markup (elementor-menu-cart__*): check the drawer after each
     Elementor Pro update.
   ========================================================================== */

/* ---------- 1. tokens ---------- */
body :is(.widget_shopping_cart_content,#stbhh-mc){ --stbhh-mc-ink:var(--stbhh-set-ink,#40415E); --stbhh-mc-ink-70:var(--stbhh-set-ink70,#6A6B84); --stbhh-mc-ink-45:var(--stbhh-set-ink45,#9A9BAD); --stbhh-mc-line:rgba(64,65,94,.10);
    --stbhh-mc-peri:#6C8AE4; --stbhh-mc-peri-deep:var(--stbhh-set-accent-deep,#506FCB); --stbhh-mc-mint:var(--stbhh-set-save,#2FA97E); --stbhh-mc-mint-deep:var(--stbhh-set-success-deep,#1F7F5D); --stbhh-mc-lavender:#8A6DE3; --stbhh-mc-coral:#F0705C; --stbhh-mc-error:var(--stbhh-set-notice-err,#D23C4F);
    --stbhh-mc-skeleton-a:var(--stbhh-set-sk-a,#E9ECF7); --stbhh-mc-skeleton-b:var(--stbhh-set-sk-b,#F6F7FC); --stbhh-mc-hover:#F2F4FB;
    --stbhh-mc-cta:linear-gradient(135deg,var(--stbhh-set-cta-start,#6C8AE4) 0%,var(--stbhh-set-cta-mid,#7b83e8) 55%,var(--stbhh-set-cta-end,#9370e0) 100%);
    --stbhh-mc-head:var(--stbhh-set-font-head,'Space Grotesk',sans-serif); --stbhh-mc-body:var(--stbhh-set-font-body,'DM Sans',sans-serif); }

/* ---------- 2. title, empty basket, close button ---------- */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-title{ margin:0 0 18px; font:var(--stbhh-set-mc-title-weight,600) var(--stbhh-set-mc-title-size,17px)/1.3 var(--stbhh-set-mc-title-font,var(--stbhh-mc-head)); color:var(--stbhh-set-mc-title-color,var(--stbhh-mc-ink)); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .woocommerce-mini-cart__empty-message{ padding:25px 0; }
/* Elementor's custom close icon (the Style tab's "close button" icon): a small rounded square in the corner. */
body .elementor-menu-cart__close-button-custom{ position:absolute; top:15px; right:15px; display:flex; align-items:center; justify-content:center; box-sizing:border-box; width:36px; height:36px; margin:0; padding:8px;
    border-radius:12px; color:var(--toggle-button-icon-color); }
body .elementor-menu-cart__close-button-custom:hover{ color:var(--toggle-button-icon-hover-color); background-color:var(--stbhh-set-mc-close-bg,#6C8AE41F); }
body .elementor-menu-cart__close-button-custom svg{ width:var(--stbhh-set-mc-close-size,16px); height:var(--stbhh-set-mc-close-size,16px); fill:currentColor; color:var(--stbhh-set-mc-close-color,#69727D); }
body .elementor-menu-cart__close-button-custom:hover svg{ color:var(--stbhh-set-mc-close-hover,#6C8AE4); }

/* ---------- 3. a product: image on the left, then the name, the options, and the stepper with the price ---------- */
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__products{ max-height:calc(100vh - 200px); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__product{ display:flex; align-items:flex-start; gap:14px; padding:14px 0; border-bottom:1px solid var(--stbhh-mc-line); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__product:first-child{ padding-top:0; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__product:last-child{ padding-bottom:0; border-bottom:0; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__product-image{ flex-shrink:0; width:var(--stbhh-set-mc-img-w,84px); max-width:var(--stbhh-set-mc-img-w,84px); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__product-image img{ border-radius:var(--stbhh-set-mc-img-r,14px); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-info{ display:flex; flex:1 1 auto; flex-direction:column; gap:9px; width:0; min-width:0; }
/* Elementor's name and price sit in a grid column with a 20px inset: inside our wrapper they need neither. */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-info :is(.elementor-menu-cart__product-name,.elementor-menu-cart__product-price){ grid-column:auto; padding:0; }
/* The name stays on one line, with "…" when it is longer (the full name shows on hover), and is never underlined. */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-name{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-name a,
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-name a:is(:link,:visited,:hover,:focus,:active){ text-decoration:none; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-name a,
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-name a:is(:link,:visited,:hover,:focus,:active){ font-family:var(--stbhh-set-mc-name-font,var(--stbhh-mc-head)); font-size:var(--stbhh-set-mc-name-size,14px); font-weight:var(--stbhh-set-mc-name-weight,400); color:var(--stbhh-set-mc-name-color,var(--stbhh-mc-ink)); }
/* The options are a line of text under the name (Elementor's rule is made for a list of terms). */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-info .variation{ display:block; margin:2px 0 0; font-size:var(--stbhh-set-mc-options-size,13px); line-height:1.4; color:var(--stbhh-set-mc-options-color,var(--stbhh-mc-ink-45)); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-note{ display:flex; width:fit-content; align-items:center; gap:6px; margin-top:7px; font:var(--stbhh-set-mc-note-weight,500) var(--stbhh-set-mc-note-size,12px)/1.3 var(--stbhh-set-mc-note-font,var(--stbhh-mc-body)); color:var(--stbhh-set-mc-note-color,var(--stbhh-mc-lavender)); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-note svg{ display:block; flex-shrink:0; width:14px; height:14px; fill:none; stroke:currentColor; }
/* stepper on the left, price on the right: the old price first, then the current one */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-line{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-line .elementor-menu-cart__product-price{ display:flex; flex-direction:row-reverse; align-items:center; gap:8px; align-self:center; padding-inline-start:0;
    font-family:var(--stbhh-set-mc-price-font,var(--stbhh-mc-head)); font-size:var(--stbhh-set-mc-price-size,14px); font-weight:var(--stbhh-set-mc-price-weight,600); color:var(--stbhh-set-mc-price-color,var(--stbhh-mc-ink)); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-was{ font-family:var(--stbhh-set-mc-old-font,inherit); font-size:var(--stbhh-set-mc-old-size,13px); font-weight:var(--stbhh-set-mc-old-weight,400); color:var(--stbhh-set-mc-old-color,var(--stbhh-mc-ink-45)); }

/* ---------- 4. the quantity stepper: one pill, "−  5  +" ---------- */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-line .quantity{ display:flex; align-items:center; justify-content:space-between; box-sizing:border-box; min-width:78px; overflow:hidden; border:1.5px solid var(--stbhh-set-mc-qty-border,var(--stbhh-mc-line)); border-radius:999px; background:var(--stbhh-set-mc-qty-bg,#fff); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-line .product-quantity{ font:var(--stbhh-set-mc-qty-num-weight,500) var(--stbhh-set-mc-qty-num-size,12px)/1 var(--stbhh-set-mc-qty-num-font,var(--stbhh-mc-head)); color:var(--stbhh-set-mc-qty-num-color,var(--stbhh-mc-ink)); text-align:center; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn{ display:inline-grid; place-items:center; box-sizing:border-box; width:30px; height:30px; margin:0; padding:0; border:0; border-radius:0; background:none; box-shadow:none;
    font:300 16px/1 var(--stbhh-mc-body); color:var(--stbhh-set-mc-qty-btn,var(--stbhh-mc-ink)); text-transform:none; cursor:pointer; transition:background-color .14s,color .14s; }
/* the end buttons take the pill's rounded corners, so the hover fill follows the shape */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn:first-child{ border-radius:999px 0 0 999px; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn:last-child{ border-radius:0 999px 999px 0; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn:focus:not(:disabled){ background:none; color:var(--stbhh-mc-ink); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn:hover:not(:disabled),
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn:active:not(:disabled){ background:var(--stbhh-set-mc-qty-hover-bg,rgba(108,138,228,.10)); color:var(--stbhh-set-mc-qty-hover,var(--stbhh-mc-peri-deep)); }
/* quantity 1: the "−" is the trash, with the same treatment in coral */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn--remove:hover:not(:disabled),
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn--remove:active:not(:disabled){ background:var(--stbhh-set-mc-trash-bg,rgba(240,112,92,.10)); color:var(--stbhh-set-mc-trash,var(--stbhh-mc-coral)); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn:focus-visible{ outline:2px solid var(--stbhh-mc-peri); outline-offset:-2px; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn:disabled{ background:none; opacity:.4; cursor:not-allowed; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn svg{ display:block; width:15px; height:15px; fill:none; stroke:currentColor; }

/* ---------- 5. subtotal, "You save" and the buttons: together at the bottom ---------- */
/* The Style tab's buttons position (its margin variable) moves the subtotal, so the subtotal, "You save" and the buttons stay together. */
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__subtotal{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; column-gap:12px; margin-top:var(--cart-buttons-position-margin,0); padding-bottom:0; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__subtotal strong{ font-family:var(--stbhh-set-mc-sub-label-font,var(--stbhh-mc-body)); font-size:var(--stbhh-set-mc-sub-label-size,16px); font-weight:var(--stbhh-set-mc-sub-label-weight,400); color:var(--stbhh-set-mc-sub-label-color,var(--stbhh-mc-ink-70)); }
/* what the shopper pays, larger than the label, with the regular total struck through before it (only with a saving) */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-amounts{ display:flex; align-items:baseline; gap:8px; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-amounts > .woocommerce-Price-amount{ font-family:var(--stbhh-set-mc-sub-amount-font,var(--stbhh-mc-head)); font-size:var(--stbhh-set-mc-sub-amount-size,16px); font-weight:var(--stbhh-set-mc-sub-amount-weight,700); line-height:1.2; color:var(--stbhh-set-mc-sub-amount-color,var(--stbhh-mc-ink)); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-regular{ font:var(--stbhh-set-mc-regular-weight,400) var(--stbhh-set-mc-regular-size,13px)/1.2 var(--stbhh-set-mc-regular-font,var(--stbhh-mc-head)); color:var(--stbhh-set-mc-regular-color,var(--stbhh-mc-ink-45)); }
/* "You save" on the right, a discount code (or how many) on the left of the same line */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-save-row{ display:flex; flex-basis:100%; align-items:center; justify-content:space-between; gap:8px; margin-top:2px; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-save{ display:block; margin:0 0 0 auto; text-align:end; font:var(--stbhh-set-mc-save-weight,600) var(--stbhh-set-mc-save-size,13px)/1.4 var(--stbhh-set-mc-save-font,var(--stbhh-mc-body)); color:var(--stbhh-set-mc-save-color,var(--stbhh-mc-mint)); }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-save b{ font:inherit; color:inherit; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__footer-buttons{ margin-top:0; padding-top:10px; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__footer-buttons .elementor-button{ border:0; border-radius:var(--stbhh-set-btn-radius,999px); background:var(--stbhh-mc-cta); color:var(--stbhh-set-btn-text,var(--stbhh-set-on-cta,#fff)); font-family:var(--stbhh-set-btn-font-mc,var(--stbhh-mc-head)); font-size:var(--stbhh-set-btn-size-mini,17px); font-weight:var(--stbhh-set-btn-weight,600); transition:filter .14s; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .elementor-menu-cart__footer-buttons .elementor-button:hover{ filter:brightness(1.05); }
/* The Style tab's "hide the button" still works: its display variable is read first. */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-checkout{ display:var(--checkout-button-display,inline-flex); align-items:center; justify-content:center; gap:8px; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-view-cart{ display:var(--view-cart-button-display,inline-flex); align-items:center; justify-content:center; gap:8px; }
body :is(.widget_shopping_cart_content,#stbhh-mc) :is(.stbhh-mc-lock, .stbhh-mc-bag){ display:block; flex-shrink:0; width:18px; height:18px; fill:none; stroke:currentColor; }

/* ---------- 6. express checkout buttons (Stripe, PayPal): one "Express Checkout" line, then every button 8px apart ---------- */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express{ display:flex; flex-direction:column; gap:8px; margin-top:14px; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-or{ display:flex; align-items:center; gap:12px; order:0; margin:0 0 6px; padding:0; text-align:center; font:var(--stbhh-set-exp-text-weight,400) var(--stbhh-set-exp-text-size,13px)/16px var(--stbhh-set-exp-text-font,var(--stbhh-mc-body)); color:var(--stbhh-set-exp-text-color,var(--stbhh-mc-ink-45)); }
/* a hairline on each side of the text, whatever its length */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-or::before,
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-or::after{ content:''; flex:1; height:1px; background:var(--stbhh-set-exp-lines,var(--stbhh-mc-line)); }
/* Slots the plugins have not drawn (or that are not available on this device) take no space, and no "Express Checkout" line without a button. */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express > :empty,
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express > script{ display:none; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express:not(:has(> a:not(:empty):not([style*="none"]))) .stbhh-mc-or{ display:none; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express > a{ display:block; margin:0; }
/* always PayPal, then Apple Pay, then Google Pay (the plugins print them in another order here) */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express > [class*="wc-ppcp-minicart-"]{ order:1; line-height:0; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express > [class*="wc-ppcp-minicart-"] .paypal-buttons{ display:block; margin:0; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express > [class*="wc-ppcp-minicart-"] iframe{ display:block; vertical-align:top; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express > .wc-stripe_applepay-mini-cart{ order:2; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express > .wc-stripe_googlepay-mini-cart{ order:3; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-express > [class*="wc-stripe_"]:not(.wc-stripe_applepay-mini-cart):not(.wc-stripe_googlepay-mini-cart){ order:4; }

/* ---------- 7. a discount code, on the "You save" line (the cart and the checkout use the same badge) ---------- */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-chip{ display:inline-flex; align-items:center; gap:4px; padding:2px 6px; border-radius:var(--stbhh-set-mc-chip-r,6px); background:var(--stbhh-set-mc-chip-bg,rgba(47,169,126,.12)); color:var(--stbhh-set-mc-chip-color,var(--stbhh-mc-mint-deep));
    font:var(--stbhh-set-mc-chip-weight,600) var(--stbhh-set-mc-chip-size,12px)/18px var(--stbhh-set-mc-chip-font,var(--stbhh-mc-body)); letter-spacing:.02em; text-transform:uppercase; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-chip svg{ width:12px; height:12px; flex-shrink:0; }

/* ---------- 8. a message under the products, and the screen-reader line ---------- */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-message{ margin:8px 0 0; padding:8px 12px; border-radius:10px; background:var(--stbhh-set-notice-err-bg,rgba(210,60,79,.08)); font:400 var(--stbhh-set-err-text-size,13px)/1.4 var(--stbhh-mc-body); color:var(--stbhh-set-err-text-color,var(--stbhh-mc-error)); }
body .stbhh-mc-sr{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ---------- 9. loading: a change is syncing ----------
   The drawer takes no clicks, the line being changed fades, and the amounts that will change become
   shimmering bars (the same effect as the cart and the checkout), drawn on top of the digits so
   nothing moves. The Checkout button fades and its lock becomes a small spinner. */
body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading{ pointer-events:none; }
body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading .stbhh-mc-regular{ color:transparent; }
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-working > *{ opacity:.5; transition:opacity .15s; }
body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading :is(.stbhh-mc-amounts .woocommerce-Price-amount, .stbhh-mc-save > span){ position:relative; color:transparent; }
body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading :is(.stbhh-mc-amounts .woocommerce-Price-amount, .stbhh-mc-save > span) *{ visibility:hidden; }
body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading :is(.stbhh-mc-amounts .woocommerce-Price-amount, .stbhh-mc-save > span)::after{
    content:''; position:absolute; inset:50% 0 auto; height:1.1em; transform:translateY(-50%); border-radius:6px; pointer-events:none;
    background:linear-gradient(90deg,var(--stbhh-mc-skeleton-a) 25%,var(--stbhh-mc-skeleton-b) 50%,var(--stbhh-mc-skeleton-a) 75%); background-size:200% 100%;
    animation:stbhhMcShimmer var(--stbhh-set-sk-speed,1s) linear infinite; }
body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading .stbhh-mc-checkout,
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-checkout.stbhh-mc-going{ opacity:.5; transition:opacity .15s; }
/* once clicked, while the checkout page opens: the same look, and no second click */
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-checkout.stbhh-mc-going{ pointer-events:none; cursor:default; }
body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading .stbhh-mc-checkout .stbhh-mc-lock,
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-checkout.stbhh-mc-going .stbhh-mc-lock{ display:none; }
body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading .stbhh-mc-checkout::before,
body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-checkout.stbhh-mc-going::before{
    content:''; display:block; flex-shrink:0; box-sizing:border-box; width:16px; height:16px; margin:1px; /* + 1px each side = the 18px lock, so the label does not shift */
    border:2px solid currentColor; border-right-color:transparent; border-radius:50%; opacity:.9; animation:stbhhMcSpin .7s linear infinite; }

/* ---------- 10. add to basket: the product lines while the drawer loads ----------
   The Buy Box script puts .stbhh-cart-loading on the drawer while an add runs, and buy-box.css turns the lines' text into
   shimmering bars. This file's colours outrank those rules, so the text stayed visible over its bar. Here every part of a line
   (name, options, note, old price, price, stepper), the struck regular total and the whole "You save" line become a shimmering block of its own size
   with its content hidden. */
body :is(.widget_shopping_cart_content,#stbhh-mc):is(.stbhh-cart-loading *) :is(.elementor-menu-cart__product-name a, .variation, .stbhh-mc-note, .stbhh-mc-was, .elementor-menu-cart__product-price .woocommerce-Price-amount, .stbhh-mc-save > span, .stbhh-mc-regular){ border-radius:6px; background:linear-gradient(90deg,var(--stbhh-mc-skeleton-a) 25%,var(--stbhh-mc-skeleton-b) 50%,var(--stbhh-mc-skeleton-a) 75%) 0 0 / 200% 100%; color:transparent; animation:stbhhMcShimmer var(--stbhh-set-sk-speed,1s) linear infinite; user-select:none; }
body :is(.widget_shopping_cart_content,#stbhh-mc):is(.stbhh-cart-loading *) :is(.elementor-menu-cart__product-name a, .variation, .stbhh-mc-note, .stbhh-mc-was, .elementor-menu-cart__product-price .woocommerce-Price-amount, .stbhh-mc-save > span, .stbhh-mc-regular) *{ visibility:hidden; }
body :is(.widget_shopping_cart_content,#stbhh-mc):is(.stbhh-cart-loading *) .stbhh-mc-line .quantity{ border-color:transparent; background:linear-gradient(90deg,var(--stbhh-mc-skeleton-a) 25%,var(--stbhh-mc-skeleton-b) 50%,var(--stbhh-mc-skeleton-a) 75%) 0 0 / 200% 100%; animation:stbhhMcShimmer var(--stbhh-set-sk-speed,1s) linear infinite; }
body :is(.widget_shopping_cart_content,#stbhh-mc):is(.stbhh-cart-loading *) .stbhh-mc-line .quantity > *{ visibility:hidden; }

@keyframes stbhhMcShimmer{ from{ background-position:100% 0; } to{ background-position:-100% 0; } }
@keyframes stbhhMcSpin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce){
    body :is(.widget_shopping_cart_content,#stbhh-mc):is(.stbhh-cart-loading *) :is(.elementor-menu-cart__product-name a, .variation, .stbhh-mc-note, .stbhh-mc-was, .elementor-menu-cart__product-price .woocommerce-Price-amount, .stbhh-mc-save > span, .stbhh-mc-regular),
    body :is(.widget_shopping_cart_content,#stbhh-mc):is(.stbhh-cart-loading *) .stbhh-mc-line .quantity{ animation-duration:2.4s; }
    body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading :is(.stbhh-mc-amounts .woocommerce-Price-amount, .stbhh-mc-save > span)::after{ animation-duration:2.4s; }
    body :is(.widget_shopping_cart_content,#stbhh-mc).stbhh-mc-loading .stbhh-mc-checkout::before,
    body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-checkout.stbhh-mc-going::before{ animation-duration:1.6s; }
    body :is(.widget_shopping_cart_content,#stbhh-mc) .stbhh-mc-qty-btn{ transition:none; }
}
