/** Shopify CDN: Minification failed

Line 10:0 Unexpected "}"

**/
/* CartDrawer rules, moved out of snippets/cart-drawer.liquid.
   Pure CSS by construction: every Liquid value is a --cart-drawer-* custom
   property declared in the inline block that ships with the drawer markup.
   The drawer is closed on load, so this must not block render. */
}

    /* Free Shipping Icon Colors */
    .free-shipping-main svg path,
    .free-shipping-main svg circle {
      fill: var(--cart-drawer-fs-icon-default-color);
    }

    .free-shipping-main.free-shipping-main-color svg path,
    .free-shipping-main.free-shipping-main-color svg circle {
      fill: var(--cart-drawer-progress-active-icon-fill-color);
    }

    .drawer {
      visibility: hidden;
    }

    /* Apply default color to inactive gift icon */
    .free-gift-main svg path,
    .free-gift-main svg circle { /* Assuming gift icon also might have circles */
      fill: var(--cart-drawer-fs-icon-default-color);
    }
    .discounts {
      font-size: 1rem;
      display: flex;
      letter-spacing: var(--letter-spacing-body);
      text-transform: uppercase;
      align-items: center;
    }

    /* Override global accent color for cart buttons */
    .cart-drawer .quantity__button,
    .cart-drawer .cart-remove-button {
      background-color: transparent !important;
      border-color: #DAD8E0 !important;
      color: currentColor !important;
    }
    
    .cart-drawer .quantity__button:focus,
    .cart-drawer .quantity__button:active,
    .cart-drawer .cart-remove-button:focus,
    .cart-drawer .cart-remove-button:active {
      outline: none !important;
      background-color: transparent !important;
      box-shadow: none !important;
      -webkit-tap-highlight-color: transparent;
    }
    
    .cart-drawer quantity-input.quantity.cart-quantity .quantity__button:active,
    .cart-drawer quantity-input.quantity.cart-quantity .quantity__button:focus {
      background-color: #ECE7F1 !important;
    }
    
    .cart-drawer .cart-remove-button:hover,
    .cart-drawer .cart-remove-button:active,
    .cart-drawer .cart-remove-button:focus {
      opacity: 0.8;
      background-color: transparent !important;
    }

    /* IMPORTANT: Ensure the .gb-price-drawer-saving class always uses fixed colors regardless of theme settings */
    .gb-price-drawer-saving {
      background: rgba(108,62,193,0.15) !important;
      color: #7A1E9C !important;
    }
    
    /* Apply custom cart drawer colors to specific elements */
    .cart-drawer .drawer__header {
      background-color: var(--cart-drawer-header-background);
    }
    
    .cart-drawer .cart-item {
      background-color: var(--cart-drawer-product-bg);
    }
    
    .cart-drawer .drawer__footer {
      background-color: var(--cart-drawer-footer-bg);
      border-top-color: var(--cart-drawer-divider-color);
    }
    
    .cart-drawer .drawer__cart-items-wrapper .cart-items {
      border-color: var(--cart-drawer-divider-color);
    }
    
    .cart-drawer .cart__checkout-button {
      background-color: var(--cart-drawer-checkout-button-background) !important;
      color: var(--cart-drawer-checkout-button-text-color) !important;
      border-radius: var(--cart-drawer-border-radius)px !important;
    }
    
    .cart-drawer .cart-item__price-wrapper,
    .cart-drawer .totals__subtotal-value,
    .cart-drawer .price--end {
      color: var(--cart-drawer-secondary-text);
    }
    
    /* Apply accent color to final price */
    .cart-drawer .cart-item__final-price.product-option,
    .cart-drawer strong.cart-item__final-price {
      color: var(--cart-drawer-accent-color) !important;
    }
    
    /* Apply accent color to toggle switch */
    .cart-drawer .gb-shipping-protection-button input:checked + .slider {
      background-color: var(--cart-drawer-accent-color) !important;
    }
    
    /* Apply accent color to toggle switch on focus */
    .cart-drawer .gb-shipping-protection-button input:focus + .slider {
      box-shadow: 0 0 1px var(--cart-drawer-accent-color) !important;
    }
    
    .cart-drawer .free-product-progress-bar {
      border-color: var(--cart-drawer-divider-color);
    }
    
    .cart-drawer .free-product-progress-bar progress::-webkit-progress-value {
      background-color: var(--cart-drawer-progress-active-color);
    }
    
    .cart-drawer .free-product-progress-bar progress::-webkit-progress-bar {
      background-color: var(--cart-drawer-progress-inactive-color);
    }
    
    .cart-drawer .free-product-progress-bar progress {
      color: var(--cart-drawer-progress-active-color);
      background-color: var(--cart-drawer-progress-inactive-color);
    }
    
    .cart-drawer .gb-shipping-protection {
      background-color: var(--cart-drawer-shipping-protection-background);
      border-color: var(--cart-drawer-shipping-protection-border-color);
    }
    
    .cart-drawer .gb-shipping-protection-icontext h2,
    .cart-drawer .gb-shipping-protection-icontext p {
      color: var(--cart-drawer-shipping-protection-text-color);
    }
    
    .cart-drawer product-info.gb-main-freq-bg-color {
      background-color: var(--cart-drawer-freq-bought-background);
    }
    
    .cart-drawer .cart-item__discounted-prices s,
    .cart-drawer s.cart-item__old-price {
      color: var(--cart-drawer-secondary-text);
    }
    
    .cart-drawer h2.gb-30day-back {
      color: var(--cart-drawer-money-back-color);
    }

    /* ============================================================
       DARK + GOLD CART DRAWER -- AUTHORITATIVE OVERRIDES
       Must remain LAST inside this <style> block to win the cascade.
       Beats external stylesheets, custom.css, AND the inline style=""
       on .drawer__inner and on h2.gb-30day-back.
       Palette: base #F4F1F4 - card #FFFFFF - text #211C22
                secondary #55525C - accent #7A1E9C - compare-at #55525C
                track #DAD8E0 - hairline rgba(108,62,193,0.14)
       No Kaching app CSS is referenced. gb-* selectors target this
       theme's own markup only; no class is renamed.
       ============================================================ */

    /* A -- retarget every CSS variable the drawer consumes */
    #CartDrawer,
    #CartDrawer .drawer__inner {
      --cart-drawer-primary-background-color: #F4F1F4 !important;
      --cart-drawer-background-gradient: none !important;
      --cart-drawer-primary-text-color: #211C22 !important;
      --cart-drawer-header-background: #ECE7F1 !important;
      --cart-drawer-product-bg: #FFFFFF !important;
      --cart-drawer-footer-bg: #ECE7F1 !important;
      --cart-drawer-secondary-text: #55525C !important;
      --cart-drawer-accent-color: #7A1E9C !important;
      --cart-drawer-divider-color: rgba(108,62,193,0.14) !important;
      --cart-drawer-checkout-button-background: #7A1E9C !important;
      --cart-drawer-checkout-button-text-color: #211C22 !important;
      --cart-drawer-progress-active-color: #7A1E9C !important;
      --cart-drawer-progress-inactive-color: #DAD8E0 !important;
      --cart-drawer-progress-active-icon-fill-color: #7A1E9C !important;
      --cart-drawer-fs-icon-default-color: #55525C !important;
      --cart-drawer-fs-icon-active-color: #7A1E9C !important;
      --cart-drawer-shipping-protection-background: #FFFFFF !important;
      --cart-drawer-shipping-protection-border-color: rgba(108,62,193,0.14) !important;
      --cart-drawer-shipping-protection-text-color: #211C22 !important;
      --cart-drawer-item-saving-color: #7A1E9C !important;
      --cart-drawer-item-saving-background: rgba(108,62,193,0.14) !important;
      --cart-drawer-freq-bought-background: #ECE7F1 !important;
    }

    /* B -- drawer shell. .drawer__inner carries an inline style, so these
       need !important on background, background-image and color. */
    #CartDrawer .drawer__inner,
    .cart-drawer .drawer__inner {
      background: #F4F1F4 !important;
      background-color: #F4F1F4 !important;
      background-image: none !important;
      color: #211C22 !important;
      opacity: 1 !important;
    }
    #CartDrawer .drawer__header,
    .cart-drawer .drawer__header {
      background-color: #F4F1F4 !important;
      border-bottom: 1px solid rgba(108,62,193,0.14) !important;
    }
    #CartDrawer .drawer__footer,
    .cart-drawer .drawer__footer {
      background-color: #F4F1F4 !important;
      border-top: 1px solid rgba(108,62,193,0.14) !important;
    }
    .cart-drawer .drawer__cart-items-wrapper,
    .cart-drawer .drawer__cart-items-wrapper .cart-items,
    .cart-drawer table.cart-items {
      background: transparent !important;
      border-color: rgba(108,62,193,0.14) !important;
    }

    /* C -- headings */
    .cart-drawer .drawer__heading,
    #CartDrawer h2.drawer__heading {
      color: #211C22 !important;
      opacity: 1 !important;
      font-weight: 700 !important;
    }
    .cart-drawer .gb-cart-total-item {
      color: #F4F1F4 !important;
      opacity: 1 !important;
      font-weight: 700 !important;
    }
    .cart-drawer .drawer__close,
    .cart-drawer .drawer__close svg {
      color: #211C22 !important;
      opacity: 1 !important;
      fill: currentColor !important;
    }

    /* D -- item cards */
    .cart-drawer .cart-item,
    #CartDrawer tr.cart-item {
      background-color: #ECE7F1 !important;
      border: 1px solid rgba(108,62,193,0.14) !important;
      border-radius: 12px !important;
      padding: 14px !important;
      margin-bottom: 12px !important;
    }
    .cart-drawer .cart-item__image {
      border-radius: 10px !important;
      background: #F4F1F4 !important;
    }

    /* E -- product titles and supporting text.
       Never lighter than #55525C; opacity explicitly restored. */
    .cart-drawer a.cart-item__name,
    .cart-drawer .cart-item__name,
    .cart-drawer .cart-item__name.h4 {
      color: #211C22 !important;
      opacity: 1 !important;
      font-weight: 600 !important;
      text-decoration: none !important;
    }
    .cart-drawer .product-option,
    .cart-drawer .product-option dt,
    .cart-drawer .product-option dd,
    .cart-drawer .cart-item__details dl,
    .cart-drawer .tax-note,
    .cart-drawer .caption-with-letter-spacing,
    .cart-drawer .unit-price,
    .cart-drawer .quantity__rules,
    .cart-drawer .volume-pricing-label,
    .cart-drawer .cart-item__error-text,
    .cart-drawer .discounts__discount {
      color: #55525C !important;
      opacity: 1 !important;
    }
    .cart-drawer .cart__empty-text,
    .cart-drawer .cart__login-title,
    .cart-drawer .cart__login-paragraph {
      color: #211C22 !important;
      opacity: 1 !important;
    }

    /* F -- prices */
    .cart-drawer .cart-item__final-price,
    .cart-drawer strong.cart-item__final-price,
    .cart-drawer .cart-item__final-price.product-option,
    .cart-drawer .gb-price-drawer strong,
    .cart-drawer .totals__total-value,
    .cart-drawer .price--end {
      color: #7A1E9C !important;
      opacity: 1 !important;
      font-weight: 700 !important;
    }
    .cart-drawer .gb-price-drawer {
      color: #211C22 !important;
      opacity: 1 !important;
    }
    .cart-drawer h2.totals__total,
    .cart-drawer .totals__total {
      color: #211C22 !important;
      opacity: 1 !important;
      font-weight: 700 !important;
    }

    /* G -- compare-at price. The cart-total copy carries an inline
       opacity:0.7 and color:currentColor, so both are forced here. */
    .cart-drawer .cart-item__old-price,
    .cart-drawer s.cart-item__old-price,
    .cart-drawer s.cart-item__old-price.product-option,
    .cart-drawer .cart-item__discounted-prices s,
    .cart-drawer .gb-discounts-cart-values s.cart-item__old-price,
    .cart-drawer .totals s.cart-item__old-price {
      color: #55525C !important;
      opacity: 1 !important;
      text-decoration: line-through !important;
      font-weight: 400 !important;
    }

    /* H -- save badge */
    .cart-drawer .gb-price-drawer-saving,
    .gb-price-drawer-saving {
      background: rgba(108,62,193,0.14) !important;
      color: #7A1E9C !important;
      opacity: 1 !important;
      font-weight: 700 !important;
      border-radius: 6px !important;
      padding: 2px 8px !important;
      display: inline-block !important;
    }

    /* I -- quantity selector and remove */
    .cart-drawer quantity-input.quantity.cart-quantity,
    .drawer__inner quantity-input.quantity.cart-quantity {
      border: 1px solid rgba(108,62,193,0.28) !important;
      border-radius: 8px !important;
      background: #F4F1F4 !important;
    }
    .cart-drawer .quantity__button,
    .cart-drawer .quantity__button svg {
      color: #211C22 !important;
      opacity: 1 !important;
      background-color: transparent !important;
      border-color: rgba(108,62,193,0.28) !important;
    }
    .cart-drawer .quantity__input {
      color: #211C22 !important;
      opacity: 1 !important;
      background: transparent !important;
      border-left: 1px solid rgba(108,62,193,0.28) !important;
      border-right: 1px solid rgba(108,62,193,0.28) !important;
    }
    .cart-drawer quantity-input.quantity.cart-quantity .quantity__button:active,
    .cart-drawer quantity-input.quantity.cart-quantity .quantity__button:focus {
      background-color: rgba(108,62,193,0.18) !important;
    }
    .cart-drawer .cart-remove-button {
      background-color: transparent !important;
      border-color: rgba(108,62,193,0.28) !important;
      color: #211C22 !important;
      opacity: 1 !important;
    }
    .cart-drawer .gb-cart-del-img img {
      opacity: 1 !important;
      filter: brightness(0) invert(1) !important;
    }

    /* J -- free shipping progress bar */
    .cart-drawer .free-product-progress-bar-successfull,
    .free-product-progress-bar-successfull {
      color: #211C22 !important;
      opacity: 1 !important;
      font-weight: 500 !important;
    }
    .cart-drawer .free-product-progress-bar-successfull strong,
    .free-product-progress-bar-successfull strong {
      color: #7A1E9C !important;
      opacity: 1 !important;
      font-weight: 700 !important;
    }
    .cart-drawer .free-product-progress-bar {
      border-color: rgba(108,62,193,0.14) !important;
    }
    .cart-drawer .free-product-progress-bar progress,
    .free-product-progress-bar-main progress {
      background-color: #F4F1F4 !important;
      border-radius: 999px !important;
      overflow: hidden !important;
    }
    .cart-drawer .free-product-progress-bar progress::-webkit-progress-bar,
    .free-product-progress-bar-main progress::-webkit-progress-bar {
      background-color: #F4F1F4 !important;
      border-radius: 999px !important;
    }
    .cart-drawer .free-product-progress-bar progress::-webkit-progress-value,
    .free-product-progress-bar-main progress::-webkit-progress-value {
      background: #ECE7F1 !important;
      border-radius: 999px !important;
    }
    .cart-drawer .free-product-progress-bar progress::-moz-progress-bar,
    .free-product-progress-bar-main progress::-moz-progress-bar {
      background: #ECE7F1 !important;
      border-radius: 999px !important;
    }
    .cart-drawer .reward-name,
    .reward-name {
      color: #55525C !important;
      opacity: 1 !important;
    }
    .free-shipping-main.free-shipping-main-color .reward-name,
    .free-gift-main.free-gift-main-color .reward-name {
      color: #211C22 !important;
      opacity: 1 !important;
      font-weight: 600 !important;
    }
    .free-shipping-main svg path,
    .free-shipping-main svg circle,
    .free-gift-main svg path,
    .free-gift-main svg circle {
      fill: #55525C !important;
      opacity: 1 !important;
    }
    .free-shipping-main.free-shipping-main-color svg,
    .free-gift-main.free-gift-main-color svg {
      background: #ECE7F1 !important;
      border-radius: 999px !important;
    }
    .free-shipping-main.free-shipping-main-color svg path,
    .free-shipping-main.free-shipping-main-color svg circle,
    .free-gift-main.free-gift-main-color svg path,
    .free-gift-main.free-gift-main-color svg circle {
      fill: #211C22 !important;
      opacity: 1 !important;
    }

    /* K -- shipping protection block */
    .cart-drawer .gb-shipping-protection {
      background-color: #ECE7F1 !important;
      border: 1px solid rgba(108,62,193,0.14) !important;
      border-radius: 12px !important;
      padding: 14px !important;
    }
    .cart-drawer .gb-shipping-protection-icontext h2 {
      color: #211C22 !important;
      opacity: 1 !important;
      font-size: 15px !important;
      font-weight: 600 !important;
    }
    .cart-drawer .gb-shipping-protection-icontext h2 span {
      color: #7A1E9C !important;
      opacity: 1 !important;
      font-weight: 700 !important;
    }
    .cart-drawer .gb-shipping-protection-icontext p {
      color: #55525C !important;
      opacity: 1 !important;
      font-size: 13px !important;
      line-height: 1.45 !important;
    }
    .cart-drawer .gb-shipping-protection-icon img,
    .cart-drawer .gb-shipping-protection-icon svg {
      opacity: 1 !important;
    }

    /* M -- shipping protection PRODUCT image.
       Sized to the cart line item thumbnail in this same drawer rather than to
       a new value: .cart-item__image measures 78x78 at a 10px radius, read off
       the rendered drawer. Scoped to the img class so the fallback shield SVG
       keeps its own 50px sizing and the no image case is unchanged.
       object-fit is cover so a non square image swapped in admin later crops
       instead of distorting. */
    .cart-drawer .gb-shipping-protection-icon img.gb-sp-product-image {
      width: 78px !important;
      height: 78px !important;
      border-radius: 10px !important;
      object-fit: cover !important;
      display: block !important;
    }

    /* L -- toggle switch.
       13 Sep 2026: OFF was #F4F1F4 and ON was #ECE7F1. Both near-white, and ON
       was the SAME colour as the row background (#ECE7F1 measured live), so the
       on state was literally invisible -- a customer could not tell whether
       protection had been added. Measured against that row background:
           OFF #55525C (the theme's own muted)  6.28:1  PASS
           ON  #7A1E9C (accent)                 6.93:1  PASS
           knob #F4F1F4 vs OFF 6.82:1, vs ON 7.51:1
       The two TRACKS sit only 1.10:1 apart from each other, so colour is not
       carrying the state on its own. The knob also translates left/right, and
       that position change is the non-colour cue -- what a colour-blind or
       low-vision customer actually reads. */
    .cart-drawer .gb-shipping-protection-button .slider {
      background-color: #55525C !important;
      opacity: 1 !important;
    }
    .cart-drawer .gb-shipping-protection-button .slider:before {
      background-color: #F4F1F4 !important;
      /* transform only, and only on the knob. No layout animation, nothing that
         runs unprompted: it fires on the customer's own click. */
      transition: transform 160ms ease !important;
    }
    .cart-drawer .gb-shipping-protection-button input:checked + .slider {
      background-color: #7A1E9C !important;
    }
    .cart-drawer .gb-shipping-protection-button input:checked + .slider:before {
      background-color: #F4F1F4 !important;
    }
    .cart-drawer .gb-shipping-protection-button input:focus + .slider {
      box-shadow: 0 0 0 2px rgba(108,62,193,0.45) !important;
    }

    /* M -- trust row */
    .cart-drawer .gb-trust-row,
    .gb-trust-row {
      color: #55525C !important;
      opacity: 1 !important;
      font-size: 12px !important;
      letter-spacing: 0.02em !important;
      text-align: center !important;
      margin: 0 0 10px !important;
    }

    /* N -- payment icons: native brand colours on a subtle white card */
    .cart-drawer .gb-payment-icons,
    .gb-payment-icons {
      display: flex !important;
      justify-content: center !important;
      align-items: center !important;
      flex-wrap: wrap !important;
      gap: 6px !important;
      margin: 10px 0 0 !important;
      padding: 0 !important;
    }
    .cart-drawer .gb-payment-icons li,
    .gb-payment-icons li {
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      background: #ECE7F1 !important;
      border-radius: 4px !important;
      padding: 3px 5px !important;
      opacity: 1 !important;
    }
    .cart-drawer .gb-payment-icon,
    .gb-payment-icon {
      width: 34px !important;
      height: auto !important;
      opacity: 1 !important;
      border-radius: 2px !important;
      display: block !important;
    }

    /* O -- checkout button. An ACTION, so it takes the accent with cream
       text. The stage 2 role sweep mapped its dark era #211C22 background to
       the SURFACE lilac, which turned the primary checkout action into a
       surface panel: cream span text on it measured 1.13:1. Role sweeps map
       colours, not intent; a button is not a background. */
    .cart-drawer .cart__checkout-button,
    #CartDrawer-Checkout,
    .cart-drawer #CartDrawer-Checkout.cart__checkout-button {
      background: #7A1E9C !important;
      background-color: #7A1E9C !important;
      background-image: none !important;
      color: #F4F1F4 !important;
      opacity: 1 !important;
      font-weight: 800 !important;
      letter-spacing: 0.04em !important;
      text-transform: uppercase !important;
      border: none !important;
      border-radius: 10px !important;
      box-shadow: 0 6px 20px rgba(108,62,193,0.30) !important;
      transition: transform 0.2s ease, box-shadow 0.2s ease !important;
    }
    .cart-drawer .cart__checkout-button .button-text,
    #CartDrawer-Checkout .button-text {
      color: #F4F1F4 !important;
      opacity: 1 !important;
      font-weight: 800 !important;
    }
    .cart-drawer .cart__checkout-button:hover,
    #CartDrawer-Checkout:hover {
      transform: translateY(-2px);
      box-shadow: 0 10px 28px rgba(108,62,193,0.45) !important;
    }
    .cart-drawer .cart__checkout-button .icon-lock,
    #CartDrawer-Checkout .icon-lock {
      stroke: #F4F1F4 !important;
      color: #F4F1F4 !important;
      opacity: 1 !important;
    }
    .cart-drawer .cart__checkout-button[disabled],
    #CartDrawer-Checkout[disabled] {
      background: #F4F1F4 !important;
      color: #55525C !important;
      box-shadow: none !important;
    }

    /* P -- money-back guarantee line. Carries a conditional inline
       style="color:...", so !important is required to win. */
    .cart-drawer h2.gb-30day-back,
    h2.gb-30day-back {
      color: #55525C !important;
      opacity: 1 !important;
      font-size: 13px !important;
      font-weight: 500 !important;
      text-align: center !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      gap: 6px !important;
      margin: 10px 0 0 !important;
    }
    .cart-drawer h2.gb-30day-back svg,
    h2.gb-30day-back svg {
      color: #7A1E9C !important;
      fill: currentColor !important;
      opacity: 1 !important;
    }

    /* Q -- cart note, if enabled */
    .cart-drawer .cart__note label,
    .cart-drawer #Details-CartDrawer summary,
    .cart-drawer .summary__title {
      color: #211C22 !important;
      opacity: 1 !important;
    }
    .cart-drawer .cart__note .field__input,
    .cart-drawer #CartDrawer-Note {
      background: #ECE7F1 !important;
      color: #211C22 !important;
      opacity: 1 !important;
      border: 1px solid rgba(108,62,193,0.14) !important;
      border-radius: 8px !important;
    }

    /* R -- REC 1: items region hugs its content instead of filling the drawer.
       Rolled back to the single-rule version. The wider four-level pin
       (.drawer__contents / .drawer__cart-items-wrapper / .cart__contents /
       .cart-drawer__form) closed the gap but collapsed the row contents,
       so only cart-drawer-items is pinned here. */
    #CartDrawer cart-drawer-items,
    .cart-drawer cart-drawer-items {
      flex: 0 1 auto !important;
      overflow-y: auto !important;
    }
    #CartDrawer .drawer__inner,
    .cart-drawer .drawer__inner {
      justify-content: flex-start !important;
    }

    /* R2 -- the empty state must NOT inherit that flex-start.
       Dawn sets `cart-drawer.is-empty .drawer__inner { display: grid }`, and
       under grid the flex-start above packs the single track hard LEFT,
       leaving the empty state text off centre by 58 to 89px depending on
       width. Measured broken at 375, 768 and 1280 before this rule existed.
       The filled cart keeps flex-start: this is scoped to .is-empty only. */
    cart-drawer.is-empty #CartDrawer .drawer__inner,
    cart-drawer.is-empty .cart-drawer .drawer__inner {
      justify-content: center !important;
    }

    /* S -- REC 4: the $0.00 gift row reads as earned, not as a duplicate.
       Modifier is applied in the markup only when the product handle is the
       gift product AND the line price is zero, so the free gift never matches. */
    .cart-drawer .cart-item--free {
      border-color: rgba(108,62,193,0.38) !important;
      background-color: #F4F1F4 !important;
    }
    .cart-drawer .cart-item--free .cart-item__name::before {
      content: "\1F381  ";
    }
    .cart-drawer .cart-item--free .gb-price-drawer::after {
      content: "FREE";
      background: #ECE7F1;
      color: #211C22;
      font-weight: 800;
      font-size: 11px;
      letter-spacing: 0.04em;
      border-radius: 5px;
      padding: 2px 7px;
      margin-left: 6px;
      display: inline-block;
    }
    .cart-drawer .cart-item--free quantity-input.quantity.cart-quantity {
      display: none !important;
    }

    /* ==================================================================
       MOBILE LAYOUT, 13 Sep 2026.

       Measured at 390x844 with a real cart. The drawer's vertical budget
       was: header 56, social bar 36, ITEMS REGION 226, footer 521. The
       customer's own cart got 27% of the screen and the non-scrolling
       footer took 62%. The items region is flex: 0 1 auto with
       min-height 0, so it is whatever is left over -- it measured 226px
       at two line items AND at five, i.e. already at its floor.

       The brief's proposal was to drop one upsell slot. That returns
       exactly 60px (one row). This returns MORE than that without giving
       up a paid slot, by taking the space back from two places that were
       wasting it:

       1. The protection icon was 78px, squeezing the text column to
          172px, which wrapped the title to 2 lines and the description
          to 3. At 48px the column gets 202px and both reflow shorter.
       2. The upsell rows were 60px each (48px image + 6/6 padding) while
          their ADD button was only 33px tall -- under the 44px tap
          target minimum. Setting the button to 44 and the image to 44
          makes the row 52px: SHORTER than before and the tap target is
          fixed at the same time.

       Desktop is untouched: everything here is inside the mobile query.
       ================================================================== */
    @media screen and (max-width: 749px) {
      .cart-drawer .gb-shipping-protection-icon,
      .cart-drawer .gb-shipping-protection-icon svg {
        width: 48px !important;
        height: 48px !important;
        flex: 0 0 48px !important;
      }
      /* The product image needs the SAME selector as rule M above
         (.cart-drawer .gb-shipping-protection-icon img.gb-sp-product-image),
         not a shorter one. M is (0,4,1); a plain `... icon img` is (0,3,1) and
         loses on specificity no matter how late it appears or how many
         !importants it carries. Matching the selector exactly means this wins
         on source order instead. Caught because the 78px image overflowed its
         48px box and sat on top of the description. */
      .cart-drawer .gb-shipping-protection-icon img.gb-sp-product-image {
        width: 48px !important;
        height: 48px !important;
      }
      .cart-drawer .pr-cart-upsell__item {
        padding: 4px 0 !important;
        gap: 8px !important;
      }
      .cart-drawer .pr-cart-upsell__image {
        width: 44px !important;
        height: 44px !important;
      }
      /* 44px minimum tap target. It was 33px. */
      .cart-drawer .pr-cart-upsell__add {
        min-height: 44px !important;
        min-width: 44px !important;
      }
      /* 14px top and bottom on a compact mobile row. The description still
         wraps to 3 lines at the 202px the column gets -- shortening it further
         would mean editing customer-facing copy, which is flagged, not done
         here. 10px padding is the space that was free to take. */
      .cart-drawer .gb-shipping-protection {
        padding-top: 10px !important;
        padding-bottom: 10px !important;
      }
      /* Reassurance furniture below the button: 10px margins each, three of
         them. 6px reads the same and returns 12px to the cart. */
      .cart-drawer .gb-trust-row { margin-bottom: 6px !important; }
      .cart-drawer .gb-payment-icons { margin-top: 6px !important; }
      .cart-drawer .gb-30day-back { margin-top: 6px !important; }
    }
