/* ==========================================================================
   PETRATIDE — PS Side Cart v1.0.0
   Consolidates: v5.2 drawer styles + mobile scroll fix + v6.0 additions
   Petratide Montserrat Glassmorphic Design System
   ========================================================================== */

/* ==========================================================================
   DRAWER PANEL
   Full-height flex column, glassmorphic background
   ========================================================================== */

#astra-mobile-cart-drawer {
    background: rgba(14,12,26,0.97) !important;
    backdrop-filter: blur(28px) saturate(1.4) !important;
    -webkit-backdrop-filter: blur(28px) saturate(1.4) !important;
    border-left: 1px solid rgba(164,63,255,0.22) !important;
    box-shadow: -8px 0 48px rgba(0,0,0,0.80) !important;
    font-family: "Montserrat", sans-serif !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
}

/* ==========================================================================
   HEADER — pinned, never scrolls
   ========================================================================== */

#astra-mobile-cart-drawer .astra-cart-drawer-header {
    position: relative !important;
    z-index: 2 !important;
    background: rgba(20,18,32,1) !important;
    border-bottom: 1px solid rgba(164,63,255,0.20) !important;
    padding: 16px 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-shrink: 0 !important;
}

#astra-mobile-cart-drawer .astra-cart-drawer-header h4,
#astra-mobile-cart-drawer .astra-cart-drawer-header span,
#astra-mobile-cart-drawer .astra-cart-drawer-header p,
#astra-mobile-cart-drawer .astra-cart-drawer-header div {
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    color: #ffffff !important;
    margin: 0 !important;
}

/* ── Close button ── */
#astra-mobile-cart-drawer .ast-cart-close {
    width: 32px !important;
    height: 32px !important;
    border-radius: 8px !important;
    background: rgba(164,63,255,0.12) !important;
    border: 1px solid rgba(164,63,255,0.25) !important;
    color: rgba(255,255,255,0.65) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: background 0.2s, transform 0.25s !important;
    padding: 0 !important;
}
#astra-mobile-cart-drawer .ast-cart-close:hover {
    background: rgba(164,63,255,0.28) !important;
    border-color: #a43fff !important;
    color: #fff !important;
    transform: rotate(90deg) !important;
}

/* ==========================================================================
   FREE SHIPPING BAR — flex-shrink:0, never scrolls
   ========================================================================== */

#pt-ship-bar {
    position: relative !important;
    z-index: 1 !important;
    padding: 8px 18px 7px !important;
    margin: 0 !important;
    background: linear-gradient(180deg, rgba(164,63,255,0.12) 0%, rgba(20,18,32,0.7) 100%) !important;
    border-bottom: 1px solid rgba(164,63,255,0.12) !important;
    flex-shrink: 0 !important;
    display: block !important;
}

#pt-ship-label {
    font-family: "Montserrat", sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,0.88) !important;
    margin-bottom: 6px !important;
    letter-spacing: 0.01em !important;
    line-height: 1.3 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}
#pt-ship-label strong { color: #c280ff !important; font-weight: 800 !important; }
#pt-ship-label::before {
    content: "" !important;
    display: inline-block !important;
    width: 16px !important; height: 16px !important;
    flex-shrink: 0 !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c280ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 3h15v13H1z'/%3E%3Cpath d='M16 8h5l3 3v5h-8V8z'/%3E%3Ccircle cx='5.5' cy='18.5' r='2.5'/%3E%3Ccircle cx='18.5' cy='18.5' r='2.5'/%3E%3C/svg%3E") !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}
#pt-ship-label.pt-unlocked { color: #6ddc8b !important; }
#pt-ship-label.pt-unlocked::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236ddc8b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important;
}

.pt-ship-track {
    height: 5px !important;
    background: rgba(164,63,255,0.15) !important;
    border: 1px solid rgba(164,63,255,0.25) !important;
    border-radius: 6px !important;
    overflow: hidden !important;
}
#pt-ship-fill {
    height: 100% !important;
    background: linear-gradient(90deg, #a43fff 0%, #c280ff 100%) !important;
    border-radius: 5px !important;
    transition: width 0.55s cubic-bezier(.4,0,.2,1) !important;
    width: 0% !important;
    box-shadow: 0 0 10px rgba(164,63,255,0.55) !important;
}
#pt-ship-bar.pt-bar-unlocked #pt-ship-fill {
    background: linear-gradient(90deg, #4eb86e 0%, #6ddc8b 100%) !important;
    box-shadow: 0 0 10px rgba(109,220,139,0.55) !important;
}

