:root{
  --smf-red:#EA1D2C;        /* vermelho iFood */
  --smf-red-dark:#c4121f;
  --smf-vermelho:#EA1D2C;
  --smf-verde:#2D6A4F;
  --smf-marrom:#8B5A2B;
  --smf-bege:#F1E8D8;
  --smf-bg:#f7f7f7;
  --smf-card:#ffffff;
  --smf-text:#3e3e3e;
  --smf-muted:#717171;
  --smf-border:#eee;
}
[data-bs-theme="dark"]{
  --smf-bg:#1b1713;
  --smf-card:#26211b;
  --smf-text:#f1e8d8;
  --smf-muted:#b8ab97;
  --smf-border:#3a322a;
}
*{ -webkit-tap-highlight-color:transparent; }
body{
  font-family:'Poppins',system-ui,sans-serif;
  background:var(--smf-bg);
  color:var(--smf-text);
}
a{ text-decoration:none; }

/* NAVBAR */
.smf-navbar{
  background:var(--smf-card);
  box-shadow:0 1px 0 var(--smf-border);
}
.smf-logo{font-size:1.5rem}
.navbar-brand{color:var(--smf-red)!important;font-weight:700}
.smf-navbar .nav-link{color:var(--smf-text)}
.smf-navbar .nav-link:hover{color:var(--smf-red)}

/* HERO (sem imagem externa — gradiente + textura) */
.smf-hero{
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.12), transparent 40%),
    radial-gradient(circle at 80% 0%, rgba(255,255,255,.10), transparent 35%),
    linear-gradient(135deg,#EA1D2C 0%,#b5121e 55%,#8B5A2B 100%);
  position:relative; overflow:hidden;
}
.smf-hero:after{
  content:"🍛🌶️🥥🐟🍲🍤🥘🍗";
  position:absolute; inset:0; font-size:2rem; line-height:3.4;
  letter-spacing:2.6rem; opacity:.06; transform:rotate(-12deg) scale(1.4);
  pointer-events:none; white-space:nowrap; overflow:hidden;
}
.smf-hero-logo{
  width:84px;height:84px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;font-size:2.6rem;
  margin:0 auto 1rem;box-shadow:0 8px 24px rgba(0,0,0,.2);
}

/* BUSCA estilo iFood */
.smf-search{max-width:560px;margin:1.2rem auto 0}
.smf-search .form-control{
  border:none;border-radius:30px;padding:.8rem 1.2rem;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}

