
:root{
  /* céu antes do amanhecer */
  --fundo:#0a0b10; --fundo2:#07080c;
  --papel:#14161f; --papel2:#1c1f2b; --papel3:#232734;
  --tinta:#f7f2ec; --tinta2:#b6afa8; --tinta3:#847d78;
  --linha:#252936; --linha2:#343a4b;

  /* a faixa do sol nascendo */
  --marca:#ff8a3d; --marca-viva:#ffa95c; --marca-clara:#2a1a10;
  --brasa:#ff5e4d; --brasa-fundo:#2a1210;
  --ouro:#ffc862; --ouro-fundo:#2a2110;

  /* a única cor fria da página, reservada ao que foi conferido */
  --selo:#4ed8a0; --selo-fundo:#0e2620;

  --alerta:#ffb84d; --alerta-fundo:#241a0c;

  --sombra:0 1px 2px rgba(0,0,0,.5), 0 6px 20px rgba(0,0,0,.35);
  --sombra-alta:0 2px 6px rgba(0,0,0,.55), 0 22px 48px rgba(0,0,0,.45);
  --brilho:0 0 0 1px rgba(255,138,61,.18), 0 10px 40px rgba(255,94,77,.10);
  --raio:16px; --raio2:22px;

  /* A coluna lateral. Nao e cor, e medida: fica aqui porque a largura dela e
     o que sobra para a grade de produtos, e essa conta tem que ter um lugar
     so. Cresce em dois degraus conforme a tela da folga (mais abaixo). */
  --lateral-largura:268px; --lateral-vao:24px;
  --amanhecer:linear-gradient(97deg,#ff5e4d 0%,#ff8a3d 46%,#ffc862 100%);
}

/* O site tem UM tema, e ele e escuro: o do nascer do sol, o que ja estava no
   ar. Decisao do dono em 19/08/2026: "eu ainda prefiro o tema escuro que
   estava, branco cansa a vista". Existiu aqui uma segunda paleta, clara,
   ligada por um atributo no <html> -- foi removida INTEIRA. De proposito ela
   nao ficou comentada, nem guardada atras de um seletor de aparencia
   inofensiva, nem trocada por uma consulta a preferencia do sistema: paleta
   clara adormecida e um site que amanhece branco no dia em que alguem liga o
   gatilho sem saber o que ele faz. Nao existe alternador de tema, e nao e
   para existir. Se um dia o claro voltar, que volte por decisao de quem
   pediu, e nunca por descuido. */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--fundo);color:var(--tinta);
font:16px/1.6 Manrope,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
font-variant-numeric:tabular-nums}
a{color:var(--marca-viva);text-underline-offset:2px}
img{max-width:100%}
:focus-visible{outline:2px solid var(--marca);outline-offset:3px;border-radius:6px}
h1,h2,h3{letter-spacing:-.03em}

/* O sol que nasce atrás do conteúdo. Fica no body para atravessar todas as
   páginas sem repetir marcação, e não rola com o texto. */
body::before{content:"";position:fixed;inset:0 0 auto;height:520px;z-index:0;
pointer-events:none;
background:
  radial-gradient(1100px 380px at 12% -12%,rgba(255,94,77,.16),transparent 62%),
  radial-gradient(900px 320px at 82% -18%,rgba(255,200,98,.11),transparent 60%)}
.topo,main,.rodape{position:relative;z-index:1}

/* ---------- topo ---------- */
.topo{position:sticky;top:0;z-index:20;
background:color-mix(in srgb,var(--fundo) 82%,transparent);
backdrop-filter:saturate(160%) blur(14px);
border-bottom:1px solid color-mix(in srgb,var(--linha) 70%,transparent)}
.topo .interno{max-width:1240px;margin:0 auto;padding:14px 24px;display:flex;
align-items:center;gap:24px;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17.5px;
letter-spacing:-.04em;text-decoration:none;color:var(--tinta)}
.marca .glifo{width:28px;height:28px;flex:none}
.marca span{background:var(--amanhecer);-webkit-background-clip:text;
background-clip:text;color:transparent}
/* O flex-wrap nao e enfeite: os tres links somam 262px e a barra so tem 232px
   numa tela de 280. Sem ele o menu vazava para fora da tela e a PAGINA INTEIRA
   rolava para o lado -- medido no site gerado, em 280px. */
.topo nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:4px;font-size:14px;
align-items:center}
.topo nav a{color:var(--tinta2);text-decoration:none;padding:8px 13px;border-radius:10px;
font-weight:500;transition:background .14s,color .14s}
.topo nav a:hover{background:var(--papel2);color:var(--tinta)}

main{max-width:1240px;margin:0 auto;padding:32px 24px 100px}

/* ---------- abertura ---------- */
.abertura{margin:0 0 24px}
.selo-linha{display:inline-flex;align-items:center;gap:8px;font-size:12px;
text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--tinta3);
margin:0 0 14px}
.selo-linha::before{content:"";width:26px;height:2px;border-radius:2px;
background:var(--amanhecer)}
.chamada{margin:0 0 12px;font-size:clamp(29px,4.4vw,46px);line-height:1.04;
letter-spacing:-.045em;font-weight:800;max-width:20ch;text-wrap:balance}
.chamada em{font-style:normal;background:var(--amanhecer);
-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--tinta2);margin:0;max-width:58ch;font-size:16.5px;line-height:1.5}

.provas{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0 0}
.prova{display:flex;align-items:center;gap:9px;background:var(--papel);
border:1px solid var(--linha);border-radius:999px;padding:9px 16px;font-size:13.5px;
color:var(--tinta2)}
.prova b{color:var(--tinta);font-weight:750}
.prova .ponto{width:7px;height:7px;border-radius:50%;background:var(--selo);flex:none;
box-shadow:0 0 0 3px color-mix(in srgb,var(--selo) 18%,transparent)}

/* ---------- busca ---------- */
.painel-busca{margin:22px 0 6px;position:relative}
.campo-busca{position:relative;max-width:700px}
.campo-busca svg{position:absolute;left:21px;top:50%;transform:translateY(-50%);
width:19px;height:19px;color:var(--tinta3);pointer-events:none}
#busca{width:100%;background:var(--papel);color:var(--tinta);
border:1.5px solid var(--linha2);border-radius:999px;
padding:15px 22px 15px 50px;font-size:16.5px;font-family:inherit;font-weight:500;
box-shadow:var(--sombra);transition:border-color .16s,box-shadow .16s}
#busca::placeholder{color:var(--tinta3);font-weight:400}
#busca:focus{outline:none;border-color:var(--marca);box-shadow:var(--brilho)}
#busca:disabled{opacity:.5}
.dica-busca{font-size:13px;color:var(--tinta3);margin:13px 0 0;display:flex;
gap:7px;flex-wrap:wrap;align-items:center}
.dica-busca em{font-style:normal;background:var(--papel);border:1px solid var(--linha);
color:var(--tinta2);padding:5px 12px;border-radius:999px;cursor:pointer;
transition:border-color .16s,color .16s}
.dica-busca em:hover{border-color:var(--marca);color:var(--marca-viva)}

