/* ==================================================================
   The Longevity Edge — Mini-cart slide-out drawer.
   Loaded site-wide via inc/mini-cart.php.
   ================================================================== */

.mini-cart-overlay { position: fixed; inset: 0; background: rgba(14, 26, 43, 0.45); backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); opacity: 0; pointer-events: none; transition: opacity 240ms var(--ease-out); z-index: 9998; }
.mini-cart-overlay.is-open { opacity: 1; pointer-events: auto; }

.mini-cart { position: fixed; top: 0; right: 0; bottom: 0; width: 420px; max-width: 100vw; background: var(--canvas); box-shadow: -12px 0 32px rgba(14, 26, 43, 0.18); transform: translateX(100%); transition: transform 320ms var(--ease-out); z-index: 9999; display: flex; flex-direction: column; }
.mini-cart.is-open { transform: translateX(0); }
.mini-cart-inner { display: flex; flex-direction: column; height: 100%; overflow: hidden; }
@media (max-width: 480px) { .mini-cart { width: 100%; } }

/* Header */
.mini-cart-header { display: flex; align-items: center; justify-content: space-between; padding: var(--s-5) var(--s-5); border-bottom: 1px solid var(--navy-100); flex-shrink: 0; }
.mini-cart-header h2 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-xl); color: var(--navy-900); margin: 0; letter-spacing: var(--ls-tight); }
.mini-cart-close { background: transparent; border: 0; padding: 8px; color: var(--ink-700); cursor: pointer; border-radius: var(--r-md); display: inline-flex; align-items: center; justify-content: center; transition: background 180ms var(--ease-out), color 180ms var(--ease-out); }
.mini-cart-close:hover { background: var(--navy-50); color: var(--navy-900); }

/* Empty */
.mini-cart-empty { padding: var(--s-7) var(--s-5); text-align: center; }
.mini-cart-empty p { color: var(--ink-700); font-size: var(--fs-base); margin: 0 0 var(--s-4); }
.mini-cart-shop-link { display: inline-block; padding: 12px 20px; background: var(--navy-900); color: #fff; text-decoration: none; border-radius: var(--r-md); font-weight: 600; font-size: var(--fs-sm); }
.mini-cart-shop-link:hover { background: var(--navy-700); }

/* Free shipping progress (compact) */
.mini-cart-progress { padding: var(--s-4) var(--s-5); border-bottom: 1px solid var(--navy-100); background: var(--surface); flex-shrink: 0; }
.mini-cart-progress-header { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-3); margin-bottom: 6px; font-size: var(--fs-sm); color: var(--ink-700); }
.mini-cart-progress-header strong { color: var(--gold-600); font-weight: 700; font-feature-settings: "tnum","lnum"; }
.mini-cart-progress-threshold { color: var(--ink-500); font-size: var(--fs-xs); font-weight: 700; letter-spacing: var(--ls-wide); }
.mini-cart-progress.is-won .mini-cart-progress-header { color: var(--success); font-weight: 600; }
.mini-cart-progress-bar { background: var(--navy-50); border-radius: var(--r-pill); height: 6px; overflow: hidden; }
.mini-cart-progress-fill { background: var(--gold-600); height: 100%; border-radius: var(--r-pill); transition: width 400ms var(--ease-out); }
.mini-cart-progress.is-won .mini-cart-progress-fill { background: var(--success); }