.pt-ship-scale {
    display: flex !important;
    justify-content: space-between !important;
    margin-top: 3px !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
}
.pt-ship-scale span:first-child { color: rgba(255,255,255,0.30) !important; }
.pt-ship-scale span:last-child  { color: #c280ff !important; }
#pt-ship-bar.pt-bar-unlocked .pt-ship-scale span:last-child { color: #6ddc8b !important; }

/* ==========================================================================
   SAVINGS TIER BAR — amber/gold, sits below shipping bar
   ========================================================================== */

#pt-savings-bar {
    position: relative !important;
    z-index: 1 !important;
    padding: 7px 18px 8px !important;
    margin: 0 !important;
    background: linear-gradient(180deg, rgba(255,185,0,0.08) 0%, rgba(20,18,32,0.5) 100%) !important;
    border-bottom: 1px solid rgba(255,185,0,0.14) !important;
    flex-shrink: 0 !important;
    display: block !important;
}

#pt-savings-label {
    font-family: "Montserrat", sans-serif !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,0.88) !important;
    margin-bottom: 6px !important;
    letter-spacing: 0.01em !important;
    line-height: 1.3 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}
#pt-savings-label strong { color: #ffd166 !important; font-weight: 800 !important; }
#pt-savings-label::before {
    content: "" !important;
    display: inline-block !important;
    width: 15px !important; height: 15px !important;
    flex-shrink: 0 !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffd166' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.59 13.41l-7.17 7.17a2 2 0 01-2.83 0L2 12V2h10l8.59 8.59a2 2 0 010 2.82z'/%3E%3Ccircle cx='7' cy='7' r='1'/%3E%3C/svg%3E") !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}
#pt-savings-label.pt-savings-unlocked { color: #6ddc8b !important; }
#pt-savings-label.pt-savings-unlocked::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236ddc8b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important;
}

.pt-savings-track {
    height: 5px !important;
    background: rgba(255,185,0,0.12) !important;
    border: 1px solid rgba(255,185,0,0.22) !important;
    border-radius: 6px !important;
    overflow: hidden !important;
}
#pt-savings-fill {
    height: 100% !important;
    background: linear-gradient(90deg, #f0a500 0%, #ffd166 100%) !important;
    border-radius: 5px !important;
    transition: width 0.55s cubic-bezier(.4,0,.2,1) !important;
    width: 0% !important;
    box-shadow: 0 0 10px rgba(255,185,0,0.4) !important;
}
#pt-savings-bar.pt-savings-bar-unlocked #pt-savings-fill {
    background: linear-gradient(90deg, #4eb86e 0%, #6ddc8b 100%) !important;
    box-shadow: 0 0 10px rgba(109,220,139,0.55) !important;
}

.pt-savings-scale {
    display: flex !important;
    justify-content: space-between !important;
    margin-top: 3px !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
}
.pt-savings-scale span:first-child { color: rgba(255,255,255,0.28) !important; }
.pt-savings-scale span:last-child  { color: #ffd166 !important; }
#pt-savings-bar.pt-savings-bar-unlocked .pt-savings-scale span:last-child { color: #6ddc8b !important; }

/* ==========================================================================
   DISCOUNT TIER BANNER — sits below savings bar
   ========================================================================== */

#pt-discount-tiers {
    padding: 5px 18px !important;
    margin: 0 !important;
    background: rgba(164,63,255,0.04) !important;
    border-bottom: 1px solid rgba(164,63,255,0.15) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,0.38) !important;
    letter-spacing: 0.02em !important;
    line-height: 1.3 !important;
    flex-shrink: 0 !important;
}
#pt-discount-tiers .pt-tier     { color: rgba(255,255,255,0.50) !important; }
#pt-discount-tiers .pt-tier-pct { color: #c280ff !important; font-weight: 700 !important; }
#pt-discount-tiers .pt-tier-sep { color: rgba(164,63,255,0.30) !important; margin: 0 2px !important; }

/* ==========================================================================
   CONTENT AREA — flex pass-through
   ========================================================================== */

#astra-mobile-cart-drawer .astra-cart-drawer-content {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