/* CHIPS de categoria (scroll horizontal) */
.smf-chips{display:flex;gap:.5rem;overflow-x:auto;padding:.25rem;scrollbar-width:none}
.smf-chips::-webkit-scrollbar{display:none}
.smf-chip{
  flex:0 0 auto;background:var(--smf-card);border:1px solid var(--smf-border);
  border-radius:30px;padding:.45rem .9rem;color:var(--smf-text);font-size:.85rem;
  font-weight:500;white-space:nowrap;transition:.15s;
}
.smf-chip:hover,.smf-chip.active{background:var(--smf-red);color:#fff;border-color:var(--smf-red)}

/* PROMO */
.smf-promo-slide{
  min-height:84px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.05rem;text-align:center;padding:1rem 2.4rem;font-weight:500;
  line-height:1.35;
}
@media (max-width:480px){ .smf-promo-slide{ font-size:.9rem; padding:.85rem 2.4rem; } }

/* CARD produto (grid) */
.smf-card{
  background:var(--smf-card);color:var(--smf-text);border:1px solid var(--smf-border);
  border-radius:14px;transition:transform .15s,box-shadow .15s;overflow:hidden;
}
.smf-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,.10)}
.smf-tile{
  height:130px;background-size:cover;background-position:center;position:relative;
  display:flex;align-items:center;justify-content:center;
  background-color:#fff;
  background-image:linear-gradient(135deg,#fff0e6,#ffe2d1);
}
[data-bs-theme="dark"] .smf-tile{background-image:linear-gradient(135deg,#332a20,#3d3225)}
.smf-tile-emoji{font-size:3.4rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.12))}
.smf-tag{position:absolute;top:8px;left:8px;font-size:.7rem;font-weight:600;
  padding:.2rem .5rem;border-radius:20px;color:#fff}
.smf-tag-warn{background:#f0a500;color:#3e3e3e}
.smf-tag-green{background:var(--smf-verde)}
.smf-prod-nome{font-size:.95rem;font-weight:600;margin:0 0 .25rem}
.smf-prod-desc{font-size:.8rem;color:var(--smf-muted);margin:0 0 .5rem;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.smf-prod-preco{font-size:1.05rem;font-weight:700;color:var(--smf-verde)}
.smf-prod-tempo{color:var(--smf-muted);font-size:.75rem}
.smf-btn-add{
  background:var(--smf-red);color:#fff;border-radius:10px;font-weight:600;font-size:.85rem;
}
.smf-btn-add:hover{background:var(--smf-red-dark);color:#fff}

/* CARDÁPIO — linhas estilo iFood (texto à esquerda, imagem à direita) */
.smf-row{
  display:flex;gap:1rem;align-items:stretch;background:var(--smf-card);
  border:1px solid var(--smf-border);border-radius:14px;padding:.9rem;margin-bottom:.75rem;
  transition:.15s;
}
.smf-row:hover{box-shadow:0 8px 20px rgba(0,0,0,.08)}
.smf-row-info{flex:1;min-width:0;display:flex;flex-direction:column}
.smf-row-tile{
  flex:0 0 104px;width:104px;height:104px;border-radius:12px;position:relative;
  background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;
  background-image:linear-gradient(135deg,#fff0e6,#ffe2d1);
}
[data-bs-theme="dark"] .smf-row-tile{background-image:linear-gradient(135deg,#332a20,#3d3225)}
.smf-row-tile .smf-tile-emoji{font-size:2.6rem}
.smf-row .smf-btn-add{
  position:absolute;right:-6px;bottom:-6px;width:44px;height:44px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;padding:0;font-size:1.1rem;
  box-shadow:0 3px 8px rgba(0,0,0,.2);
}

/* Sticky tabs cardápio */
.smf-cat-nav{position:sticky;top:62px;z-index:20;background:var(--smf-bg);
  padding:.6rem 0;border-bottom:1px solid var(--smf-border)}

/* REVIEWS */
.smf-reviews{background:var(--smf-card);border-top:1px solid var(--smf-border)}

/* FOOTER */
.smf-footer{background:#2a2a2a;color:#ddd}
.smf-footer a{color:#ddd}
[data-bs-theme="dark"] .smf-footer{background:#15110d}

/* QR */
.smf-qr{border-radius:8px;background:#fff;padding:4px}

/* STARS */
.smf-stars{display:inline-flex;flex-direction:row-reverse;font-size:2rem;gap:4px}
.smf-stars input{display:none}
.smf-stars label{color:#ccc;cursor:pointer}
.smf-stars input:checked ~ label,.smf-stars label:hover,.smf-stars label:hover ~ label{color:#ffc107}

/* TIMELINE */
.smf-timeline{display:flex;justify-content:space-between;max-width:680px;margin:0 auto;position:relative}
.smf-timeline:before{content:"";position:absolute;top:12px;left:5%;right:5%;height:3px;background:var(--smf-border);z-index:0}
.smf-step{position:relative;text-align:center;flex:1;z-index:1}
.smf-step-dot{width:26px;height:26px;border-radius:50%;background:var(--smf-border);margin:0 auto 6px;border:3px solid var(--smf-bg)}
.smf-step.done .smf-step-dot{background:var(--smf-verde)}
.smf-step.active .smf-step-dot{background:var(--smf-red);box-shadow:0 0 0 4px rgba(234,29,44,.25)}
.smf-step-label{font-size:.78rem}

/* CART rows */
.smf-cart-tile{width:64px;height:64px;border-radius:12px;display:flex;align-items:center;
  justify-content:center;font-size:2rem;background:linear-gradient(135deg,#fff0e6,#ffe2d1);background-size:cover}

/* ADMIN */
.smf-admin-sidebar{background:#2a2a2a;color:#eee}
@media(min-width:992px){ .smf-admin-sidebar{min-height:100vh} }
.smf-admin-sidebar h5{color:#fff}
.smf-admin-sidebar a{color:#ccc;display:block;padding:.6rem 1rem;border-radius:10px}
.smf-admin-sidebar a:hover,.smf-admin-sidebar a.active{background:var(--smf-red);color:#fff}
.smf-stat{border-radius:16px;color:#fff;padding:1.1rem}

/* ============================================================= */
/* UI/UX polish                                                  */
/* ============================================================= */
/* Acessibilidade: foco visível em tudo que é interativo */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, .smf-chip:focus-visible{
  outline:3px solid rgba(234,29,44,.5); outline-offset:2px; border-radius:10px;
}
/* Transições suaves e feedback de toque */
.btn, .smf-chip, .smf-card, .add-cart, a, button{ touch-action:manipulation; } /* §2 tap-delay */
.btn, .smf-chip, .smf-card, .add-cart{ transition:transform .15s ease, box-shadow .15s ease, background .15s ease; }
/* §2 alvo de toque mínimo 44px para botões de quantidade do carrinho */
.smf-qty-btn{ width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; padding:0; font-size:1.15rem; }
/* §8 touch-friendly-input: inputs confortáveis para toque no mobile */
@media (max-width:768px){
  .form-control, .form-select{ min-height:46px; font-size:16px; } /* 16px evita auto-zoom do iOS */
}
.btn:active{ transform:scale(.97); }
.add-cart:active{ transform:scale(.93); }
@media (hover:none){ .smf-card:active{ transform:scale(.99); } }
.rounded-pill, .smf-pill{ white-space:nowrap; }

/* Badge do carrinho "pulsando" ao adicionar */
@keyframes smf-bump{ 0%{transform:scale(1)} 30%{transform:scale(1.55)} 60%{transform:scale(.9)} 100%{transform:scale(1)} }
#cartCount.bump{ animation:smf-bump .42s ease; }

/* Barra de carrinho fixa (mobile-first, estilo iFood) */
.smf-cartbar{
  position:fixed; left:0; right:0; bottom:0; z-index:1030;
  background:linear-gradient(135deg,var(--smf-red),var(--smf-red-dark));
  color:#fff; align-items:center; justify-content:space-between;
  padding:.7rem 1rem; box-shadow:0 -6px 22px rgba(0,0,0,.20);
  display:none; transform:translateY(110%); transition:transform .28s cubic-bezier(.2,.8,.2,1);
}
.smf-cartbar.show{ display:flex; transform:translateY(0); }
.smf-cartbar .smf-cartbar-info{ line-height:1.15; }
.smf-cartbar .smf-cartbar-info small{ display:block; opacity:.85; font-size:.72rem; }
.smf-cartbar .smf-cartbar-cta{
  background:#fff; color:var(--smf-red); font-weight:700; border-radius:30px;
  padding:.45rem .9rem; white-space:nowrap;
}
body.has-cartbar{ padding-bottom:74px; }

/* Skeleton de carregamento */
@keyframes smf-shimmer{ 0%{background-position:-420px 0} 100%{background-position:420px 0} }
.smf-skel{
  background:#eee; background-image:linear-gradient(90deg,#ececec,#f6f6f6,#ececec);
  background-size:840px 100%; animation:smf-shimmer 1.3s infinite linear; border-radius:10px;
}
[data-bs-theme="dark"] .smf-skel{ background:#2c2620; background-image:linear-gradient(90deg,#2c2620,#352e26,#2c2620); }

/* ===== Fluidez (§7 Animation) ===== */
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: no-preference){
  /* Revelação ao entrar na viewport (a classe é adicionada via JS → seguro se JS falhar) */
  .smf-reveal{
    opacity:0; transform:translateY(20px) scale(.985);
    transition:opacity .55s cubic-bezier(.2,.75,.25,1), transform .55s cubic-bezier(.2,.75,.25,1);
    will-change:opacity, transform;
  }
  .smf-reveal.in{ opacity:1; transform:none; }
  /* Hero entra suave no load */
  .smf-hero > .container{ animation:smf-fade-up .7s cubic-bezier(.2,.75,.25,1) both; }
  @keyframes smf-fade-up{ from{opacity:0; transform:translateY(24px)} to{opacity:1; transform:none} }
}
/* Easing de mola nos elementos interativos (sensação mais natural) */
.smf-card, .smf-btn-add, .btn{ transition-timing-function:cubic-bezier(.34,1.56,.64,1); }
.smf-cartbar{ transition:transform .42s cubic-bezier(.34,1.4,.5,1); }

/* Reduz movimento para quem prefere */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* Botões base vermelhos */
.btn-danger{background:var(--smf-red);border-color:var(--smf-red)}
.btn-danger:hover{background:var(--smf-red-dark);border-color:var(--smf-red-dark)}
.btn-outline-danger{color:var(--smf-red);border-color:var(--smf-red)}
.btn-outline-danger:hover{background:var(--smf-red);border-color:var(--smf-red)}
.text-danger{color:var(--smf-red)!important}