/* Items */
.mini-cart-items { list-style: none; margin: 0; padding: var(--s-4) var(--s-5); flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: var(--s-4); }
.mini-cart-item { display: grid; grid-template-columns: 64px 1fr auto; gap: var(--s-3); align-items: start; }
.mini-cart-item-thumb { width: 64px; height: 64px; border-radius: var(--r-md); overflow: hidden; background: var(--surface); border: 1px solid var(--navy-100); }
.mini-cart-item-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mini-cart-item-info { min-width: 0; }
.mini-cart-item-name { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-base); color: var(--navy-900); margin: 0 0 4px; letter-spacing: var(--ls-tight); line-height: var(--lh-tight); }
.mini-cart-item-name a { color: inherit; text-decoration: none; }
.mini-cart-item-name a:hover { color: var(--gold-600); }
.mini-cart-item-badge { display: inline-block; padding: 2px 8px; background: var(--success-50); color: var(--success); border-radius: var(--r-pill); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: var(--ls-wide); margin-bottom: 6px; }
.mini-cart-item-controls { display: flex; align-items: center; gap: 4px; margin-top: 4px; }
.mini-cart-qty-btn { width: 26px; height: 26px; border: 1px solid var(--navy-100); background: var(--surface); border-radius: var(--r-sm); font-family: var(--font-body); font-weight: 700; font-size: 14px; color: var(--navy-900); cursor: pointer; padding: 0; line-height: 1; transition: border-color 180ms var(--ease-out), background 180ms var(--ease-out); }
.mini-cart-qty-btn:hover { border-color: var(--gold-600); background: var(--gold-50); }
.mini-cart-qty { min-width: 28px; text-align: center; font-size: var(--fs-sm); font-weight: 600; color: var(--navy-900); font-feature-settings: "tnum","lnum"; }
.mini-cart-remove { width: 26px; height: 26px; background: transparent; border: 0; padding: 0; margin-left: 8px; color: var(--ink-500); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r-sm); transition: color 180ms var(--ease-out), background 180ms var(--ease-out); }
.mini-cart-remove:hover { color: var(--cta-600); background: rgba(208, 60, 60, 0.08); }
.mini-cart-item-price { font-family: var(--font-body); font-weight: 700; font-size: var(--fs-sm); color: var(--navy-900); font-feature-settings: "tnum","lnum"; text-align: right; min-width: 60px; }

/* Footer */
.mini-cart-footer { padding: var(--s-5); border-top: 1px solid var(--navy-100); background: var(--surface); flex-shrink: 0; }
.mini-cart-subtotal { display: flex; justify-content: space-between; align-items: baseline; font-size: var(--fs-base); margin-bottom: var(--s-4); }
.mini-cart-subtotal span:first-child { color: var(--ink-700); font-weight: 500; }
.mini-cart-subtotal span:last-child { color: var(--navy-900); font-weight: 700; font-feature-settings: "tnum","lnum"; }
.mini-cart-checkout { display: block; width: 100%; text-align: center; padding: 14px 16px; background: var(--navy-900); color: #fff; text-decoration: none; border-radius: var(--r-md); font-family: var(--font-body); font-weight: 700; font-size: var(--fs-base); letter-spacing: -0.005em; box-shadow: 0 4px 12px rgba(14, 26, 43, 0.14); transition: background 180ms var(--ease-out), box-shadow 180ms var(--ease-out); margin-bottom: var(--s-2); }
.mini-cart-checkout:hover { background: var(--navy-700); box-shadow: 0 8px 20px rgba(14, 26, 43, 0.22); }
.mini-cart-view { display: block; width: 100%; text-align: center; padding: 10px 16px; background: var(--surface); color: var(--navy-900); text-decoration: none; border-radius: var(--r-md); border: 1.5px solid var(--navy-100); font-family: var(--font-body); font-weight: 600; font-size: var(--fs-sm); margin-bottom: var(--s-2); transition: border-color 180ms var(--ease-out); }
.mini-cart-view:hover { border-color: var(--gold-600); color: var(--gold-600); }
.mini-cart-continue { display: block; width: 100%; text-align: center; padding: 4px; background: transparent; border: 0; color: var(--ink-700); font-family: var(--font-body); font-weight: 500; font-size: var(--fs-xs); cursor: pointer; letter-spacing: var(--ls-wide); }
.mini-cart-continue:hover { color: var(--gold-600); text-decoration: underline; }

/* Loading state */
.mini-cart.is-loading .mini-cart-inner { opacity: 0.65; pointer-events: none; }

/* Body scroll lock when drawer is open */
body.mini-cart-open { overflow: hidden; }
/* Hide WC's auto-inserted "View Cart" link below add-to-cart buttons.
   The mini-cart drawer already exposes View Cart + Checkout. The inline
   link below the button is redundant and breaks the PDP layout. */
a.added_to_cart.wc-forward { display: none !important; }

