/* Project E — Minicart drawer.
 *
 * Two rules govern this file:
 *
 * 1. No literal brand colour. Everything paints from the custom properties
 *    Jett_Woo_Minicart::css_vars() derives from the two colours in the admin,
 *    so one setting restyles the whole drawer. Fallbacks below keep the drawer
 *    presentable if the inline block is ever stripped by an optimiser.
 * 2. The reset block is not optional. The drawer is injected into a themed page,
 *    and an Elementor kit styling bare `button` beat every unflagged declaration
 *    here — it forced 12px 30px of padding onto the 28px quantity steppers,
 *    which squeezed their icons to zero width and made the controls vanish.
 *    Anything that decides a control's box or colour is therefore !important.
 */

:root{
	--jw-mc-btn:#111111;--jw-mc-btn-text:#ffffff;
	--jw-mc-cta:#111111;--jw-mc-cta-hover:#333333;
	--jw-mc-tint:#f5f5f5;--jw-mc-tint-2:#ebebeb;
	--jw-mc-line-soft:#ececec;--jw-mc-line:#d5d5d5;
	--jw-mc-ink:#16110f;--jw-mc-ink-2:#59504d;--jw-mc-ink-3:#8f8683;
	--jw-mc-ring:rgba(17,17,17,.32);--jw-mc-shadow:rgba(0,0,0,.22);
	--jw-mc-danger:#c0392b;--jw-mc-ok:#1ea64d;--jw-mc-ok-dark:#12813b;
}

/* --- Scoped reset: strip theme button/input styling, then restyle below. --- */
.jw-mc-drawer button,.jw-mc-drawer input,.jw-mc-shortcode,.jw-mc-toggle{
	margin:0!important;padding:0!important;border:0!important;background:none!important;
	box-shadow:none!important;text-transform:none!important;letter-spacing:normal!important;
	font:inherit!important;font-size:inherit!important;line-height:1.2!important;
	min-width:0!important;min-height:0!important;width:auto!important;height:auto!important;
	border-radius:0!important;text-shadow:none!important;-webkit-appearance:none;appearance:none;
	-webkit-tap-highlight-color:transparent;
}
.jw-mc-drawer svg,.jw-mc-shortcode svg,.jw-mc-toggle svg{flex:0 0 auto!important;max-width:none!important;}
/* Form controls don't inherit font-family; the drawer root stays overridable so
   JS can stamp the exact site font on it (see minicart.js). */
.jw-mc-drawer *,.jw-mc-drawer input,.jw-mc-drawer button,.jw-mc-drawer select,.jw-mc-drawer textarea,.jw-mc-shortcode *{font-family:inherit!important;}
.jw-mc-open,.jw-mc-shortcode{font-family:inherit;}
.jw-mc-drawer,.jw-mc-drawer *{box-sizing:border-box;}

/* --- Shell --- */
.jw-mc-overlay{position:fixed;inset:0;background:rgba(17,17,17,.42);-webkit-backdrop-filter:blur(5px) saturate(1.05);backdrop-filter:blur(5px) saturate(1.05);z-index:2147482000;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s;}
.jw-mc-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto;}
/* Physical right-anchor + translateX so RTL/LTR both slide from the right correctly. */
.jw-mc-drawer{position:fixed;top:0;right:0;height:100%;width:390px;max-width:92vw;background:#fff;color:var(--jw-mc-ink);z-index:2147482001;display:flex;flex-direction:column;box-shadow:-14px 0 48px var(--jw-mc-shadow);transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);direction:rtl;font-family:inherit;}
.jw-mc-drawer.is-open{transform:translateX(0);}
body.jw-mc-active{overflow:hidden;}

/* --- Header --- */
.jw-mc-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--jw-mc-line-soft);background:var(--jw-mc-tint);}
.jw-mc-title{font-size:18px;font-weight:800;color:var(--jw-mc-ink);}
.jw-mc-drawer button.jw-mc-x{width:40px!important;height:40px!important;margin:-6px!important;display:flex!important;align-items:center;justify-content:center;border-radius:10px!important;cursor:pointer;color:var(--jw-mc-ink-2)!important;transition:background .15s,color .15s;}
.jw-mc-drawer button.jw-mc-x:hover,.jw-mc-drawer button.jw-mc-x:focus-visible{background:var(--jw-mc-tint-2)!important;color:var(--jw-mc-ink)!important;}