.facetas{display:flex;flex-wrap:wrap;gap:20px;margin-top:20px}
.faceta{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.faceta b{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;
color:var(--tinta3);margin-right:4px;font-weight:800}
.faceta button{background:var(--papel);border:1px solid var(--linha);color:var(--tinta2);
border-radius:999px;padding:8px 15px;font-size:13px;cursor:pointer;font-family:inherit;
font-weight:600;transition:all .14s}
.faceta button:hover{border-color:var(--marca);color:var(--marca-viva)}
.faceta button.ativo{background:var(--marca);border-color:var(--marca);color:#12100e}
.faceta button.ativo span{color:rgba(18,16,14,.62)}
.faceta button span{color:var(--tinta3);font-size:11.5px;margin-left:5px;font-weight:500}

/* ---------- explorar (pushdown) ---------- */
/* Uma linha em vez de tres. O produto entra na primeira tela e quem quer
   navegar por categoria abre quando quiser -- sem JavaScript, so <details>. */
.explorar{margin:18px 0 0;border:1px solid var(--linha);border-radius:14px;
background:color-mix(in srgb,var(--papel) 60%,transparent);overflow:hidden}
.explorar summary{cursor:pointer;padding:13px 18px;font-size:14.5px;font-weight:650;
color:var(--tinta2);display:flex;align-items:center;gap:10px;list-style:none;
transition:color .14s,background .14s}
.explorar summary::-webkit-details-marker{display:none}
.explorar summary::before{content:"";width:8px;height:8px;flex:none;
border-right:2px solid var(--marca);border-bottom:2px solid var(--marca);
transform:rotate(-45deg);transition:transform .18s;margin-left:2px}
.explorar[open] summary::before{transform:rotate(45deg)}
.explorar summary:hover{color:var(--tinta);background:var(--papel2)}
.explorar summary i{font-style:normal;color:var(--tinta3);font-weight:500;font-size:13px}
.explorar .categorias{margin:0;padding:4px 18px 18px}
.explorar[open]{background:var(--papel)}

/* Os filtros da busca seguem a mesma regra: fechados, um por assunto, com o
   que esta ativo aparecendo no proprio rotulo. */
.filtros{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 0;align-items:flex-start}
.filtro{border:1px solid var(--linha);border-radius:12px;background:var(--papel);
min-width:0}
.filtro summary{cursor:pointer;padding:10px 15px;font-size:13.5px;font-weight:650;
color:var(--tinta2);display:flex;align-items:center;gap:8px;list-style:none;
white-space:nowrap}
.filtro summary::-webkit-details-marker{display:none}
.filtro summary::after{content:"";width:7px;height:7px;flex:none;
border-right:2px solid currentColor;border-bottom:2px solid currentColor;
transform:rotate(45deg);opacity:.5;margin-top:-3px}
.filtro[open]{border-color:var(--linha2)}
.filtro.tem-escolha{border-color:var(--marca);color:var(--marca-viva)}
.filtro.tem-escolha summary{color:var(--marca-viva)}
.filtro .opcoes{display:flex;flex-direction:column;gap:2px;padding:6px;
max-height:340px;overflow:auto;min-width:210px}
.filtro .opcoes button{background:none;border:none;text-align:left;
color:var(--tinta2);border-radius:8px;padding:8px 11px;font-size:13.5px;
cursor:pointer;font-family:inherit;font-weight:550;display:flex;
justify-content:space-between;gap:12px}
.filtro .opcoes button:hover{background:var(--papel2);color:var(--tinta)}
.filtro .opcoes button.ativo{background:var(--marca-clara);color:var(--marca-viva)}
.filtro .opcoes button span{color:var(--tinta3);font-size:12px;font-weight:500}
.limpar-filtros{background:none;border:1px dashed var(--linha2);color:var(--tinta3);
border-radius:12px;padding:10px 15px;font-size:13px;cursor:pointer;
font-family:inherit;font-weight:600}
.limpar-filtros:hover{border-color:var(--brasa);color:var(--brasa)}

/* ---------- categorias ---------- */
.categorias{display:flex;flex-wrap:wrap;gap:9px;margin:28px 0 4px}
.categorias .cat{display:inline-flex;align-items:center;gap:8px;background:var(--papel);
border:1px solid var(--linha);border-radius:999px;padding:10px 17px;font-size:14px;
text-decoration:none;color:var(--tinta2);font-weight:600;transition:all .14s}
.categorias .cat:hover{border-color:var(--marca);color:var(--marca-viva);
transform:translateY(-1px)}
.categorias .cat.atual{background:var(--marca);border-color:var(--marca);color:#12100e}
.categorias .cat.atual span{color:rgba(18,16,14,.6)}
.categorias .cat span{font-size:12px;color:var(--tinta3);font-weight:500}

/* ---------- seções ---------- */
.secao-titulo{display:flex;align-items:baseline;gap:14px;margin:44px 0 0;flex-wrap:wrap}
/* O primeiro bloco cola no topo: e ele que tem que aparecer junto com a busca. */
#curadoria>section:first-child .secao-titulo{margin-top:22px}
.secao-titulo h2{margin:0;font-size:23px;font-weight:780}
.secao-titulo p{margin:0;color:var(--tinta3);font-size:14px}
.secao-titulo .mais{margin-left:auto;font-size:13.5px;color:var(--marca-viva);
text-decoration:none;font-weight:650;white-space:nowrap}
.secao-titulo .mais:hover{text-decoration:underline}

/* O motivo pelo qual o bloco existe. Vitrine sem critério declarado é só uma
   parede de produto; dizer POR QUE aquilo está ali é o produto deste site. */
.motivo{margin:8px 0 0;color:var(--tinta2);font-size:14.5px;max-width:64ch}
.motivo b{color:var(--tinta);font-weight:700}

/* ---------- grade e cartões ---------- */
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));
gap:20px;margin-top:24px}
.carta{position:relative;background:var(--papel);border:1px solid var(--linha);
border-radius:var(--raio);overflow:hidden;display:flex;flex-direction:column;
text-decoration:none;color:inherit;box-shadow:var(--sombra);
transition:transform .18s,box-shadow .18s,border-color .18s}
.carta:hover{transform:translateY(-4px);box-shadow:var(--sombra-alta);
border-color:var(--linha2)}

