﻿/* 290 Digital Catalog - E-commerce Premium */
/* DM Sans - self-hosted */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/dm-sans-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/fonts/dm-sans-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
/* Playfair Display - self-hosted */
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/playfair-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/playfair-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}


:root {
  --bg-page:#f8fafc;--bg-card:#ffffff;--bg-header:#0f172a;--bg-input:#f1f5f9;
  --primary:#1e3a5f;--primary-hover:#152c47;--primary-light:rgba(30,58,95,.12);
  --laranja:#f97316;--laranja-hover:#ea6c0a;
  --texto:#0f172a;--texto-medio:#475569;--texto-claro:#94a3b8;--branco:#ffffff;
  --border:#e2e8f0;--vermelho:#ef4444;--verde-ok:#22c55e;
  --sombra:0 4px 16px rgba(15,23,42,.08);
  --sombra-card:0 2px 8px rgba(15,23,42,.06);
  --sombra-hover:0 8px 24px rgba(15,23,42,.14);
  --radius:12px;--radius-sm:8px;
  --transicao:all 0.2s ease;
  --font-base:'DM Sans',system-ui,-apple-system,sans-serif;
  --font-serif:'Playfair Display',Georgia,serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;overflow-x:hidden}
body{font-family:var(--font-base);background:var(--bg-page);color:var(--texto);min-height:100vh;line-height:1.6;overflow-x:hidden}
a{color:var(--primary);text-decoration:none;transition:var(--transicao)}
a:hover{color:var(--primary-hover)}
img{max-width:100%;display:block}
.hidden{display:none!important}
.flex{display:flex}