.jw-mc-body{flex:1;overflow-y:auto;padding:16px 18px 0;position:relative;}
.jw-mc-body.is-loading{opacity:.5;pointer-events:none;}

/* --- Empty state --- */
.jw-mc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:52px 20px;font-size:15px;gap:16px;}
.jw-mc-empty-ico{display:inline-flex;align-items:center;justify-content:center;width:120px;height:120px;border-radius:50%;background:var(--jw-mc-tint);color:var(--jw-mc-btn);}
.jw-mc-empty-ico .jw-mc-svg{width:56px;height:56px;}
.jw-mc-empty-txt{font-weight:600;color:var(--jw-mc-ink-2);}

/* Fly-to-cart clone (product thumbnail animating into the cart trigger). */
.jw-mc-fly{position:fixed;z-index:2147483600;border-radius:10px;object-fit:cover;pointer-events:none;box-shadow:0 10px 28px rgba(0,0,0,.28);will-change:transform,opacity;}

/* --- Free-shipping progress --- */
.jw-mc-ship{background:var(--jw-mc-tint);border:1px solid var(--jw-mc-line-soft);border-radius:14px;padding:13px 15px;margin-bottom:16px;}
.jw-mc-ship-head{display:flex;align-items:center;gap:9px;margin-bottom:10px;}
.jw-mc-ship-ico{display:inline-flex;flex:0 0 auto;color:var(--jw-mc-cta);}
.jw-mc-ship-text{font-size:13.5px;font-weight:600;color:var(--jw-mc-ink);line-height:1.35;}
.jw-mc-ship-bar{position:relative;height:9px;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 1px var(--jw-mc-line-soft);overflow:hidden;}
.jw-mc-ship-bar>span{display:block;height:100%;border-radius:99px;background:var(--jw-mc-btn);position:relative;overflow:hidden;transition:width .7s cubic-bezier(.4,0,.2,1);}
.jw-mc-ship-bar>span::after{content:"";position:absolute;inset:0;background-image:linear-gradient(45deg,rgba(255,255,255,.28) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.28) 50%,rgba(255,255,255,.28) 75%,transparent 75%);background-size:22px 22px;animation:jw-mc-stripes 1s linear infinite;}
@keyframes jw-mc-stripes{from{background-position:0 0;}to{background-position:22px 0;}}
/* "Reached" stays green: success is semantic, not brand, and the tick carries the
   meaning too so it never depends on colour alone. */
