/* =====================================================================
   FPSS 2027 — LISTA DE COMPRAS (carrinho) — /css/carrinho.css
   Celular: barra fixa embaixo (toque abre a lista)
   Computador (>= 1100px): painel fixo à direita, sempre aberto
===================================================================== */
.fpss-cart{
  --cart-vermelho:#8b0000;
  --cart-verde:#1f7a1f;
  --cart-verde-esc:#165c16;
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:9000;
  font-family:'Roboto', Arial, sans-serif;
  color:#1f2937;
  pointer-events:none;
}
.fpss-cart.vazio{ display:none; }
.fpss-cart > *{ pointer-events:auto; }

.fpss-cart-barra{
  width:100%;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:var(--cart-verde);
  color:#fff;
  border:0;
  cursor:pointer;
  font:inherit;
  text-align:left;
  box-shadow:0 -6px 20px rgba(0,0,0,.18);
}
.fpss-cart-barra-icone{ font-size:22px; }
.fpss-cart-barra-texto{ display:flex; flex-direction:column; line-height:1.2; flex:1; }
.fpss-cart-barra-texto strong{ font-size:15px; }
.fpss-cart-barra-texto span{ font-size:14px; opacity:.95; }
.fpss-cart-barra-ver{
  background:#fff; color:var(--cart-verde);
  font-weight:800; font-size:13px;
  padding:8px 12px; border-radius:999px; white-space:nowrap;
}

.fpss-cart-corpo{
  display:none;
  background:#fff;
  max-height:70vh;
  overflow:auto;
  padding:14px 16px calc(16px + env(safe-area-inset-bottom));
  border-top:4px solid var(--cart-vermelho);
  box-shadow:0 -10px 30px rgba(0,0,0,.25);
  border-radius:16px 16px 0 0;
}
.fpss-cart.aberto .fpss-cart-corpo{ display:block; }
.fpss-cart.aberto .fpss-cart-barra{ display:none; }

.fpss-cart-topo{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.fpss-cart-topo h3{ margin:0; font-size:17px; color:var(--cart-vermelho); font-family:'Merriweather', Georgia, serif; }
.fpss-cart-fechar{ border:0; background:#f1f1f1; border-radius:999px; width:34px; height:34px; cursor:pointer; font-size:14px; }

.fpss-cart-lista{ list-style:none; margin:0; padding:0; }
.fpss-cart-item{
  display:grid;
  grid-template-columns:48px 1fr auto;
  gap:10px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid #eee;
}
.fpss-cart-item img, .fpss-cart-sem-img{
  width:48px; height:48px; border-radius:10px; object-fit:cover; background:#f5f5f5;
  display:flex; align-items:center; justify-content:center; font-size:22px;
}
.fpss-cart-info{ display:flex; flex-direction:column; min-width:0; }
.fpss-cart-info strong{ font-size:14px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fpss-cart-info span{ font-size:12.5px; color:#555; }

.fpss-cart-qtd, .fpss-qtd-card{
  display:inline-flex; align-items:center; gap:6px;
}
.fpss-cart-qtd button, .fpss-qtd-card button{
  width:34px; height:34px; border-radius:50%;
  border:2px solid var(--cart-verde, #1f7a1f);
  background:#fff; color:var(--cart-verde, #1f7a1f);
  font-size:20px; font-weight:800; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.fpss-cart-qtd span{ min-width:22px; text-align:center; font-weight:800; }

.fpss-cart-rodape{ padding-top:12px; }
.fpss-cart-total{ display:flex; justify-content:space-between; align-items:center; font-size:18px; margin-bottom:10px; }
.fpss-cart-total strong{ color:var(--cart-verde); font-size:22px; }
.fpss-cart-finalizar{
  display:block; text-align:center; text-decoration:none;
  background:var(--cart-verde); color:#fff !important;
  padding:14px; border-radius:10px; font-weight:800; font-size:16px;
}
.fpss-cart-finalizar:hover{ background:var(--cart-verde-esc); }
.fpss-cart-limpar{
  display:block; margin:10px auto 0; background:none; border:0;
  color:#888; text-decoration:underline; cursor:pointer; font-size:13px;
}

/* espaço no fim da página pra barra não cobrir o rodapé */
body.fpss-cart-ativo{ padding-bottom:76px; }

/* ---------- computador: painel lateral sempre aberto ---------- */
@media (min-width:1100px){
  .fpss-cart{
    left:auto; right:18px; bottom:18px; top:auto;
    width:340px;
  }
  .fpss-cart-barra{ display:none !important; }
  .fpss-cart-corpo{
    display:block !important;
    border-radius:16px;
    max-height:calc(100vh - 140px);
  }
  .fpss-cart-fechar{ display:none; }
  body.fpss-cart-ativo{ padding-bottom:0; }
}

/* ---------- botões nos cards de produto da home ---------- */
.fpss-add-produto{
  width:100%;
  border:0;
  cursor:pointer;
}
.fpss-qtd-card{
  width:100%;
  justify-content:space-between;
  background:#eef7ee;
  border:2px solid #1f7a1f;
  border-radius:10px;
  padding:6px 10px;
}
.fpss-qtd-card span{ font-weight:800; color:#1f7a1f; font-size:15px; }
.fpss-qtd-card button{ background:#1f7a1f; color:#fff; border-color:#1f7a1f; }
.fpss-esgotado{
  width:100%; text-align:center; padding:12px; border-radius:10px;
  background:#e5e5e5; color:#777; font-weight:800; letter-spacing:.5px;
}
.fpss-selo-esgotado{
  position:absolute; top:12px; left:12px;
  background:#8b0000; color:#fff; font-weight:800; font-size:12px;
  padding:5px 10px; border-radius:999px; z-index:2;
}

/* aviso curto */
.fpss-cart-aviso{
  position:fixed; left:50%; bottom:96px; transform:translateX(-50%) translateY(20px);
  background:#1f2937; color:#fff; padding:10px 16px; border-radius:10px;
  font-size:14px; z-index:9500; opacity:0; pointer-events:none;
  transition:opacity .2s, transform .2s; max-width:90vw; text-align:center;
  font-family:'Roboto', Arial, sans-serif;
}
.fpss-cart-aviso.visivel{ opacity:1; transform:translateX(-50%) translateY(0); }

/* botões flutuantes do site (atendimento / voltar ao topo) não ficam
   embaixo da lista de compras */
@media (max-width:1099px){
  body.fpss-cart-ativo .btn-atendimento-fixo{ bottom:86px !important; }
  body.fpss-cart-ativo .btn-voltar-topo{ bottom:140px !important; }
  body.fpss-cart-ativo .fpss-cart-aviso{ bottom:150px; }
}
@media (min-width:1100px){
  body.fpss-cart-ativo .btn-atendimento-fixo,
  body.fpss-cart-ativo .btn-voltar-topo{ right:376px !important; }
}

/* card de produto: preço e botão quebram em duas linhas quando falta espaço */
.venda-box-rodape{ flex-wrap:wrap; gap:8px; }
[data-area-botao]{ flex:1 1 170px; }
.fpss-qtd-card span{ white-space:nowrap; font-size:14px; }