/* SPLASH */
.splash-page{
  min-height:100dvh;
  background:linear-gradient(160deg,#060d1a 0%,#0f172a 40%,#1a2e4a 70%,#0f172a 100%);
  display:flex;flex-direction:column;align-items:center;
  padding:0;position:relative;overflow:hidden;
}
.splash-geo-overlay{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 80% 60% at 80% 5%,rgba(249,115,22,.07) 0%,transparent 60%),
    radial-gradient(ellipse 60% 50% at 10% 90%,rgba(30,58,95,.25) 0%,transparent 60%);
}
.splash-wrap{
  position:relative;z-index:10;text-align:center;
  animation:fadeSlideUp .9s cubic-bezier(.22,1,.36,1) both;
  width:100%;max-width:560px;
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:3rem 0 2.5rem;
}
@keyframes fadeSlideUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
.logo-ring{
  display:inline-flex;align-items:center;justify-content:center;
  width:180px;height:180px;border-radius:50%;
  background:linear-gradient(rgba(255,255,255,.05),rgba(255,255,255,.05)) padding-box,
             linear-gradient(135deg,#f97316,#fbbf24) border-box;
  border:2.5px solid transparent;
  margin-bottom:1.75rem;
  animation:glow-pulse 2.5s ease-in-out infinite;
}
@keyframes glow-pulse{
  0%,100%{box-shadow:0 0 0 0 transparent,0 8px 40px rgba(0,0,0,.4)}
  50%{box-shadow:0 0 0 12px rgba(249,115,22,.1),0 8px 40px rgba(0,0,0,.4)}
}
.logo-ring img{width:144px;height:144px;object-fit:contain;border-radius:50%}
.logo-ring-icone{font-size:4.5rem}
.splash-label{font-family:var(--font-base);font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:.4rem}
.splash-nome{
  font-family:var(--font-serif);
  font-size:clamp(34px,7.5vw,62px);font-weight:700;
  color:#ffffff;line-height:1.1;margin-bottom:.5rem;
}
.splash-divider{
  display:flex;align-items:center;justify-content:center;
  gap:.75rem;margin:.75rem 0 1rem;color:#f97316;
  animation:bounce-soft 2s ease-in-out infinite;
}
.splash-divider::before,.splash-divider::after{content:"";flex:1;max-width:60px;height:1.5px;background:#f97316;opacity:.4}
@keyframes bounce-soft{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

.btn-entrar{
  display:inline-block;background:#f97316;color:#fff;
  font-family:var(--font-base);font-weight:600;font-size:1rem;letter-spacing:.01em;
  padding:.95rem 3rem;border-radius:50px;border:none;cursor:pointer;
  box-shadow:0 6px 28px rgba(249,115,22,.4);transition:all .22s ease;text-decoration:none;
}
.btn-entrar:hover{background:#ea6c0a;transform:translateY(-2px);box-shadow:0 12px 36px rgba(249,115,22,.5);color:#fff}
.splash-footer-main{
  width:100%;background:rgba(255,255,255,.04);border-top:1px solid rgba(255,255,255,.08);
  padding:1.1rem 1rem;text-align:center;position:relative;z-index:10;margin-top:auto;
}
.splash-footer-nome{font-family:var(--font-base);font-size:.78rem;font-weight:500;color:rgba(255,255,255,.25);margin-bottom:.35rem}
.splash-footer-links{display:flex;gap:1.25rem;justify-content:center;align-items:center;font-size:.75rem}
.splash-footer-links span{color:rgba(255,255,255,.15)}
.splash-footer-links a{font-family:var(--font-base);color:rgba(255,255,255,.3);text-decoration:none;transition:color .15s}
.splash-footer-links a:hover{color:rgba(255,255,255,.7)}

@media(max-width:480px){
  .splash-page{padding:2rem 20px}
  .logo-ring{width:148px;height:148px}
  .logo-ring img{width:118px;height:118px}
}


/* Saudação premium no splash */
.splash-greeting{display:flex;flex-direction:column;align-items:center;gap:.6rem;margin-bottom:2rem;}
.splash-greeting-tag{font-family:var(--font-base);font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#f97316;background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.25);padding:.3rem .9rem;border-radius:20px;}
.splash-msg{font-family:var(--font-base);font-size:clamp(.9rem,2.5vw,1.05rem);font-weight:400;color:rgba(255,255,255,.65);line-height:1.75;text-align:center;max-width:400px;margin:0;}
.loja-info-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.5rem;margin-top:2.25rem;padding-top:1.5rem;border-top:1px solid var(--border);width:100%;max-width:520px}
.loja-info-item{display:flex;align-items:center;gap:.4rem;font-family:var(--font-base);font-size:.82rem;color:var(--texto-medio);font-weight:500}
.loja-info-icone{font-size:.95rem}
/* CABECALHO */
.catalogo-header{
  background:var(--bg-header);padding:.75rem 1rem;
  display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;z-index:100;
  box-shadow:0 2px 16px rgba(0,0,0,.25);min-height:60px;gap:.5rem;
}
.catalogo-header-esq{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}
.catalogo-header-logo{width:34px;height:34px;border-radius:7px;object-fit:contain;background:rgba(255,255,255,.08);flex-shrink:0}
.catalogo-header-textos{min-width:0;flex:1}
.catalogo-header-nome{
  font-family:var(--font-base);font-size:.95rem;font-weight:700;color:#fff;
  line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.catalogo-header-forn{font-family:var(--font-base);font-size:.7rem;font-weight:400;color:rgba(255,255,255,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.catalogo-header-dir{display:flex;align-items:center;gap:.4rem;flex-shrink:0}

/* BOTAO VOLTAR - profissional */
.cat-header-btn{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  width:36px;height:36px;
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;color:#fff;flex-shrink:0;
  transition:background .15s,border-color .15s;
  padding:0;
}
.cat-header-btn:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.28)}

.header-cart-btn{
  background:rgba(249,115,22,.15);border:1px solid rgba(249,115,22,.3);
  color:#fff;width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:1.1rem;position:relative;transition:var(--transicao);
}
.header-cart-btn:hover{background:rgba(249,115,22,.28)}
.header-cart-badge{
  position:absolute;top:-4px;right:-4px;
  background:var(--laranja);color:#fff;
  width:18px;height:18px;border-radius:50%;
  font-size:.6rem;font-weight:700;
  display:none;align-items:center;justify-content:center;
}

/* SELECAO FORNECEDOR */
#view-forn{
  min-height:calc(100dvh - 60px);
  display:flex;align-items:center;justify-content:center;
}
.forn-sel-wrap{
  width:100%;max-width:960px;
  padding:3rem 1.5rem;
  display:flex;flex-direction:column;align-items:center;
}
.forn-sel-titulo{
  font-family:var(--font-serif);font-size:1.85rem;font-weight:700;
  color:var(--texto);text-align:center;margin:0 0 2rem;
}
.forn-sel-grid{
  display:flex;flex-wrap:wrap;gap:1.25rem;
  justify-content:center;
  width:100%;
}
.forn-sel-card{
  background:var(--bg-card);border:1.5px solid var(--border);border-radius:16px;
  display:flex;flex-direction:column;align-items:center;
  gap:.85rem;padding:2rem 1.25rem 1.5rem;cursor:pointer;
  box-shadow:var(--sombra-card);
  transition:border-color .2s,box-shadow .2s,transform .18s;
  text-align:center;-webkit-tap-highlight-color:transparent;
  width:210px;flex:0 0 auto;
}
.forn-sel-card:hover{border-color:var(--primary);box-shadow:var(--sombra-hover);transform:translateY(-5px)}
.forn-sel-logo{width:88px;height:88px;object-fit:contain;border-radius:14px}
.forn-sel-icone{width:88px;height:88px;border-radius:14px;background:var(--bg-input);display:flex;align-items:center;justify-content:center;font-size:2.8rem}
.forn-sel-nome{font-family:var(--font-base);font-size:1rem;font-weight:600;color:var(--texto);line-height:1.3}

/* PILLS */
.cat-pills-wrap{background:var(--branco);border-bottom:1px solid var(--border);position:sticky;top:60px;z-index:90}
.cat-pills{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;padding:.6rem 1rem}
.cat-pills::-webkit-scrollbar{display:none}
.cat-pill{
  background:var(--bg-input);border:1.5px solid transparent;
  color:var(--texto-medio);border-radius:20px;
  padding:.28rem .85rem;font-size:.8rem;font-weight:500;
  white-space:nowrap;flex-shrink:0;cursor:pointer;font-family:var(--font-base);transition:all .15s;
}
.cat-pill.ativo{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.cat-pill:not(.ativo):hover{background:#e2e8f0;color:var(--texto)}

/* BUSCA */
.busca-wrap{background:var(--branco);padding:.65rem 1rem;border-bottom:1px solid var(--border)}
.busca-input{
  width:100%;padding:.6rem 1.1rem;
  border:1.5px solid var(--border);border-radius:24px;
  font-size:.9rem;outline:none;
  background:var(--bg-input);color:var(--texto);
  font-family:var(--font-base);transition:border-color .15s,box-shadow .15s;
}
.busca-input::placeholder{color:var(--texto-claro)}
.busca-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}

/* CATEGORIAS */
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;padding:1.25rem}
.cat-card{
  background:var(--bg-card);border-radius:var(--radius);overflow:hidden;cursor:pointer;
  transition:var(--transicao);border:1.5px solid var(--border);box-shadow:var(--sombra-card);
  -webkit-tap-highlight-color:transparent;
}
.cat-card:hover{transform:translateY(-3px);box-shadow:var(--sombra-hover);border-color:var(--primary)}
.cat-card-thumb{width:100%;aspect-ratio:4/3;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center}
.cat-card-thumb img{width:100%;height:100%;object-fit:contain;transition:transform .25s;padding:6px}
.cat-card:hover .cat-card-thumb img{transform:scale(1.05)}
.cat-card-thumb-ph{font-size:2.5rem;color:var(--texto-claro)}
.cat-card-info{padding:.85rem .95rem .95rem}
.cat-card-nome{font-family:var(--font-base);font-weight:700;font-size:.95rem;color:var(--texto);line-height:1.3}
.cat-card-count{font-family:var(--font-base);font-size:.76rem;color:var(--primary);margin-top:.25rem;font-weight:600}

/* PRODUTOS */
.produto-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));
  gap:1rem;padding:1.25rem;padding-bottom:5rem;
}
.produto-card{
  background:var(--bg-card);border-radius:var(--radius);overflow:hidden;cursor:pointer;
  border:1.5px solid var(--border);box-shadow:var(--sombra-card);transition:var(--transicao);
  -webkit-tap-highlight-color:transparent;display:flex;flex-direction:column;
}
.produto-card:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:var(--sombra-hover)}
.produto-foto-wrapper{position:relative;padding-top:100%;overflow:hidden;background:var(--bg-input)}
.produto-foto-wrapper img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .25s}
.produto-card:hover .produto-foto-wrapper img{transform:scale(1.04)}
.produto-foto-placeholder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2.5rem;color:var(--texto-claro)}
.produto-info{padding:.85rem .9rem;flex:1;display:flex;flex-direction:column}
.produto-nome{
  font-family:var(--font-base);font-size:.92rem;font-weight:600;
  color:var(--texto);margin-bottom:.2rem;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.produto-cat{font-family:var(--font-base);font-size:.74rem;color:var(--texto-medio);margin-bottom:.4rem;font-weight:400}
.produto-preco{
  font-family:var(--font-base);font-size:1.08rem;font-weight:700;
  color:var(--laranja);margin-bottom:.6rem;letter-spacing:-.01em;
}
.produto-preco-row{margin-top:auto}
.produto-add{
  width:100%;background:var(--primary);color:#fff;
  border:none;padding:.58rem;border-radius:8px;
  cursor:pointer;font-size:.84rem;font-weight:600;
  font-family:var(--font-base);transition:background .15s;margin-top:auto;
}
.produto-add:hover{background:var(--primary-hover)}
.produto-qty{display:flex;align-items:center;justify-content:center;gap:.5rem}
.qty-btn{
  width:30px;height:30px;border-radius:50%;
  border:1.5px solid var(--primary);background:transparent;
  color:var(--primary);font-size:1rem;font-weight:700;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .15s;font-family:var(--font-base);
}
.qty-btn:hover{background:var(--primary);color:#fff}
.qty-val{font-family:var(--font-base);font-weight:700;font-size:.95rem;min-width:1.5rem;text-align:center;color:var(--texto)}

/* CARRINHO */
.carrinho-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:380;display:none;backdrop-filter:blur(3px)}
.carrinho-overlay.visivel{display:block}
.carrinho-painel{
  position:fixed;top:0;right:0;width:420px;max-width:100vw;
  height:100dvh;background:var(--bg-card);z-index:390;
  transform:translateX(105%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;
  box-shadow:-4px 0 32px rgba(0,0,0,.15);border-left:1px solid var(--border);
}
.carrinho-painel.aberto{transform:translateX(0)}
.carrinho-painel-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 1.25rem;height:60px;flex-shrink:0;background:var(--bg-header);color:#fff;
}
.carrinho-painel-header h3{font-family:var(--font-base);font-size:1rem;font-weight:700;color:#fff;margin:0}
.btn-fechar-painel{
  background:rgba(255,255,255,.12);border:none;color:#fff;
  font-size:1.1rem;width:34px;height:34px;border-radius:50%;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .18s;font-family:var(--font-base);
}
.btn-fechar-painel:hover{background:rgba(255,255,255,.25)}
.carrinho-itens{flex:1;overflow-y:auto;padding:.5rem .75rem}
.carrinho-vazio{text-align:center;padding:3rem 1rem;color:var(--texto-claro)}
.carrinho-vazio .icon{font-size:2.5rem;margin-bottom:.75rem}
.carrinho-item{display:flex;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--border);align-items:flex-start}
.carrinho-item-foto{width:56px;height:56px;object-fit:cover;border-radius:8px;flex-shrink:0;background:var(--bg-input)}
.carrinho-item-info{flex:1;min-width:0}
.carrinho-item-nome{font-family:var(--font-base);font-weight:600;font-size:.85rem;color:var(--texto);margin-bottom:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.carrinho-item-preco{font-family:var(--font-base);font-size:.75rem;color:var(--texto-medio);margin-bottom:.3rem}
.carrinho-item-ctrl{display:flex;align-items:center;gap:.4rem}
.btn-remover{background:none;border:none;color:var(--texto-claro);cursor:pointer;font-size:.85rem;flex-shrink:0;transition:color .15s;font-family:var(--font-base)}
.btn-remover:hover{color:var(--vermelho)}
.carrinho-footer{padding:.75rem 1rem 1rem;border-top:1px solid var(--border);flex-shrink:0}
.formas-pag-wrap{margin-bottom:.75rem}
.formas-pag-label{font-family:var(--font-base);font-size:.7rem;color:var(--texto-medio);font-weight:700;margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.06em}
.formas-pag-grid{display:flex;flex-wrap:wrap;gap:.35rem}
.forma-pag-btn{
  border:1.5px solid var(--border);background:transparent;color:var(--texto-medio);
  border-radius:8px;padding:.3rem .65rem;font-size:.75rem;font-weight:500;
  cursor:pointer;font-family:var(--font-base);transition:all .15s;
}
.forma-pag-btn.ativa{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.carr-total-rows{margin-bottom:.5rem}
.carr-row{display:flex;justify-content:space-between;font-size:.82rem;color:var(--texto-medio);margin-bottom:.25rem;font-family:var(--font-base)}
.carr-row-desconto{color:var(--verde-ok)}
.carr-row-total{font-family:var(--font-base);font-size:1rem;font-weight:700;color:var(--texto);padding-top:.4rem;border-top:1px solid var(--border);margin-top:.3rem}
.cart-input{
  width:100%;padding:.6rem .875rem;
  border:1.5px solid var(--border);border-radius:8px;
  font-size:.9rem;font-family:var(--font-base);outline:none;
  background:var(--bg-input);color:var(--texto);
  margin-bottom:.5rem;transition:border-color .15s;
}
.cart-input::placeholder{color:var(--texto-claro)}
.cart-input:focus{border-color:var(--primary)}
.btn-wapp{
  width:100%;background:#25D366;color:#fff;border:none;padding:.9rem;border-radius:10px;
  font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;
  gap:.6rem;transition:background .2s;font-family:var(--font-base);margin-top:.5rem;
  box-shadow:0 4px 14px rgba(37,211,102,.3);
}
.btn-wapp:hover{background:#20bd5a}

/* SPINNER */
.spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-page{display:flex;align-items:center;justify-content:center;min-height:100vh;flex-direction:column;gap:1rem;color:var(--texto-claro);font-family:var(--font-base)}

/* TOAST */
#toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;max-width:340px}
.toast{
  background:var(--bg-card);color:var(--texto);padding:.8rem 1rem;border-radius:10px;
  font-size:.875rem;font-weight:500;font-family:var(--font-base);
  box-shadow:0 4px 20px rgba(0,0,0,.12);display:flex;align-items:center;gap:.5rem;
  animation:slideIn .25s ease;border-left:4px solid var(--primary);
}
.toast.ok{border-left-color:var(--verde-ok)}
.toast.erro{border-left-color:var(--vermelho)}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}

/* RODAPE */
.promo-290{background:var(--branco);text-align:center;padding:2rem 1.5rem;margin-top:2rem;border-top:1px solid var(--border)}
.promo-290-inner{display:inline-flex;flex-direction:column;align-items:center;gap:.5rem}
.promo-290-tag{font-family:var(--font-base);font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--texto-claro);opacity:.6}
.promo-290-logo{font-family:var(--font-serif);font-size:1.35rem;font-weight:700;color:var(--primary);line-height:1}
.promo-290-sub{font-family:var(--font-base);font-size:.78rem;color:var(--texto-claro);margin-bottom:.25rem}
.promo-290-btn{display:inline-flex;align-items:center;gap:.4rem;background:#25d366;color:#fff;font-family:var(--font-base);font-size:.8rem;font-weight:600;padding:.45rem 1.1rem;border-radius:20px;text-decoration:none;transition:background .15s}
.promo-290-btn:hover{background:#20bd5a;color:#fff}
.promo-290 a{color:var(--primary);font-weight:600}

/* WHATSAPP FAB */
.whatsapp-fab{position:fixed;bottom:1.5rem;right:1.25rem;background:#25d366;color:#fff;width:54px;height:54px;border-radius:50%;display:none;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 4px 20px rgba(37,211,102,.5);transition:transform .2s ease,box-shadow .2s ease;z-index:201;font-size:1.4rem}
.whatsapp-fab.visivel{display:flex}
.whatsapp-fab:hover{transform:scale(1.1);box-shadow:0 6px 26px rgba(37,211,102,.65)}

/* RESPONSIVO */
@media(max-width:480px){
  .produto-grid{grid-template-columns:1fr 1fr;gap:.75rem;padding:1rem;padding-bottom:5rem}
  .cat-grid{gap:.75rem;padding:1rem}
  .carrinho-painel{width:100vw}
  .catalogo-header-nome{font-size:.88rem}
  #view-forn{align-items:flex-start;padding-top:1.5rem}
  .forn-sel-wrap{padding:1.5rem 1rem}
  .forn-sel-titulo{font-size:1.4rem;margin-bottom:1.25rem}
  .forn-sel-grid{gap:.85rem}
  .forn-sel-card{width:calc(50% - .425rem);flex:0 0 calc(50% - .425rem);padding:1.5rem .75rem 1.25rem;border-radius:12px}
  .forn-sel-logo,.forn-sel-icone{width:64px;height:64px;font-size:2rem}
  .forn-sel-nome{font-size:.88rem}
}
@media(min-width:481px) and (max-width:699px){
  .forn-sel-card{width:calc(50% - .625rem);flex:0 0 calc(50% - .625rem)}
}
@media(min-width:600px){
  .cat-grid{grid-template-columns:repeat(3,1fr)}
  .produto-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
}
@media(min-width:900px){
  .cat-grid{grid-template-columns:repeat(4,1fr);max-width:1300px;margin-left:auto;margin-right:auto}
  .produto-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));max-width:1300px;margin-left:auto;margin-right:auto}
  .busca-wrap{display:flex;justify-content:center}
  .busca-input{max-width:600px}
  .cat-pills{max-width:1300px;margin-left:auto;margin-right:auto}
}
@media(min-width:1200px){
  .cat-grid{grid-template-columns:repeat(5,1fr)}
  .produto-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
}
@media(min-width:1600px){
  .cat-grid{grid-template-columns:repeat(6,1fr);max-width:1600px}
  .produto-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));max-width:1600px}
}