/* A moldura é branca SEMPRE, inclusive no tema escuro: `multiply` só funciona
   sobre branco. Sobre fundo escuro o produto some, e isso já foi medido no
   site publicado. */
.carta .moldura,.vitrine .moldura{position:relative;background:#fff;padding:16px;
aspect-ratio:1;display:flex;align-items:center;justify-content:center}
.carta img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.carta .corpo{padding:15px 17px 17px;display:flex;flex-direction:column;gap:8px;flex:1}
.carta h3{margin:0;font-size:14.5px;font-weight:600;line-height:1.36;
letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;
-webkit-box-orient:vertical;overflow:hidden}

.linha-preco{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-top:auto}
.preco{font-size:22px;font-weight:800;color:var(--tinta);letter-spacing:-.035em}
.antes{font-size:13px;color:var(--tinta3);text-decoration:line-through}

/* O desconto no canto da foto, não no meio do texto: é a primeira coisa que o
   olho procura numa vitrine de oferta. */
.selo-desconto{position:absolute;top:12px;left:12px;z-index:2;
background:var(--brasa);color:#fff;font-weight:800;font-size:13px;
padding:5px 11px;border-radius:10px;letter-spacing:-.02em;
box-shadow:0 4px 14px rgba(255,94,77,.35)}
.selo-desconto.forte{background:var(--amanhecer);color:#1a0f08}

.nota{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;
color:var(--tinta2);font-weight:600}
.nota svg{width:12px;height:12px;color:var(--ouro);flex:none}
.nota i{font-style:normal;color:var(--tinta3);font-weight:500}

.etiqueta{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:4px 10px;
border-radius:999px;background:var(--selo-fundo);color:var(--selo);width:fit-content;
font-weight:700;letter-spacing:-.01em}
.etiqueta.exterior{background:var(--alerta-fundo);color:var(--alerta)}
.etiqueta.neutra{background:var(--papel2);color:var(--tinta3)}
.etiqueta.ouro{background:var(--ouro-fundo);color:var(--ouro)}
.meta{font-size:12.5px;color:var(--tinta3);display:flex;gap:8px;align-items:center;
flex-wrap:wrap}
.foto-vazia{width:100%;aspect-ratio:1;
background:linear-gradient(160deg,var(--papel2),var(--papel3))}

/* ---------- o achado do dia ---------- */
.achado{display:grid;grid-template-columns:1fr;gap:0;margin-top:24px;
border:1px solid var(--linha2);border-radius:var(--raio2);overflow:hidden;
background:var(--papel);box-shadow:var(--sombra-alta);text-decoration:none;color:inherit;
transition:border-color .18s,box-shadow .18s}
.achado:hover{border-color:var(--marca);box-shadow:var(--sombra-alta),var(--brilho)}
@media(min-width:860px){.achado{grid-template-columns:minmax(0,46%) minmax(0,1fr)}}
.achado .moldura{position:relative;background:#fff;padding:26px;aspect-ratio:4/3;
display:flex;align-items:center;justify-content:center}
.achado img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.achado .corpo{padding:30px 32px 32px;display:flex;flex-direction:column;gap:12px;
justify-content:center}
.achado h3{margin:0;font-size:clamp(20px,2.4vw,27px);font-weight:780;line-height:1.18}
.achado .precao{font-size:clamp(30px,4vw,42px);font-weight:800;letter-spacing:-.045em;
line-height:1;margin:0}
.achado .antes{font-size:16px}
.achado .cta{margin-top:6px}

/* ---------- página de produto ---------- */
.migalha{font-size:13.5px;color:var(--tinta3);margin:0 0 20px}
.migalha a{color:var(--tinta2);text-decoration:none}
.migalha a:hover{color:var(--marca-viva)}
.detalhe{display:grid;grid-template-columns:1fr;gap:38px}
@media(min-width:860px){.detalhe{grid-template-columns:420px 1fr}}
/* O align-self:start conserta duas coisas de uma vez, e as duas apareceram
   medindo a pagina com a lateral ligada: esticada ate o fim da linha da grade,
   a vitrine desenhava borda e sombra em volta de um vazio de centenas de
   pixels abaixo da foto, e o proprio sticky nao fazia nada -- caixa da altura
   da celula nao tem para onde deslizar. */
.vitrine{border:1px solid var(--linha);border-radius:var(--raio2);overflow:hidden;
box-shadow:var(--sombra);position:sticky;top:92px;align-self:start}
.vitrine .moldura{aspect-ratio:1;padding:30px}
.vitrine img{border-radius:4px}
.titulo-produto{margin:0 0 14px;font-size:clamp(23px,3vw,32px);font-weight:780;
line-height:1.16}
.precao{font-size:clamp(36px,5vw,50px);font-weight:800;color:var(--tinta);
letter-spacing:-.045em;line-height:1;margin:4px 0}
.bloco-preco{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0 0 6px}
.bloco-preco .antes{font-size:18px}
.baixou{display:inline-flex;align-items:center;gap:7px;background:var(--brasa-fundo);
color:var(--brasa);font-weight:750;font-size:14px;padding:6px 13px;border-radius:999px}
.atributos{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}
.atributo{font-size:12.5px;background:var(--papel2);color:var(--tinta2);
border-radius:9px;padding:6px 12px;font-weight:600}
.caixa{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);
padding:22px 24px;margin:22px 0;box-shadow:var(--sombra)}
.caixa h2{margin:0 0 14px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
color:var(--tinta3);font-weight:800}
.caixa.aviso{border-color:color-mix(in srgb,var(--alerta) 34%,transparent);
background:var(--alerta-fundo)}
.caixa.aviso h2{color:var(--alerta)}

.botao{display:inline-flex;align-items:center;justify-content:center;gap:10px;
background:var(--amanhecer);color:#1a0f08;font-weight:800;font-size:16.5px;
padding:16px 32px;border-radius:999px;text-decoration:none;margin-top:18px;
letter-spacing:-.02em;box-shadow:0 6px 22px rgba(255,110,60,.28);
transition:transform .14s,box-shadow .14s,filter .14s}
.botao:hover{transform:translateY(-2px);filter:brightness(1.06);
box-shadow:0 12px 32px rgba(255,110,60,.4)}
.botao svg{width:17px;height:17px}
.aviso-publi{font-size:12.5px;color:var(--tinta3);margin:12px 0 0;max-width:54ch}
.tabela{width:100%;border-collapse:collapse;font-size:14.5px}
.tabela td{padding:11px 0;border-bottom:1px solid var(--linha)}
.tabela tr:last-child td{border-bottom:none}
.tabela td:first-child{color:var(--tinta3)}
.tabela td:last-child{text-align:right;font-weight:650}

