/**
 * Elysian Level 27 — Global Bag Drawer
 * Small global commerce layer. Full cart/checkout/order/tracking presentation
 * remains route-scoped in level27-funnel-hardening.css.
 */
body.elysian-funnel-v27{
  --l27-ink:var(--elysian-color-text,#111);
  --l27-muted:#6f6f6a;
  --l27-soft:#f7f7f4;
  --l27-line:#e4e4de;
  --l27-line-strong:#cecec7;
  --l27-panel:#fff;
}

body.elysian-funnel-v27 .elysian-l27-bag-shell :where(button,a):focus-visible{
  outline:2px solid var(--l27-ink);
  outline-offset:3px;
}

/* --------------------------------------------------------------------------
   Bag drawer — native Woo mini-cart / fragments only
   -------------------------------------------------------------------------- */
.elysian-l27-bag-shell[hidden]{display:none!important;}
.elysian-l27-bag-shell{
  position:fixed;
  inset:0;
  z-index:10040;
}
.elysian-l27-bag-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:rgba(0,0,0,.38);
  cursor:pointer;
}
.elysian-l27-bag-drawer{
  position:absolute;
  top:0;
  right:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  width:min(440px,100vw);
  height:100%;
  max-height:100dvh;
  background:#fff;
  box-shadow:-24px 0 70px rgba(0,0,0,.17);
  transform:translateX(0);
  overflow:hidden;
}
.elysian-l27-bag-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:82px;
  padding:18px 20px;
  border-bottom:1px solid var(--l27-line);
}
.elysian-l27-bag-head .eyebrow{margin:0 0 3px;font-size:8px;letter-spacing:.13em;}
.elysian-l27-bag-head h2{margin:0;font:700 25px/1.05 var(--serif,Georgia,serif);}
.elysian-l27-bag-head>div:last-child{display:flex;align-items:center;gap:8px;}
.elysian-l27-bag-head button[data-elysian-l27-bag-close]{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:50%;
  background:var(--l27-soft);
  color:var(--l27-ink);
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.elysian-l27-bag-count{white-space:nowrap;color:var(--l27-muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.elysian-l27-bag-body{
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:18px 20px;
}
.elysian-l27-bag-body .widget_shopping_cart_content{height:100%;}
.elysian-l27-bag-body .woocommerce-mini-cart{
  display:grid;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}
.elysian-l27-bag-body .woocommerce-mini-cart-item{
  position:relative;
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:13px;
  min-height:100px;
  padding:14px 34px 14px 0;
  border-bottom:1px solid var(--l27-line);
}
.elysian-l27-bag-body .woocommerce-mini-cart-item>a:not(.remove){
  color:var(--l27-ink);
  font-size:12px;
  font-weight:700;
  line-height:1.4;
  text-decoration:none;
}
.elysian-l27-bag-body .woocommerce-mini-cart-item img{
  float:none;
  width:76px;
  height:76px;
  margin:0 13px 0 0;
  border-radius:8px;
  object-fit:cover;
  aspect-ratio:1;
}
.elysian-l27-bag-body .woocommerce-mini-cart-item .remove{
  position:absolute;
  top:12px;
  right:0;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:50%;
  color:var(--l27-muted)!important;
  font-size:20px!important;
  text-decoration:none;
}
.elysian-l27-bag-body .woocommerce-mini-cart-item .remove:hover{background:var(--l27-soft);color:var(--l27-ink)!important;}
.elysian-l27-bag-body .woocommerce-mini-cart-item .quantity{display:block;margin-top:7px;color:var(--l27-muted);font-size:10px;}
.elysian-l27-bag-body .woocommerce-mini-cart-item .variation{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 5px;margin:6px 0 0;font-size:9px;color:var(--l27-muted);}
.elysian-l27-bag-body .woocommerce-mini-cart-item .variation dt,
.elysian-l27-bag-body .woocommerce-mini-cart-item .variation dd{float:none;margin:0;padding:0;}
.elysian-l27-bag-body .woocommerce-mini-cart__empty-message{margin:30px auto;text-align:center;color:var(--l27-muted);font-size:12px;}
.elysian-l27-bag-foot{
  padding:16px 20px calc(16px + env(safe-area-inset-bottom));
  border-top:1px solid var(--l27-line);
  background:#fff;
}
.elysian-l27-bag-total-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:13px;font-size:11px;}
.elysian-l27-bag-total{font-size:16px;color:var(--l27-ink);}
.elysian-l27-bag-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:8px;}
.elysian-l27-bag-actions a{
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 13px;
  border:1px solid var(--l27-ink);
  border-radius:999px;
  color:var(--l27-ink);
  background:#fff;
  font-size:9.5px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
  text-decoration:none;
}
.elysian-l27-bag-actions a.alt{background:var(--l27-ink);color:#fff;}
.elysian-l27-bag-foot>p{margin:0 0 12px;color:var(--l27-muted);font-size:9px;line-height:1.45;}
.elysian-l27-bag-continue{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin-top:7px;padding:0;border:0;background:transparent;color:var(--l27-muted);font-size:9px;font-weight:750;text-decoration:underline;text-underline-offset:4px;cursor:pointer;}
.elysian-l27-bag-shell.is-empty .elysian-l27-bag-total-row,.elysian-l27-bag-shell.is-empty .elysian-l27-bag-foot>p,.elysian-l27-bag-shell.is-empty .elysian-l27-bag-actions{display:none;}
.elysian-l27-bag-shell.is-empty .elysian-l27-bag-continue{margin-top:0;}
body.elysian-l27-bag-open{overflow:hidden;}

@media (prefers-reduced-motion:reduce){
  .elysian-l27-bag-shell *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}
}