/* DESKTOP SIDEBAR - navegacao rapida (fornecedores + categorias) */
.app-shell{display:block}
.sidebar-desktop{display:none}

@media(min-width:900px){
  .app-shell{display:flex;align-items:flex-start;max-width:1600px;margin:0 auto}
  .sidebar-desktop{
    display:flex;flex-direction:column;width:248px;flex-shrink:0;
    position:sticky;top:60px;height:calc(100dvh - 60px);overflow-y:auto;
    background:var(--branco);border-right:1px solid var(--border);
    padding:1.5rem 1.1rem;gap:1.75rem;
  }
  .app-main{flex:1;min-width:0}
  #view-forn,#view-cats{display:none!important}
  #view-prods{display:block!important}
  .cat-pills-wrap{display:none}
  #btn-voltar{display:none!important}

  .sidebar-titulo{
    font-family:var(--font-base);font-size:.72rem;font-weight:700;
    text-transform:uppercase;letter-spacing:.06em;color:var(--texto-claro);
    margin-bottom:.7rem;
  }
  .sidebar-forn-item,.sidebar-cat-item{
    display:flex;align-items:center;gap:.6rem;
    padding:.55rem .65rem;border-radius:8px;cursor:pointer;
    font-family:var(--font-base);font-size:.86rem;font-weight:500;
    color:var(--texto-medio);transition:background .15s,color .15s;
    margin-bottom:.15rem;
  }
  .sidebar-forn-item:hover,.sidebar-cat-item:hover{background:var(--bg-input);color:var(--texto)}
  .sidebar-forn-item.ativo,.sidebar-cat-item.ativo{background:var(--primary-light);color:var(--primary);font-weight:700}
  .sidebar-forn-logo{width:26px;height:26px;border-radius:6px;object-fit:contain;flex-shrink:0;background:var(--bg-input)}
  .sidebar-cat-count{margin-left:auto;font-size:.72rem;color:var(--texto-claro);font-weight:600}
  .sidebar-forn-item.ativo .sidebar-cat-count,.sidebar-cat-item.ativo .sidebar-cat-count{color:var(--primary)}

  .sidebar-info{margin-top:auto;padding-top:1.25rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}
  .sidebar-info-item{display:flex;align-items:center;gap:.5rem;font-family:var(--font-base);font-size:.78rem;color:var(--texto-medio)}
}