/* ---------- gráfico ---------- */
.grafico{width:100%;height:150px;display:block;margin:6px 0 2px}
.grafico-linha{fill:none;stroke:var(--marca);stroke-width:2.5;stroke-linejoin:round;
stroke-linecap:round}
.grafico-area{fill:var(--marca);opacity:.13}
.grafico-ponto{fill:var(--marca-viva)}
.grafico-eixo{stroke:var(--linha2);stroke-width:1;stroke-dasharray:3 4}
.grafico-rotulo{fill:var(--tinta3);font-size:11px;font-family:inherit}
.legenda-grafico{font-size:12.5px;color:var(--tinta3);display:flex;
justify-content:space-between;margin-top:4px}

/* ---------- avisos e vazios ---------- */
.aviso{background:var(--alerta-fundo);
border:1px solid color-mix(in srgb,var(--alerta) 26%,transparent);
border-radius:var(--raio);padding:16px 20px;margin:26px 0;font-size:14.5px;
color:var(--tinta2)}
.aviso b{color:var(--tinta)}
.contagem{font-size:14px;color:var(--tinta3);margin:24px 0 6px}
.vazio-busca{color:var(--tinta2);background:var(--papel);border:1px solid var(--linha);
border-radius:var(--raio);padding:28px;margin:24px 0;box-shadow:var(--sombra)}

/* ---------- esteira infinita ---------- */
#esteira-secao{margin-top:8px}
#esteira-fim{text-align:center;padding:26px 0 8px;color:var(--tinta3);font-size:14px;
display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap}
/* O botao existe para quem o observador nao alcanca: navegador antigo, leitor
   de tela, e quem prefere clicar a rolar. A esteira nao pode depender de um
   unico gesto. */
.ver-mais{background:var(--papel);border:1px solid var(--linha2);color:var(--tinta);
border-radius:999px;padding:10px 22px;font-size:14px;font-weight:700;cursor:pointer;
font-family:inherit;transition:border-color .14s,color .14s}
.ver-mais:hover{border-color:var(--marca);color:var(--marca-viva)}
/* Sem JavaScript a esteira nunca preenche: o rotulo "Carregando mais" ficaria
   para sempre na tela. A secao inteira so aparece quando o JS a liga. */
#esteira-secao{display:none}
#esteira-secao.tem{display:block}

/* ---------- para você ---------- */
/* Some por padrão: um bloco vazio dizendo "para você" antes de a pessoa ver
   qualquer produto é promessa não cumprida. O JS revela quando há histórico. */
#para-voce{display:none}
#para-voce.tem{display:block}
.nota-privacidade{font-size:12.5px;color:var(--tinta3);margin:10px 0 0;
display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nota-privacidade button{background:none;border:1px solid var(--linha);
color:var(--tinta3);border-radius:999px;padding:4px 11px;font-size:12px;
cursor:pointer;font-family:inherit;font-weight:600}
.nota-privacidade button:hover{border-color:var(--brasa);color:var(--brasa)}

/* ---------- as duas colunas ---------- */
/* A marcacao e esta, e so esta:
     <div class="com-lateral">
       <div class="coluna-principal">...a pagina de hoje...</div>
       <aside id="lateral" class="lateral"></aside>
     </div>
   O <aside> nasce VAZIO e so ganha conteudo depois, pelo JavaScript, que poe
   a classe "tem" no proprio aside quando ha o que mostrar -- a mesma convencao
   do "Para voce" da busca. Por isso a coluna unica e o estado NORMAL: sem
   "tem", o layout e exatamente o de hoje, sem coluna reservada, sem buraco e
   sem caixa desenhada. As duas colunas so aparecem quando ha conteudo E ha
   largura sobrando, e o :has() faz as duas perguntas de uma vez. Navegador que
   nao entender :has() fica na coluna unica, que e um layout correto. */
.com-lateral{display:block}
.coluna-principal{min-width:0}
/* Nao da para usar :empty aqui: o modulo cria o .lateral-op por dentro antes
   de saber se tem o que mostrar, entao o aside nunca fica literalmente vazio. */
#lateral:not(.tem){display:none}

@media (min-width:1100px){
  /* 1100px e o piso com FOLGA, nao o limite: abaixo disso a lateral roubaria
     da .grade a terceira coluna de cartoes, e vitrine espremida e pior que
     vitrine sem lateral. Aqui a grade fica com ~760px, que ainda da tres
     cartoes acima do minimo de 232px. A lateral so engorda quando a tela
     para de cobrar isso da grade (os dois degraus logo abaixo). */
  .com-lateral:has(>#lateral.tem){display:grid;
  grid-template-columns:minmax(0,1fr) var(--lateral-largura);
  gap:var(--lateral-vao);align-items:start}
  /* align-self:start e o que faz a coluna grudar: a celula da grade tem a
     altura da coluna de conteudo, a lateral tem a altura do proprio conteudo,
     e a diferenca entre as duas e o trecho onde ela desliza. Esticada, ela
     nao teria para onde correr e o sticky nao faria nada. */
  .com-lateral>#lateral.tem{position:sticky;top:92px;align-self:start;margin:0;
  /* Coluna mais alta que a tela rola por dentro -- so no eixo vertical.
     Rolagem horizontal nao existe em lugar nenhum desta folha. */
  max-height:calc(100vh - 116px);overflow-y:auto;overflow-x:hidden;
  scrollbar-width:thin;scrollbar-color:var(--linha2) transparent}
  .com-lateral>#lateral.tem .lateral-op{grid-template-columns:minmax(0,1fr)}
  /* Na pagina de produto a coluna de texto ja divide espaco com a vitrine de
     420px. Com a lateral ligada, as duas passam a poder encolher em vez de
     estourar a largura da pagina. */
  .com-lateral:has(>#lateral.tem) .detalhe{
  grid-template-columns:minmax(0,392px) minmax(0,1fr)}
}
@media (min-width:1320px){:root{--lateral-largura:296px;--lateral-vao:28px}}
@media (min-width:1500px){:root{--lateral-largura:320px;--lateral-vao:32px}}

