.carrinho-botao{
  position:relative; display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; color:var(--white); background:none; border:none; cursor:pointer;
}
.carrinho-botao svg{ width:21px; height:21px; }
.carrinho-botao:hover{ color:var(--mint); }
.carrinho-botao__contagem{
  position:absolute; top:2px; right:0; min-width:16px; height:16px; padding:0 4px;
  border-radius:999px; background:var(--gradiente-marca); color:var(--bg-0);
  font-family:var(--fonte-mono); font-size:0.62rem; font-weight:700;
  line-height:16px; text-align:center;
}

@keyframes carrinho-pulso{
  0%{ transform:scale(1); }
  35%{ transform:scale(1.25); }
  100%{ transform:scale(1); }
}
.carrinho-botao--pulso .carrinho-botao__contagem{ animation:carrinho-pulso 0.35s ease-out; }

.card-produto__adicionar{
  width:calc(100% - 40px); margin:0 20px 20px;
  padding:.7rem 1rem; border-radius:999px;
  background:transparent; border:1px solid var(--hair-strong); color:var(--white);
  font-family:var(--fonte-corpo); font-size:0.8rem; cursor:pointer;
  transition:border-color .25s ease, color .25s ease, background .25s ease;
}
.card-produto__adicionar:hover{ border-color:var(--pink); color:var(--pink); }

.carrinho-overlay{
  position:fixed; inset:0; z-index:49;
  background:rgba(8,8,13,0.65);
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.carrinho-overlay.esta-visivel{ opacity:1; pointer-events:auto; }

.carrinho-gaveta{
  position:fixed; top:0; right:0; bottom:0; z-index:51;
  width:min(420px, 100vw);
  background:var(--bg-1); color:var(--white);
  border-left:1px solid var(--hair);
  display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform .35s cubic-bezier(.4,0,.2,1);
  box-shadow:-16px 0 40px rgba(0,0,0,0.45);
}
.carrinho-gaveta.esta-aberta{ transform:translateX(0); }

.carrinho-gaveta__topo{
  display:flex; align-items:center; justify-content:space-between;
  padding:24px; border-bottom:1px solid var(--hair);
}
.carrinho-gaveta__topo h2{ font-family:var(--fonte-titulo); font-size:1.3rem; margin:0; font-weight:500; }
.carrinho-gaveta__fechar{
  width:36px; height:36px; font-size:1.5rem; line-height:1; color:var(--muted);
  background:none; border:none; cursor:pointer;
}
.carrinho-gaveta__fechar:hover{ color:var(--pink); }

.carrinho-gaveta__lista{
  flex:1; overflow-y:auto; padding:20px 24px;
  display:flex; flex-direction:column; gap:20px;
}
.carrinho-gaveta__vazio{ color:var(--muted); font-size:0.9rem; text-align:center; margin-top:32px; line-height:1.6; }

.carrinho-item{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  padding-bottom:18px; border-bottom:1px solid var(--hair);
}
.carrinho-item__nome{ font-weight:500; font-size:0.92rem; margin:0; }
.carrinho-item__detalhes{ color:var(--muted); font-size:0.78rem; margin:4px 0 0; text-transform:capitalize; }
.carrinho-item__preco{ color:var(--mint); font-weight:600; font-size:0.85rem; margin:4px 0 0; }

.carrinho-item__acoes{ display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex-shrink:0; }
.carrinho-item__qtd{
  display:flex; align-items:center; gap:8px;
  border:1px solid var(--hair-strong); border-radius:999px; padding:2px 8px;
}
.carrinho-item__qtd button{
  width:22px; height:22px; font-size:1rem; line-height:1;
  background:none; border:none; color:var(--white); cursor:pointer;
}
.carrinho-item__qtd button:hover{ color:var(--pink); }
.carrinho-item__qtd span{ min-width:1.2em; text-align:center; font-size:0.85rem; font-weight:600; }

.carrinho-item__remover{
  font-size:0.78rem; color:var(--muted); text-decoration:underline;
  background:none; border:none; cursor:pointer; padding:0;
}
.carrinho-item__remover:hover{ color:var(--pink); }

.carrinho-gaveta__rodape{
  padding:24px; border-top:1px solid var(--hair);
  display:flex; flex-direction:column; gap:14px;
}
.carrinho-gaveta__total{ display:flex; align-items:baseline; justify-content:space-between; font-size:1rem; }
.carrinho-gaveta__total strong{ font-family:var(--fonte-titulo); font-size:1.3rem; color:var(--mint); }
.carrinho-gaveta__finalizar{ width:100%; justify-content:center; }

.botao--texto{
  background:none; border:none; cursor:pointer;
  font-family:var(--fonte-corpo); color:var(--muted); font-size:0.78rem;
  align-self:center; text-decoration:underline;
}
.botao--texto:hover{ color:var(--pink); }

body.carrinho-aberto{ overflow:hidden; }

.produto-tamanhos--erro{
  outline:2px solid var(--pink); outline-offset:4px; border-radius:var(--raio-sm);
}

@media (max-width:480px){
  .carrinho-gaveta{ width:100vw; }
}