#astra-mobile-cart-drawer .widget_shopping_cart,
#astra-mobile-cart-drawer .widget_shopping_cart_content,
#astra-mobile-cart-drawer .elementor-menu-cart__main {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* ==========================================================================
   SCROLLABLE ZONE — cart items + order bumps scroll together
   ========================================================================== */

#astra-mobile-cart-drawer .elementor-menu-cart__products,
#astra-mobile-cart-drawer .woocommerce-mini-cart {
    list-style: none !important;
    padding: 14px 14px 20px !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    background: transparent !important;
    width: 100% !important;
    box-sizing: border-box !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
}

/* ==========================================================================
   PRODUCT ROW
   ========================================================================== */

#astra-mobile-cart-drawer .elementor-menu-cart__product,
#astra-mobile-cart-drawer .mini_cart_item {
    display: grid !important;
    grid-template-columns: 60px 1fr !important;
    grid-template-rows: auto auto auto !important;
    gap: 0 12px !important;
    align-items: start !important;
    background: rgba(255,255,255,0.045) !important;
    border: 1px solid rgba(164,63,255,0.14) !important;
    border-radius: 14px !important;
    padding: 12px !important;
    margin: 0 !important;
    position: relative !important;
    list-style: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    transition: border-color 0.2s, background 0.2s !important;
    overflow: visible !important;
    flex-shrink: 0 !important;
}
#astra-mobile-cart-drawer .elementor-menu-cart__product:hover,
#astra-mobile-cart-drawer .mini_cart_item:hover {
    background: rgba(164,63,255,0.07) !important;
    border-color: rgba(164,63,255,0.28) !important;
}

/* Image */
#astra-mobile-cart-drawer .elementor-menu-cart__product-image,
#astra-mobile-cart-drawer .mini_cart_item > a:first-child {
    grid-column: 1 !important;
    grid-row: 1 / 4 !important;
    width: 60px !important; height: 60px !important;
    flex-shrink: 0 !important;
    line-height: 0 !important;
    display: block !important;
    align-self: start !important;
}
#astra-mobile-cart-drawer .elementor-menu-cart__product-image img,
#astra-mobile-cart-drawer .mini_cart_item img {
    width: 60px !important; height: 60px !important;
    min-width: 60px !important;
    border-radius: 10px !important;
    object-fit: cover !important;
    border: 1px solid rgba(164,63,255,0.20) !important;
    display: block !important;
    float: none !important;
    margin: 0 !important;
}

/* Name */
#astra-mobile-cart-drawer .elementor-menu-cart__product-name,
#astra-mobile-cart-drawer .mini_cart_item > a:not(:first-child) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,0.90) !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    padding: 0 28px 0 0 !important;
}
#astra-mobile-cart-drawer .elementor-menu-cart__product-name a {
    font-family: "Montserrat", sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,0.90) !important;
    text-decoration: none !important;
}
#astra-mobile-cart-drawer .elementor-menu-cart__product-name a:hover { color: #c280ff !important; }

/* Price */
#astra-mobile-cart-drawer .elementor-menu-cart__product-price,
#astra-mobile-cart-drawer .mini_cart_item .quantity {
    grid-column: 2 !important;
    grid-row: 2 !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    color: rgba(255,255,255,0.38) !important;
    display: block !important;
    margin: 2px 0 0 0 !important;
    padding: 0 !important;
}
#astra-mobile-cart-drawer .woocommerce-Price-amount {
    color: #c280ff !important;
    font-weight: 700 !important;
    font-size: 13px !important;
}

#astra-mobile-cart-drawer .elementor-menu-cart__product-details { display: contents !important; }

/* Remove button */
#astra-mobile-cart-drawer .elementor-menu-cart__product-remove,
#astra-mobile-cart-drawer .product-remove {
    position: absolute !important;
    top: 10px !important; right: 10px !important;
    width: 24px !important; height: 24px !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important; margin: 0 !important;
    font-size: 0 !important;
    z-index: 20 !important;
    display: block !important;
    grid-column: unset !important;
    grid-row: unset !important;
}
#astra-mobile-cart-drawer .elementor-menu-cart__product-remove::before,
#astra-mobile-cart-drawer .product-remove::before { content: none !important; display: none !important; }
#astra-mobile-cart-drawer a.elementor_remove_from_cart_button { display: none !important; }
#astra-mobile-cart-drawer a.remove_from_cart_button,
#astra-mobile-cart-drawer a.remove {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 6px !important;
    background: rgba(255,80,80,0.10) !important;
    border: 1px solid rgba(255,80,80,0.22) !important;
    color: transparent !important;
    font-size: 0 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background 0.18s, border-color 0.18s !important;
}
#astra-mobile-cart-drawer a.remove_from_cart_button::before,
#astra-mobile-cart-drawer a.remove::before {
    content: "\00d7" !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #ff8080 !important;
    line-height: 1 !important;
}
#astra-mobile-cart-drawer a.remove_from_cart_button:hover,
#astra-mobile-cart-drawer a.remove:hover {
    background: rgba(255,80,80,0.22) !important;
    border-color: rgba(255,80,80,0.55) !important;
}

