/* Cart slideout — shared by homepage and shop pages */
body.cart-open{overflow:hidden}
.cart-veil{
  position:fixed; inset:0; z-index:80;
  background:rgba(12,11,10,.45); opacity:0; pointer-events:none;
  transition:opacity .22s var(--ease, cubic-bezier(.22,.72,.28,1));
}
.cart-veil.is-open{opacity:1; pointer-events:auto}
.cart-panel{
  position:fixed; top:0; right:0; z-index:90;
  width:min(420px,100%); height:100%;
  background:var(--surface, #fff); color:var(--ink, #353027);
  border-left:2px solid var(--line, rgba(53,48,39,.14));
  transform:translateX(105%);
  transition:transform .28s var(--ease, cubic-bezier(.22,.72,.28,1));
  display:flex; flex-direction:column; padding:22px 20px 24px;
}
.cart-panel.is-open{transform:translateX(0)}
.cart-panel-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px}
.cart-panel-title{
  display:inline-flex; align-items:center; gap:10px;
  font-size:22px; margin:0; font-weight:800;
}
.cart-panel-ic-wrap{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; flex:0 0 44px;
  border-radius:14px; background:var(--surface-3, #F3EFE4);
  overflow:hidden;
}
.cart-panel-ic{width:28px; height:28px; object-fit:contain; display:block; flex:0 0 auto}
.cart-close{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; padding:0; border-radius:999px; border:2px solid var(--line, rgba(53,48,39,.14));
  background:transparent; cursor:pointer; color:inherit; line-height:0;
}
.cart-close svg{width:14px; height:14px; display:block}
.cart-empty{margin:24px 0; color:var(--text-soft, #5C5348)}
.cart-lines{list-style:none; margin:0; padding:0; overflow:auto; flex:1; display:flex; flex-direction:column; gap:16px}
.cart-line{display:grid; grid-template-columns:72px 1fr; gap:12px}
.cart-line-media{
  display:block; aspect-ratio:1; border-radius:12px; overflow:hidden;
  background:#fff; border:1px solid var(--line, rgba(53,48,39,.14));
}
.cart-line-media img{width:100%; height:100%; object-fit:contain; padding:6px; display:block}
.cart-line-name{font-weight:800; font-size:14px; text-decoration:none; display:block; line-height:1.3; color:inherit}
.cart-line-price{margin:4px 0 8px; font-size:13px; color:var(--text-soft, #5C5348)}
.cart-line-row{display:flex; flex-wrap:wrap; gap:10px; align-items:center}
.cart-remove{border:0; background:transparent; color:var(--text-faint, #7A7166); font-size:12px; font-weight:700; text-decoration:underline; padding:0; cursor:pointer}
.cart-footer{margin-top:18px; padding-top:16px; border-top:2px solid var(--line, rgba(53,48,39,.14)); display:flex; flex-direction:column; gap:10px}
.cart-subtotal{display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; align-items:baseline; font-size:15px}
.cart-subtotal strong{font-size:18px}
.cart-subtotal small{width:100%; color:var(--text-faint, #7A7166); font-size:12px}
.cart-checkout, .cart-continue{width:100%}
.cart-panel .qty{
  display:inline-grid; grid-template-columns:40px 48px 40px; align-items:stretch;
  height:40px; box-sizing:border-box;
  border:2px solid var(--line, rgba(53,48,39,.14)); border-radius:999px;
  overflow:hidden; background:var(--surface, #fff);
}
.cart-panel .qty-btn{
  margin:0; padding:0; border:0; background:transparent; cursor:pointer; color:inherit;
  display:grid; place-items:center;
}
.cart-panel .qty-input{
  width:100%; height:100%; box-sizing:border-box; margin:0; padding:0;
  border:0; border-left:1px solid var(--line, rgba(53,48,39,.14)); border-right:1px solid var(--line, rgba(53,48,39,.14));
  text-align:center; background:transparent; color:inherit; font-weight:700; font:inherit;
  font-size:14px; line-height:36px;
  appearance:textfield; -moz-appearance:textfield;
}
.cart-panel .qty-input::-webkit-outer-spin-button,
.cart-panel .qty-input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0}