/* CARRINHO - barra fixa mobile */
.cart-bar-mobile{
  display:none;position:fixed;left:.75rem;right:.75rem;bottom:1.5rem;z-index:200;
  background:var(--primary);color:#fff;border-radius:14px;
  padding:.75rem 1rem;align-items:center;gap:.75rem;
  box-shadow:0 8px 28px rgba(15,23,42,.28);
  cursor:pointer;-webkit-tap-highlight-color:transparent;
}
.cart-bar-mobile.visivel{display:flex}
.cart-bar-info{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}
.cart-bar-qty{
  background:rgba(255,255,255,.18);width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-family:var(--font-base);font-size:.78rem;font-weight:700;
}
.cart-bar-label{font-family:var(--font-base);font-size:.78rem;font-weight:500;color:rgba(255,255,255,.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cart-bar-total{font-family:var(--font-base);font-size:.95rem;font-weight:700;white-space:nowrap;flex-shrink:0}
.cart-bar-cta{
  display:flex;align-items:center;gap:.3rem;flex-shrink:0;
  background:var(--laranja);color:#fff;border-radius:10px;
  padding:.5rem .85rem;font-family:var(--font-base);font-size:.82rem;font-weight:700;
  white-space:nowrap;
}
body.tem-cart-bar{padding-bottom:78px}
body.tem-cart-bar .whatsapp-fab{bottom:calc(1.5rem + 68px)}

@media(min-width:900px){
  .cart-bar-mobile{display:none!important}
  body.tem-cart-bar{padding-bottom:0}
  body.tem-cart-bar .whatsapp-fab{bottom:1.5rem}
}


/* CARRINHO - subtotal inline no cabecalho (desktop) */
.header-cart-subtotal{display:none}

@media(min-width:900px){
  .header-cart-btn{
    width:auto;height:38px;border-radius:20px;padding:0 .9rem 0 .65rem;gap:.4rem;
    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  }
  .header-cart-btn:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.28)}
  .header-cart-badge{display:none!important}
  .header-cart-subtotal{
    display:inline-flex;align-items:baseline;gap:.3rem;
    font-family:var(--font-base);font-size:.82rem;white-space:nowrap;
  }
  .header-cart-qty{color:rgba(255,255,255,.75);font-weight:500}
  .header-cart-sep{color:rgba(255,255,255,.35)}
  .header-cart-preco{color:var(--laranja);font-weight:700}
}