/* ==========================================================================
   QTY STEPPER
   ========================================================================== */

#astra-mobile-cart-drawer .pt-stepper {
    grid-column: 2 !important;
    grid-row: 3 !important;
    align-self: start !important;
    justify-self: start !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 2px !important;
    margin: 6px 0 0 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}
#astra-mobile-cart-drawer .pt-step-btn {
    width: 28px !important; height: 28px !important;
    border-radius: 6px !important;
    border: none !important;
    background: rgba(164,63,255,0.10) !important;
    color: #c280ff !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.18s !important;
    font-family: "Montserrat", sans-serif !important;
    padding: 0 !important;
    user-select: none !important;
}
#astra-mobile-cart-drawer .pt-step-btn:hover { background: rgba(164,63,255,0.22) !important; }
#astra-mobile-cart-drawer .pt-step-btn:active { transform: scale(0.93) !important; }
#astra-mobile-cart-drawer .pt-step-btn.pt-loading { opacity: 0.45 !important; pointer-events: none !important; }
#astra-mobile-cart-drawer .pt-step-qty {
    min-width: 28px !important;
    text-align: center !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    padding: 0 2px !important;
    display: inline-block !important;
    line-height: 28px !important;
}

/* ==========================================================================
   EMPTY CART STATE
   ========================================================================== */

#pt-empty-cart {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 48px 28px !important;
    text-align: center !important;
}
#pt-empty-cart .pt-empty-icon { width: 64px !important; height: 64px !important; margin-bottom: 20px !important; color: rgba(164,63,255,0.25) !important; }
#pt-empty-cart .pt-empty-icon svg { width: 100% !important; height: 100% !important; }
#pt-empty-cart .pt-empty-title { font-family: "Montserrat", sans-serif !important; font-size: 16px !important; font-weight: 700 !important; color: rgba(255,255,255,0.55) !important; margin: 0 0 8px 0 !important; }
#pt-empty-cart .pt-empty-sub   { font-family: "Montserrat", sans-serif !important; font-size: 12px !important; font-weight: 500 !important; color: rgba(255,255,255,0.25) !important; margin: 0 0 24px 0 !important; line-height: 1.5 !important; }
#pt-empty-cart .pt-empty-cta {
    display: inline-block !important;
    padding: 12px 28px !important;
    background: linear-gradient(135deg, #a43fff 0%, #7a26d0 100%) !important;
    border: none !important; border-radius: 10px !important;
    color: #ffffff !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important; font-weight: 700 !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.6px !important;
    cursor: pointer !important;
    box-shadow: 0 4px 16px rgba(164,63,255,0.35) !important;
    transition: all 0.25s cubic-bezier(0.34,1.2,0.64,1) !important;
}
#pt-empty-cart .pt-empty-cta:hover { transform: translateY(-2px) scale(1.03) !important; box-shadow: 0 6px 24px rgba(164,63,255,0.55) !important; color: #ffffff !important; }
#astra-mobile-cart-drawer .woocommerce-mini-cart__empty-message { display: none !important; }

/* ==========================================================================
   ORDER BUMP CARDS — appended inside scrollable zone, scroll with items
   ========================================================================== */

#pt-order-bumps {
    padding: 4px 0 4px !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    list-style: none !important;
}

/* Divider label */
.pt-bumps-label {
    font-family: "Montserrat", sans-serif !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,0.28) !important;
    padding: 12px 2px 10px !important;
    margin: 0 !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.pt-bumps-label::before,
.pt-bumps-label::after {
    content: "" !important;
    flex: 1 !important;
    height: 1px !important;
    background: rgba(164,63,255,0.18) !important;
}