/* ---------- barra lateral (lateral.js) ---------- */
/* O que o modulo emite, por dentro do aside:
     <div class="lateral-op">
       <section class="lateral-bloco lateral-bloco-queda">
         <h2 class="lateral-titulo">   <p class="lateral-sub">
         <div class="lateral-lista">
           <a class="lateral-item">
             <span class="lateral-miniatura"><img></span>   (ou .lateral-sem-foto)
             <span class="lateral-texto">
               <span class="lateral-nome">
               <span class="lateral-queda">  <span class="lateral-antes">
               <span class="lateral-quando"> <span class="lateral-etiqueta-vigiado">
               <span class="lateral-rodape">
                 <span class="lateral-preco"><span class="lateral-loja">
   E dentro do bloco "De olho neste": <button class="lateral-botao-vigiar">
   (com .lateral-vigiado quando marcado) e <p class="lateral-aviso">.
   Como e tudo <span>, cada peca precisa declarar o proprio display: span
   herdado de inline nao aceita largura, nem corte de duas linhas.

   O ALERTA DE PRECO acrescenta tres blocos e uma familia .lateral-alvo-*:
     .lateral-bloco-alerta  "Chegou no preco que voce pediu" (alvo atingido)
     .lateral-bloco-espera  "Alvos que voce definiu" (ainda nao chegaram)
     .lateral-bloco-alvo    o campo, so na pagina do produto
   Nas listas dos dois primeiros a linha vira <div class="lateral-alvo-linha">
   com o <a class="lateral-item"> e um <button class="lateral-alvo-sair"> ao
   lado -- botao dentro de <a> e marcacao invalida. Dentro do item entram
   .lateral-alvo-batido, .lateral-falta e .lateral-alvo-visto; no bloco do
   campo, .lateral-alvo-estado, .lateral-alvo-forma (com .lateral-alvo-rotulo,
   .lateral-alvo-campo-linha > .lateral-alvo-simbolo + .lateral-alvo-campo,
   .lateral-alvo-definir e a variante .lateral-alvo-sair-largo),
   .lateral-alvo-nota e .lateral-alvo-recado. */
.lateral{margin:44px 0 0}
/* Empilhada, os blocos se espalham em quantas colunas couberem: no celular a
   lateral nao vira uma fita infinita de rolagem. Nenhuma largura fixa aqui --
   largura fixa em tela estreita e exatamente o que produz rolagem horizontal.
   O min() dentro do minmax segura o caso extremo: numa tela de 280px a coluna
   encolhe junto, em vez de estourar a pagina. */
.lateral-op{display:grid;gap:16px;align-content:start;
grid-template-columns:repeat(auto-fit,minmax(min(268px,100%),1fr))}

.lateral-bloco{background:var(--papel);border:1px solid var(--linha);
border-radius:var(--raio);padding:15px 16px 16px;box-shadow:var(--sombra);
min-width:0}
/* O unico bloco com borda quente: queda de preco e a noticia da coluna, o
   resto e navegacao. */
.lateral-bloco-queda{border-color:color-mix(in srgb,var(--brasa) 32%,var(--linha))}

/* Mesma voz dos titulos de caixa da pagina de produto, com o tracinho do
   amanhecer que a .selo-linha ja usa. */
.lateral-titulo{margin:0;display:flex;align-items:center;gap:9px;
font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;
color:var(--tinta3);line-height:1.3}
.lateral-titulo::before{content:"";width:18px;height:2px;flex:none;
border-radius:2px;background:var(--amanhecer)}
.lateral-bloco-queda .lateral-titulo{color:var(--brasa)}
.lateral-bloco-queda .lateral-titulo::before{background:var(--brasa)}
.lateral-sub{margin:7px 0 0;font-size:12px;line-height:1.45;color:var(--tinta3)}
.lateral-lista{display:block;margin-top:11px}

.lateral-item{display:flex;align-items:flex-start;gap:11px;margin:0 -8px;
padding:10px 8px;border-radius:12px;border-top:1px solid var(--linha);
text-decoration:none;color:inherit;transition:background .14s}
.lateral-lista>.lateral-item:first-child{border-top:none;padding-top:2px}
.lateral-item:hover{background:var(--papel2)}

/* INVARIANTE: moldura de foto de produto e BRANCA sempre, inclusive no tema
   escuro. O multiply das fotos de marketplace so funciona sobre branco --
   sobre fundo escuro o produto some, e isso ja foi medido no site publicado. */
.lateral-miniatura{flex:none;width:56px;height:56px;background:#fff;
border:1px solid var(--linha);border-radius:12px;padding:5px;overflow:hidden;
display:flex;align-items:center;justify-content:center}
.lateral-miniatura img{width:100%;height:100%;object-fit:contain;display:block;
mix-blend-mode:multiply}
/* Sem foto nao ha o que multiplicar, e ai o branco vira o problema em vez da
   solucao: um quadrado aceso no meio do cartao escuro. Vale o mesmo cinza da
   .foto-vazia da grade. */
.lateral-sem-foto{background:linear-gradient(160deg,var(--papel2),var(--papel3))}

/* Fila que quebra sozinha, e nao uma pilha: o nome e o rodape ocupam a linha
   inteira, mas "voce viu por X" e "ha N dias" dividem a mesma linha quando
   cabem. Empilhados um por linha, o item de queda ficava com o dobro da
   altura dos outros e a coluna perdia o ritmo. */
