/* Ricas Boutique — visual baseado no tema da loja anterior */
:root {
  --primaria: #bf1871;
  --secundaria: #808080;
  --texto: #333;
  --texto-suave: #666;
  --cinza-fundo: #f4f4f4;
  --borda: #e3e3e3;
  --preco: #e04c4c;
  --barra-topo: #333;
  --container: 1240px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; color: var(--texto); background: #fff; font-size: 14px; line-height: 1.4; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
svg { width: 1em; height: 1em; flex-shrink: 0; }
.container { max-width: var(--container); margin: 0 auto; padding: 0 16px; }
[hidden] { display: none !important; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--primaria); color: #fff; border: 0; border-radius: 2px; padding: 12px 22px; font-weight: 700; font-size: 13px; text-transform: uppercase; cursor: pointer; transition: filter .15s; text-align: center; }
.btn:hover { filter: brightness(1.1); }
.btn:disabled { opacity: .6; cursor: default; }
.btn svg { width: 20px; height: 20px; }
.btn-grande { width: 100%; padding: 15px 20px; font-size: 14px; }
.btn-sec { background: #fff; color: var(--primaria); border: 1px solid var(--primaria); }
.btn-whats { background: #25d366; color: #fff; width: 100%; margin-top: 10px; }

/* ---------- topo ---------- */
.barra-contato { background: var(--barra-topo); color: #ccc; font-size: 12px; }
.barra-contato-in { display: flex; justify-content: space-between; align-items: center; height: 28px; }
.links-inst { display: flex; gap: 42px; }
.links-inst a::after { content: "›"; margin-left: 6px; }
.links-inst a:hover { color: #fff; }
.barra-social { display: flex; gap: 14px; }
.barra-social a { display: flex; }
.barra-social svg { width: 15px; height: 15px; }
.barra-social a:hover { color: #fff; }

.cabecalho { display: flex; align-items: center; gap: 24px; height: 75px; padding-top: 0; padding-bottom: 0; }
.logo { flex-shrink: 0; height: 75px; display: flex; align-items: center; }
.logo img { height: 75px; width: auto; }
.logo span { font-size: 22px; font-weight: 700; color: var(--primaria); }
.busca { flex: 1; max-width: 430px; position: relative; }
.busca input { width: 100%; height: 34px; background: #f1f1f1; border: 1px solid transparent; border-radius: 2px; padding: 0 40px 0 18px; font-size: 12px; color: #444; outline: none; }
.busca input:focus { border-color: var(--primaria); background: #fff; }
.busca button { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); background: none; border: 0; padding: 6px; cursor: pointer; display: flex; color: #333; }
.busca button svg { width: 18px; height: 18px; }
.conta { display: flex; align-items: center; gap: 10px; margin-left: auto; padding-right: 24px; border-right: 1px solid var(--borda); }
.conta-icone svg { width: 36px; height: 36px; color: #424242; stroke-width: 1.4; }
.ola { font-weight: 700; font-size: 12px; }
.conta-links { font-size: 12px; color: var(--texto-suave); display: flex; }
.conta-links a + a { border-left: 1px solid #ccc; margin-left: 8px; padding-left: 8px; }
.conta-links a:hover { color: var(--primaria); }
.carrinho-topo { display: flex; align-items: center; gap: 10px; }
.carrinho-icone { position: relative; display: flex; }
.carrinho-icone svg { width: 32px; height: 32px; color: #424242; stroke-width: 1.5; }
.carrinho-qtd { position: absolute; top: -8px; left: -6px; background: var(--primaria); color: #fff; font-size: 10px; font-weight: 700; min-width: 17px; height: 17px; border-radius: 9px; display: grid; place-items: center; padding: 0 4px; }
.carrinho-total { color: var(--primaria); font-size: 18px; font-weight: 700; white-space: nowrap; }
.btn-menu-mobile { display: none; }

.menu { border-bottom: 2px solid var(--primaria); border-top: 1px solid #eee; position: relative; z-index: 20; background: #fff; }
.menu-in { display: flex; align-items: center; height: 44px; }
.toda-loja { position: relative; height: 100%; }
.btn-toda-loja { height: 100%; display: flex; align-items: center; gap: 8px; background: none; border: 0; font-weight: 700; font-size: 14px; color: var(--primaria); cursor: pointer; padding: 0 20px 0 0; }
.btn-toda-loja svg { width: 22px; height: 22px; stroke-width: 2.4; }
.mega-menu { display: none; position: absolute; left: 0; top: 100%; background: #fff; border: 1px solid var(--borda); border-top: 2px solid var(--primaria); box-shadow: 0 10px 30px rgba(0,0,0,.12); width: min(1100px, 92vw); max-height: 70vh; overflow: auto; padding: 22px; }
.toda-loja:hover .mega-menu, .toda-loja.aberto .mega-menu { display: block; }
.mega-menu > ul { list-style: none; margin: 0; padding: 0; columns: 5 170px; column-gap: 24px; }
.mega-menu > ul > li { break-inside: avoid; margin-bottom: 16px; }
.mega-menu > ul > li > a { font-weight: 700; color: var(--primaria); font-size: 13px; }
.mega-menu ul ul { list-style: none; padding: 4px 0 0; margin: 0; }
.mega-menu ul ul a { font-size: 12px; color: var(--texto-suave); line-height: 1.9; }
.mega-menu a:hover { text-decoration: underline; }
.menu-principal { list-style: none; display: flex; flex: 1; justify-content: space-between; margin: 0; padding: 0 0 0 20px; }
.menu-principal a { color: var(--primaria); font-size: 14px; text-transform: uppercase; padding: 12px 6px; display: block; }
.menu-principal a:hover { text-decoration: underline; }

.menu-mobile { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 100; }
.menu-mobile-painel { background: #fff; width: min(330px, 86vw); height: 100%; overflow: auto; }
.menu-mobile-topo { display: flex; justify-content: space-between; align-items: center; padding: 16px; background: var(--primaria); color: #fff; }
.menu-mobile-topo button { background: none; border: 0; color: #fff; display: flex; }
.menu-mobile-topo svg { width: 24px; height: 24px; }
.menu-mobile ul { list-style: none; margin: 0; padding: 0; }
.menu-mobile summary { display: flex; justify-content: space-between; align-items: center; padding: 13px 16px; border-bottom: 1px solid #eee; font-weight: 700; color: var(--primaria); list-style: none; }
.menu-mobile summary::-webkit-details-marker { display: none; }
.menu-mobile details[open] summary svg { transform: rotate(90deg); }
.menu-mobile ul ul a { display: block; padding: 10px 28px; border-bottom: 1px solid #f3f3f3; font-size: 13px; }
.menu-mobile-inst { display: grid; padding: 12px 16px; gap: 12px; background: var(--cinza-fundo); }

/* ---------- home ---------- */
.banners { position: relative; overflow: hidden; background: #111; }
.banner { display: none; }
.banner.ativo { display: block; animation: aparece .6s; }
.banner img { width: 100%; max-height: 520px; object-fit: cover; }
@keyframes aparece { from { opacity: .3; } to { opacity: 1; } }
.banner-pontos { position: absolute; bottom: 12px; left: 0; right: 0; display: flex; justify-content: center; gap: 8px; }
.banner-pontos button { width: 11px; height: 11px; border-radius: 50%; border: 2px solid #fff; background: transparent; padding: 0; cursor: pointer; }
.banner-pontos button.ativo { background: #fff; }

.vitrine { padding: 0 0 28px; }
.pg-home .vitrine:first-of-type, .pg-home .banners + .vitrine { margin-top: -2px; }
.vitrine-caixa { border: 2px solid var(--primaria); border-top: 0; border-radius: 0 0 6px 6px; padding: 28px 34px 40px; background: #fff; }
.vitrine + .vitrine .vitrine-caixa, .pg-produto .vitrine-caixa { border-top: 2px solid var(--primaria); border-radius: 6px; }
.vitrine-titulo { font-size: 18px; margin: 0 0 24px; padding-bottom: 20px; border-bottom: 1px solid var(--borda); color: #333; }
.carrossel { position: relative; }
.carrossel-trilho { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 28px) / 4); gap: 28px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; }
.carrossel-trilho::-webkit-scrollbar { display: none; }
.carrossel-trilho > * { scroll-snap-align: start; }
.carrossel-seta { position: absolute; top: 35%; z-index: 2; width: 34px; height: 34px; border-radius: 50%; border: 0; background: rgba(255,255,255,.95); box-shadow: 0 1px 6px rgba(0,0,0,.25); display: grid; place-items: center; cursor: pointer; color: #333; }
.carrossel-seta svg { width: 18px; height: 18px; }
.carrossel-seta.anterior { left: -26px; }
.carrossel-seta.proxima { right: -26px; }

/* ---------- card produto ---------- */
.card-produto { position: relative; display: flex; flex-direction: column; background: #fff; }
.card-foto { aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; margin: 0 auto; width: 100%; max-width: 180px; }
.card-foto img { width: 100%; height: 100%; object-fit: contain; transition: transform .3s; }
.card-produto:hover .card-foto img { transform: scale(1.05); }
.sem-foto { width: 100%; height: 100%; background: #f2f2f2; color: #aaa; display: grid; place-items: center; font-size: 12px; aspect-ratio: 1; }
.selo-off { position: absolute; top: 0; right: 0; background: var(--preco); color: #fff; font-size: 13px; padding: 5px 10px; border-radius: 2px; z-index: 1; }
.selo-inline { position: static; display: inline-block; margin: 6px 0 10px; font-size: 14px; }
.card-nome { font-size: 13px; font-weight: 400; text-transform: uppercase; margin: 18px 0 14px; min-height: 3.9em; line-height: 1.3; color: #222; }
.card-precos { min-height: 40px; display: flex; flex-direction: column; justify-content: flex-end; }
.preco-de { font-size: 12px; color: #999; text-decoration: line-through; }
.preco { color: var(--preco); font-size: 20px; }
.parcelas { font-size: 11px; color: #666; margin: 8px 0 14px; line-height: 1.5; }
.parcelas strong { display: block; font-weight: 700; color: #555; }
.parcelas b { color: #555; }
.btn-card { margin-top: auto; width: 100%; padding: 11px; font-size: 11px; }

/* ---------- benefícios / newsletter / rodapé ---------- */
.beneficios { background: var(--cinza-fundo); padding: 24px 0 18px; margin-top: 30px; }
.beneficios-in { display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; }
.beneficio { display: flex; align-items: center; gap: 12px; background: #fff; padding: 20px 26px; min-width: 260px; font-size: 16px; }
.beneficio svg { width: 44px; height: 44px; color: var(--primaria); stroke-width: 1.5; }
.beneficio strong { display: block; font-weight: 400; }
.newsletter { background: var(--cinza-fundo); padding: 26px 0 36px; }
.newsletter-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.newsletter-titulo { display: flex; align-items: center; gap: 22px; }
.newsletter-titulo svg { width: 48px; height: 48px; color: var(--primaria); stroke-width: 1.6; }
.newsletter-titulo strong { display: block; color: var(--primaria); font-size: 20px; }
.newsletter-titulo a { font-size: 12px; color: #999; text-decoration: underline; }
.newsletter-form { display: flex; gap: 10px; flex: 1; max-width: 640px; }
.newsletter-form input { flex: 1; min-width: 0; height: 44px; border: 0; padding: 0 14px; background: #fff; font-size: 13px; }
.newsletter-form button { height: 44px; padding: 0 22px; background: var(--primaria); color: #fff; border: 0; font-weight: 700; cursor: pointer; }

.rodape { background: var(--primaria); color: #fff; padding: 40px 0 0; }
.rodape-titulo { font-size: 15px; font-weight: 700; margin: 0 0 16px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.25); }
.rodape-categorias { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 22px 16px; margin-bottom: 40px; }
.rodape-cat { display: flex; flex-direction: column; gap: 5px; font-size: 13px; }
.rodape-cat a:hover { text-decoration: underline; }
.rodape-cat-nome { font-weight: 700; font-size: 15px; margin-bottom: 4px; }
.rodape-info { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding-bottom: 30px; }
.rodape-info p { margin: 0 0 12px; font-size: 13px; }
.rodape-ico { display: flex; gap: 10px; align-items: flex-start; }
.rodape-ico svg { width: 18px; height: 18px; margin-top: 1px; }
.rodape-sociais { display: flex; gap: 14px; }
.rodape-sociais svg { width: 24px; height: 24px; }
.bandeiras { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.bandeiras span { background: #fff; color: #333; font-weight: 700; font-size: 11px; padding: 7px 10px; border-radius: 3px; }
.selo-seguro { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: #2e7d32; padding: 8px 14px; border-radius: 4px; font-weight: 700; font-size: 13px; }
.selo-seguro svg { width: 30px; height: 30px; }
.selo-seguro small { font-weight: 400; color: #555; }
.copyright { background: rgba(0,0,0,.15); font-size: 11px; padding: 12px 0; }
.copyright .container { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.whats-flutuante { position: fixed; right: 18px; bottom: 18px; width: 56px; height: 56px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; box-shadow: 0 4px 14px rgba(0,0,0,.25); z-index: 50; }
.whats-flutuante svg { width: 32px; height: 32px; }

/* ---------- migalhas / listagem ---------- */
.migalhas { background: var(--cinza-fundo); }
.migalhas ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 20px 0; font-size: 15px; font-weight: 700; color: var(--primaria); }
.migalhas li + li::before { content: "›"; color: #999; margin-right: 8px; font-weight: 400; }
.listagem { display: grid; grid-template-columns: 220px 1fr; gap: 36px; padding-top: 0; padding-bottom: 30px; }
.filtros { background: #fff; }
.filtros-toggle { display: none; }
.filtros-titulo { background: var(--cinza-fundo); font-size: 15px; margin: 0; padding: 16px 8px; }
.filtro summary { display: flex; justify-content: space-between; align-items: center; padding: 16px 8px; border-bottom: 1px solid var(--borda); font-weight: 700; cursor: pointer; list-style: none; }
.filtro summary::-webkit-details-marker { display: none; }
.filtro summary svg { width: 14px; height: 14px; transition: transform .2s; }
.filtro[open] summary svg { transform: rotate(90deg); }
.filtro ul { list-style: none; margin: 0; padding: 8px; max-height: 340px; overflow: auto; }
.filtro li a { display: block; padding: 6px 0; font-size: 13px; color: var(--texto-suave); }
.filtro li a:hover, .filtro li.ativo a { color: var(--primaria); font-weight: 700; }
.resultados-topo { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 16px 0; border-bottom: 1px solid var(--borda); margin-bottom: 30px; }
.resultados-topo h1 { font-size: 18px; margin: 0; text-transform: uppercase; }
.resultados-topo h1 small { font-size: 12px; color: #999; font-weight: 400; text-transform: none; margin-left: 6px; }
.ordenar { display: flex; align-items: center; gap: 24px; font-weight: 700; }
.ordenar label { display: flex; align-items: center; gap: 12px; }
.ordenar select { height: 34px; border: 1px solid var(--borda); padding: 0 12px; font-weight: 400; min-width: 150px; background: #fff; }
.exibir { display: flex; align-items: center; gap: 6px; }
.exibir button { background: none; border: 0; padding: 2px; color: #ccc; cursor: pointer; display: flex; }
.exibir button svg { width: 22px; height: 22px; }
.exibir button.ativo { color: #999; }
.grade-produtos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 34px; }
.grade-produtos.modo-lista { grid-template-columns: 1fr; gap: 20px; }
.modo-lista .card-produto { display: grid; grid-template-columns: 160px 1fr 200px; gap: 8px 24px; align-items: center; border-bottom: 1px solid var(--borda); padding-bottom: 20px; }
.modo-lista .card-foto { grid-row: span 3; }
.modo-lista .card-nome { min-height: 0; margin: 0; }
.modo-lista .btn-card { grid-column: 3; grid-row: 1 / span 3; }
.paginacao { display: flex; justify-content: center; gap: 6px; margin: 40px 0 10px; flex-wrap: wrap; }
.paginacao a, .paginacao span { min-width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--borda); padding: 0 8px; }
.paginacao a.ativo { background: var(--primaria); color: #fff; border-color: var(--primaria); }
.paginacao svg { width: 14px; height: 14px; }
.vazio { text-align: center; padding: 60px 16px; }

/* ---------- produto ---------- */
.produto { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; padding-top: 10px; padding-bottom: 30px; }
.galeria { display: grid; grid-template-columns: 80px 1fr; gap: 20px; align-items: start; }
.miniaturas { display: flex; flex-direction: column; gap: 10px; max-height: 480px; overflow: auto; scrollbar-width: thin; }
.miniaturas button { border: 1px solid var(--borda); padding: 4px; background: #fff; cursor: pointer; }
.miniaturas button.ativo { border: 2px solid var(--primaria); }
.miniaturas img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.foto-principal { position: relative; overflow: hidden; background: #fff; cursor: zoom-in; }
.foto-principal img { width: 100%; max-height: 520px; object-fit: contain; transition: transform .1s; }
.foto-principal.zoom img { transform: scale(2); }
.info-produto h1 { font-size: 18px; margin: 0 0 6px; text-transform: uppercase; color: #333; }
.codigo { font-size: 12px; color: #888; padding-bottom: 12px; border-bottom: 1px solid var(--borda); margin-bottom: 8px; }
.seletores { display: flex; flex-direction: column; gap: 14px; margin: 14px 0; }
.seletor label { display: block; font-weight: 700; margin-bottom: 8px; }
.opcoes-tamanho, .opcoes-cor { display: flex; flex-wrap: wrap; gap: 8px; }
.opcoes-tamanho button, .opcoes-cor button { min-width: 44px; height: 40px; padding: 0 12px; border: 1px solid #ccc; background: #fff; cursor: pointer; font-size: 13px; border-radius: 2px; }
.opcoes-tamanho button:hover, .opcoes-cor button:hover { border-color: var(--primaria); }
.opcoes-tamanho button.sel, .opcoes-cor button.sel { border: 2px solid var(--primaria); color: var(--primaria); font-weight: 700; }
.opcoes-tamanho button.indisp, .opcoes-cor button.indisp { color: #bbb; background: repeating-linear-gradient(135deg, #fff, #fff 6px, #f3f3f3 6px, #f3f3f3 7px); cursor: not-allowed; }
.precos-produto .preco-de { font-size: 14px; font-weight: 700; }
.preco-grande { color: var(--preco); font-size: 32px; font-weight: 700; }
.precos-produto .parcelas { font-size: 13px; }
.estoque-aviso { font-size: 13px; color: var(--primaria); min-height: 18px; margin-bottom: 6px; }
.comprar { border-top: 1px solid var(--borda); padding-top: 14px; }
.quantidade { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; font-weight: 700; }
.qtd-controle { display: flex; align-items: center; background: #f1f1f1; }
.qtd-controle button { width: 40px; height: 44px; border: 0; background: none; font-size: 20px; cursor: pointer; }
.qtd-controle input { width: 44px; height: 44px; border: 0; background: none; text-align: center; -moz-appearance: textfield; }
.qtd-controle input::-webkit-inner-spin-button { -webkit-appearance: none; }
.esgotado { background: #f3f3f3; padding: 14px; text-align: center; font-weight: 700; color: #777; }
.compartilhar { display: flex; align-items: center; gap: 12px; margin-top: 18px; font-size: 13px; color: #777; }
.compartilhar svg { width: 22px; height: 22px; color: var(--primaria); }
.descricao-produto { padding-bottom: 30px; }
.descricao-produto h2 { font-size: 16px; border-bottom: 2px solid var(--primaria); display: inline-block; padding-bottom: 8px; }
.descricao-html { font-size: 14px; color: #444; line-height: 1.6; }
.descricao-html h3, .descricao-html h4 { font-size: 14px; margin: 4px 0; font-weight: 400; }

/* ---------- carrinho / checkout ---------- */
.passos { background: var(--primaria); margin-top: 30px; }
.passos-in { display: flex; justify-content: space-between; gap: 10px; overflow-x: auto; }
.passo { display: flex; align-items: center; gap: 12px; padding: 12px 0; color: rgba(255,255,255,.45); font-weight: 700; white-space: nowrap; }
.passo svg { width: 36px; height: 36px; stroke-width: 1.5; }
.passo.feito, .passo.atual { color: #fff; }
.carrinho-pagina { padding: 40px 16px 60px; }
.carregando { padding: 40px; text-align: center; color: #999; }
.carrinho-vazio { display: flex; justify-content: center; align-items: center; gap: 30px; padding: 60px 0; text-align: right; }
.carrinho-vazio-icone { color: var(--primaria); padding-right: 30px; border-right: 1px solid var(--borda); }
.carrinho-vazio-icone svg { width: 80px; height: 80px; }
.carrinho-vazio h2 { margin: 0 0 4px; font-size: 22px; }
.carrinho-vazio p { margin: 0 0 16px; }
.carrinho-vazio p a { text-decoration: underline; }
.carrinho-grade { display: grid; grid-template-columns: 1fr 340px; gap: 30px; align-items: start; }
.carrinho-itens { border: 1px solid var(--borda); }
.carrinho-item { display: grid; grid-template-columns: 90px 1fr auto auto 30px; gap: 16px; align-items: center; padding: 16px; border-bottom: 1px solid var(--borda); }
.carrinho-item:last-child { border-bottom: 0; }
.carrinho-item img { width: 90px; height: 90px; object-fit: contain; }
.carrinho-item .nome { font-weight: 700; font-size: 13px; text-transform: uppercase; }
.carrinho-item .var { font-size: 12px; color: #777; margin-top: 4px; }
.carrinho-item .aviso { font-size: 12px; color: var(--preco); margin-top: 4px; }
.carrinho-item .subtotal { font-weight: 700; min-width: 90px; text-align: right; }
.carrinho-item .remover { background: none; border: 0; cursor: pointer; color: #999; display: flex; }
.carrinho-item .remover svg { width: 20px; height: 20px; }
.carrinho-item .qtd-controle button { height: 36px; width: 32px; }
.carrinho-item .qtd-controle input { height: 36px; width: 36px; }
.resumo { border: 1px solid var(--borda); padding: 20px; background: #fafafa; position: sticky; top: 16px; }
.resumo h2 { font-size: 16px; margin: 0 0 16px; }
.resumo-linha { display: flex; justify-content: space-between; margin-bottom: 10px; }
.resumo-total { font-size: 18px; font-weight: 700; border-top: 1px solid var(--borda); padding-top: 12px; margin-top: 12px; }
.resumo-total span:last-child { color: var(--primaria); }
.resumo .btn { margin-top: 14px; width: 100%; }
.resumo-itens { font-size: 12px; color: #555; margin-bottom: 12px; }
.resumo-itens div { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.resumo-itens div span:last-child { white-space: nowrap; }
.checkout { display: grid; grid-template-columns: 1fr 340px; gap: 30px; padding-top: 30px; padding-bottom: 60px; align-items: start; }
.checkout-etapa h2 { font-size: 18px; margin: 0 0 16px; }
.campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; margin-bottom: 20px; }
.campos .col-2 { grid-column: span 2; }
label { font-size: 13px; font-weight: 700; color: #555; }
.campos input, .obs textarea, .caixa-form input, .form-contato input, .form-contato textarea { display: block; width: 100%; margin-top: 6px; height: 42px; border: 1px solid #ccc; padding: 0 12px; font-weight: 400; border-radius: 2px; background: #fff; }
.obs textarea, .form-contato textarea { height: auto; padding: 10px 12px; }
input:focus, textarea:focus, select:focus { outline: 2px solid color-mix(in srgb, var(--primaria) 35%, transparent); border-color: var(--primaria); }
input.invalido { border-color: var(--preco); background: #fff6f6; }
.opcoes-entrega { display: grid; gap: 10px; margin-bottom: 20px; }
.opcao { display: flex; align-items: center; gap: 14px; border: 1px solid #ccc; padding: 14px 16px; cursor: pointer; font-weight: 400; }
.opcao:has(input:checked) { border: 2px solid var(--primaria); background: #fff9fc; }
.opcao input { accent-color: var(--primaria); width: 18px; height: 18px; }
.opcao span { flex: 1; }
.opcao strong { display: block; color: #333; }
.opcao small { color: #777; }
.acoes { display: flex; gap: 12px; }
.acoes .btn-sec { flex: 0 0 auto; }
.dica { background: #fff4f9; padding: 10px 14px; border-left: 3px solid var(--primaria); }
.dica a { color: var(--primaria); font-weight: 700; }
.erro { background: #fdecec; color: #b3261e; padding: 10px 14px; border-radius: 3px; }
.aviso-ok { background: #e8f5e9; color: #1b5e20; padding: 10px 14px; border-radius: 3px; }
.rastreio { background: #f5f5f5; padding: 10px 14px; border-radius: 3px; }
.pedido-ok { padding: 50px 16px; }
.pedido-ok-caixa { max-width: 640px; margin: 0 auto; text-align: center; }
.pedido-ok h1 { color: var(--primaria); }
.pedido-ok .btn { margin: 8px 0; }
.tabela-pedido { width: 100%; border-collapse: collapse; margin: 20px 0; text-align: left; font-size: 13px; }
.tabela-pedido td, .tabela-pedido th { padding: 10px; border-bottom: 1px solid var(--borda); }
.tabela-pedido td:last-child { text-align: right; white-space: nowrap; }
.tabela-pedido .total td { font-weight: 700; font-size: 16px; }

/* ---------- institucional / conta ---------- */
.institucional { padding-top: 20px; padding-bottom: 50px; max-width: 960px; }
.institucional h1 { color: var(--primaria); }
.contato-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin: 20px 0; }
.contato-lista { list-style: none; padding: 0; display: grid; gap: 18px; }
.contato-lista li { display: flex; gap: 12px; align-items: flex-start; }
.contato-lista svg { width: 22px; height: 22px; color: var(--primaria); }
.form-contato { display: grid; gap: 12px; }
.mapa { width: 100%; height: 340px; border: 0; }
.conta-pagina { padding: 40px 16px 60px; }
.caixa-form { max-width: 420px; margin: 0 auto; border: 1px solid var(--borda); padding: 30px; display: grid; gap: 14px; }
.caixa-form.larga { max-width: 760px; }
.caixa-form h1 { margin: 0; color: var(--primaria); font-size: 22px; }
.caixa-form p a { color: var(--primaria); font-weight: 700; }
.toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); opacity: 0; visibility: hidden; background: #222; color: #fff; padding: 14px 22px; border-radius: 4px; z-index: 200; transition: transform .3s, opacity .3s, visibility .3s; max-width: 90vw; display: flex; gap: 16px; align-items: center; }
.toast.visivel { transform: translate(-50%, 0); opacity: 1; visibility: visible; }
.toast a { color: #fff; font-weight: 700; text-decoration: underline; white-space: nowrap; }

/* ---------- responsivo ---------- */
@media (max-width: 1100px) {
  .carrossel-trilho { grid-auto-columns: calc((100% - 2 * 20px) / 3); gap: 20px; }
  .carrossel-seta.anterior { left: -14px; }
  .carrossel-seta.proxima { right: -14px; }
  .links-inst { gap: 24px; }
}
@media (max-width: 900px) {
  .cabecalho { flex-wrap: wrap; height: auto; gap: 10px 14px; padding-top: 8px; padding-bottom: 10px; }
  .btn-menu-mobile { display: flex; background: none; border: 0; padding: 4px; color: var(--primaria); cursor: pointer; }
  .btn-menu-mobile svg { width: 28px; height: 28px; stroke-width: 2.2; }
  .logo, .logo img { height: 56px; }
  .busca { order: 5; flex-basis: 100%; max-width: none; }
  .busca input { height: 40px; }
  .conta { padding-right: 0; border: 0; }
  .conta-icone, .ola { display: none; }
  .carrinho-total { font-size: 15px; }
  .menu { display: none; }
  .links-inst { display: none; }
  .barra-contato-in { justify-content: flex-end; }
  .vitrine-caixa { padding: 20px 16px 26px; }
  .carrossel-trilho { grid-auto-columns: calc((100% - 16px) / 2); gap: 16px; }
  .carrossel-seta { display: none; }
  .listagem { grid-template-columns: 1fr; gap: 0; }
  .filtros-toggle { display: block; width: 100%; margin-top: 12px; padding: 12px; background: var(--cinza-fundo); border: 1px solid var(--borda); font-weight: 700; cursor: pointer; }
  .filtros-corpo { display: none; }
  .filtros.aberto .filtros-corpo { display: block; }
  .grade-produtos { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; }
  .exibir { display: none; }
  .produto { grid-template-columns: 1fr; gap: 20px; }
  .galeria { grid-template-columns: 1fr; }
  .miniaturas { flex-direction: row; order: 2; max-height: none; overflow-x: auto; }
  .miniaturas button { flex: 0 0 64px; }
  .carrinho-grade, .checkout { grid-template-columns: 1fr; }
  .checkout .resumo { order: -1; position: static; }
  .rodape-info, .contato-grade { grid-template-columns: 1fr; }
  .newsletter-form { flex-wrap: wrap; max-width: none; }
  .newsletter-form input { flex-basis: 100%; }
  .newsletter-form button { width: 100%; }
  .passo span { display: none; }
  .passo.atual span { display: inline; }
  .whats-flutuante { width: 50px; height: 50px; }
}
@media (max-width: 560px) {
  .carrinho-total { display: none; }
  .conta-links { font-size: 12px; }
  .ordenar { width: 100%; justify-content: space-between; }
  .ordenar select { min-width: 0; }
  .resultados-topo h1 { font-size: 16px; }
  .card-nome { font-size: 12px; margin: 12px 0 8px; }
  .preco { font-size: 17px; }
  .carrinho-item { grid-template-columns: 70px 1fr 30px; }
  .carrinho-item img { width: 70px; height: 70px; }
  .carrinho-item .qtd-controle { grid-column: 2; }
  .carrinho-item .subtotal { grid-column: 2; text-align: left; }
  .carrinho-item .remover { grid-row: 1; grid-column: 3; }
  .carrinho-vazio { flex-direction: column; text-align: center; }
  .carrinho-vazio-icone { border: 0; padding: 0; }
  .campos .col-2 { grid-column: auto; }
  .beneficio { min-width: 0; width: 100%; }
  .modo-lista .card-produto { grid-template-columns: 1fr; }
}

.aviso-demo { background: #fff3cd; color: #6b4e00; text-align: center; font-size: 13px; font-weight: 700; padding: 8px 16px; }
.tabela-esp { border-collapse: collapse; width: 100%; max-width: 640px; margin-top: 12px; font-size: 14px; }
.tabela-esp th, .tabela-esp td { text-align: left; padding: 9px 12px; border-bottom: 1px solid #eee; vertical-align: top; }
.tabela-esp th { width: 40%; color: #555; font-weight: 600; background: #fafafa; }

/* cálculo do frete no checkout */
.calcular-frete { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.calcular-frete label { display: grid; gap: 4px; font-size: 14px; flex: 0 1 220px; }
.calcular-frete a { font-size: 13px; padding-bottom: 10px; }
.frete-status { font-size: 14px; color: #666; margin: 6px 0 10px; }
.frete-status.erro { color: #b00020; }
.calcular-frete input { display: block; width: 100%; height: 42px; border: 1px solid #ccc; padding: 0 12px; border-radius: 2px; background: #fff; font-size: 16px; }
.calcular-frete label { font-weight: 700; }