.jw-mc-ship.is-reached{background:linear-gradient(180deg,#f1fbf5,#eafaf0);border-color:#c9efd6;}
.jw-mc-ship.is-reached .jw-mc-ship-ico{color:var(--jw-mc-ok);}
.jw-mc-ship.is-reached .jw-mc-ship-text{color:var(--jw-mc-ok-dark);}
.jw-mc-ship.is-reached .jw-mc-ship-bar>span{background:linear-gradient(90deg,#28c765,var(--jw-mc-ok));}
.jw-mc-ship.is-reached .jw-mc-ship-bar>span::after{opacity:.3;animation:none;}

/* --- Items --- */
.jw-mc-items{list-style:none;margin:0;padding:0;}
.jw-mc-item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--jw-mc-line-soft);}
.jw-mc-item:last-child{border-bottom:0;}
.jw-mc-thumb img{width:66px;height:66px;object-fit:cover;border-radius:10px;background:var(--jw-mc-tint);}
.jw-mc-info{flex:1;min-width:0;}
.jw-mc-name{display:block;font-weight:600;font-size:14px;line-height:1.35;text-decoration:none;margin-bottom:4px;}
.jw-mc-line{font-size:14.5px;font-weight:700;color:var(--jw-mc-ink);margin-bottom:8px;font-variant-numeric:tabular-nums;}
.jw-mc-qty{display:flex;align-items:center;gap:6px;}
.jw-mc-drawer .jw-mc-qty button{width:30px!important;height:30px!important;display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer;border-radius:9px!important;box-shadow:inset 0 0 0 1px var(--jw-mc-line)!important;background:#fff!important;color:var(--jw-mc-ink)!important;transition:background .15s,color .15s,box-shadow .15s;}
.jw-mc-qty button svg{display:block;width:15px;height:15px;}
.jw-mc-drawer .jw-mc-qty button:not(:disabled):hover,.jw-mc-drawer .jw-mc-qty button:not(:disabled):active{background:var(--jw-mc-tint-2)!important;color:var(--jw-mc-cta)!important;box-shadow:inset 0 0 0 1px var(--jw-mc-btn)!important;}
.jw-mc-drawer .jw-mc-qty button:disabled{opacity:.35;cursor:not-allowed;}
.jw-mc-q{min-width:26px;text-align:center;font-weight:700;font-size:14px;color:var(--jw-mc-ink);font-variant-numeric:tabular-nums;}
/* Destructive action: neutral at rest, red on intent — never the brand colour. */
.jw-mc-drawer button.jw-mc-remove{margin-inline-start:auto!important;color:var(--jw-mc-ink-3)!important;box-shadow:none!important;background:none!important;}
.jw-mc-drawer button.jw-mc-remove:hover,.jw-mc-drawer button.jw-mc-remove:active,.jw-mc-drawer button.jw-mc-remove:focus-visible{color:var(--jw-mc-danger)!important;background:rgba(192,57,43,.08)!important;box-shadow:none!important;}
.jw-mc-gift{background:var(--jw-mc-cta);color:var(--jw-mc-btn-text);border-radius:99px;padding:3px 11px;font-size:12px;font-weight:700;}

/* --- Coupon --- */
.jw-mc-coupon{margin:14px 0;}
.jw-mc-coupons{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:6px;}
.jw-mc-coupons li{display:inline-flex;align-items:center;gap:4px;background:var(--jw-mc-tint);border:1px solid var(--jw-mc-line);border-radius:99px;padding:3px;padding-inline-start:11px;font-size:11.5px;font-weight:700;color:var(--jw-mc-ink);line-height:1.5;}
.jw-mc-drawer .jw-mc-coupons .jw-mc-rmcoupon{display:inline-flex!important;align-items:center;justify-content:center;width:18px!important;height:18px!important;border-radius:50%!important;color:var(--jw-mc-ink-3)!important;cursor:pointer;transition:background .15s,color .15s;}
.jw-mc-drawer .jw-mc-coupons .jw-mc-rmcoupon:hover,.jw-mc-drawer .jw-mc-coupons .jw-mc-rmcoupon:focus-visible{color:var(--jw-mc-danger)!important;background:rgba(192,57,43,.1)!important;}
/* Collapsed by default: a quiet text link that reveals the field on click. */
.jw-mc-drawer button.jw-mc-coupon-toggle{display:inline-flex!important;align-items:center;gap:6px;color:var(--jw-mc-cta)!important;cursor:pointer;font-size:13px!important;font-weight:700!important;text-decoration:underline;text-underline-offset:3px;padding:2px 0!important;transition:opacity .15s;}
.jw-mc-drawer button.jw-mc-coupon-toggle:hover{opacity:.7;}
.jw-mc-coupon-collapse{overflow:hidden;max-height:0;opacity:0;visibility:hidden;transition:max-height .32s ease,opacity .25s ease,visibility .32s;}
.jw-mc-coupon-collapse.is-open{max-height:240px;opacity:1;visibility:visible;}
.jw-mc-coupon-row{display:flex;gap:8px;margin-top:10px;}
.jw-mc-drawer input.jw-mc-coupon-input{flex:1 1 auto;min-width:0;width:auto!important;height:44px!important;padding:0 14px!important;border-radius:10px!important;box-shadow:inset 0 0 0 1px var(--jw-mc-line)!important;background:#fff!important;color:var(--jw-mc-ink)!important;font-size:14px!important;transition:box-shadow .15s;}
.jw-mc-drawer input.jw-mc-coupon-input::placeholder{color:var(--jw-mc-ink-3);}
.jw-mc-drawer input.jw-mc-coupon-input:focus{outline:none!important;box-shadow:inset 0 0 0 2px var(--jw-mc-btn),0 0 0 3px var(--jw-mc-ring)!important;}
/* Secondary button: outlined, subordinate to the checkout CTA. */
.jw-mc-drawer button.jw-mc-coupon-apply{height:44px!important;padding:0 20px!important;border-radius:10px!important;white-space:nowrap;cursor:pointer;font-size:14px!important;font-weight:700!important;color:var(--jw-mc-cta)!important;background:transparent!important;box-shadow:inset 0 0 0 1.5px var(--jw-mc-btn)!important;transition:background .15s,color .15s;}
.jw-mc-drawer button.jw-mc-coupon-apply:hover,.jw-mc-drawer button.jw-mc-coupon-apply:focus-visible{background:var(--jw-mc-cta)!important;color:var(--jw-mc-btn-text)!important;box-shadow:inset 0 0 0 1.5px var(--jw-mc-cta)!important;}
.jw-mc-coupon-msg{color:var(--jw-mc-danger);font-size:13px;margin-top:7px;font-weight:600;}
.jw-mc-coupon-msg:empty{display:none;}

/* --- Points + deals --- */
.jw-mc-points{display:flex;align-items:center;gap:9px;background:var(--jw-mc-tint);border:1px solid var(--jw-mc-line-soft);border-radius:12px;padding:11px 14px;font-size:13px;color:var(--jw-mc-ink);margin:12px 0;}
.jw-mc-points-ico{display:inline-flex;flex:0 0 auto;color:var(--jw-mc-cta);}
.jw-mc-deals{margin:14px 0;}
.jw-mc-deals-t{font-size:12px;font-weight:600;color:var(--jw-mc-ink-3);margin-bottom:7px;}
.jw-mc-chips{display:flex;flex-wrap:wrap;gap:6px;}
/* Chip colours come from each promo rule, so only the shape is set here. */
.jw-mc-chip{border-radius:99px;padding:5px 11px;font-size:12px;font-weight:700;cursor:default;transition:transform .12s,opacity .15s;}

/* --- Footer --- */
/* Full-width solid footer so items scrolling underneath never show through. */
.jw-mc-foot{position:sticky;bottom:0;z-index:2;background:#fff;border-top:1px solid var(--jw-mc-line-soft);margin:10px -18px 0;padding:14px 18px 18px;box-shadow:0 -8px 20px rgba(0,0,0,.04);}
.jw-mc-subtotal{display:flex;justify-content:space-between;font-size:15px;font-weight:700;color:var(--jw-mc-ink-2);margin-bottom:8px;}
.jw-mc-discount{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--jw-mc-ok);margin-bottom:6px;}
.jw-mc-discount>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.jw-mc-total{display:flex;justify-content:space-between;font-size:17px;font-weight:800;color:var(--jw-mc-ink);margin-bottom:12px;padding-top:9px;border-top:1px solid var(--jw-mc-line-soft);}
.jw-mc-subtotal>span:last-child,.jw-mc-total>span:last-child{font-variant-numeric:tabular-nums;}

/* Primary CTA — the drawer's single strongest element. Uses the contrast-corrected
   fill so the label stays readable even when the brand colour is a pale pastel. */
.jw-mc-checkout{display:block;text-align:center;text-decoration:none;border-radius:12px;padding:15px;font-size:16px;font-weight:700;transition:background .15s,box-shadow .15s,transform .12s;}
.jw-mc-drawer a.jw-mc-checkout,
.jw-mc-drawer a.jw-mc-checkout:link,
.jw-mc-drawer a.jw-mc-checkout:visited,
.jw-mc-drawer a.jw-mc-checkout:focus{background:var(--jw-mc-cta)!important;color:var(--jw-mc-btn-text)!important;box-shadow:0 6px 18px var(--jw-mc-shadow)!important;}
.jw-mc-drawer a.jw-mc-checkout:hover{background:var(--jw-mc-cta-hover)!important;color:var(--jw-mc-btn-text)!important;transform:translateY(-1px);box-shadow:0 10px 24px var(--jw-mc-shadow)!important;}
.jw-mc-drawer a.jw-mc-checkout:active{transform:translateY(0);}

/* Secondary "view cart" — ghost button, visually subordinate to checkout. */
.jw-mc-view-cart{display:block;text-align:center;text-decoration:none;border-radius:12px;padding:12px;font-size:15px;font-weight:700;margin-bottom:10px;transition:background .15s,color .15s;}
.jw-mc-drawer a.jw-mc-view-cart,
.jw-mc-drawer a.jw-mc-view-cart:link,
.jw-mc-drawer a.jw-mc-view-cart:visited,
.jw-mc-drawer a.jw-mc-view-cart:focus{color:var(--jw-mc-cta)!important;background:transparent!important;box-shadow:inset 0 0 0 1.5px var(--jw-mc-btn)!important;}
.jw-mc-drawer a.jw-mc-view-cart:hover{color:var(--jw-mc-cta)!important;background:var(--jw-mc-tint-2)!important;}

/* --- Link colours inside the drawer (kill theme link/hover colours) --- */
.jw-mc-drawer a.jw-mc-name,
.jw-mc-drawer a.jw-mc-name:link,
.jw-mc-drawer a.jw-mc-name:visited{color:var(--jw-mc-ink)!important;text-decoration:none;}
.jw-mc-drawer a.jw-mc-name:hover,.jw-mc-drawer a.jw-mc-name:focus{color:var(--jw-mc-cta)!important;text-decoration:underline;text-underline-offset:2px;}
.jw-mc-drawer a.jw-mc-chip,
.jw-mc-drawer a.jw-mc-chip:link,
.jw-mc-drawer a.jw-mc-chip:visited,
.jw-mc-drawer a.jw-mc-chip:hover,
.jw-mc-drawer a.jw-mc-chip:focus{color:var(--jw-chip-fg,#fff)!important;text-decoration:none!important;cursor:pointer;}
.jw-mc-drawer a.jw-mc-chip:hover{transform:translateY(-1px);opacity:.92;}

/* --- Focus. The old sheet removed every outline, which left keyboard users with
       no visible position. The ring is an outline rather than a box-shadow so it
       can't collide with the inset shadows several controls use as their border,
       and focus-visible keeps it off mouse clicks. --- */
.jw-mc-drawer :focus{outline:none;}
.jw-mc-drawer .jw-mc-qty button:focus-visible,
.jw-mc-drawer button.jw-mc-x:focus-visible,
.jw-mc-drawer button.jw-mc-remove:focus-visible,
.jw-mc-drawer button.jw-mc-coupon-toggle:focus-visible,
.jw-mc-drawer button.jw-mc-coupon-apply:focus-visible,
.jw-mc-drawer .jw-mc-coupons .jw-mc-rmcoupon:focus-visible,
.jw-mc-drawer a.jw-mc-checkout:focus-visible,
.jw-mc-drawer a.jw-mc-view-cart:focus-visible,
.jw-mc-drawer a.jw-mc-name:focus-visible,
.jw-mc-drawer a.jw-mc-chip:focus-visible,
.jw-mc-open.jw-mc-shortcode:focus-visible,
.jw-mc-toggle:focus-visible{outline:2px solid var(--jw-mc-cta)!important;outline-offset:2px!important;}

/* --- Floating toggle --- */
.jw-mc-toggle{position:fixed!important;bottom:22px;right:22px;z-index:2147481000;width:56px!important;height:56px!important;border-radius:50%!important;cursor:pointer;display:flex!important;align-items:center;justify-content:center;background:var(--jw-mc-cta)!important;color:var(--jw-mc-btn-text)!important;box-shadow:0 8px 24px var(--jw-mc-shadow)!important;transition:transform .15s,box-shadow .15s;}
.jw-mc-toggle:hover,.jw-mc-toggle:focus{transform:translateY(-2px);background:var(--jw-mc-cta-hover)!important;color:var(--jw-mc-btn-text)!important;box-shadow:0 12px 30px var(--jw-mc-shadow)!important;}

/* --- Icon + count badge (toggle & shortcode). The badge always uses the
       contrast-corrected fill: a two-digit count on a pastel is unreadable. --- */
.jw-mc-ico{position:relative;display:inline-flex;line-height:0;}
.jw-mc-ico .jw-mc-svg{display:block;}
.jw-mc-ico .jw-mc-count{position:absolute;top:-8px;right:-10px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--jw-mc-cta);color:var(--jw-mc-btn-text);font-size:11px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff;box-sizing:border-box;}
.jw-mc-toggle .jw-mc-count{position:absolute;top:-2px;right:-2px;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:var(--jw-mc-btn-text);color:var(--jw-mc-cta);font-size:11px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--jw-mc-cta);box-sizing:border-box;}

/* --- Shortcode trigger [jett_woo_minicart] — icon-only, transparent, theme-proof --- */
.jw-mc-open.jw-mc-shortcode,
.jw-mc-open.jw-mc-shortcode:hover,
.jw-mc-open.jw-mc-shortcode:focus{position:relative;display:inline-flex!important;align-items:center;justify-content:center;gap:8px;min-width:44px!important;min-height:44px!important;padding:6px!important;cursor:pointer;line-height:0!important;background:transparent!important;color:var(--jw-mc-btn)!important;transition:opacity .15s;}
.jw-mc-open.jw-mc-shortcode:hover{opacity:.7;}
.jw-mc-shortcode .jw-mc-open-text{font-weight:600;font-size:15px;line-height:1;color:var(--jw-mc-btn);}
/* Text-only variant (icon="none") shows an inline count pill. */
.jw-mc-shortcode>.jw-mc-count{min-width:18px;height:18px;border-radius:99px;background:var(--jw-mc-cta);color:var(--jw-mc-btn-text);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;line-height:1;}

@media (prefers-reduced-motion:reduce){
	.jw-mc-drawer,.jw-mc-overlay,.jw-mc-ship-bar>span,.jw-mc-coupon-collapse{transition-duration:.01ms!important;}
	.jw-mc-ship-bar>span::after{animation:none;}
	.jw-mc-drawer a.jw-mc-checkout:hover,.jw-mc-drawer a.jw-mc-chip:hover,.jw-mc-toggle:hover{transform:none;}
}

/* --- AJAX add-to-cart (opt-in) ---
       The button is whatever the theme/builder rendered, so we only dim it and
       lock it while the request is in flight — `loading` is added alongside, and
       most themes already draw their own spinner from that. --- */
.jw-mc-adding{opacity:.6!important;pointer-events:none!important;}

/* Without a page reload there is no WooCommerce notice area left to speak in, so
   a refusal ("out of stock", "choose product options") is shown here instead.
   It sits on <body>, not in the drawer, because the drawer may stay shut. */
.jw-mc-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,14px);z-index:2147482000;max-width:min(92vw,420px);padding:12px 18px;border-radius:10px;background:var(--jw-mc-ink,#111111);color:#fff;font-size:14px;font-weight:500;line-height:1.45;text-align:center;box-shadow:0 10px 30px var(--jw-mc-shadow,rgba(0,0,0,.22));opacity:0;transition:opacity .22s ease,transform .22s ease;pointer-events:none;}
.jw-mc-toast.is-in{opacity:1;transform:translate(-50%,0);}

@media (prefers-reduced-motion:reduce){
	.jw-mc-toast{transition-duration:.01ms!important;}
}