.lateral-texto{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;
align-items:center;gap:4px 8px}
/* Duas linhas com reticencias, igual ao cartao da grade. */
.lateral-nome{flex:1 1 100%;display:-webkit-box;-webkit-line-clamp:2;
-webkit-box-orient:vertical;overflow:hidden;max-width:100%;font-size:13px;
font-weight:600;line-height:1.34;letter-spacing:-.01em;color:var(--tinta);
overflow-wrap:anywhere}
.lateral-rodape{flex:1 1 100%;display:flex;align-items:baseline;gap:8px;
flex-wrap:wrap;max-width:100%;margin-top:2px}
.lateral-preco{font-size:14.5px;font-weight:800;letter-spacing:-.03em;
color:var(--tinta)}
.lateral-loja{min-width:0;font-size:11.5px;font-weight:600;color:var(--tinta3);
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* O que puxa o olho na coluna inteira. Brasa e queda de preco em todo o site;
   aqui ela vira pilula com anel para nao se dissolver no meio do texto. */
.lateral-queda{align-self:flex-start;display:inline-flex;align-items:baseline;
margin:2px 0 1px;padding:4px 10px;border-radius:999px;
background:var(--brasa-fundo);color:var(--brasa);font-size:13px;font-weight:800;
letter-spacing:-.02em;
box-shadow:0 0 0 1px color-mix(in srgb,var(--brasa) 32%,transparent)}
/* O "voce viu por" e o "ha N dias" sustentam a afirmacao da pilula, entao
   ficam legiveis e discretos: sao a prova, nao a manchete. */
.lateral-antes{font-size:11.5px;line-height:1.35;color:var(--tinta3)}
.lateral-quando{font-size:11px;color:var(--tinta3)}
.lateral-etiqueta-vigiado{align-self:flex-start;display:inline-flex;
align-items:center;padding:3px 9px;border-radius:999px;
background:var(--marca-clara);color:var(--marca-viva);font-size:10.5px;
font-weight:800;text-transform:uppercase;letter-spacing:.1em}

.lateral-botao-vigiar{display:flex;align-items:center;justify-content:center;
gap:7px;width:100%;margin-top:12px;padding:10px 16px;border-radius:999px;
background:var(--papel2);border:1px solid var(--linha2);color:var(--tinta);
font-size:13.5px;font-weight:700;font-family:inherit;cursor:pointer;
transition:background .14s,border-color .14s,color .14s}
.lateral-botao-vigiar:hover{border-color:var(--marca);color:var(--marca-viva)}
/* O aria-pressed entra junto com a classe: os dois dizem a mesma coisa e o
   estado ligado nao pode depender de qual deles o modulo lembrou de mexer. */
.lateral-botao-vigiar.lateral-vigiado,
.lateral-botao-vigiar[aria-pressed="true"]{background:var(--marca-clara);
border-color:var(--marca);color:var(--marca-viva)}
.lateral-botao-vigiar.lateral-vigiado:hover,
.lateral-botao-vigiar[aria-pressed="true"]:hover{border-color:var(--marca-viva)}
.lateral-aviso{margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--tinta3)}

/* ---------- alerta de preço (lateral.js) ---------- */
/* O site NÃO avisa ninguém: não há e-mail, push nem servidor. A pessoa guarda
   um alvo no próprio aparelho e o site confere quando ela volta. Por isso o
   bloco do alvo atingido é o único da coluna com fundo pintado -- ele é a
   notícia que ela pediu por nome, e precisa ser visto no primeiro olhar, já
   que ninguém vai chamá-la. Brasa aqui é a mesma brasa de "caiu de preço":
   não é cor nova, é a mesma afirmação com um grau a mais de destaque, cheia
   em vez de contornada. */
.lateral-bloco-alerta{background:
  linear-gradient(180deg,var(--brasa-fundo),var(--papel) 64%);
border-color:color-mix(in srgb,var(--brasa) 50%,var(--linha));
box-shadow:var(--sombra),0 0 0 1px color-mix(in srgb,var(--brasa) 12%,transparent)}
.lateral-bloco-alerta .lateral-titulo{color:var(--brasa)}
.lateral-bloco-alerta .lateral-titulo::before{background:var(--brasa)}
/* O que ainda não chegou é informação, não notícia: papel comum. */
.lateral-bloco-alvo{border-color:color-mix(in srgb,var(--marca) 28%,var(--linha))}
.lateral-bloco-alvo .lateral-titulo{color:var(--marca-viva)}
.lateral-bloco-alvo .lateral-titulo::before{background:var(--marca)}

/* A linha do alvo é uma coluna: o item em cima e o "remover" embaixo, alinhado
   à direita. Empilhado assim ele não disputa largura com o texto do produto,
   que é o que estoura a coluna em tela de 280px. */
.lateral-alvo-linha{display:flex;flex-direction:column;align-items:stretch;
min-width:0}
.lateral-lista>.lateral-alvo-linha:first-child>.lateral-item{border-top:none;
padding-top:2px}
.lateral-alvo-sair{align-self:flex-end;margin:0 0 6px;padding:4px 10px;
border-radius:999px;background:none;border:1px solid transparent;
color:var(--tinta3);font-family:inherit;font-size:11px;font-weight:700;
cursor:pointer;white-space:normal;transition:color .14s,border-color .14s}
.lateral-alvo-sair:hover{color:var(--tinta2);border-color:var(--linha2)}
.lateral-alvo-sair-largo{align-self:stretch;margin:9px 0 0;padding:8px 14px;
border-color:var(--linha);font-size:12.5px}

/* Cheia, e não contornada como a .lateral-queda: as duas dizem "caiu", mas só
   esta responde a um pedido explícito da pessoa. */
.lateral-alvo-batido{align-self:flex-start;display:inline-flex;
align-items:baseline;max-width:100%;margin:2px 0 1px;padding:4px 10px;
border-radius:999px;background:var(--brasa);color:var(--fundo);font-size:12px;
font-weight:800;text-transform:uppercase;letter-spacing:.04em;
overflow-wrap:anywhere}
/* "faltam X para o seu alvo de Y" ocupa a linha inteira e fica em tinta de
   apoio: é acompanhamento, não manchete. O filete da esquerda liga a frase ao
   produto sem gastar cor. */
.lateral-falta{flex:1 1 100%;max-width:100%;margin-top:2px;padding-left:8px;
border-left:2px solid var(--linha2);font-size:11.5px;line-height:1.4;
color:var(--tinta2);overflow-wrap:anywhere}
.lateral-alvo-visto{flex:1 1 100%;max-width:100%;font-size:11px;line-height:1.4;
color:var(--tinta3);overflow-wrap:anywhere}

.lateral-alvo-estado{margin:11px 0 0;padding:10px 12px;border-radius:12px;
background:var(--papel2);font-size:12.5px;line-height:1.5;color:var(--tinta2);
overflow-wrap:anywhere}
.lateral-alvo-estado b{color:var(--tinta);font-weight:800;letter-spacing:-.02em}
.lateral-alvo-estado-batido{background:var(--brasa-fundo);color:var(--tinta);
box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brasa) 34%,transparent)}
.lateral-alvo-estado-batido b{color:var(--brasa)}

.lateral-alvo-forma{display:flex;flex-direction:column;align-items:stretch;
margin-top:12px;min-width:0}
.lateral-alvo-rotulo{font-size:12px;font-weight:600;line-height:1.4;
color:var(--tinta2)}
.lateral-alvo-campo-linha{display:flex;align-items:stretch;margin-top:7px;
min-width:0;background:var(--fundo2);border:1px solid var(--linha2);
border-radius:12px}
.lateral-alvo-campo-linha:focus-within{border-color:var(--marca)}
/* O símbolo fica FORA do campo de propósito: dentro, a pessoa apaga o "R$"
   junto com o valor e digita torto. */
