* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { overflow-x: hidden; }
body { font-family: Barlow, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: #1E293B; background: #fff; line-height: 1.45; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
input, select, textarea { width: 100%; padding: 11px 12px; border: 1px solid #CBD5E1; border-radius: 10px; background: #fff; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--cor); outline-offset: -1px; }
label { display: block; font-size: 12px; font-weight: 700; color: #475569; margin: 12px 0 4px; }
[hidden] { display: none !important; }

/* faixa do topo */
.faixa { background: var(--cor); color: #fff; text-align: center; padding: 13px 16px; font-size: 16px; font-weight: 500; }

/* cabeçalho */
.topo { background: #fff; border-bottom: 1px solid #F1F5F9; }
.topo-in { max-width: 1760px; margin: 0 auto; display: flex; align-items: center; gap: 30px; padding: 12px 32px; }
.marca { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.marca img { height: 60px; width: auto; max-width: 150px; object-fit: contain; display: block; }
.marca strong { font-family: "Barlow Condensed", Barlow, sans-serif; font-size: 24px; color: var(--cor); }
.marca:has(img) strong { display: none; }
.busca { flex: 1; position: relative; min-width: 0; }
.busca input { border: 0; background: #F1F1F1; border-radius: 999px; padding: 13px 54px 13px 22px; font-size: 15px; }
.busca input:focus { outline: 2px solid var(--cor); }
.busca button { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: 0; background: none; padding: 10px 14px; cursor: pointer; color: #111; }
.acoes { display: flex; align-items: center; gap: 22px; flex-shrink: 0; }
.acao svg { width: 28px; height: 28px; }
.carrinho-btn svg { width: 34px; height: 34px; }
.acao { display: flex; align-items: center; gap: 10px; color: #111; position: relative; }
.acao span { display: flex; flex-direction: column; line-height: 1.15; }
.acao small { font-size: 12.5px; color: #333; }
.acao b { font-size: 15px; font-weight: 600; }
.carrinho-btn { padding-right: 6px; }
.badge { position: absolute; top: -8px; right: -8px; background: var(--cor); color: #fff; border-radius: 999px; min-width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }

/* menu de categorias */
.menu { background: var(--cor); }
.menu-in { max-width: 1760px; margin: 0 auto; padding: 0 32px; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 22px; }
.menu a, .menu button { border: 0; background: none; color: #fff; font-family: "Barlow Condensed", Barlow, sans-serif; font-size: 17px; font-weight: 600; text-transform: uppercase; padding: 12px 2px; cursor: pointer; letter-spacing: .2px; border-bottom: 3px solid transparent; white-space: nowrap; }
.menu a:hover, .menu button:hover, .menu .ativa { border-bottom-color: #fff; }
.menu button.oferta { display: inline-flex; align-items: center; gap: 6px; margin-left: 10px; padding-left: 16px; border-left: 1px solid rgba(255,255,255,.3); color: #FFD166; }
.menu button.oferta:hover, .menu button.oferta.ativa { border-bottom-color: #FFD166; }
/* subcategorias: menu suspenso embaixo da categoria */
.menu .cat-item { position: relative; display: inline-flex; }
.menu .cat-item .seta { font-size: 11px; margin-left: 4px; opacity: .8; }
.menu .sub-menu { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: 50; min-width: 220px; max-height: 70vh; overflow-y: auto; background: #fff; border-radius: 10px; box-shadow: 0 10px 28px rgba(0,0,0,.18); padding: 6px; }
.menu .cat-item:hover .sub-menu, .menu .cat-item.aberto .sub-menu { display: flex; flex-direction: column; }
@media (hover: none) { .menu .cat-item:hover .sub-menu { display: none; } .menu .cat-item.aberto .sub-menu { display: flex; } }
.menu .sub-menu button { color: #1E293B; text-transform: none; font-family: Barlow, sans-serif; font-size: 15px; font-weight: 500; text-align: left; padding: 9px 12px; border-radius: 7px; border-bottom: 0; white-space: normal; }
.menu .sub-menu button:hover, .menu .sub-menu button.ativa { background: #F1F5F9; color: var(--cor); border-bottom: 0; }
.menu .sub-menu button:first-child { font-weight: 700; color: var(--cor); border-bottom: 1px solid #E2E8F0; border-radius: 7px 7px 0 0; margin-bottom: 4px; }
.titulo-secao .sub-titulo { font-weight: 500; opacity: .75; }

/* banners */
.hero { position: relative; overflow: hidden; background: #0F172A; }
.hero-trilho { display: flex; transition: transform .5s ease; }
.hero-trilho img { width: 100%; flex-shrink: 0; display: block; aspect-ratio: 1920 / 640; max-height: 520px; object-fit: cover; }
.hero button { position: absolute; top: 50%; transform: translateY(-50%); width: 54px; height: 54px; border-radius: 50%; border: 0; background: #fff; color: var(--cor); font-size: 26px; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.25); }
.hero .ant { left: 18px; } .hero .prox { right: 18px; }
.hero .pontos { position: absolute; bottom: 12px; left: 0; right: 0; display: flex; justify-content: center; gap: 8px; }
.hero .pontos i { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.55); cursor: pointer; }
.hero .pontos i.ativo { background: #fff; }

/* benefícios */
.beneficios { max-width: 1760px; margin: 0 auto; padding: 22px 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 24px; }
.beneficio { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; }
.beneficio .ico { width: 36px; height: 36px; border-radius: 50%; background: color-mix(in srgb, var(--cor) 12%, #fff); color: var(--cor); display: flex; align-items: center; justify-content: center; font-size: 22px; margin-bottom: 6px; }
.beneficio b { font-size: 16px; } .beneficio span { font-size: 13.5px; color: #64748B; }

main { max-width: 1760px; margin: 0 auto; padding: 14px 32px 40px; min-height: 40vh; }
.titulo-secao { font-family: "Barlow Condensed", Barlow, sans-serif; font-size: 26px; font-weight: 700; color: var(--cor); text-transform: uppercase; margin: 4px 0 14px; text-align: center; }
.carregando, .vazio { text-align: center; color: #64748B; padding: 50px 10px; }
.grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
.card { min-width: 0; background: #fff; border-radius: 12px; overflow: hidden; border: 1px solid #E5E7EB; display: flex; flex-direction: column; transition: box-shadow .15s, transform .15s; }
.card:hover { box-shadow: 0 8px 24px rgba(15,23,42,.12); transform: translateY(-2px); }
.card .foto { aspect-ratio: 1 / 1; background: #F4F4F5; display: flex; align-items: center; justify-content: center; color: #94A3B8; font-size: 13px; }
.card .foto img { width: 100%; height: 100%; object-fit: contain; }
.card .corpo { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.card .nome { font-size: 13px; font-weight: 500; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; min-height: 51px; }
.card .marca-p { font-size: 11.5px; color: #64748B; text-transform: uppercase; letter-spacing: .3px; }
.preco { font-size: 19px; font-weight: 700; color: var(--cor); margin-top: auto; }
.btn { display: inline-block; border: 0; background: var(--cor); color: #fff; padding: 12px 20px; border-radius: 10px; font-weight: 700; cursor: pointer; text-align: center; }
.btn.claro { background: #fff; color: var(--cor); border: 1px solid var(--cor); }
.btn.zap { background: #16A34A; }
.btn.bloco { display: block; width: 100%; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.esgotado { font-size: 12px; color: #B91C1C; font-weight: 700; }
.pag { display: flex; gap: 10px; justify-content: center; align-items: center; margin-top: 22px; }
.voltar { display: inline-block; margin-bottom: 12px; color: var(--cor); font-weight: 600; }

/* produto */
.detalhe { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(280px, 1fr); gap: 34px; }
.detalhe .grande { width: 100%; max-width: 440px; aspect-ratio: 1 / 1; object-fit: contain; background: #F4F4F5; border-radius: 12px; display: block; margin: 0 auto; }
.minis { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.minis img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; cursor: pointer; border: 2px solid transparent; background: #F4F4F5; }
.minis img.ativa { border-color: var(--cor); }
.detalhe h1 { font-size: 26px; margin: 4px 0 6px; line-height: 1.2; }
.detalhe .preco { font-size: 34px; margin: 12px 0; }
.descricao { white-space: pre-line; color: #334155; font-size: 14.5px; margin-top: 18px; border-top: 1px solid #E5E7EB; padding-top: 14px; }
.qtd { display: inline-flex; align-items: center; border: 1px solid #CBD5E1; border-radius: 10px; overflow: hidden; background: #fff; }
.qtd button { border: 0; background: #F1F5F9; width: 38px; height: 42px; font-size: 18px; cursor: pointer; }
.qtd input { width: 58px; text-align: center; border: 0; border-radius: 0; padding: 8px 2px; }

/* carrinho / checkout / conta */
.painel { background: #fff; border: 1px solid #E2E8F0; border-radius: 14px; padding: 18px; margin-bottom: 16px; max-width: 900px; margin-left: auto; margin-right: auto; }
.painel h2 { font-size: 18px; margin-bottom: 8px; }
.linha-item { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid #EEF2F7; }
.linha-item:last-child { border-bottom: 0; }
.linha-item img, .linha-item .sem { width: 68px; height: 68px; object-fit: contain; border-radius: 10px; background: #F4F4F5; flex-shrink: 0; }
.linha-item .info { flex: 1; min-width: 0; font-size: 14px; }
.totais > div { display: flex; justify-content: space-between; padding: 4px 0; }
.totais .forte { font-size: 21px; font-weight: 800; border-top: 2px solid var(--cor); margin-top: 6px; padding-top: 10px; }
.duas-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.opcao { display: flex; gap: 10px; align-items: center; border: 2px solid #E2E8F0; border-radius: 12px; padding: 12px; margin-top: 8px; cursor: pointer; }
.opcao input { width: auto; }
.opcao.sel { border-color: var(--cor); background: #F8FAFF; }
.opcao .v { margin-left: auto; font-weight: 800; white-space: nowrap; }
.erro { background: #FEE2E2; color: #B91C1C; padding: 10px 12px; border-radius: 10px; margin: 10px 0; font-size: 14px; }
.ok { background: #DCFCE7; color: #166534; padding: 12px; border-radius: 10px; margin: 10px 0; }
.aviso { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: #0F172A; color: #fff; padding: 11px 18px; border-radius: 10px; z-index: 50; max-width: 90vw; }
.abas { display: flex; gap: 8px; margin-bottom: 10px; }
.abas button { flex: 1; border: 1px solid #CBD5E1; background: #fff; border-radius: 10px; padding: 10px; font-weight: 700; cursor: pointer; }
.abas button.ativa { background: var(--cor); color: #fff; border-color: var(--cor); }
.selo { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #E2E8F0; }
.selo.ok { background: #DCFCE7; color: #166534; margin: 0; } .selo.aviso { background: #FEF3C7; color: #92400E; }

.rodape { background: #fff; color: #1E293B; margin-top: 18px; border-top: 6px solid var(--cor); font-size: 14px; }
.rodape-in { max-width: 1760px; margin: 0 auto; padding: 22px 32px 14px; display: grid; grid-template-columns: 1fr 1fr 1fr 1.3fr 1.3fr; gap: 22px; }
.rodape h4 { font-family: "Barlow Condensed", Barlow, sans-serif; font-size: 19px; font-weight: 600; margin-bottom: 8px; color: #111; }
.rodape h3 { font-family: "Barlow Condensed", Barlow, sans-serif; font-size: 28px; color: var(--cor); }
.rodape .col-marca img { max-width: 130px; max-height: 76px; object-fit: contain; display: block; }
.rodape .social { display: flex; gap: 16px; margin: 12px 0 0 6px; color: #111; }
.rodape .social svg { width: 22px; height: 22px; }
.rodape .end { margin-top: 8px; color: #64748B; font-size: 12.5px; }
.rodape-in > div > a { display: block; padding: 3px 0; color: #222; }
.rodape a:hover { color: var(--cor); }
.rodape .linha-ico b { margin-right: 6px; }
.rodape .horario { border-top: 1px solid #E5E7EB; margin-top: 8px; padding-top: 8px; }
.rodape .horario p { margin-top: 4px; line-height: 1.5; font-size: 13px; }
.rodape .bandeiras { display: flex; flex-wrap: wrap; gap: 6px; }
.rodape .bandeiras span { border: 1px solid #D1D5DB; border-radius: 6px; padding: 3px 8px; font-size: 11.5px; font-weight: 700; color: #334155; background: #fff; }
.rodape .faixa-pag { max-width: 100%; max-height: 60px; object-fit: contain; display: block; }
.rodape .selos { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.rodape .selos img { max-height: 34px; max-width: 120px; object-fit: contain; }
.rodape h4 + .selos, .rodape .selos { margin-top: 0; }
.rodape-in > div:last-child h4:not(:first-child) { margin-top: 12px; }
.rodape .copy { border-top: 1px solid #E5E7EB; text-align: center; padding: 10px 12px; color: #444; font-size: 13px; }
.pagina-inst { max-width: 820px; margin: 0 auto; }
.pagina-inst h1 { font-family: "Barlow Condensed", Barlow, sans-serif; color: var(--cor); font-size: 34px; margin: 6px 0 14px; text-transform: uppercase; }
.pagina-inst .texto { font-size: 16px; line-height: 1.7; color: #334155; }
.pagina-inst .texto p { margin-bottom: 12px; }
@media (max-width: 1000px) { .rodape-in { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rodape-in { grid-template-columns: minmax(0, 1fr); padding: 26px 16px; } }.zap-flutuante { position: fixed; right: 22px; bottom: 22px; width: 62px; height: 62px; border-radius: 50%; background: #25D366; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 16px rgba(0,0,0,.3); z-index: 40; }

@media (max-width: 900px) {
    .topo-in { flex-wrap: wrap; gap: 14px 16px; padding: 14px 16px; }
    .marca img { height: 54px; }
    .busca { order: 3; flex: 1 1 100%; width: 100%; }
    .topo-in > * { min-width: 0; }
    .busca input { padding: 14px 52px 14px 20px; font-size: 16px; }
    .acoes { margin-left: auto; gap: 16px; }
    .acao span { display: none; }
    .menu-in { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding: 0 12px; gap: 18px; }
    .menu a, .menu button { font-size: 17px; padding: 14px 2px; }
    .hero button { width: 38px; height: 38px; font-size: 20px; } .hero .ant { left: 8px; } .hero .prox { right: 8px; }
}
@media (max-width: 720px) {
    .detalhe { grid-template-columns: 1fr; gap: 18px; }
    .duas-col { grid-template-columns: 1fr; }
    .grade { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .beneficios { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 20px 12px; gap: 16px; }
    .titulo-secao { font-size: 24px; }
    main { padding: 16px 12px 60px; }
    .faixa { font-size: 14px; padding: 10px 12px; }
    .card .nome { min-height: 54px; font-size: 13px; }
}
.cookies { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60; background: #111827; color: #fff; padding: 14px 18px; border-radius: 12px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; box-shadow: 0 8px 30px rgba(0,0,0,.35); max-width: 760px; margin: 0 auto; font-size: 14px; }
.cookies span { flex: 1 1 260px; }
.cookies .btn { padding: 8px 16px; }
.cookies .btn.claro { background: transparent; color: #fff; border-color: #fff; }
/* compra rápida no cartão do produto */
.card .link-card { display: flex; flex-direction: column; flex: 1; color: inherit; }
.card .acoes-card { padding: 0 12px 12px; display: flex; flex-direction: column; gap: 8px; }
.card .linha-comprar { display: flex; gap: 8px; align-items: center; }
.card .qtd.pequena { border-radius: 999px; background: #fff; }
.card .qtd.pequena button { width: 26px; height: 34px; background: none; color: var(--cor); font-size: 17px; }
.card .qtd.pequena input { width: 30px; padding: 4px 0; font-size: 13px; }
.card .btn.comprar { flex: 1; border-radius: 999px; padding: 9px 10px; font-size: 14px; }
.card .btn-whats { border: 1px solid #22C55E; color: #16A34A; background: #F3FBF5; border-radius: 999px; padding: 6px 8px; font-size: 12.5px; font-weight: 600; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; justify-content: center; }
.card .btn-whats:hover { background: #DCFCE7; }
.card .esgotado { text-align: center; padding: 8px 0; }
@media (max-width: 720px) { .card .acoes-card { padding: 0 8px 10px; } .card .qtd.pequena button { width: 22px; } .card .btn-whats { font-size: 11.5px; padding: 6px 4px; } }

/* vitrines em carrossel, selo de destaque e oferta com contagem */
.card .foto { position: relative; }
.selo-dest { position: absolute; top: 8px; right: 8px; z-index: 1; background: #D90429; color: #fff; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 4px; }
.oferta-fim { background: #D90429; color: #fff; text-align: center; padding: 6px 4px; line-height: 1.25; }
.oferta-fim small { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .2px; }
.oferta-fim b { font-size: 14px; font-variant-numeric: tabular-nums; }
.card .de { display: flex; align-items: center; gap: 8px; margin-top: 4px; color: #888; font-size: 13px; }
.card .de em { font-style: normal; background: #1f1f1f; color: #fff; font-weight: 700; font-size: 12px; padding: 1px 7px; border-radius: 5px; }
.vitrine { margin-bottom: 8px; }
.carrossel { position: relative; }
.carrossel .trilho { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 2px 2px 8px; }
.carrossel .trilho::-webkit-scrollbar { display: none; }
.carrossel .trilho .card { flex: 0 0 calc((100% - 14px * 4) / 5); min-width: 210px; scroll-snap-align: start; }
.carrossel .seta { position: absolute; top: 38%; z-index: 3; width: 38px; height: 38px; border-radius: 50%; border: 1px solid #ddd; background: #fff; color: #333; font-size: 24px; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.carrossel .seta.esq { left: -6px; }
.carrossel .seta.dir { right: -6px; }
@media (max-width: 720px) { .carrossel .trilho .card { flex-basis: 62%; min-width: 0; } .carrossel .seta { display: none; } }

/* rodapé escuro (sobrescreve o claro acima) */
.rodape { background: linear-gradient(180deg, #001233 0%, #020B1F 100%); color: #B7C3DA; border-top: 0; margin-top: 28px; font-size: 14.5px; }
.rodape-in { grid-template-columns: 1.5fr 1fr 1fr 1.3fr 1.3fr; gap: 34px; padding: 44px 40px 30px; }
.rodape h4 { font-family: Barlow, sans-serif; font-size: 12.5px; letter-spacing: 3px; text-transform: uppercase; font-weight: 700; color: #9FB0CF; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid rgba(255,255,255,.1); }
.rodape h3 { color: #fff; }
.rodape .col-marca img { max-width: 170px; max-height: 90px; }
.rodape .sobre { margin-top: 16px; line-height: 1.75; color: #8C9BB8; }
.rodape .social { display: flex; gap: 10px; margin: 20px 0 0; }
.rodape .social a { width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.04); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; }
.rodape .social a:hover { background: rgba(255,255,255,.12); color: #fff; }
.rodape .social svg { width: 22px; height: 22px; }
.rodape-in > div > a { color: #C5D0E6; padding: 7px 0; font-size: 15px; }
.rodape a:hover { color: #fff; }
.rodape .atend { display: flex; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.rodape .atend .ic { flex: 0 0 42px; height: 42px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.04); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; }
.rodape .atend small { display: block; font-size: 10.5px; letter-spacing: 1.6px; text-transform: uppercase; color: #8C9BB8; margin-bottom: 2px; }
.rodape .atend a, .rodape .atend div > span { color: #fff; font-size: 15.5px; line-height: 1.4; word-break: break-word; }
.rodape .horario { margin: 16px 0 0; font-style: italic; color: #8C9BB8; border: 0; padding: 0; line-height: 1.6; }
.rodape .bandeiras span { background: #fff; border-color: #fff; color: #334155; }
.rodape .faixa-pag { max-height: none; border-radius: 6px; }
.rodape .selos { flex-direction: column; align-items: flex-start; gap: 12px; }
.rodape .selo-cx { display: inline-flex; padding: 8px 10px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); border-radius: 10px; }
.rodape .selos img { max-height: 46px; max-width: 170px; }
.rodape-in > div:last-child h4:not(:first-child) { margin-top: 26px; }
.rodape .copy { border-top: 1px solid rgba(255,255,255,.1); color: #8C9BB8; padding: 16px 12px; }
@media (max-width: 1000px) { .rodape-in { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 32px 24px 20px; } }
@media (max-width: 560px) { .rodape-in { grid-template-columns: minmax(0, 1fr); padding: 26px 16px; } }
.carrossel .seta[hidden] { display: none; }

/* ---------- "Navegue por Categorias" e cabeçalho dos carrosséis (todos os templates) ---------- */
.beneficio .ico svg { width: 24px; height: 24px; }
.cats-home { margin: 6px 0 22px; }
.cats-home .trilho { gap: 18px; padding: 6px 4px 10px; }
.cat-bola { flex: 0 0 auto; width: 150px; border: 0; background: none; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 10px; scroll-snap-align: start; color: inherit; font: inherit; }
.cat-bola .bola { width: 132px; height: 132px; border-radius: 50%; background: color-mix(in srgb, var(--cor) 10%, #fff); display: flex; align-items: center; justify-content: center; overflow: hidden; transition: transform .15s, box-shadow .15s; }
.cat-bola .bola img { width: 74%; height: 74%; object-fit: contain; }
.cat-bola:hover .bola { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(15,23,42,.14); }
.cat-bola b { font-size: 15px; font-weight: 600; text-align: center; line-height: 1.2; }
.cats-home .seta { top: 34%; }
.vitrine-topo { display: flex; align-items: baseline; justify-content: center; gap: 16px; position: relative; }
.vitrine-topo .ver-tudo { position: absolute; right: 4px; top: 8px; font-weight: 700; font-size: 14.5px; color: var(--cor); }
.vitrine-topo .ver-tudo:hover { text-decoration: underline; }
@media (max-width: 640px) {
    .cat-bola { width: 104px; } .cat-bola .bola { width: 92px; height: 92px; } .cat-bola b { font-size: 13px; }
    .vitrine-topo { flex-direction: column; align-items: center; gap: 0; } .vitrine-topo .ver-tudo { position: static; margin: -8px 0 8px; }
}

/* ---------- Layout novo (nov/2026): cada seção num bloco branco separado, fotos menores e mais produtos por linha ---------- */
body { background: #F3F4F6; }
main { padding-top: 18px; }
.beneficios, .cats-home, .vitrine, .detalhe, .pagina-inst { background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; box-shadow: 0 1px 3px rgba(15,23,42,.05); }
.beneficios { max-width: none; margin: 0 0 18px; padding: 16px 10px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0; }
.beneficio { padding: 4px 14px; border-left: 1px solid #EEF0F3; }
.beneficio:first-child { border-left: 0; }
.beneficio .ico { width: 34px; height: 34px; margin-bottom: 4px; }
.beneficio b { font-size: 14.5px; } .beneficio span { font-size: 12.5px; }
.cats-home, .vitrine { margin: 0 0 18px; padding: 16px 20px 18px; }
.detalhe, .pagina-inst { padding: 22px; }
/* título da seção: à esquerda, com um traço na cor da loja; "Ver tudo" à direita */
.vitrine-topo { justify-content: space-between; align-items: center; border-bottom: 1px solid #EEF0F3; margin-bottom: 14px; padding-bottom: 10px; }
.vitrine-topo .titulo-secao, .cats-home .titulo-secao { text-align: left; margin: 0; font-size: 22px; display: flex; align-items: center; gap: 10px; }
.vitrine-topo .titulo-secao::before, .cats-home .titulo-secao::before { content: ''; width: 5px; height: 22px; border-radius: 3px; background: var(--cor); flex-shrink: 0; }
.cats-home .titulo-secao { border-bottom: 1px solid #EEF0F3; padding-bottom: 10px; margin-bottom: 12px; }
.vitrine-topo .ver-tudo { position: static; font-size: 14px; white-space: nowrap; border: 1px solid var(--cor); border-radius: 999px; padding: 5px 14px; }
.vitrine-topo .ver-tudo:hover { background: var(--cor); color: #fff; text-decoration: none; }
/* card do produto: foto com respiro em volta, sem encostar na borda */
.card { border-color: #EEF0F3; border-radius: 10px; }
.card:hover { transform: none; box-shadow: 0 6px 18px rgba(15,23,42,.10); border-color: #E2E8F0; }
.card .foto { background: #fff; padding: 16px; border-bottom: 1px solid #F3F4F6; }
.card .foto img { width: 100%; height: 100%; object-fit: contain; }
.card .corpo { padding: 10px 12px 10px; }
.card .nome { font-size: 13px; min-height: 37px; -webkit-line-clamp: 2; }
.preco { font-size: 18px; }
.grade { grid-template-columns: repeat(auto-fill, minmax(175px, 1fr)); gap: 12px; }
.carrossel .trilho { gap: 12px; }
.carrossel .trilho .card { flex: 0 0 calc((100% - 12px * 5) / 6); min-width: 175px; }
.carrossel .seta { top: 32%; }
/* categorias: bolinhas menores */
.cat-bola { width: 118px; gap: 8px; }
.cat-bola .bola { width: 96px; height: 96px; }
.cat-bola b { font-size: 13.5px; }
@media (max-width: 720px) {
    main { padding: 12px 10px 60px; }
    .cats-home, .vitrine { padding: 12px 12px 14px; border-radius: 12px; margin-bottom: 12px; }
    .beneficios { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px 4px; gap: 10px 0; }
    .beneficio { border-left: 0; padding: 4px 8px; }
    .vitrine-topo { flex-direction: row; } .vitrine-topo .titulo-secao, .cats-home .titulo-secao { font-size: 18px; }
    .vitrine-topo .ver-tudo { margin: 0; font-size: 12.5px; padding: 4px 10px; }
    .carrossel .trilho .card { flex-basis: calc((100% - 12px) / 2); min-width: 0; }
    .card .foto { padding: 10px; }
    .grade { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .cat-bola { width: 86px; } .cat-bola .bola { width: 72px; height: 72px; } .cat-bola b { font-size: 12px; }
    .detalhe, .pagina-inst { padding: 14px; }
}@media (max-width: 720px) {
    /* benefícios no celular: faixa compacta que desliza pro lado (ícone à esquerda, texto à direita) */
    .beneficios { display: flex; overflow-x: auto; scrollbar-width: none; gap: 0; padding: 10px 6px; }
    .beneficios::-webkit-scrollbar { display: none; }
    .beneficio { flex: 0 0 auto; display: grid; grid-template-columns: 30px auto; column-gap: 8px; align-items: center; text-align: left; padding: 2px 12px; border-left: 1px solid #EEF0F3; }
    .beneficio:first-child { border-left: 0; }
    .beneficio .ico { grid-row: span 2; width: 30px; height: 30px; margin: 0; }
    .beneficio b { font-size: 13px; white-space: nowrap; } .beneficio span { font-size: 11.5px; white-space: nowrap; }
}
/* ---------- Cabeçalho no modelo do site antigo da JC (nov/2026) ---------- */
.topo-in { max-width: 1600px; padding: 14px 40px; gap: 40px; }
.marca img { height: 74px; max-width: 170px; }
.busca input { padding: 15px 56px 15px 26px; font-size: 16px; }
.menu-in { max-width: 1600px; flex-wrap: nowrap; justify-content: center; gap: 0 16px; padding: 0 24px; }
.menu a, .menu button { font-size: 18px; padding: 15px 0; letter-spacing: 0; }
.menu .cat-item .seta { display: none; }
.menu button.oferta { color: #fff; margin-left: 12px; padding-left: 0; border-left: 0; font-family: Barlow, sans-serif; font-size: 17px; font-weight: 600; text-transform: none; gap: 8px; }
.menu button.oferta svg { width: 22px; height: 22px; }
.menu button.oferta:hover, .menu button.oferta.ativa { border-bottom-color: #fff; }
/* menu que não cabe numa linha (tela menor): desliza pro lado em vez de quebrar em duas linhas */
@media (max-width: 1400px) { .menu-in { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; } .menu-in::-webkit-scrollbar { display: none; } .menu-in > :first-child { margin-left: auto; } .menu-in > :last-child { margin-right: auto; } }
/* benefícios: ícone de traço maior, sem a bolinha de fundo */
.beneficio .ico { background: none; color: #1E293B; width: 44px; height: 44px; margin-bottom: 6px; }
.beneficio .ico svg { width: 38px; height: 38px; stroke-width: 1.3; }
.beneficio b { font-size: 16px; }
/* categorias centralizadas (se não couber tudo, continua deslizando normalmente) */
.cats-home .trilho > :first-child { margin-left: auto; }
.cats-home .trilho > :last-child { margin-right: auto; }
@media (max-width: 900px) {
    .topo-in { padding: 12px 16px; gap: 12px 16px; }
    .marca img { height: 56px; }
    .menu a, .menu button { font-size: 16px; padding: 13px 0; }
    .beneficio .ico { width: 30px; height: 30px; } .beneficio .ico svg { width: 26px; height: 26px; }
}
/* faixa "Oferta termina em": pulsa devagar pra chamar atenção (quem pediu menos movimento no aparelho não vê a animação) */
@keyframes oferta-pulsa {
    0%, 100% { background: #D90429; box-shadow: inset 0 0 0 0 rgba(255,255,255,0); }
    50%      { background: #FF1F45; box-shadow: inset 0 0 0 2px rgba(255,255,255,.35); }
}
@keyframes oferta-pulsa-txt { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
.oferta-fim { animation: oferta-pulsa 1.6s ease-in-out infinite; }
.oferta-fim b { display: inline-block; animation: oferta-pulsa-txt 1.6s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .oferta-fim, .oferta-fim b { animation: none; } }
/* vitrines (carrosséis): 4 produtos por vez no computador, com mais respiro em volta da foto */
.carrossel .trilho { gap: 18px; }
.carrossel .trilho .card { flex: 0 0 calc((100% - 18px * 3) / 4); min-width: 220px; }
.carrossel .trilho .card .foto { padding: 26px 40px; }
@media (max-width: 1100px) { .carrossel .trilho .card { flex-basis: calc((100% - 18px * 2) / 3); } .carrossel .trilho .card .foto { padding: 18px 24px; } }
@media (max-width: 720px) { .carrossel .trilho { gap: 12px; } .carrossel .trilho .card { flex-basis: calc((100% - 12px) / 2); min-width: 0; } .carrossel .trilho .card .foto { padding: 10px; } }
/* vitrines: fotos mais baixas (formato 4:3), o card inteiro fica menor sem deixar de ser 4 por vez */
.carrossel .trilho .card .foto { aspect-ratio: 4 / 3; padding: 18px 24px; }
.carrossel .trilho .card .corpo { padding: 8px 12px; }
@media (max-width: 720px) { .carrossel .trilho .card .foto { aspect-ratio: 1 / 1; padding: 10px; } }.carrossel .trilho .card .foto { overflow: hidden; min-height: 0; }
.carrossel .trilho .card .foto img { max-height: 100%; max-width: 100%; width: auto; height: auto; }
/* cabeçalho (logo, busca e menu) fica preso no topo ao rolar a página */
.cabecalho-fixo { position: sticky; top: 0; z-index: 45; background: #fff; transition: box-shadow .2s; }
.cabecalho-fixo.rolou { box-shadow: 0 4px 16px rgba(15,23,42,.14); }
.cabecalho-fixo.rolou .topo-in { padding-top: 8px; padding-bottom: 8px; }
.cabecalho-fixo.rolou .marca img { height: 58px; }
@media (max-width: 900px) {
    .cabecalho-fixo.rolou .topo-in { padding-top: 6px; padding-bottom: 6px; }
    .cabecalho-fixo.rolou .marca img { height: 40px; }
    .cabecalho-fixo.rolou .busca input { padding-top: 10px; padding-bottom: 10px; }
}/* "overflow-x: hidden" no body impedia o cabeçalho fixo de grudar no topo; "clip" corta igual sem atrapalhar */
html { overflow-x: hidden; }
body { overflow-x: clip; }
/* página do produto no modelo do site antigo: caminho no topo, COMPRAR grande e "Comprar pelo Whats" embaixo */
.migalhas { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 14px; color: #475569; margin: 0 0 14px; }
.migalhas a { color: #334155; }
.migalhas a:hover { color: var(--cor); text-decoration: underline; }
.migalhas span { color: #94A3B8; }
.migalhas b { font-weight: 500; color: #475569; }
.detalhe-info h1 { font-size: 26px; font-weight: 700; text-transform: uppercase; color: #1E293B; margin: 2px 0 10px; }
.detalhe-info .preco { font-size: 28px; color: #1E293B; margin: 6px 0 18px; }
.de-det { display: flex; align-items: center; gap: 8px; color: #888; font-size: 15px; }
.de-det em { font-style: normal; background: #1f1f1f; color: #fff; font-weight: 700; font-size: 12.5px; padding: 1px 8px; border-radius: 5px; }
.linha-comprar-det { display: flex; gap: 12px; align-items: stretch; max-width: 620px; }
.linha-comprar-det .qtd { border-radius: 999px; padding: 0 6px; }
.linha-comprar-det .qtd button { background: none; color: var(--cor); font-weight: 700; width: 40px; height: 56px; }
.linha-comprar-det .qtd input { width: 46px; font-weight: 600; }
.linha-comprar-det .btn { flex: 1; border-radius: 999px; font-size: 19px; letter-spacing: .3px; padding: 14px 20px; }
.btn-whats-det { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; max-width: 620px; margin-top: 12px; padding: 13px 16px; border-radius: 999px; border: 1px solid #22C55E; background: #F3FBF5; color: #16A34A; font-size: 17px; font-weight: 600; cursor: pointer; }
.btn-whats-det:hover { background: #DCFCE7; }
.detalhe-info .disp { font-size: 12.5px; color: #64748B; margin-top: 10px; }
@media (max-width: 720px) {
    .migalhas { font-size: 12.5px; gap: 2px 6px; }
    .detalhe-info h1 { font-size: 20px; } .detalhe-info .preco { font-size: 24px; margin-bottom: 14px; }
    .linha-comprar-det .qtd button { width: 32px; height: 50px; } .linha-comprar-det .btn { font-size: 17px; }
}
/* ---------- página do produto: modelo do site antigo (miniaturas à esquerda, frete, abas e relacionados) ---------- */
.migalhas { justify-content: center; }
.detalhe { grid-template-columns: minmax(300px, 1.15fr) minmax(300px, 1fr); align-items: start; }
.galeria { display: flex; flex-direction: column; gap: 10px; }
.galeria.com-minis { flex-direction: row; align-items: flex-start; gap: 16px; }
.galeria .minis { margin: 0; }
.galeria.com-minis .minis { flex-direction: column; flex-wrap: nowrap; flex: 0 0 96px; max-height: 520px; overflow-y: auto; gap: 12px; }
.galeria.com-minis .minis img { width: 96px; height: 86px; object-fit: contain; background: #fff; border: 1px solid #E5E7EB; border-radius: 8px; padding: 4px; }
.galeria .minis img.ativa { border: 2px solid var(--cor); }
.galeria .grande { flex: 1; min-width: 0; max-width: 520px; background: #fff; }
.frete-det { display: flex; align-items: center; gap: 18px; max-width: 620px; margin-top: 18px; padding-top: 18px; border-top: 1px solid #E5E7EB; flex-wrap: wrap; }
.frete-rot { display: flex; align-items: center; gap: 10px; color: #334155; font-size: 15px; flex: 0 0 auto; max-width: 190px; line-height: 1.3; }
.frete-cep { flex: 1; min-width: 220px; display: flex; align-items: center; border: 1px solid #E2E8F0; border-radius: 999px; padding: 4px 6px 4px 18px; }
.frete-cep input { border: 0; padding: 10px 4px; font-size: 16px; background: transparent; }
.frete-cep input:focus { outline: none; }
.frete-cep button { border: 0; background: none; color: var(--cor); font-weight: 800; font-size: 14px; padding: 8px 12px; cursor: pointer; }
#frete-res { max-width: 620px; }
.frete-lista { margin-top: 10px; border: 1px solid #E5E7EB; border-radius: 12px; overflow: hidden; }
.frete-lista > div { display: flex; justify-content: space-between; gap: 10px; padding: 10px 14px; border-top: 1px solid #F1F5F9; font-size: 14.5px; }
.frete-lista > div:first-child { border-top: 0; }
.frete-lista small { color: #64748B; }
/* abas: Descrição Geral / Formas de Pagamento / Avaliações */
.abas-det { background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; padding: 18px 26px 24px; margin-top: 18px; }
.abas-topo { display: flex; gap: 34px; border-bottom: 1px solid #EEF0F3; margin-bottom: 18px; overflow-x: auto; }
.abas-topo button { border: 0; background: none; padding: 12px 0; font-size: 17px; color: #334155; border-bottom: 4px solid transparent; margin-bottom: -1px; cursor: pointer; white-space: nowrap; }
.abas-topo button.ativa { border-bottom-color: var(--cor); color: #111827; }
.descricao-det { white-space: pre-line; color: #334155; font-size: 15.5px; line-height: 1.85; }
.muted-det { color: #64748B; }
.pags-det { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.pags-det span { border: 1px solid #D1D5DB; border-radius: 8px; padding: 6px 12px; font-weight: 600; font-size: 13.5px; }
.pag-img-det { max-width: 100%; max-height: 80px; object-fit: contain; display: block; margin-bottom: 14px; }
.aba-corpo p { margin-bottom: 8px; color: #334155; }
/* produtos relacionados */
.relacionados { background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; padding: 22px 20px; margin-top: 18px; }
.relacionados h2 { text-align: center; font-size: 26px; color: #1E293B; margin-bottom: 18px; }
.relacionados h2::after { content: ''; display: block; width: 46px; height: 4px; background: var(--cor); border-radius: 2px; margin: 10px auto 0; }
@media (max-width: 720px) {
    .migalhas { justify-content: flex-start; }
    .galeria.com-minis { flex-direction: column-reverse; }
    .galeria.com-minis .minis { flex-direction: row; flex: none; max-height: none; overflow-x: auto; overflow-y: hidden; }
    .galeria.com-minis .minis img { width: 64px; height: 64px; flex: 0 0 auto; }
    .frete-det { gap: 10px; } .frete-rot { max-width: none; }
    .abas-det { padding: 12px 14px 18px; } .abas-topo { gap: 20px; } .abas-topo button { font-size: 15px; }
    .descricao-det { font-size: 14.5px; line-height: 1.7; }
    .relacionados { padding: 16px 12px; } .relacionados h2 { font-size: 21px; }
}.descricao-det { line-height: 1.6; }
@media (max-width: 720px) { .detalhe { grid-template-columns: minmax(0, 1fr); gap: 18px; } .linha-comprar-det, .btn-whats-det, .frete-det, #frete-res { max-width: none; } }
/* página do produto mais compacta: foto, miniaturas e textos menores; relacionados 5 por vez */
.detalhe { grid-template-columns: minmax(280px, 0.9fr) minmax(300px, 1fr); gap: 28px; padding: 18px 22px; }
.galeria .grande { max-width: 380px; max-height: 380px; aspect-ratio: 1 / 1; margin: 0 auto; }
.galeria.com-minis .minis { flex-basis: 72px; max-height: 380px; gap: 8px; }
.galeria.com-minis .minis img { width: 72px; height: 64px; }
.detalhe-info h1 { font-size: 22px; margin-bottom: 6px; }
.detalhe-info .preco { font-size: 24px; margin: 4px 0 14px; }
.linha-comprar-det .qtd button { height: 48px; width: 34px; }
.linha-comprar-det .btn { font-size: 17px; padding: 11px 18px; }
.btn-whats-det { padding: 10px 14px; font-size: 15.5px; margin-top: 10px; }
.frete-det { margin-top: 14px; padding-top: 14px; }
.frete-cep input { padding: 8px 4px; font-size: 15px; }
.abas-topo button { font-size: 15.5px; padding: 10px 0; }
.descricao-det { font-size: 14.5px; }
.relacionados h2 { font-size: 22px; }
.relacionados .carrossel .trilho .card { flex: 0 0 calc((100% - 18px * 4) / 5); min-width: 170px; }
.relacionados .carrossel .trilho .card .foto { padding: 14px 22px; }
@media (max-width: 720px) {
    .detalhe { padding: 12px; }
    .galeria .grande { max-width: 100%; max-height: 280px; }
    .detalhe-info h1 { font-size: 18px; } .detalhe-info .preco { font-size: 22px; }
    .relacionados .carrossel .trilho .card { flex-basis: calc((100% - 12px) / 2); min-width: 0; }
}
/* avaliações: estrelas embaixo do título, lista e formulário na aba */
.estrelas { display: inline-flex; gap: 3px; vertical-align: middle; }
.estrelas-det { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin: 2px 0 12px; }
.estrelas-det a { font-size: 13.5px; color: #334155; text-decoration: underline; }
.estrelas-det a:hover { color: var(--cor); }
.aval-item { padding: 12px 0; border-bottom: 1px solid #F1F5F9; }
.aval-item .estrelas-det { flex-direction: row; align-items: center; gap: 10px; margin: 0 0 4px; }
.aval-item small { color: #94A3B8; }
.aval-item p { margin: 4px 0 0; color: #334155; font-size: 14.5px; }
.aval-form { max-width: 560px; margin-top: 18px; padding-top: 14px; border-top: 1px solid #EEF0F3; position: relative; display: flex; flex-direction: column; gap: 10px; }
.aval-form h3 { font-size: 17px; }
.aval-notas { display: flex; gap: 4px; }
.aval-notas button { border: 0; background: none; padding: 2px; cursor: pointer; }
.aval-notas button svg { width: 30px; height: 30px; fill: none; }
.aval-notas button.on svg { fill: #F5B301; }
.aval-form .btn { align-self: flex-start; border-radius: 999px; }
/* ---------- página de categoria: filtros na lateral, título + "Ordenar por" ---------- */
.lista-cat { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 22px; align-items: start; }
.filtros { background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; padding: 20px 20px 16px; position: sticky; top: 150px; max-height: calc(100vh - 170px); overflow-y: auto; }
.filtros h3 { font-size: 18px; color: #1E293B; margin: 2px 0 14px; }
.filtros hr { border: 0; border-top: 1px solid #EEF0F3; margin: 16px 0; }
.filtros .chk { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; font-size: 14.5px; font-weight: 500; color: #334155; cursor: pointer; text-transform: none; }
.filtros .chk input { width: 18px; height: 18px; padding: 0; margin-top: 1px; flex-shrink: 0; accent-color: var(--cor); }
.filtros .chk small { color: #64748B; }
.filtros .chk-link { display: block; padding: 6px 0; font-size: 14.5px; color: #334155; }
.filtros .chk-link:hover { color: var(--cor); }
.filtros-fechar { display: none; }
.lista-dir { background: #fff; border: 1px solid #E5E7EB; border-radius: 14px; padding: 18px 20px 22px; min-width: 0; }
.lista-topo { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #EEF0F3; }
.lista-topo h1 { font-size: 26px; text-transform: uppercase; color: #1E293B; margin: 0; }
.lista-acoes { display: flex; align-items: center; gap: 10px; }
.ordenar { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 14.5px; font-weight: 500; color: #475569; text-transform: none; white-space: nowrap; }
.ordenar select { width: auto; min-width: 190px; border: 0; background: #F1F1F1; border-radius: 999px; padding: 11px 18px; font-weight: 600; cursor: pointer; }
.btn-filtrar { display: none; border-radius: 999px; padding: 9px 16px; }
.lista-dir .grade { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
@media (max-width: 900px) {
    .lista-cat { grid-template-columns: minmax(0, 1fr); }
    .btn-filtrar { display: inline-block; }
    .filtros { display: none; position: fixed; inset: 0 auto 0 0; top: 0; width: min(320px, 86vw); max-height: none; height: 100%; z-index: 80; border-radius: 0; box-shadow: 0 0 40px rgba(0,0,0,.3); }
    body.filtros-abertos .filtros { display: block; }
    .filtros-fechar { display: block; position: absolute; right: 10px; top: 8px; border: 0; background: none; font-size: 30px; cursor: pointer; color: #475569; }
    .lista-dir { padding: 12px; }
    .lista-topo h1 { font-size: 19px; width: 100%; }
    .lista-acoes { width: 100%; justify-content: space-between; }
    .ordenar select { min-width: 0; padding: 9px 12px; }
    .lista-dir .grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* categorias e subcategorias como estão no cadastro (1ª letra maiúscula), não mais tudo em caixa alta */
.menu a, .menu button { text-transform: none; font-size: 18px; letter-spacing: .1px; }
.lista-topo h1 { text-transform: none; }
.migalhas a, .migalhas b { text-transform: none; }
@media (max-width: 900px) { .menu a, .menu button { font-size: 16.5px; } }
/* subcategorias: o menu suspenso abre "por cima de tudo" (posição fixa calculada na hora). Antes, em telas menores, a faixa
   do menu (que desliza pro lado) cortava o menu suspenso e as subcategorias não apareciam. */
.menu .sub-menu { position: fixed; transform: translateX(-50%); z-index: 90; }
/* olhinho dentro do campo de senha */
.senha-caixa { position: relative; display: block; }
.senha-caixa input { padding-right: 46px; }
.senha-olho { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: none; color: #64748B; padding: 6px 8px; cursor: pointer; display: flex; }
.senha-olho:hover { color: var(--cor); }
/* lista de regras da senha forte */
.regras-senha { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; font-size: 13px; color: #94A3B8; }
.regras-senha li.ok { color: #16A34A; font-weight: 600; }
@media (max-width: 480px) { .regras-senha { grid-template-columns: 1fr; } }
/* lista de fretes compacta (produto e finalização) */
.frete-lista { margin-top: 10px; border: 1px solid #E5E7EB; border-radius: 12px; overflow: hidden; background: #fff; }
.frete-lista .fl-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-top: 1px solid #F1F5F9; font-size: 13.5px; margin: 0; cursor: default; text-transform: none; font-weight: 400; color: #1E293B; }
.frete-lista .fl-item:first-child { border-top: 0; }
.frete-lista label.fl-item { cursor: pointer; }
.frete-lista label.fl-item:hover { background: #F8FAFC; }
.frete-lista .fl-item.sel { background: color-mix(in srgb, var(--cor) 7%, #fff); box-shadow: inset 3px 0 0 var(--cor); }
.frete-lista .fl-item input { width: 16px; height: 16px; padding: 0; margin: 0; flex-shrink: 0; accent-color: var(--cor); }
.frete-lista .fl-nome { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; font-weight: 600; line-height: 1.25; }
.frete-lista .fl-nome small { flex-basis: 100%; font-weight: 400; font-size: 12px; color: #64748B; }
.frete-lista .fl-nome em { font-style: normal; font-size: 10.5px; font-weight: 700; padding: 1px 7px; border-radius: 999px; }
.frete-lista .fl-nome em.sb { background: #DCFCE7; color: #166534; }
.frete-lista .fl-nome em.sr { background: #DBEAFE; color: #1E40AF; }
.frete-lista .fl-item > b { white-space: nowrap; font-size: 14px; }
#fretes .frete-lista { margin-top: 8px; }
/* ---------- Minha conta: menu na lateral e cartões (modelo do site antigo) ---------- */
.conta-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 26px; align-items: start; }
.conta-menu { background: #fff; border: 1px solid #E5E7EB; border-radius: 12px; overflow: hidden; position: sticky; top: 150px; }
.conta-menu a { display: flex; align-items: center; gap: 0; border-top: 1px solid #EEF0F3; color: #334155; font-size: 15px; }
.conta-menu a:first-child { border-top: 0; }
.conta-menu .ci { width: 58px; height: 58px; display: flex; align-items: center; justify-content: center; color: #1E293B; border-right: 1px solid #EEF0F3; flex-shrink: 0; margin-right: 14px; }
.conta-menu a:hover { background: #F8FAFC; color: var(--cor); }
.conta-menu a.ativo { color: var(--cor); font-weight: 700; background: color-mix(in srgb, var(--cor) 6%, #fff); }
.conta-menu a.ativo .ci { color: var(--cor); }
.conta-tit { font-size: 20px; color: #1E293B; margin: 0 0 12px; }
.conta-tit:not(:first-child) { margin-top: 24px; }
.conta-card { background: #fff; border: 1px solid #E5E7EB; border-radius: 12px; padding: 20px 24px; }
.conta-vazio { text-align: center; padding: 26px 10px; color: #1E293B; font-weight: 600; }
.conta-vazio .carinha { font-size: 110px; font-weight: 800; line-height: 1; color: #334155; margin-bottom: 18px; letter-spacing: -6px; }
.conta-dados { display: grid; grid-template-columns: minmax(0, 1fr) 170px; gap: 16px 24px; }
.dados-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; }
.dados-col div { display: flex; flex-direction: column; gap: 3px; font-size: 14.5px; }
.dados-col b { color: #1E293B; } .dados-col span { color: #334155; word-break: break-word; }
.dados-pct { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; }
.dados-pct .anel { --p: 0; width: 98px; height: 98px; border-radius: 50%; background: conic-gradient(#4CAF50 calc(var(--p) * 1%), #E5E7EB 0); display: flex; align-items: center; justify-content: center; margin-bottom: 8px; }
.dados-pct .anel span { width: 84px; height: 84px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 23px; font-weight: 800; color: #3D8B40; }
.dados-pct small { color: #475569; font-size: 12.5px; }
.dados-acao { grid-column: 1 / -1; text-align: center; }
.form-dados .parte-end { display: none; }
.form-enderecos .parte-dados { display: none; }
@media (max-width: 900px) {
    .conta-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .conta-menu { position: static; display: flex; overflow-x: auto; scrollbar-width: none; }
    .conta-menu a { flex: 0 0 auto; border-top: 0; border-left: 1px solid #EEF0F3; padding-right: 14px; font-size: 13.5px; }
    .conta-menu a:first-child { border-left: 0; }
    .conta-menu .ci { width: 42px; height: 46px; border-right: 0; margin-right: 2px; }
    .conta-card { padding: 14px; }
    .conta-dados, .dados-col { grid-template-columns: minmax(0, 1fr); }
    .conta-vazio .carinha { font-size: 72px; }
}
.aviso-frete { margin-top: 10px; background: #FEF3C7; color: #78350F; border: 1px solid #FCD34D; border-radius: 10px; padding: 10px 12px; font-size: 13.5px; line-height: 1.45; }
/* ---------- Celular ---------- */
.menu-toggle { display: none; }
.selo-pix { display: inline-block; background: #DCFCE7; color: #166534; font-size: 11.5px; font-weight: 800; padding: 1px 8px; border-radius: 999px; margin-left: 4px; }
@media (max-width: 720px) {
    /* página do produto: uma coluna só (foto em cima, informações embaixo) */
    .detalhe { grid-template-columns: minmax(0, 1fr) !important; gap: 16px; padding: 12px; }
    .detalhe-info { min-width: 0; }
    .galeria .grande { max-width: 100%; max-height: 300px; }
}
@media (max-width: 900px) {
    /* menu de categorias: botão "Categorias" que abre uma lista em pé, com as subcategorias por baixo */
    .menu-toggle { display: flex; align-items: center; gap: 10px; width: 100%; border: 0; background: none; color: #fff; font: 700 17px Barlow, sans-serif; padding: 13px 16px; cursor: pointer; }
    .menu-toggle .mt-seta { margin-left: auto; transition: transform .2s; }
    .menu.aberto .menu-toggle .mt-seta { transform: rotate(180deg); }
    .menu .menu-in { display: none; }
    .menu.aberto .menu-in { display: flex; flex-direction: column; flex-wrap: nowrap; overflow: visible; padding: 0 0 8px; gap: 0; max-height: 70vh; overflow-y: auto; }
    .menu.aberto .menu-in > :first-child, .menu.aberto .menu-in > :last-child { margin: 0; }
    .menu.aberto .menu-in > button, .menu.aberto .cat-item > button { width: 100%; text-align: left; padding: 12px 20px; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 16.5px; }
    .menu.aberto .cat-item { display: block; }
    .menu.aberto .cat-item .seta { display: inline; float: right; }
    .menu.aberto .menu-in button.oferta { margin: 0; padding-left: 20px; border-left: 0; }
    .menu .sub-menu { position: static !important; transform: none !important; display: none; box-shadow: none; border-radius: 0; background: rgba(255,255,255,.08); max-height: none; padding: 0; min-width: 0; }
    .menu .cat-item.aberto .sub-menu { display: flex; flex-direction: column; }
    .menu .cat-item:hover .sub-menu { display: none; }
    .menu .cat-item.aberto:hover .sub-menu { display: flex; }
    .menu .sub-menu button, .menu .sub-menu button:first-child { color: #fff; background: none; padding: 10px 20px 10px 36px; border-radius: 0; border-bottom: 1px solid rgba(255,255,255,.08); margin: 0; font-weight: 500; }
    .menu .sub-menu button:first-child { font-weight: 700; color: #FFD166; }
    .menu .sub-menu button:hover, .menu .sub-menu button.ativa { background: rgba(255,255,255,.12); color: #fff; }
}
/* Banner: altura escolhida em Configurações › Loja online, sempre na proporção da arte (nada cortado) */
.hero .hero-trilho img { max-height: none; aspect-ratio: 3 / 1; object-fit: cover; }
.hero.tam-baixo .hero-trilho img { aspect-ratio: 4 / 1; }
.hero.tam-medio .hero-trilho img { aspect-ratio: 3 / 1; }
.hero.tam-alto .hero-trilho img { aspect-ratio: 12 / 5; }