/* Temas do site público, escolhidos em Site → Aparência (src/core/aparencia.ts).
   O site.css é o tema "Cinema escuro" (o visual da Bil's); cada tema abaixo muda o layout da capa, a tipografia,
   o cabeçalho, as categorias e os cartões, não só as cores. Regras só valem com <html data-tema="...">. */
html[data-tema]:not([data-tema=cinema]) :is(h1, h2, .titulo-secao, .secao > h2, .cat-card span, .cta h2, .texto-pagina h2, .numeros-site b, .preco-site, .total-site, .datas-site .diarias, .marca-texto) { font-stretch: 100%; text-transform: none; letter-spacing: -.015em; }
html[data-tema]:not([data-tema=cinema]) :is(.item .foto, .hero .arte, .produto .galeria, .linha-cart img) { background: var(--foto, #fff); }
html[data-tema]:not([data-tema=cinema]) body { font-size: 15px; }

/* ---------- Estúdio claro: cabeçalho branco com menu no meio, capa centralizada, cartões brancos com sombra */
[data-tema=estudio] { --foto: #fff; }
[data-tema=estudio] .btn { border-radius: 10px; }
[data-tema=estudio] .cab { background: color-mix(in srgb, var(--painel) 92%, transparent); border-bottom: 0; box-shadow: 0 1px 0 var(--linha), 0 8px 24px rgba(0,0,0,.04); }
[data-tema=estudio] .cab .dentro { padding: 14px 24px; }
[data-tema=estudio] .menu { margin-right: auto; }
[data-tema=estudio] .menu > a { font-weight: 600; color: var(--mudo); }
[data-tema=estudio] .menu > a:hover { color: var(--fg); }
[data-tema=estudio] .menu > a.on { color: var(--fg); box-shadow: inset 0 -2px 0 var(--am); border-radius: 0; }
[data-tema=estudio] .secao { padding-top: 64px; }
[data-tema=estudio] :is(.secao > h2, .titulo-secao) { font-weight: 800; font-size: clamp(26px, 3vw, 36px); }
[data-tema=estudio] .numeros-site { gap: 0; background: var(--painel); border-radius: 20px; box-shadow: 0 8px 30px rgba(0,0,0,.05); }
[data-tema=estudio] .numeros-site div { border: 0; background: none; text-align: center; padding: 26px 12px; }
[data-tema=estudio] .numeros-site div + div { border-left: 1px solid var(--linha); }
[data-tema=estudio] .numeros-site b { color: var(--fg); font-size: 44px; }
[data-tema=estudio] .numeros-site span { text-transform: none; letter-spacing: 0; font-size: 14px; }
[data-tema=estudio] .cats-grade { gap: 16px; }
[data-tema=estudio] .cat-card { aspect-ratio: auto; display: flex; flex-direction: column; border: 0; border-radius: 18px; background: var(--painel); box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 10px 30px rgba(0,0,0,.06); }
[data-tema=estudio] .cat-card img { aspect-ratio: 4 / 3; height: auto; padding: 20px; background: #fff; }
[data-tema=estudio] .cat-card span { position: static; background: none; color: var(--fg); font-size: 16px; font-weight: 700; padding: 12px 16px 16px; }
[data-tema=estudio] .cat-card small { color: var(--mudo); opacity: 1; }
[data-tema=estudio] .item { border: 0; border-radius: 18px; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 10px 30px rgba(0,0,0,.06); transition: transform .15s, box-shadow .15s; }
[data-tema=estudio] .item:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(0,0,0,.06), 0 18px 40px rgba(0,0,0,.1); }
[data-tema=estudio] .item .corpo { padding: 14px 16px 16px; }
[data-tema=estudio] .item .preco-site { color: var(--fg); font-size: 19px; }
[data-tema=estudio] .item .acao { flex-direction: column; align-items: stretch; }
[data-tema=estudio] .item .acao > .stepper { justify-content: space-between; }
[data-tema=estudio] .item .acao > .btn { padding: 9px 14px; font-size: 14px; }
[data-tema=estudio] :is(.passos div, .depoimentos figure, .caixa-site, .datas-site, .produto .compra) { border: 0; border-radius: 18px; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 10px 30px rgba(0,0,0,.06); }
[data-tema=estudio] .depoimentos blockquote { font-size: 17px; }
[data-tema=estudio] .cta .caixa { background: var(--fg); color: var(--bg); border-radius: 28px; padding: 40px; }
[data-tema=estudio] .cta .btn { background: var(--am); color: var(--am-tinta); border-color: var(--am); }

/* ---------- Eventos colorido: cabeçalho na cor da marca, capa com a foto de fundo, categorias em círculos, pílulas */
[data-tema=eventos] { --foto: color-mix(in srgb, var(--am) 7%, #fff); }
[data-tema=eventos] .btn { border-radius: 99px; }
[data-tema=eventos] :is(input, select, textarea) { border-radius: 12px !important; }
[data-tema=eventos] .aviso-topo { background: var(--fg); color: var(--bg); }
[data-tema=eventos] .cab { background: var(--am); border-bottom: 0; backdrop-filter: none; }
[data-tema=eventos] .cab .dentro { padding: 12px 20px; }
[data-tema=eventos] :is(.menu > a, .carrinho-btn, .marca-texto) { color: var(--am-tinta); }
[data-tema=eventos] .menu > a { border-radius: 99px; padding: 8px 14px; font-weight: 600; }
[data-tema=eventos] :is(.menu > a:hover, .menu > a.on) { color: var(--am-tinta); background: color-mix(in srgb, var(--am-tinta) 16%, transparent); }
[data-tema=eventos] .carrinho-btn:hover { color: var(--am-tinta); }
[data-tema=eventos] .carrinho-btn span { background: var(--am-tinta); color: var(--am); }
[data-tema=eventos] .hamburguer span { background: var(--am-tinta); }
[data-tema=eventos] .cab .btn.pri { background: var(--am-tinta); color: var(--am); border-color: var(--am-tinta); }
[data-tema=eventos] .cab .btn.fantasma { color: var(--am-tinta); }
[data-tema=eventos] .hero { border: 0; border-radius: 0 0 40px 40px; min-height: 480px; display: grid; align-items: center; background: linear-gradient(135deg, var(--am), color-mix(in srgb, var(--am) 55%, #ffb000)); color: var(--am-tinta); }
[data-tema=eventos] .hero .dentro { position: static; grid-template-columns: 1fr; padding: 80px 24px; width: 100%; }
[data-tema=eventos] .hero .dentro > div:first-child { position: relative; z-index: 2; max-width: 640px; }
[data-tema=eventos] .hero h1 { color: var(--am-tinta); font-weight: 800; font-size: clamp(38px, 6.5vw, 76px); line-height: 1.02; }
[data-tema=eventos] .hero p { color: var(--am-tinta); font-size: 18px; }
[data-tema=eventos] .hero .btn { background: transparent; color: var(--am-tinta); border: 2px solid currentColor; }
[data-tema=eventos] .hero .btn.pri { background: var(--am-tinta); color: var(--am); border-color: var(--am-tinta); }
[data-tema=eventos] .hero .arte { position: absolute; inset: 0; border-radius: 0; aspect-ratio: auto; background: none; z-index: 0; }
[data-tema=eventos] .hero .arte img { object-fit: cover; opacity: .9; }
[data-tema=eventos] .hero .arte::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, var(--am) 0%, color-mix(in srgb, var(--am) 82%, transparent) 42%, color-mix(in srgb, var(--am) 10%, transparent) 85%); }
[data-tema=eventos] :is(.secao > h2, .titulo-secao) { font-weight: 800; }
[data-tema=eventos] .secao > h2::after { content: ""; display: block; width: 56px; height: 6px; border-radius: 99px; background: var(--am); margin-top: 10px; }
[data-tema=eventos] .numeros-site div { border: 0; border-radius: 22px; background: var(--am-esc); }
[data-tema=eventos] .numeros-site span { text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--fg); }
[data-tema=eventos] .cats-grade { display: flex; gap: 18px; overflow-x: auto; padding: 6px 2px 12px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
[data-tema=eventos] .cat-card { flex: 0 0 136px; aspect-ratio: auto; background: none; border: 0; text-align: center; scroll-snap-align: start; overflow: visible; }
[data-tema=eventos] .cat-card img { width: 136px; height: 136px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 5px var(--am-esc); padding: 18px; }
[data-tema=eventos] .cat-card span { position: static; background: none; color: var(--fg); font-size: 15px; font-weight: 700; padding: 10px 0 0; }
[data-tema=eventos] .cat-card small { color: var(--mudo); opacity: 1; }
[data-tema=eventos] .item { border: 0; border-radius: 24px; box-shadow: 0 12px 30px color-mix(in srgb, var(--am) 14%, transparent); }
[data-tema=eventos] .item .foto { margin: 8px 8px 0; border-radius: 18px; overflow: hidden; }
[data-tema=eventos] .item .corpo { padding: 12px 16px 16px; }
[data-tema=eventos] .item .preco-site { font-weight: 800; }
[data-tema=eventos] .stepper { border-radius: 99px; }
[data-tema=eventos] .chips-site button { padding: 8px 16px; font-weight: 600; }
[data-tema=eventos] :is(.passos div, .depoimentos figure, .caixa-site, .produto .compra) { border: 0; border-radius: 24px; box-shadow: 0 12px 30px color-mix(in srgb, var(--am) 10%, transparent); }
[data-tema=eventos] .datas-site { border-radius: 24px; border-width: 2px; }
[data-tema=eventos] .passos div::before { width: 40px; height: 40px; font-size: 18px; }
[data-tema=eventos] .depoimentos figure:nth-child(2n+1) { background: var(--am-esc); box-shadow: none; }
[data-tema=eventos] .cta .caixa { border-radius: 32px; padding: 40px; background: linear-gradient(135deg, var(--am), color-mix(in srgb, var(--am) 55%, #ffb000)); }
[data-tema=eventos] .produto .galeria { border-radius: 28px; border: 0; }

/* ---------- Minimalista: branco, linhas finas, cantos retos, capa com a foto à esquerda, categorias em lista */
[data-tema=neutro] { --foto: var(--painel); }
[data-tema=neutro] :is(.btn, input, select, textarea, .stepper) { border-radius: 3px !important; }
[data-tema=neutro] .cab { background: var(--bg); }
[data-tema=neutro] .cab .dentro { padding: 18px 24px; }
[data-tema=neutro] .cab .marca img { height: 34px; }
[data-tema=neutro] .menu > a { color: var(--mudo); font-weight: 500; }
[data-tema=neutro] :is(.menu > a:hover, .menu > a.on) { color: var(--fg); }
[data-tema=neutro] .menu > a.on { text-decoration: underline; text-underline-offset: 6px; text-decoration-color: var(--am); }
[data-tema=neutro] .hero .dentro { grid-template-columns: 1fr 1fr; gap: 56px; padding: 80px 24px; }
[data-tema=neutro] .hero .arte { order: -1; border-radius: 3px; aspect-ratio: 4 / 3; }
[data-tema=neutro] .hero h1 { color: var(--fg); font-weight: 700; font-size: clamp(34px, 5vw, 60px); line-height: 1.05; }
[data-tema=neutro] .hero h1::before { content: ""; display: block; width: 44px; height: 3px; background: var(--am); margin-bottom: 22px; }
[data-tema=neutro] .hero p { color: var(--mudo); opacity: 1; }
[data-tema=neutro] .secao { padding-top: 64px; }
[data-tema=neutro] :is(.secao > h2, .titulo-secao) { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; color: var(--mudo); border-top: 1px solid var(--linha); padding-top: 14px; }
[data-tema=neutro] .entre .titulo-secao { border: 0; padding: 0; }
[data-tema=neutro] .titulo-secao em { color: var(--fg); }
[data-tema=neutro] .numeros-site { gap: 24px; }
[data-tema=neutro] .numeros-site div { border: 0; border-top: 2px solid var(--fg); border-radius: 0; background: none; padding: 16px 0 0; }
[data-tema=neutro] .numeros-site b { color: var(--fg); font-weight: 600; font-size: 46px; }
[data-tema=neutro] .numeros-site span { text-transform: none; letter-spacing: 0; font-size: 14px; }
[data-tema=neutro] .cats-grade { grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 0 32px; }
[data-tema=neutro] .cat-card { aspect-ratio: auto; display: grid; grid-template-columns: 72px 1fr; align-items: center; border: 0; border-bottom: 1px solid var(--linha); border-radius: 0; background: none; padding: 12px 0; }
[data-tema=neutro] .cat-card img { width: 72px; height: 72px; padding: 6px; background: var(--painel); border-radius: 3px; }
[data-tema=neutro] .cat-card:hover img { transform: none; }
[data-tema=neutro] .cat-card span { position: static; background: none; color: var(--fg); font-size: 16px; font-weight: 600; padding: 0 16px; }
[data-tema=neutro] .cat-card:hover span { color: var(--am); }
[data-tema=neutro] .cat-card small { color: var(--mudo); opacity: 1; }
[data-tema=neutro] .item { border-radius: 3px; background: var(--bg); }
[data-tema=neutro] .item .nome { font-weight: 500; font-size: 15px; }
[data-tema=neutro] .item .preco-site { color: var(--fg); font-weight: 600; font-size: 18px; }
[data-tema=neutro] .chips-site button { border-radius: 3px; }
[data-tema=neutro] :is(.caixa-site, .datas-site, .produto .compra, .produto .galeria, .noticia-card, .contatos-site a, .contatos-site div) { border-radius: 3px; }
[data-tema=neutro] .passos div { border: 0; border-top: 1px solid var(--fg); border-radius: 0; background: none; padding: 16px 0 0; }
[data-tema=neutro] .passos div::before { background: none; color: var(--am); width: auto; height: auto; font-size: 28px; font-weight: 600; display: block; }
[data-tema=neutro] .depoimentos figure { border: 0; border-left: 2px solid var(--am); border-radius: 0; background: none; padding: 4px 0 4px 18px; }
[data-tema=neutro] .depoimentos blockquote { font-size: 18px; }
[data-tema=neutro] .cta .caixa { background: var(--painel); color: var(--fg); border-radius: 3px; border: 1px solid var(--linha); padding: 36px; }
[data-tema=neutro] .cta .btn { background: var(--fg); color: var(--bg); border-color: var(--fg); }

@media (max-width: 900px) {
  [data-tema=estudio] .menu, [data-tema=neutro] .menu { margin-right: 0; background: var(--bg); }
  [data-tema=eventos] .menu { background: var(--am); }
  [data-tema=eventos] .menu > a { border-radius: 0; border-bottom-color: color-mix(in srgb, var(--am-tinta) 20%, transparent); }
  [data-tema=estudio] .numeros-site div + div { border-left: 0; border-top: 1px solid var(--linha); }
  [data-tema=eventos] .hero { min-height: 420px; border-radius: 0 0 28px 28px; }
  [data-tema=eventos] .hero .dentro { padding: 48px 18px; }
  [data-tema=eventos] .hero .arte::after { background: linear-gradient(180deg, color-mix(in srgb, var(--am) 70%, transparent) 0%, var(--am) 75%); }
  [data-tema=neutro] .hero .dentro { grid-template-columns: 1fr; gap: 24px; padding: 24px 16px 40px; }
  [data-tema=neutro] .cats-grade { grid-template-columns: 1fr; }
}

/* ===================================================================== estrutura própria de cada tema
   (o site.js monta a página inicial e a loja de outro jeito conforme o tema) */
html[data-tema]:not([data-tema=cinema]) .item .selo-livre { display: block; }

/* ---------- Estúdio claro: capa de reserva (datas e busca na capa), carrossel, loja com filtros na lateral */
.hero-reserva { border-bottom: 0; background: radial-gradient(1200px 400px at 85% 0%, color-mix(in srgb, var(--am) 14%, transparent), transparent 70%); }
.hero-reserva .dentro { grid-template-columns: 1.05fr .95fr; gap: 48px; padding: 72px 24px 48px; }
.hero-reserva h1 { color: var(--fg); font-weight: 800; font-size: clamp(36px, 5.2vw, 64px); line-height: 1.02; }
.hero-reserva .hero-texto p { color: var(--mudo); opacity: 1; font-size: 18px; margin: 18px 0 0; }
.selos-confianca { list-style: none; padding: 0; margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.selos-confianca li { font-weight: 600; font-size: 14px; }
.selos-confianca li::before { content: "✓"; color: var(--am); font-weight: 800; margin-right: 6px; }
.reserva-card { background: var(--painel); border-radius: 22px; padding: 22px; display: grid; gap: 12px; box-shadow: 0 2px 4px rgba(0,0,0,.04), 0 24px 60px -20px rgba(0,0,0,.25); overflow: hidden; }
.reserva-card .arte { margin: -22px -22px 4px; aspect-ratio: 16 / 7; background: #fff; }
.reserva-card .arte img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.reserva-card h2 { font-size: 22px; font-weight: 800; margin: 0; }
.reserva-card .par-datas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.reserva-card .campo span { font-weight: 600; color: var(--fg); }
.reserva-card input { padding: 12px !important; font-size: 15px; }
.trilho-itens { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 1fr); grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 4px 18px; scrollbar-width: none; }
.trilho-itens > * { scroll-snap-align: start; }
.trilho-itens::-webkit-scrollbar { display: none; }
.btn.seta { width: 36px; height: 36px; padding: 0; border-radius: 99px !important; font-size: 16px; }
.loja-lateral { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 28px; align-items: start; }
.filtros-lado { position: sticky; top: 84px; }
.filtros-lado .filtros-abrir { display: none; }
.filtros-corpo { display: grid; gap: 16px; background: var(--painel); border-radius: 18px; padding: 16px; box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 10px 30px rgba(0,0,0,.06); }
.filtros-corpo .datas-site { grid-template-columns: 1fr; box-shadow: none; padding: 0; background: none; }
.rot-filtro { display: block; margin-bottom: 6px; font-size: 13px; }
.lista-cats { display: grid; gap: 2px; }
.lista-cats button { display: flex; justify-content: space-between; gap: 8px; text-align: left; background: none; border: 0; padding: 8px 10px; border-radius: 8px; cursor: pointer; color: var(--fg); font-size: 14px; }
.lista-cats button small { color: var(--mudo); }
.lista-cats button:hover { background: var(--painel2); }
.lista-cats button.on { background: var(--am-esc); color: var(--fg); font-weight: 700; }
[data-tema=estudio] .barra-resultado { background: var(--painel); border-radius: 14px; padding: 10px 14px; margin-top: 0; }

/* ---------- Eventos colorido: kits em destaque, categorias em círculos também na loja */
.grade-kits { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; }
.kit-card { background: var(--painel); border-radius: 26px; overflow: hidden; display: grid; grid-template-rows: auto 1fr; box-shadow: 0 14px 34px color-mix(in srgb, var(--am) 16%, transparent); }
.kit-card .foto { position: relative; aspect-ratio: 16 / 10; background: var(--foto, #fff); display: grid; place-items: center; }
.kit-card .foto img { width: 100%; height: 100%; object-fit: contain; padding: 16px; }
.kit-card .foto img.sem { width: 30%; height: auto; opacity: .35; }
.preco-selo { position: absolute; right: 14px; bottom: 14px; background: var(--am); color: var(--am-tinta); font-weight: 800; font-size: 18px; padding: 6px 14px; border-radius: 99px; font-family: var(--f-tit); }
.preco-selo small { font-weight: 500; font-size: 12px; margin-left: 2px; }
.kit-card .corpo { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; }
.kit-card .nome { font-family: var(--f-tit); font-weight: 800; font-size: 20px; color: var(--fg); text-decoration: none; line-height: 1.15; }
.kit-card .pecas { margin: 0; padding-left: 18px; color: var(--mudo); font-size: 14px; columns: 2; column-gap: 18px; }
.kit-card .acao { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.cats-circulos { display: flex; gap: 14px; overflow-x: auto; padding: 4px 2px 12px; scrollbar-width: thin; }
.cats-circulos button { flex: 0 0 auto; display: grid; justify-items: center; gap: 6px; background: none; border: 0; cursor: pointer; color: var(--fg); font-weight: 600; font-size: 13px; width: 88px; }
.cats-circulos .circ { width: 72px; height: 72px; border-radius: 50%; background: #fff; display: grid; place-items: center; overflow: hidden; box-shadow: 0 0 0 3px var(--am-esc); transition: box-shadow .15s; }
.cats-circulos .circ img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.cats-circulos .circ img.sem { width: 50%; height: auto; }
.cats-circulos .circ b { color: var(--am); font-size: 26px; }
.cats-circulos button.on .circ { box-shadow: 0 0 0 4px var(--am); }
.cats-circulos button.on { color: var(--am); }
[data-tema=eventos] .grade-itens { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }

/* ---------- Minimalista: lista de preços (linhas) na página inicial e na loja, catálogo numerado */
.lista-itens { display: grid; border-top: 1px solid var(--fg); }
.item-linha { display: grid; grid-template-columns: 76px minmax(0, 1fr) 150px 150px 130px; gap: 18px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--linha); }
.item-linha .foto { width: 76px; height: 76px; background: var(--painel); display: grid; place-items: center; border-radius: 3px; }
.item-linha .foto img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.item-linha .foto img.sem { width: 50%; height: auto; opacity: .35; }
.item-linha .info { display: grid; gap: 2px; min-width: 0; }
.item-linha .nome { color: var(--fg); text-decoration: none; font-weight: 600; font-size: 16px; }
.item-linha .nome:hover { color: var(--am); }
.item-linha .cat, .item-linha .pecas-resumo { font-size: 12px; color: var(--mudo); }
.item-linha .preco-site { color: var(--fg); font-weight: 600; font-size: 17px; text-align: right; }
.item-linha .botao { text-align: right; }
[data-tema=neutro] .cats-grade { counter-reset: cat; }
[data-tema=neutro] .cat-card { counter-increment: cat; grid-template-columns: 34px 72px 1fr; }
[data-tema=neutro] .cat-card::before { content: counter(cat, decimal-leading-zero); color: var(--mudo); font-size: 13px; font-variant-numeric: tabular-nums; }

@media (max-width: 900px) {
  .hero-reserva .dentro { grid-template-columns: 1fr; gap: 24px; padding: 32px 16px; }
  .loja-lateral { grid-template-columns: 1fr; gap: 12px; }
  .filtros-lado { position: static; }
  .filtros-lado .filtros-abrir { display: flex; width: 100%; }
  .filtros-lado .filtros-corpo { display: none; margin-top: 8px; }
  .filtros-lado.aberto .filtros-corpo { display: grid; }
  .item-linha { grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-areas: "foto info preco" "foto estado botao"; gap: 4px 12px; }
  .item-linha .foto { grid-area: foto; width: 64px; height: 64px; }
  .item-linha .info { grid-area: info; }
  .item-linha .preco-site { grid-area: preco; font-size: 15px; }
  .item-linha .estado { grid-area: estado; }
  .item-linha .botao { grid-area: botao; }
  .item-linha .pecas-resumo { display: none; }
  .kit-card .pecas { columns: 1; }
  .grade-kits { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .filtros-lado .datas-resumo { position: static; }
  .trilho-itens { grid-auto-columns: 72%; }
  [data-tema=eventos] .grade-itens { grid-template-columns: 1fr 1fr; gap: 10px; }
}
html[data-tema]:not([data-tema=cinema]) .marca { text-decoration: none; }
html[data-tema]:not([data-tema=cinema]) .cat-card img.sem { object-fit: contain; padding: 18%; opacity: .3; filter: grayscale(1); }
.loja-lateral > * { min-width: 0; }
.filtros-lado .filtros-abrir { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; justify-content: flex-start; }