.lateral-alvo-simbolo{flex:none;display:flex;align-items:center;padding:0 11px;
border-right:1px solid var(--linha);border-radius:11px 0 0 11px;
background:var(--papel2);color:var(--tinta3);font-size:12.5px;font-weight:700}
/* min-width:0 é o que impede a largura intrínseca do <input> (20 caracteres)
   de empurrar a coluna e criar rolagem horizontal numa tela de 280px. */
.lateral-alvo-campo{flex:1 1 auto;min-width:0;width:100%;padding:10px 12px;
border:none;border-radius:0 11px 11px 0;background:none;color:var(--tinta);
font-family:inherit;font-size:15px;font-weight:700;letter-spacing:-.02em}
.lateral-alvo-definir{margin-top:9px;padding:10px 16px;border-radius:999px;
background:var(--marca-clara);border:1px solid var(--marca);
color:var(--marca-viva);font-family:inherit;font-size:13.5px;font-weight:700;
cursor:pointer;white-space:normal;
transition:background .14s,border-color .14s,color .14s}
.lateral-alvo-definir:hover{border-color:var(--marca-viva);
background:color-mix(in srgb,var(--marca) 18%,var(--marca-clara))}
/* A frase que diz que ninguém será avisado. Discreta, mas nunca ausente. */
.lateral-alvo-nota{margin:11px 0 0;font-size:11.5px;line-height:1.55;
color:var(--tinta3)}
.lateral-alvo-recado{margin:9px 0 0;padding:9px 11px;border-radius:10px;
font-size:12px;line-height:1.45;overflow-wrap:anywhere}
/* Nasce vazio e some enquanto não há o que dizer: caixa vazia reservando
   espaço parece defeito de carregamento. */
.lateral-alvo-recado:empty{display:none;margin:0;padding:0}
.lateral-alvo-recado-ok{background:var(--marca-clara);color:var(--marca-viva)}
/* Âmbar de alerta, e não brasa: brasa neste site significa queda de preço, e
   um erro de digitação pintado de brasa mentiria por cor. */
.lateral-alvo-recado-erro{background:var(--alerta-fundo);color:var(--alerta)}

/* ---------- quadro comparativo (comparar.js) ---------- */
/* O modulo enche o <div id="comparar"> e poe "tem" nele, igual a lateral. O
   quadro reaproveita a .caixa da pagina de produto, entao aqui so entram as
   pecas de dentro: <ul class="comparador-linhas"> com <li class="comparador-
   linha [menor] [atual]">, e os paragrafos .comparador-alerta / .comparador-
   nota / .comparador-solo. */
#comparar:not(.tem){display:none}
.comparador-linhas{list-style:none;margin:8px 0 0;padding:0}
.comparador-linha{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;
margin:0 -6px;padding:12px;border-radius:12px;
border-top:1px solid var(--linha)}
.comparador-linhas>.comparador-linha:first-child{border-top:none}
/* A linha do produto que a pessoa esta vendo agora fica apenas marcada, sem
   cor: ela e o ponto de referencia, nao a recomendacao. Vem ANTES da regra do
   menor preco de proposito -- quando a linha atual TAMBEM e a mais barata, o
   ouro tem que vencer. */
.comparador-linha.atual{background:var(--papel2)}
/* Ouro e a cor do que a curadoria elegeu, e o menor preco e exatamente isso.
   Brasa nao serve aqui (brasa e queda de preco) e menta e reservada ao
   historico conferido. A barra da esquerda entra como sombra interna para o
   destaque nao empurrar a linha um pixel para o lado. */
.comparador-linha.menor{background:var(--ouro-fundo);
border-top-color:transparent;box-shadow:inset 3px 0 0 var(--ouro)}
.comparador-linha.menor+.comparador-linha{border-top-color:transparent}
.comparador-loja{flex:1 1 42%;min-width:0;font-size:14px;font-weight:650;
color:var(--tinta);overflow-wrap:anywhere}
.comparador-vendedor{display:block;font-style:normal;font-size:11.5px;
font-weight:500;color:var(--tinta3)}
.comparador-preco{flex:none;font-size:17px;font-weight:800;
letter-spacing:-.035em;color:var(--tinta)}
.comparador-linha.menor .comparador-preco{font-size:18.5px;color:var(--ouro)}
.comparador-etiqueta{flex:none;padding:4px 9px;border-radius:999px;
background:color-mix(in srgb,var(--ouro) 15%,transparent);color:var(--ouro);
font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
white-space:nowrap}
.comparador-ir{flex:none;margin-left:auto;display:inline-flex;align-items:center;
gap:6px;padding:7px 14px;border-radius:999px;background:none;
border:1px solid var(--linha2);color:var(--tinta2);font-size:12.5px;
font-weight:700;font-family:inherit;text-decoration:none;cursor:pointer;
white-space:nowrap;transition:background .14s,border-color .14s,color .14s}
.comparador-ir:hover{border-color:var(--marca);color:var(--marca-viva)}
.comparador-linha.menor .comparador-ir{color:var(--ouro);
border-color:color-mix(in srgb,var(--ouro) 42%,transparent)}
.comparador-linha.menor .comparador-ir:hover{border-color:var(--ouro);
background:color-mix(in srgb,var(--ouro) 13%,transparent)}
/* "voce esta vendo" nao e acao: nao pode ter cara de botao. */
.comparador-aqui{flex:none;margin-left:auto;font-size:12px;font-weight:600;
color:var(--tinta3);white-space:nowrap}
.comparador-amazon .comparador-loja{color:var(--tinta2)}
.comparador-sem-preco{flex:none;font-size:12.5px;font-weight:600;
color:var(--tinta3)}

/* Dizer que o mesmo produto sai mais barato em outra loja e o site falando
   contra o proprio bolso: e a frase mais importante da pagina e le-se ANTES
   da tabela, em tinta cheia, nunca em cinza de rodape. Usa a voz que a pagina
   ja tem para isso -- o .aviso -- em vez de inventar cor. O numero vai no
   ambar porque e ele que a pessoa precisa levar embora; o ouro do "menor
   preco" mora na lista, embaixo, e os dois nunca disputam a mesma linha. */
.comparador-alerta{margin:0 0 14px;padding:13px 15px;border-radius:12px;
background:var(--alerta-fundo);
border:1px solid color-mix(in srgb,var(--alerta) 34%,transparent);
font-size:14.5px;line-height:1.5;color:var(--tinta)}
.comparador-alerta b{color:var(--alerta);font-weight:800;letter-spacing:-.02em}