/* Individual card — NO animation here, JS adds .pt-bump-card--animate on first render only */
.pt-bump-card {
    display: grid !important;
    grid-template-columns: 58px 1fr auto !important;
    align-items: center !important;
    gap: 12px !important;
    background: rgba(164,63,255,0.05) !important;
    border: 1px solid rgba(164,63,255,0.18) !important;
    border-radius: 14px !important;
    padding: 12px !important;
    margin-bottom: 8px !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: hidden !important;
    transition: border-color 0.2s, background 0.2s, transform 0.2s !important;
    list-style: none !important;
    width: 100% !important;
}
.pt-bump-card:last-child { margin-bottom: 0 !important; }

/* Animation only fires when JS explicitly adds this class */
.pt-bump-card--animate {
    animation: ptBumpIn 0.4s cubic-bezier(0.34,1.2,0.64,1) both !important;
}

@keyframes ptBumpIn {
    from { opacity: 0; transform: translateY(8px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.pt-bump-card::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(135deg, rgba(164,63,255,0.04) 0%, transparent 60%) !important;
    pointer-events: none !important;
    border-radius: inherit !important;
}
.pt-bump-card:hover {
    border-color: rgba(164,63,255,0.38) !important;
    background: rgba(164,63,255,0.09) !important;
    transform: translateY(-1px) !important;
}
.pt-bump-card--in-cart { display: none !important; }
.pt-bump-card--coming-soon { opacity: 0.65 !important; }

/* Image */
.pt-bump-img-wrap {
    width: 58px !important; height: 58px !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background: rgba(164,63,255,0.1) !important;
    border: 1px solid rgba(164,63,255,0.2) !important;
    flex-shrink: 0 !important;
}
.pt-bump-img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }

/* Body */
.pt-bump-body { min-width: 0 !important; display: flex !important; flex-direction: column !important; gap: 3px !important; }
.pt-bump-name {
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important; font-weight: 700 !important;
    color: rgba(255,255,255,0.92) !important;
    margin: 0 !important; line-height: 1.3 !important;
    white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
}
.pt-bump-teaser {
    font-family: "Montserrat", sans-serif !important;
    font-size: 10px !important; font-weight: 500 !important;
    color: rgba(255,255,255,0.38) !important;
    margin: 0 !important; line-height: 1.4 !important;
    white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
}
.pt-bump-price {
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important; font-weight: 800 !important;
    color: #c280ff !important; margin: 0 !important; line-height: 1 !important;
}

/* Action */
.pt-bump-action { display: flex !important; align-items: center !important; flex-shrink: 0 !important; }

.pt-bump-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    background: linear-gradient(135deg, #a43fff, #7b2de8) !important;
    border: none !important;
    border-radius: 8px !important;
    color: #fff !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 10px !important; font-weight: 700 !important;
    padding: 9px 13px !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    box-shadow: 0 2px 10px rgba(164,63,255,0.3) !important;
    transition: box-shadow 0.2s, transform 0.15s, opacity 0.15s !important;
    letter-spacing: 0.03em !important;
    line-height: 1 !important;
    min-width: 60px !important;
}
.pt-bump-btn:hover  { box-shadow: 0 4px 16px rgba(164,63,255,0.5) !important; transform: translateY(-1px) !important; }
.pt-bump-btn:active { transform: scale(0.96) !important; }
.pt-bump-btn.pt-loading { opacity: 0.55 !important; pointer-events: none !important; }
.pt-bump-btn.pt-added {
    background: rgba(52,211,153,0.15) !important;
    border: 1px solid rgba(52,211,153,0.35) !important;
    color: #34d399 !important;
    box-shadow: none !important; transform: none !important;
    pointer-events: none !important;
}

/* Coming soon badge */
.pt-bump-badge {
    font-family: "Montserrat", sans-serif !important;
    font-size: 9px !important; font-weight: 700 !important;
    padding: 5px 9px !important;
    border-radius: 20px !important;
    background: rgba(164,63,255,0.12) !important;
    border: 1px solid rgba(164,63,255,0.28) !important;
    color: #c280ff !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}

/* ==========================================================================
   FOOTER — subtotal + buttons, always pinned
   ========================================================================== */

#astra-mobile-cart-drawer .elementor-menu-cart__subtotal,
#astra-mobile-cart-drawer .woocommerce-mini-cart__total {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 14px 18px !important;
    margin: 0 !important;
    background: rgba(164,63,255,0.06) !important;
    border-top: 1px solid rgba(164,63,255,0.14) !important;
    border-bottom: 1px solid rgba(164,63,255,0.14) !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border-left: none !important; border-right: none !important;
    flex-shrink: 0 !important;
}
#astra-mobile-cart-drawer .elementor-menu-cart__subtotal strong,
#astra-mobile-cart-drawer .woocommerce-mini-cart__total strong {
    font-family: "Montserrat", sans-serif !important;
    font-size: 11px !important; font-weight: 700 !important;
    text-transform: uppercase !important; letter-spacing: 1.2px !important;
    color: rgba(255,255,255,0.40) !important;
}
#astra-mobile-cart-drawer .elementor-menu-cart__subtotal .woocommerce-Price-amount,
#astra-mobile-cart-drawer .woocommerce-mini-cart__total .woocommerce-Price-amount {
    font-size: 22px !important; font-weight: 800 !important;
    color: #ffffff !important; letter-spacing: -0.5px !important;
}
#astra-mobile-cart-drawer .elementor-menu-cart__subtotal .woocommerce-Price-currencySymbol,
#astra-mobile-cart-drawer .woocommerce-mini-cart__total .woocommerce-Price-currencySymbol {
    font-size: 13px !important; font-weight: 600 !important;
    color: rgba(255,255,255,0.55) !important; vertical-align: super !important;
}

