:root{
  --rosa:#e8368d; --rosa-escuro:#c72a77; --roxo:#7c3aed;
  --lilas:#a78bfa; --creme:#fff8f3; --escuro:#3b2344;
}
body{ background:var(--creme); font-family:'Nunito',system-ui,sans-serif; color:#4a3555; }
h1,h2,h3,h4,h5,h6,.navbar-brand,.fw-brand{ font-family:'Baloo 2','Nunito',sans-serif; }

/* Navbar */
.navbar-loja{ background:linear-gradient(90deg,var(--rosa),var(--roxo)); box-shadow:0 4px 20px rgba(124,58,237,.25); }
.navbar-loja .nav-link{ color:rgba(255,255,255,.85); font-weight:600; border-radius:50rem; padding:.4rem .9rem !important; }
.navbar-loja .nav-link:hover{ color:#fff; background:rgba(255,255,255,.15); }

/* Botões */
.btn-rosa{ background:var(--rosa); border:0; color:#fff; }
.btn-rosa:hover{ background:var(--rosa-escuro); color:#fff; }
.btn-primary{ --bs-btn-bg:var(--rosa); --bs-btn-border-color:var(--rosa);
  --bs-btn-hover-bg:var(--rosa-escuro); --bs-btn-hover-border-color:var(--rosa-escuro);
  --bs-btn-active-bg:#a8225f; --bs-btn-active-border-color:#a8225f; }

/* Hero */
.hero{ background:linear-gradient(120deg,var(--rosa) 0%,var(--roxo) 100%); position:relative; overflow:hidden; }
.hero::after{ content:'🍨'; position:absolute; right:20px; bottom:-16px; font-size:110px; opacity:.18; transform:rotate(-12deg); }

/* Cards */
.card-produto{ border:0; border-radius:22px; overflow:hidden; background:#fff;
  box-shadow:0 10px 26px rgba(124,58,237,.10); transition:transform .18s, box-shadow .18s; }
.card-produto:hover{ transform:translateY(-5px); box-shadow:0 16px 34px rgba(124,58,237,.18); }
.card-produto .card-img-top{ aspect-ratio:1/1; object-fit:cover; }

.badge-peso{ display:inline-block; background:#f4ecff; color:#7c3aed; font-weight:700;
  font-size:.72rem; padding:.3rem .7rem; border-radius:50rem; }

.card-soft{ border:0; border-radius:18px; box-shadow:0 6px 18px rgba(124,58,237,.08); }
.card-soft .card-header{ background:#faf5ff; border-bottom:1px solid #f0e6fb;
  border-radius:18px 18px 0 0 !important; font-weight:700; color:#5b21b6; }

/* Adicionais */
.adicional-item{ display:flex; align-items:center; gap:.6rem; padding:.55rem .75rem;
  border:1.5px solid #f0e6fb; border-radius:14px; margin-bottom:.5rem; cursor:pointer; background:#fff; }
.adicional-item:hover{ border-color:var(--lilas); }
.adicional-item input{ width:18px; height:18px; accent-color:var(--rosa); flex-shrink:0; }

/* Timeline do pedido */
.timeline{ display:flex; margin:1.5rem 0; overflow-x:auto; padding:.5rem 0; }
.tl-step{ flex:1; min-width:108px; text-align:center; position:relative; }
.tl-step::before{ content:''; position:absolute; top:17px; left:-50%; width:100%; height:4px; background:#eee2f5; }
.tl-step:first-child::before{ display:none; }
.tl-bola{ width:38px; height:38px; border-radius:50%; background:#eee2f5; color:#b9a6c9;
  display:flex; align-items:center; justify-content:center; margin:0 auto .35rem; position:relative; z-index:1; }
.tl-label{ font-size:.7rem; font-weight:700; color:#b9a6c9; }
.tl-step.ativo .tl-bola{ background:var(--cor); color:#fff; box-shadow:0 6px 14px rgba(0,0,0,.18); }
.tl-step.ativo .tl-label{ color:var(--cor); }

.badge-status{ display:inline-flex; align-items:center; gap:.35rem; color:#fff; font-weight:700;
  padding:.45rem .9rem; border-radius:50rem; font-size:.85rem; }
.alert-cancelado{ background:#fef2f2; border:1.5px solid #fecaca; color:#b91c1c;
  font-weight:700; padding:1rem 1.25rem; border-radius:16px; }

/* Footer / WhatsApp */
.footer-loja{ background:linear-gradient(120deg,#2d1b3d,#3b2344); color:#e9d8f1; }
.footer-loja a{ color:#f5c0dd; text-decoration:none; }
.botao-whatsapp-flutuante{ position:fixed; right:18px; bottom:18px; z-index:1040; width:56px; height:56px;
  border-radius:50%; background:#25d366; color:#fff; font-size:28px; display:flex; align-items:center;
  justify-content:center; text-decoration:none; box-shadow:0 4px 14px rgba(0,0,0,.3); }
.botao-whatsapp-flutuante:hover{ background:#1da851; color:#fff; }
.btn-whatsapp{ background:#25d366; color:#fff; border:0; }
.btn-whatsapp:hover{ background:#1da851; color:#fff; }

.img-produto{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.thumb-galeria{ width:70px; height:70px; object-fit:cover; border-radius:12px; cursor:pointer; border:2px solid #f0e6fb; }
.thumb-galeria:hover{ border-color:var(--rosa); }

@media (max-width:767px){ .hero::after{ font-size:70px; } }