/* GRUPOS DE SABOR - selecao de variacoes dentro de um grupo de produtos */
.grupo-badge{
  position:absolute;top:.5rem;right:.5rem;
  background:var(--primary);color:#fff;font-family:var(--font-base);
  font-size:.66rem;font-weight:700;padding:.22rem .5rem;border-radius:20px;
  box-shadow:0 2px 6px rgba(0,0,0,.18);
}
.grupo-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:380;display:none;backdrop-filter:blur(3px)}
.grupo-overlay.visivel{display:block}
.grupo-painel{
  position:fixed;top:0;right:0;width:420px;max-width:100vw;
  height:100dvh;background:var(--bg-card);z-index:390;
  transform:translateX(105%);transition:transform .3s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;
  box-shadow:-4px 0 32px rgba(0,0,0,.15);border-left:1px solid var(--border);
}
.grupo-painel.aberto{transform:translateX(0)}
.grupo-painel-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 1.25rem;height:60px;flex-shrink:0;background:var(--bg-header);color:#fff;
}
.grupo-painel-header h3{
  font-family:var(--font-base);font-size:1rem;font-weight:700;color:#fff;margin:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:.75rem;
}
.grupo-itens{flex:1;overflow-y:auto;padding:.25rem 1.25rem}
.grupo-item-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;border-bottom:1px solid var(--border)}
.grupo-item-row:last-child{border-bottom:none}
.grupo-item-foto{width:52px;height:52px;object-fit:cover;border-radius:8px;flex-shrink:0;background:var(--bg-input)}
.grupo-item-info{flex:1;min-width:0}
.grupo-item-nome{font-family:var(--font-base);font-weight:600;font-size:.86rem;color:var(--texto);margin-bottom:.15rem;line-height:1.3}
.grupo-item-preco{font-family:var(--font-base);font-size:.78rem;color:var(--laranja);font-weight:700}
.grupo-item-ctrl{display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.grupo-footer{padding:.9rem 1.25rem 1.1rem;border-top:1px solid var(--border);flex-shrink:0}
.btn-confirmar-grupo{
  width:100%;background:var(--primary);color:#fff;border:none;padding:.85rem;border-radius:10px;
  font-size:.95rem;font-weight:700;cursor:pointer;font-family:var(--font-base);transition:background .15s;
}
.btn-confirmar-grupo:hover{background:var(--primary-hover)}
.btn-confirmar-grupo:disabled{opacity:.5;cursor:not-allowed}

@media(min-width:600px){
  .grupo-painel{width:440px}
}