/* Buttons wrapper */
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons,
#astra-mobile-cart-drawer .elementor-menu-cart__footer-buttons {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 14px 14px 20px !important;
    background: rgba(14,12,26,0.98) !important;
    width: 100% !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
}

/* View cart */
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons a:not(.checkout),
#astra-mobile-cart-drawer .elementor-button--view-cart {
    display: block !important;
    width: 100% !important;
    padding: 13px 16px !important;
    text-align: center !important;
    background: rgba(164,63,255,0.08) !important;
    border: 1.5px solid rgba(164,63,255,0.30) !important;
    border-radius: 12px !important;
    color: rgba(255,255,255,0.75) !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 12px !important; font-weight: 700 !important;
    text-decoration: none !important;
    text-transform: uppercase !important; letter-spacing: 0.8px !important;
    box-sizing: border-box !important; cursor: pointer !important;
    transition: all 0.22s ease !important;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons a:not(.checkout):hover,
#astra-mobile-cart-drawer .elementor-button--view-cart:hover {
    background: rgba(164,63,255,0.18) !important;
    border-color: rgba(164,63,255,0.55) !important;
    color: #ffffff !important; transform: translateY(-1px) !important;
}

/* Checkout */
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons a.checkout,
#astra-mobile-cart-drawer .elementor-button--checkout {
    display: block !important;
    width: 100% !important;
    padding: 15px 16px !important;
    text-align: center !important;
    background: linear-gradient(135deg, #a43fff 0%, #7a26d0 100%) !important;
    border: none !important; border-radius: 12px !important;
    color: #ffffff !important;
    font-family: "Montserrat", sans-serif !important;
    font-size: 13px !important; font-weight: 800 !important;
    text-decoration: none !important;
    text-transform: uppercase !important; letter-spacing: 0.8px !important;
    box-sizing: border-box !important; cursor: pointer !important;
    box-shadow: 0 4px 20px rgba(164,63,255,0.42) !important;
    transition: all 0.28s cubic-bezier(0.34,1.2,0.64,1) !important;
}
#astra-mobile-cart-drawer .woocommerce-mini-cart__buttons a.checkout:hover,
#astra-mobile-cart-drawer .elementor-button--checkout:hover {
    transform: translateY(-2px) scale(1.02) !important;
    box-shadow: 0 8px 30px rgba(164,63,255,0.65) !important;
    color: #ffffff !important;
}

/* ==========================================================================
   SCROLLBAR
   ========================================================================== */

#astra-mobile-cart-drawer ::-webkit-scrollbar { width: 3px; }
#astra-mobile-cart-drawer ::-webkit-scrollbar-track { background: transparent; }
#astra-mobile-cart-drawer ::-webkit-scrollbar-thumb { background: rgba(164,63,255,0.35); border-radius: 3px; }

/* ==========================================================================
   OVERLAY
   ========================================================================== */

.astra-cart-overlay {
    background: rgba(0,0,0,0.55) !important;
    backdrop-filter: blur(3px) !important;
    -webkit-backdrop-filter: blur(3px) !important;
}
