﻿/* 290 Digital Catalog - E-commerce Premium */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,600;0,700;1,600&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&display=swap');

: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 1.5rem;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)}}
.splash-msg{font-family:var(--font-base);font-size:clamp(.9rem,2.5vw,1.05rem);font-weight:400;color:rgba(255,255,255,.6);line-height:1.75;margin-bottom:2.25rem;max-width:440px}
.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}
}

/* 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:var(--bg-input);display:flex;align-items:center;justify-content:center}
.cat-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.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;
}
.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}
.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-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;
}
.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);color:var(--texto-claro);text-align:center;padding:1.25rem;margin-top:2rem;font-size:.78rem;font-family:var(--font-base);border-top:1px solid var(--border)}
.promo-290 a{color:var(--primary);font-weight:600}

/* WHATSAPP FAB */
.whatsapp-fab{position:fixed;bottom:1.5rem;left: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}
}
