.cart-trigger{
  position:relative;
  width:44px;
  height:44px;
  border:1px solid rgba(75,92,58,.25);
  border-radius:50%;
  background:var(--white);
  color:var(--olive);
  display:grid;
  place-items:center;
  transition:.25s;
  flex:0 0 auto;
}
.cart-trigger:hover{transform:translateY(-2px);border-color:var(--gold);color:var(--gold)}
.cart-trigger svg{width:21px;height:21px}
.cart-count{
  position:absolute;
  top:-5px;
  right:-5px;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:var(--terracotta);
  color:white;
  font-size:.68rem;
  font-weight:800;
  border:2px solid var(--white);
}
.cart-backdrop{
  position:fixed;
  inset:0;
  z-index:90;
  background:rgba(38,34,29,.38);
  backdrop-filter:blur(3px);
  opacity:0;
  visibility:hidden;
  transition:.3s;
}
.cart-backdrop.open{opacity:1;visibility:visible}
.cart-drawer{
  position:fixed;
  z-index:100;
  top:0;
  right:0;
  width:min(440px,100%);
  height:100dvh;
  background:var(--white);
  box-shadow:-24px 0 80px rgba(58,52,47,.18);
  transform:translateX(105%);
  transition:transform .35s ease;
  display:grid;
  grid-template-rows:auto 1fr auto;
}
.cart-drawer.open{transform:translateX(0)}
.cart-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:24px;
  border-bottom:1px solid #eadfce;
}
.cart-header h2{
  font-size:2rem;
  margin:0;
  color:var(--olive);
}
.cart-close{
  width:38px;height:38px;border:0;border-radius:50%;
  background:var(--cream);font-size:1.45rem;color:var(--ink)
}
.cart-items{padding:20px 24px;overflow:auto}
.cart-empty{
  min-height:320px;
  display:grid;
  place-items:center;
  text-align:center;
  color:var(--muted);
}
.cart-empty span{display:block;font-size:3rem;margin-bottom:8px}
.cart-item{
  display:grid;
  grid-template-columns:72px 1fr auto;
  gap:14px;
  padding:16px 0;
  border-bottom:1px solid #eadfce;
}
.cart-thumb{
  width:72px;height:88px;border-radius:10px;
  background:linear-gradient(#d9b57e,#cda365);
  position:relative;
}
.cart-thumb:before{
  content:"ANIMA";
  position:absolute;
  top:10px;left:50%;transform:translateX(-50%);
  width:38px;height:38px;border-radius:50%;
  background:white;border:1px solid var(--gold);
  display:grid;place-items:center;
  font-size:.45rem;color:var(--gold)
}
.cart-item h3{margin:0 0 4px;font-size:.98rem;color:var(--olive)}
.cart-price{font-size:.82rem;color:var(--muted)}
.cart-quantity{
  display:flex;align-items:center;gap:9px;margin-top:10px
}
.cart-quantity button{
  width:28px;height:28px;border-radius:50%;
  border:1px solid #d7c7ae;background:transparent;color:var(--olive)
}
.cart-remove{
  border:0;background:transparent;color:var(--terracotta);font-size:1.1rem
}
.cart-footer{
  padding:22px 24px 28px;
  border-top:1px solid #eadfce;
  background:#fffaf2;
}
.cart-total{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:16px;font-weight:800;color:var(--olive)
}
.cart-total small{display:block;font-weight:500;color:var(--muted)}
.cart-checkout{width:100%;border:0}
.cart-note{font-size:.72rem;color:var(--muted);text-align:center;margin:10px 0 0}
.add-cart-btn{
  margin-top:12px;
  width:100%;
  border-radius:999px;
  border:1px solid var(--olive);
  background:transparent;
  color:var(--olive);
  padding:11px 16px;
  font-weight:800;
  transition:.25s;
}
.add-cart-btn:hover{background:var(--olive);color:white;transform:translateY(-2px)}
.product-detail .add-cart-btn{
  width:auto;
  margin-left:10px;
  padding:14px 24px;
}
.cart-toast{
  position:fixed;
  left:50%;
  bottom:24px;
  z-index:120;
  transform:translate(-50%,20px);
  opacity:0;
  background:var(--olive-dark);
  color:white;
  padding:12px 18px;
  border-radius:999px;
  box-shadow:var(--shadow);
  transition:.3s;
  pointer-events:none;
}
.cart-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){
  .header-inner{gap:12px}
  .cart-trigger{margin-left:auto}
}
@media(max-width:560px){
  .cart-drawer{width:100%}
  .product-detail .add-cart-btn{width:100%;margin:12px 0 0}
}