/* O preco da Amazon nao aparece por regra da API deles, e isso e INFORMACAO,
   nao defeito. Papel e tinta de texto comum: pintada de amarelo de alerta, a
   honestidade pareceria erro do site. */
.comparador-nota{display:flex;align-items:flex-start;gap:10px;margin:14px 0 0;
padding:11px 13px;border-radius:12px;background:var(--papel2);
font-size:12.5px;line-height:1.5;color:var(--tinta3)}
.comparador-nota::before{content:"i";flex:none;width:16px;height:16px;
margin-top:1px;border:1.5px solid var(--tinta3);border-radius:50%;
font-style:italic;font-weight:800;font-size:10.5px;line-height:13px;
text-align:center}

/* Uma fonte so nao rende quadro, e HOJE esse e o caso de quase toda pagina:
   Shopee e Mercado Livre mal repetem produto. Entao este paragrafo nao e a
   sobra do quadro, e o que o visitante ve de verdade -- vale a caixa inteira,
   com a mesma marca de informacao da nota e o link em forma de botao, porque
   ele e a unica acao oferecida aqui. */
.comparador-solo{margin:22px 0;padding:16px 18px;border-radius:var(--raio);
background:var(--papel);border:1px solid var(--linha);box-shadow:var(--sombra);
font-size:13.5px;line-height:1.75;color:var(--tinta2)}
.comparador-solo::before{content:"i";display:inline-flex;align-items:center;
justify-content:center;width:16px;height:16px;margin-right:9px;
vertical-align:-2px;border:1.5px solid var(--tinta3);border-radius:50%;
color:var(--tinta3);font-style:italic;font-weight:800;font-size:10.5px}
.comparador-solo .comparador-ir{margin:0 3px;padding:5px 13px;font-size:12.5px;
vertical-align:-1px}

/* ---------- texto ---------- */
.texto{max-width:68ch}
.texto h2{font-size:20px;margin:36px 0 10px;font-weight:760}
.texto p,.texto li{color:var(--tinta2)}

/* ---------- paginas institucionais ----------
   Elas eram parede de texto. Ganharam estrutura porque o assunto pede: quem
   abre "Como funciona" esta decidindo se acredita no site, e prova em bloco
   com numero real convence mais que paragrafo. A largura de leitura continua
   contida -- o que muda e o ritmo, nao a densidade. */
.chamada+.sub{max-width:64ch;margin-bottom:30px}
main>h2{font-size:21px;margin:42px 0 12px;letter-spacing:-.02em}
main>p,main>ul li{color:var(--tinta2);max-width:68ch}
main>p{margin:0 0 12px}

/* a faixa de numeros vivos, gerada a cada publicacao */
.painel-estado{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));
gap:1px;background:var(--linha);border:1px solid var(--linha);border-radius:var(--raio);
overflow:hidden;margin:0 0 34px}
.estado-item{background:var(--papel);padding:16px 18px;display:flex;flex-direction:column;gap:3px}
.estado-item b{font-size:25px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.estado-item span{font-size:12.5px;color:var(--tinta3)}

/* a demonstracao do degrau fabricado */
.demo{margin:18px 0 0}
.demo-grafico{width:100%;height:auto;display:block;background:var(--papel2);
border-radius:12px;padding:10px}
.demo-eixo{stroke:var(--linha2);stroke-width:1}
.demo-linha{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.demo-real{stroke:var(--tinta3);opacity:0}
.demo-anuncio{stroke:var(--brasa);stroke-width:3}
.demo-ponto{fill:var(--brasa)}
.demo-rotulo{fill:var(--tinta2);font-size:11px;font-weight:600}
.demo-so-real{opacity:0}
.demo-real-txt{display:none}
.demo-veredito p{margin:12px 0 0;font-size:15px}
/* Com a serie a vista, o que era destaque vira contexto e vice-versa. A
   transicao e curta de proposito: e uma revelacao, nao uma animacao. */
.demo.serie .demo-real,.demo.serie .demo-so-real{opacity:1}
.demo.serie .demo-anuncio{opacity:.25}
.demo.serie .demo-anuncio-txt{display:none}
.demo.serie .demo-real-txt{display:block}
.demo-linha,.demo-so-real,.demo-anuncio{transition:opacity .28s ease}
.botao-demo{margin-top:16px;background:var(--papel3);color:var(--tinta);
border:1px solid var(--linha2);border-radius:10px;padding:10px 16px;font:inherit;
font-size:14px;font-weight:650;cursor:pointer}
.botao-demo:hover{border-color:var(--marca);color:var(--marca-viva)}

/* os quatro testes do selo */
.criterios{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));
gap:14px;margin:18px 0 8px}
.criterio{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);
padding:18px 20px}
.criterio h3{margin:0 0 6px;font-size:15.5px;color:var(--marca-viva)}
.criterio p{margin:0;font-size:14.5px;color:var(--tinta2)}

/* a lista do que NAO fazemos: o marcador diz "ausencia", nao "item" */
.lista-nao{list-style:none;padding:0;margin:10px 0 0;display:flex;
flex-direction:column;gap:11px}
.lista-nao li{color:var(--tinta2);padding-left:26px;position:relative;max-width:68ch}
.lista-nao li::before{content:"";position:absolute;left:0;top:.62em;width:13px;
height:2px;background:var(--selo);border-radius:2px}

@media (prefers-reduced-motion:reduce){
  .demo-linha,.demo-so-real,.demo-anuncio{transition:none}
}

/* A oferta que NAO esta sendo medida. Tom de alerta, nao de erro: a informacao
   e verdadeira e util, o que falta e a nossa conferencia. Fica visualmente
   distinta da etiqueta de historico confirmado, que e a oposta dela. */
.etiqueta.sem-medicao{background:var(--alerta-fundo);color:var(--alerta);
border:1px solid color-mix(in srgb,var(--alerta) 32%,transparent)}

/* O aviso de que a busca ainda nao viu o catalogo inteiro. Apagado de
   proposito: e contexto honesto, nao alarme -- a pessoa esta vendo resultado
   de verdade, so nao todo. */
.parcial{color:var(--tinta3);font-size:13px}
.parcial b{color:var(--tinta2);font-weight:650}

/* ---------- rodapé ---------- */
.rodape{border-top:1px solid var(--linha);margin-top:70px;padding:36px 24px 70px;
color:var(--tinta3);font-size:13.5px;background:var(--fundo2)}
.rodape .interno{max-width:1240px;margin:0 auto;display:flex;gap:26px;flex-wrap:wrap;
align-items:center}
.rodape a{color:var(--tinta2);text-decoration:none}
.rodape a:hover{color:var(--marca-viva)}

@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
