/* Catloji — layout da montra. Aplicado apenas em loja.php. */
:root { --barra-inferior-altura: 70px; }
html { scroll-behavior: smooth; }
body { background: #f6f8fd !important; padding-bottom: calc(var(--barra-inferior-altura) + 30px) !important; }
[hidden] { display: none !important; }
.topo-loja {
  min-height: 55px; padding: 8px clamp(12px,3vw,22px) !important;
  color: var(--texto-topo) !important; background: var(--cor-topo) !important;
  border-bottom: 0; box-shadow: none;
}
.topo-loja .lado { gap: 13px; min-width: 0; }
.topo-loja .botao-icone { width: 35px; height: 35px; color: var(--texto-topo); background: color-mix(in srgb, var(--texto-topo) 12%, transparent); border-radius: 50%; }
.logo-topo-loja { width:auto; height:auto; max-height:38px; max-width:min(38vw,155px); object-fit:contain; }
.topo-loja .nome-topo { color: var(--texto-topo); font-weight:800; font-size:18px; letter-spacing:-.03em; }
.topo-acoes-catalogo { gap:8px; }
.topo-acoes-catalogo a.botao-icone { color:#fff !important; background:#06c45d; }
.topo-loja .qtd-carrinho-topo { background:var(--ciano); color:var(--escuro); }
.capa-loja { background:var(--escuro); padding: 0 12px 22px !important; text-align:left; }
.busca-catalogo { margin:0 auto !important; max-width:900px; padding:2px 0 0 !important; }
.busca-catalogo-box { border-radius:13px; box-shadow:0 6px 14px #00000017; }
.busca-catalogo input { padding:13px 42px !important; font-size:13px !important; }
.busca-info { margin-top:4px; min-height:0; }
.conteudo-loja {
  max-width:920px; margin:-12px auto 0 !important; padding:16px 12px 20px !important;
  border-radius:18px 18px 0 0; background:#f6f8fd;
  position:relative;
}
.chips-categorias {
  display:flex; gap:11px !important; margin-top:0 !important;
  padding:0 1px 14px !important; align-items:flex-start;
}
.chip-categoria {
  width: min(23%, 94px) !important; min-width:75px; flex-shrink:0;
  gap:6px; padding:7px 4px 9px !important; border-radius:14px !important;
  border:1px solid #ebedf5 !important; background:#fff;
  box-shadow:0 4px 12px #15275510 !important; cursor:pointer;
}
.chip-categoria .avatar, .chip-categoria .avatar-vazio {
  width:54px; height:54px; border-radius:13px;
  background:linear-gradient(145deg,#cfe9ff,#e4f7ee);
  border:0; object-fit:cover; font-size:22px;
}
.chip-categoria:nth-child(2n) .avatar-vazio { background:#d6ffe9; color:#06844d; }
.chip-categoria:nth-child(3n) .avatar-vazio { background:#eef0ff; color:#293c88; }
.chip-categoria span:not(.avatar-vazio) {
  color:#19284b; font-size:10.5px; font-weight:700;
  width:100%; white-space:nowrap; text-overflow:ellipsis; overflow:hidden;
}
.chip-ver-categorias { font-family:inherit; }
.chip-ver-categorias .avatar-vazio { font-size:23px; letter-spacing:2px; color:#172d5a; }
.titulo-secao-loja { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:7px 2px 12px; color:#162749; }
.titulo-secao-loja strong { font-size:16px; letter-spacing:-.02em; }
.titulo-secao-loja button { border:0; background:none; color:#006bef; font-size:11px; font-weight:700; }
.categoria-titulo { margin:20px 2px 11px !important; font-size:15px; color:#162749; scroll-margin-top:100px !important; }
.conteudo-loja .grade-produtos {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px !important;
  margin:10px 0 20px !important;
}
.catalogo-produto-item { position:relative; min-width:0; background:#fff; border-radius:13px; overflow:hidden; box-shadow:0 3px 12px #15275513; }
.catalogo-produto-item .produto-card { box-shadow:none !important; border-radius:13px; padding-bottom:2px; }
.catalogo-produto-item .produto-foto-wrap { aspect-ratio:1 / 1; border-radius:12px 12px 0 0; background:#f0f3fa; }
.catalogo-produto-item .produto-foto { object-fit:cover; }
.catalogo-produto-item .produto-info { padding:9px 48px 12px 10px; min-height:73px; }
.catalogo-produto-item .produto-info h3 { font-size:11.5px; margin-bottom:5px; white-space:normal; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.3; }
.catalogo-produto-item .produto-info .preco { font-size:13px; color:#0a9a50; margin:4px 0 0; }
.catalogo-produto-item .produto-info p { font-size:10px; margin:2px 0 5px; }
.atalho-produto-carrinho {
  display:flex; align-items:center; justify-content:center; position:absolute; right:9px; bottom:10px;
  width:35px; height:35px; border:0; border-radius:10px;
  background:#0879ed; color:white; box-shadow:0 3px 10px #0879ed44; cursor:pointer;
}
.atalho-produto-carrinho svg { width:19px; height:19px; }
.atalho-produto-carrinho:disabled { background:#a1aec6; cursor:not-allowed; box-shadow:none; }
.atalho-produto-carrinho:active { transform:scale(.93); }
.rodape-loja { margin-top:25px; padding-bottom:22px; }
/* Páginas dentro da montra — URLs continuam as mesmas, sem recarregar o carrinho. */
.pagina-categorias { max-width:920px; margin:0 auto; padding:23px 14px 100px; min-height:60vh; }
.pagina-titulo h1 { margin:0 0 5px; font-size:22px; color:#142449; }
.pagina-titulo p { margin:0 0 22px; color:#77819a; font-size:13px; }
.grade-categorias-pagina { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.categoria-card-pagina {
  min-width:0; padding:11px 11px 14px; background:#fff; border:1px solid #eef0f5;
  border-radius:16px; display:flex; flex-direction:column; align-items:flex-start; gap:4px;
  box-shadow:0 4px 15px #15275510;
}
.categoria-card-pagina img,.categoria-imagem-vazia { height:128px; width:100%; border-radius:11px; object-fit:cover; background:#e9efff; }
.categoria-imagem-vazia { display:flex; align-items:center; justify-content:center; font-weight:800; color:#2667cd; font-size:38px; }
.categoria-card-pagina strong { font-size:13px; margin-top:5px; color:#142449; }
.categoria-card-pagina small { font-size:11px; color:#77819a; }
.categoria-sem-produtos { opacity:.55; }
.sem-categorias { color:#77819a; }
.nav-inferior-loja {
  position:fixed; bottom:0; left:0; right:0; height:calc(var(--barra-inferior-altura) + env(safe-area-inset-bottom));
  display:flex; align-items:stretch; justify-content:space-around; padding:7px max(10px,calc((100vw - 760px)/2)) calc(7px + env(safe-area-inset-bottom));
  background:#fff; box-shadow:0 -5px 23px #15275514; z-index:95; border-top:1px solid #edf0f6;
}
.nav-item-loja { width:33.33%; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:3px; border:none; background:transparent; color:#78849c; font-size:10px; font-weight:600; }
.nav-item-loja svg { display:block; width:22px; height:22px; }
.nav-item-loja.ativo { color:#0879ed; font-weight:800; }
.nav-carrinho-icone { position:relative; }
.nav-qtd-carrinho { position:absolute; top:-8px; right:-10px; border-radius:99px; min-width:17px; padding:2px 4px; font-size:9px; color:#fff; background:#0879ed; }
/* Carrinho do catálogo como página dedicada, preservando formulário/checkout existentes. */
.barra-carrinho, .barra-carrinho.mostrar { display:none !important; }
.fundo-modal { top:0; bottom:var(--barra-inferior-altura); background:#f6f8fd; z-index:70; justify-content:center; }
.modal-carrinho { width:100%; max-width:920px; height:100%; padding:25px max(17px,3vw) 38px; box-shadow:none; border-radius:0; }
.fundo-modal.mostrar .modal-carrinho { transform:none; }
.modal-carrinho h2 { font-size:22px; color:#162749; }
.fechar-modal { color:#67738d; }
.fundo-menu { z-index:98; }
.menu-lateral-loja { z-index:99; }
/* Telas maiores: a montra não fica esticada. */
@media(min-width:600px) {
  .conteudo-loja { padding:22px 20px 30px !important; }
  .conteudo-loja .grade-produtos { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px !important; }
  .grade-categorias-pagina { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .chip-categoria { width:98px !important; }
}
@media(min-width:900px) {
  .conteudo-loja .grade-produtos { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .grade-categorias-pagina { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

.aviso-produto-adicionado { position:fixed; bottom:85px; left:50%; transform:translateX(-50%) translateY(8px); z-index:96; padding:12px 16px; white-space:nowrap; color:#fff; background:#17264c; border-radius:12px; font-size:12px; font-weight:700; opacity:0; pointer-events:none; transition:.18s; box-shadow:0 4px 20px #0002; }
.aviso-produto-adicionado.mostrar { opacity:1; transform:translateX(-50%) translateY(0); }

.carrinho-vazio-loja { text-align:center; padding:55px 12px; }
.carrinho-vazio-loja p { color:#77819a; font-size:14px; }
.carrinho-vazio-loja button { margin-top:12px; border:0; border-radius:12px; padding:13px 22px; background:#0879ed; color:#fff; font-weight:700; }
