.loja-hero h1{
  font-size: 2rem;
  margin-bottom: 6px;
}

.loja-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin: 22px 0 26px;
}

.loja-filtros{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.filtro-btn{
  background: rgba(255,255,255,.04);
  color: var(--branco);
  border: 1px solid var(--borda);
  border-radius: 999px;
  padding: 10px 16px;
  cursor: pointer;
  transition: .2s;
  font-weight: 700;
}

.filtro-btn:hover,
.filtro-btn.ativo{
  background: rgba(139,30,30,.18);
  border-color: rgba(139,30,30,.35);
}

.cart-trigger{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background: rgba(255,255,255,.04);
  color: var(--branco);
  border: 1px solid var(--borda);
  border-radius: 14px;
  padding: 11px 16px;
  cursor: pointer;
  font-weight: 800;
}

.cart-count{
  min-width: 24px;
  height: 24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background: var(--vermelho);
  color: var(--branco);
  font-size:.85rem;
  padding: 0 6px;
}

.product-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.product-card{
  background: rgba(255,255,255,.03);
  border: 1px solid var(--borda);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: var(--shadow);
  display:flex;
  flex-direction:column;
}

.product-image{
  aspect-ratio: 4 / 5;
  background: rgba(255,255,255,.02);
  overflow:hidden;
}

.product-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.product-body{
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1;
}

.product-type{
  display:inline-flex;
  align-self:flex-start;
  padding: 6px 10px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:800;
  background: rgba(139,30,30,.18);
  border:1px solid rgba(139,30,30,.35);
}

.product-title{
  font-size:1.12rem;
  line-height:1.25;
}

.product-desc{
  color: var(--cinza);
  line-height:1.65;
  font-size:.96rem;
}

.product-price{
  font-size:1.4rem;
  font-weight:900;
  margin-top: 6px;
}

.product-actions{
  display:flex;
  gap:10px;
  margin-top:auto;
  padding-top:8px;
}

.product-actions .btn,
.product-actions .btn-ghost{
  flex:1;
  cursor:pointer;
}

.product-actions .btn-ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 18px;
  border-radius:12px;
  font-weight:800;
  border:1px solid var(--borda);
  background: transparent;
  color:var(--branco);
}

/* Drawer */
.cart-overlay{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.45);
  opacity:0;
  visibility:hidden;
  transition:.2s;
  z-index:30;
}

.cart-overlay.open{
  opacity:1;
  visibility:visible;
}

.cart-drawer{
  position:fixed;
  top:0;
  right:0;
  width:min(420px, 100%);
  height:100vh;
  background:#121218;
  border-left:1px solid var(--borda);
  transform:translateX(100%);
  transition:.25s ease;
  z-index:40;
  display:flex;
  flex-direction:column;
}

.cart-drawer.open{
  transform:translateX(0);
}

.cart-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 18px 14px;
  border-bottom:1px solid var(--borda);
}

.cart-header h2{
  font-size:1.2rem;
}

.cart-close{
  background:transparent;
  border:none;
  color:var(--branco);
  font-size:1.8rem;
  cursor:pointer;
  line-height:1;
}

.cart-items{
  flex:1;
  overflow:auto;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.cart-item{
  display:grid;
  grid-template-columns: 72px 1fr;
  gap:12px;
  background: rgba(255,255,255,.03);
  border:1px solid var(--borda);
  border-radius:16px;
  padding:12px;
}

.cart-item img{
  width:72px;
  height:92px;
  object-fit:cover;
  border-radius:10px;
}

.cart-item-info{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.cart-item-title{
  font-size:.98rem;
  font-weight:800;
  line-height:1.25;
}

.cart-item-price{
  font-weight:900;
}

.cart-item-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.qty-btn,
.remove-btn{
  background: rgba(255,255,255,.04);
  color: var(--branco);
  border:1px solid var(--borda);
  border-radius:10px;
  padding:7px 10px;
  cursor:pointer;
}

.qty-value{
  min-width:20px;
  text-align:center;
  font-weight:800;
}

.cart-empty{
  color:var(--cinza);
  text-align:center;
  margin-top:30px;
  line-height:1.7;
}

.cart-footer{
  border-top:1px solid var(--borda);
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.cart-total-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:1.05rem;
}

.checkout-btn{
  width:100%;
}

.cart-note{
  color:var(--cinza);
  font-size:.88rem;
  line-height:1.5;
}

/* Responsivo */
@media (max-width: 980px){
  .product-grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px){
  .product-grid{
    grid-template-columns: 1fr;
  }

  .loja-topbar{
    align-items:stretch;
  }

  .cart-trigger{
    justify-content:center;
  }
}