body.cart-open { overflow:hidden; }

.cart-nav-trigger {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0;
  padding:7px 0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  cursor:pointer;
}

.cart-nav-trigger::after {
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:2px;
  height:1px;
  background:currentColor;
  transition:right .25s ease;
}

.cart-nav-trigger:hover::after,
.cart-nav-trigger:focus-visible::after,
.cart-nav-trigger[aria-expanded="true"]::after { right:0; }

.cart-count {
  min-width:18px;
  height:18px;
  padding:0 5px;
  display:inline-grid;
  place-items:center;
  border:1px solid currentColor;
  border-radius:99px;
  font-size:9px;
  line-height:1;
}

.cart-count[data-empty] { opacity:.55; }

.cart-nav-trigger--floating {
  position:fixed;
  z-index:80;
  top:18px;
  right:20px;
  padding:10px 13px;
  background:#fff;
  color:#0b0b0b;
  border:1px solid #dcdfe2;
}

[data-cart-add] {
  width:100%;
  margin-top:24px;
  padding:14px 22px;
  border:1px solid #0b0b0b;
  background:#0b0b0b;
  color:#fff;
  font:inherit;
  font-size:12px;
  font-weight:500;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .2s ease,color .2s ease;
}

[data-cart-add]:hover,
[data-cart-add]:focus-visible { background:#fff; color:#0b0b0b; }
[data-cart-add][data-added] { background:#eef2eb; color:#294221; }

.cart-shell { position:fixed; inset:0; z-index:200; }
.cart-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(11,11,11,.42); opacity:0; cursor:default; transition:opacity .25s ease; }
.cart-shell.is-open .cart-backdrop { opacity:1; }

.cart-drawer {
  position:absolute;
  top:0;
  right:0;
  width:min(430px,100%);
  height:100%;
  display:grid;
  grid-template-rows:auto 1fr auto;
  background:#fff;
  color:#0b0b0b;
  box-shadow:-22px 0 70px rgba(0,0,0,.16);
  transform:translateX(100%);
  transition:transform .25s ease;
  outline:0;
}

.cart-shell.is-open .cart-drawer { transform:translateX(0); }

.cart-drawer__header {
  min-height:88px;
  padding:22px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-bottom:1px solid #dcdfe2;
}

.cart-drawer__eyebrow { margin:0 0 4px; color:#8c929d; font-size:9px; letter-spacing:.18em; text-transform:uppercase; }
.cart-drawer__header h2 { margin:0; font-size:27px; font-weight:300; letter-spacing:-.045em; }
.cart-close,.cart-clear,.cart-remove { border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.cart-close { padding:7px 0; border-bottom:1px solid #0b0b0b; font-size:10px; letter-spacing:.04em; text-transform:uppercase; }

.cart-drawer__content { min-height:0; overflow:auto; padding:0 24px; }
.cart-empty { max-width:30ch; margin:0 auto; padding:76px 0; color:#8c929d; font-size:13px; font-weight:300; line-height:1.6; text-align:center; }
.cart-items { margin:0; padding:0; list-style:none; }
.cart-item { display:grid; grid-template-columns:112px 1fr; gap:16px; padding:20px 0; border-bottom:1px solid #dcdfe2; }
.cart-item__image { width:112px; height:72px; display:block; object-fit:contain; background:#f4f4f2; mix-blend-mode:multiply; }
.cart-item__image--empty { background:#f4f4f2; }
.cart-item__body { min-width:0; display:flex; flex-direction:column; }
.cart-item__name { align-self:flex-start; font-size:13px; font-weight:500; letter-spacing:-.02em; }
.cart-item__name:hover,.cart-item__name:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.cart-item__meta { margin:5px 0 13px; color:#8c929d; font-size:10px; line-height:1.45; }
.cart-item__actions { margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cart-quantity { display:grid; grid-template-columns:28px 30px 28px; height:30px; border:1px solid #dcdfe2; }
.cart-quantity button { border:0; background:#fff; color:#0b0b0b; font:inherit; font-size:14px; cursor:pointer; }
.cart-quantity button svg { width:14px; height:14px; display:block; margin:auto; }
.cart-quantity button:hover,.cart-quantity button:focus-visible { background:#f4f4f2; }
.cart-quantity span { display:grid; place-items:center; border-inline:1px solid #dcdfe2; font-size:11px; }
.cart-remove { padding:5px 0; color:#6d727a; font-size:10px; text-decoration:underline; text-underline-offset:3px; }

.cart-drawer__footer { padding:20px 24px 24px; border-top:1px solid #dcdfe2; }
.cart-drawer__footer p { margin:0 0 16px; color:#6d727a; font-size:11px; font-weight:300; line-height:1.55; }
.cart-clear { width:100%; padding:12px 16px; border:1px solid #0b0b0b; font-size:11px; letter-spacing:.03em; }
.cart-clear:hover,.cart-clear:focus-visible { background:#0b0b0b; color:#fff; }
.cart-clear:disabled { border-color:#dcdfe2; color:#a5a9af; cursor:not-allowed; }
.cart-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

@media (max-width:560px) {
  .cart-nav-trigger { gap:4px; }
  .cart-count { min-width:15px; height:15px; padding:0 4px; font-size:8px; }
  .cart-drawer__header { min-height:76px; padding:18px 18px; }
  .cart-drawer__content { padding:0 18px; }
  .cart-drawer__footer { padding:18px; }
  .cart-item { grid-template-columns:92px 1fr; gap:13px; }
  .cart-item__image { width:92px; height:66px; }
}

@media (prefers-reduced-motion:reduce) {
  .cart-backdrop,.cart-drawer,.cart-nav-trigger::after,[data-cart-add] { transition:none; }
}
