/*
 * Agenda de Feiras · componentes
 * Cada bloco documentado em /admin/design-system. Depende de tokens.css e base.css.
 * Ordem: marca/KV · botões · etiquetas · chips · formulários · cartão-calendário ·
 * topo · faixas · card de feira · borrado · planos · tabelas/admin · mural · amostra · quiz · rodapé · movimento
 */

/* ============ 1. Elementos do KV ============ */

/* Marca-texto amarelo: <mark class="marca-texto">palavra</mark> */
.marca-texto, mark {
  color: inherit;
  background: linear-gradient(transparent 56%, var(--cor-amarelo) 56%, var(--cor-amarelo) 92%, transparent 92%) no-repeat 0 0 / 100% 100%;
  padding: 0 0.12em;
  border-radius: 6px;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.fundo-amarelo .marca-texto, .marca-texto--branco {
  background-image: linear-gradient(transparent 56%, var(--cor-branco) 56%, var(--cor-branco) 92%, transparent 92%);
}

/* Sorriso (sublinhado da marca): <span class="sorriso">lugar.</span> */
.sorriso { position: relative; display: inline-block; padding-bottom: 0.12em; }
.sorriso::after {
  content: "";
  position: absolute;
  left: -2%; right: -2%; bottom: -0.2em;
  height: 0.32em;
  background: currentColor;
  -webkit-mask: url("../img/sorriso.svg") no-repeat center / 100% 100%;
  mask: url("../img/sorriso.svg") no-repeat center / 100% 100%;
}
.sorriso--laranja::after { background: var(--cor-laranja); }

/* Sorriso decorativo solto (elemento vazio aria-hidden) */
.deco-sorriso {
  display: block;
  width: min(220px, 50%);
  height: 22px;
  background: var(--cor-grafite);
  -webkit-mask: url("../img/sorriso.svg") no-repeat center / 100% 100%;
  mask: url("../img/sorriso.svg") no-repeat center / 100% 100%;
}

/* Selo com check */
.selo-check {
  display: inline-grid;
  place-items: center;
  width: 1.6em; height: 1.6em;
  border-radius: 50%;
  background: var(--cor-amarelo);
  color: var(--cor-grafite);
  flex: none;
}
.selo-check .ico { width: 0.95em; height: 0.95em; stroke-width: 2.6; }
.selo-check--grafite { background: var(--cor-grafite); color: var(--cor-branco); }
.selo-check--laranja { background: var(--cor-laranja); }

/* Ícone em quadrado branco */
.ico-quadrado {
  display: inline-grid;
  place-items: center;
  width: 3.25rem; height: 3.25rem;
  border-radius: var(--raio-md);
  background: var(--cor-branco);
  color: var(--cor-grafite);
  box-shadow: var(--sombra-1);
  flex: none;
}
.ico-quadrado .ico { width: 1.6rem; height: 1.6rem; }
.ico-quadrado--amarelo { background: var(--cor-amarelo); box-shadow: none; }
.ico-quadrado--creme { background: var(--cor-creme); box-shadow: none; }
.ico-quadrado--marca { padding: 0.35rem; }
.ico-quadrado--marca img { width: 100%; height: auto; }

/* Grade de calendário com checks (decorativa) */
.deco-grade {
  display: block;
  width: 228px;
  aspect-ratio: 228 / 300;
  background: url("../img/grade-checks.svg") no-repeat center / contain;
}

/* Lista com checks */
.lista-check { list-style: none; padding: 0; margin: 0 0 1em; display: grid; gap: 0.6rem; }
.lista-check li { display: flex; gap: 0.7rem; align-items: flex-start; margin: 0; }
.lista-check li::before {
  content: "";
  flex: none;
  width: 1.5rem; height: 1.5rem;
  margin-top: 0.05rem;
  border-radius: 50%;
  background: var(--cor-amarelo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.5l3.8 3.8 7.2-8' fill='none' stroke='%231F1A17' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 1rem;
}
.fundo-amarelo .lista-check li::before { background-color: var(--cor-branco); }

/* ============ 2. Botões ============ */
.btn {
  --btn-fundo: var(--cor-grafite);
  --btn-texto: var(--cor-branco);
  --btn-seta: var(--cor-amarelo);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: var(--alvo-toque);
  padding: 0.7rem 1.35rem;
  border: 2px solid transparent;
  border-radius: var(--raio-pilula);
  background: var(--btn-fundo);
  color: var(--btn-texto);
  font-family: var(--fonte-corpo);
  font-size: 1rem;
  font-weight: var(--peso-black);
  line-height: 1.15;
  letter-spacing: 0.005em;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: transform var(--duracao) var(--curva), box-shadow var(--duracao) var(--curva), background-color var(--duracao) var(--curva), color var(--duracao) var(--curva);
}
.btn:hover { color: var(--btn-texto); transform: translateY(-2px); box-shadow: 0 10px 22px rgba(60, 35, 10, 0.22); }
.btn:active { transform: translateY(0); box-shadow: none; }
.btn:focus-visible { outline: none; box-shadow: var(--foco-anel); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.5; pointer-events: none; }

/* Seta da CTA (KV): .btn-seta adiciona →, que desliza no hover */
.btn-seta::after {
  content: "→";
  color: var(--btn-seta);
  font-weight: var(--peso-black);
  transition: transform var(--duracao) var(--curva);
}
.btn-seta:hover::after { transform: translateX(4px); }

.btn-secundario, .btn-amarelo { --btn-fundo: var(--cor-amarelo); --btn-texto: var(--cor-grafite); --btn-seta: var(--cor-grafite); }
.btn-laranja { --btn-fundo: var(--cor-laranja); --btn-texto: var(--cor-grafite); --btn-seta: var(--cor-grafite); }
.btn-branco { --btn-fundo: var(--cor-branco); --btn-texto: var(--cor-grafite); --btn-seta: var(--cor-laranja); }
.btn-ghost {
  --btn-fundo: transparent;
  --btn-texto: var(--cor-grafite);
  --btn-seta: var(--cor-laranja);
  border-color: var(--cor-grafite);
}
.btn-ghost:hover { --btn-fundo: var(--cor-amarelo); box-shadow: none; }
.btn-link { --btn-fundo: transparent; --btn-texto: var(--cor-grafite); padding-inline: 0.4rem; }
.btn-link:hover { box-shadow: none; text-decoration: underline; text-decoration-color: var(--cor-amarelo); text-decoration-thickness: 3px; }
.btn-sm { min-height: 36px; padding: 0.45rem 0.95rem; font-size: 0.9rem; }
.btn-lg { min-height: 56px; padding: 0.95rem 1.8rem; font-size: 1.1rem; }
.btn-largo { width: 100%; }
.btn .ico { width: 1.15em; height: 1.15em; stroke-width: 2.2; }

/* Botões nativos sem classe (ações de tabela no admin) */
button:not([class]), input[type="submit"]:not([class]) {
  min-height: 36px;
  padding: 0.35rem 0.9rem;
  border: 2px solid var(--cor-grafite);
  border-radius: var(--raio-pilula);
  background: var(--cor-branco);
  font-weight: var(--peso-black);
  font-size: 0.9rem;
  transition: background-color var(--duracao) var(--curva);
}
button:not([class]):hover { background: var(--cor-amarelo); }

/* ============ 3. Etiquetas (tags) e selos ============ */
/* Etiqueta do KV: pílula grafite em caixa alta com ponto amarelo */
.tag {
  display: inline-flex;
  align-items: center;
  gap: 0.55em;
  padding: 0.42rem 0.85rem;
  border-radius: var(--raio-pilula);
  background: var(--cor-grafite);
  color: var(--cor-branco);
  font-size: var(--fs-xs);
  font-weight: var(--peso-black);
  letter-spacing: var(--tracking-etiqueta);
  text-transform: uppercase;
  line-height: 1.2;
}
.tag::before { content: ""; width: 0.6em; height: 0.6em; border-radius: 50%; background: var(--cor-amarelo); flex: none; }
.tag--amarelo { background: var(--cor-amarelo); color: var(--cor-grafite); }
.tag--branco { background: var(--cor-branco); color: var(--cor-grafite); }
.tag--laranja { background: var(--cor-laranja); color: var(--cor-grafite); }
.tag--amarelo::before, .tag--branco::before { background: var(--cor-laranja); }
.tag--laranja::before { background: var(--cor-grafite); }

/* Badges de card (tipo, segmento, destaque, exemplo) */
.badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.7rem; }
.badge, .selo {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.28rem 0.65rem;
  border-radius: var(--raio-pilula);
  background: var(--cor-creme);
  color: var(--cor-grafite);
  border: 1px solid var(--cor-linha);
  font-size: 0.78rem;
  font-weight: var(--peso-black);
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}
.badge.tipo-b2b, .badge.tipo-b2c, .badge.tipo-misto {
  background: var(--cor-grafite);
  color: var(--cor-branco);
  border-color: var(--cor-grafite);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.72rem;
}
.badge.destaque, .selo {
  background: var(--cor-amarelo);
  border-color: var(--cor-amarelo);
}
.badge.destaque::before { content: "★"; font-size: 0.9em; }
.badge.exemplo {
  background: var(--cor-branco);
  border: 1.5px dashed var(--cor-laranja-texto);
  color: var(--cor-laranja-texto);
}
.selo { text-transform: uppercase; letter-spacing: 0.07em; font-size: 0.72rem; }

/* ============ 4. Chips ============ */
.chips { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: var(--alvo-toque);
  padding: 0.5rem 0.6rem 0.5rem 1rem;
  border-radius: var(--raio-pilula);
  background: var(--cor-branco);
  border: 1.5px solid var(--cor-linha);
  color: var(--cor-grafite);
  font-weight: var(--peso-forte);
  font-size: 0.95rem;
  text-decoration: none;
  transition: background-color var(--duracao) var(--curva), border-color var(--duracao) var(--curva), transform var(--duracao) var(--curva);
}
.chip span {
  display: inline-grid;
  place-items: center;
  min-width: 1.75rem; height: 1.75rem;
  padding: 0 0.4rem;
  border-radius: var(--raio-pilula);
  background: var(--cor-amarelo);
  font-weight: var(--peso-black);
  font-size: 0.82rem;
}
.chip:hover { background: var(--cor-amarelo-claro); border-color: var(--cor-amarelo); color: var(--cor-grafite); transform: translateY(-2px); }
.chip:hover span { background: var(--cor-branco); }

/* Chips de filtro (toggle): <label class="chip-filtro"><input type="checkbox"> Data</label> */
.chips-filtro { display: flex; flex-wrap: wrap; gap: 0.5rem; border: 0; padding: 0; margin: 0; }
.chip-filtro {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: var(--alvo-toque);
  padding: 0.5rem 1.05rem;
  border-radius: var(--raio-pilula);
  background: var(--cor-creme);
  border: 2px solid transparent;
  font-weight: var(--peso-black);
  font-size: 0.98rem;
  cursor: pointer;
  user-select: none;
  transition: background-color var(--duracao) var(--curva), transform var(--duracao) var(--curva);
}
.chip-filtro input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip-filtro::before {
  content: "";
  width: 1.35rem; height: 1.35rem;
  border-radius: 50%;
  border: 2px solid var(--cor-borda-campo);
  background: var(--cor-branco) no-repeat center / 0.85rem;
  flex: none;
  transition: background-color var(--duracao) var(--curva);
}
.chip-filtro:hover { background: var(--cor-amarelo-claro); }
.chip-filtro:has(input:checked) { background: var(--cor-amarelo); }
.chip-filtro:has(input:checked)::before {
  border-color: var(--cor-grafite);
  background-color: var(--cor-grafite);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23FFFFFF' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.chip-filtro:has(input:focus-visible) { box-shadow: var(--foco-anel); }
.chip-filtro .remover { margin-left: 0.15rem; font-size: 1.1em; line-height: 1; }

/* ============ 5. Formulários ============ */
label {
  display: grid;
  gap: 0.4rem;
  font-weight: var(--peso-black);
  font-size: 0.86rem;
  color: var(--cor-grafite);
}
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
select,
textarea {
  width: 100%;
  min-height: 50px;
  padding: 0.7rem 0.95rem;
  background-color: var(--cor-branco);
  border: 1.5px solid var(--cor-borda-campo);
  border-radius: 14px;
  color: var(--cor-grafite);
  font-family: var(--fonte-corpo);
  font-weight: 700;
  font-size: 1rem;
  transition: border-color var(--duracao) var(--curva), box-shadow var(--duracao) var(--curva);
}
input::placeholder, textarea::placeholder { color: var(--cor-cinza); font-weight: 600; opacity: 1; }
input:hover, select:hover, textarea:hover { border-color: var(--cor-grafite); }
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: none;
  border-color: var(--cor-grafite);
  box-shadow: 0 0 0 4px var(--cor-amarelo);
  border-radius: 14px;
}
select {
  appearance: none;
  padding-right: 2.6rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9.5l6 6 6-6' fill='none' stroke='%231F1A17' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.85rem center;
  background-size: 1.1rem;
}
textarea { resize: vertical; min-height: 120px; line-height: 1.5; }
input[type="file"] { font-weight: 700; font-size: 0.95rem; }
input[type="checkbox"], input[type="radio"] { width: 1.2rem; height: 1.2rem; accent-color: var(--cor-grafite); }
input[aria-invalid="true"], .campo-erro input { border-color: var(--cor-erro); }
.ajuda { font-weight: 600; font-size: var(--fs-sm); color: var(--texto-suave); }

fieldset { border: 1.5px solid var(--cor-linha); border-radius: var(--raio-md); padding: var(--esp-4) var(--esp-5); margin: 0; background: var(--cor-branco); }
legend { font-weight: var(--peso-black); padding: 0 0.4rem; }
.form-pilha, .form-grade { display: grid; gap: var(--esp-4); }
.form-grade { margin-bottom: var(--esp-6); }
@media (min-width: 800px) {
  .form-grade { grid-template-columns: 1fr 1fr; }
  .form-grade .largo { grid-column: 1 / -1; }
}
.check { display: flex; align-items: center; gap: 0.55rem; font-weight: 700; font-size: 0.98rem; }
.checks { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; }
.acoes { display: flex; flex-wrap: wrap; gap: 0.7rem; align-items: center; }

/* Campos de busca com ícone (aplicados por name, sem mudar markup) */
input[type="search"], input[name="onde"], input[name="cidade"] {
  padding-left: 2.75rem !important;
  background-repeat: no-repeat;
  background-position: 0.95rem center;
  background-size: 1.2rem;
}
input[type="search"] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5' fill='none' stroke='%231F1A17' stroke-width='2'/%3E%3Cpath d='M15.5 15.5l5 5' stroke='%231F1A17' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }
input[name="onde"], input[name="cidade"] { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11z' fill='none' stroke='%231F1A17' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='10' r='2.4' fill='none' stroke='%231F1A17' stroke-width='2'/%3E%3C/svg%3E"); }

/* Alertas */
.alerta {
  display: flex;
  gap: 0.7rem;
  align-items: flex-start;
  margin: var(--esp-4) 0;
  padding: 0.9rem 1.1rem;
  border-radius: var(--raio-md);
  font-weight: 700;
  border: 1.5px solid transparent;
}
.alerta::before { flex: none; font-weight: var(--peso-black); }
.alerta.ok { background: var(--cor-ok-fundo); color: var(--cor-ok); border-color: #B9DEC3; }
.alerta.ok::before { content: "✓"; }
.alerta.erro { background: var(--cor-erro-fundo); color: var(--cor-erro); border-color: #F2C3BD; }
.alerta.erro::before { content: "!"; }
.alerta.aviso { background: var(--cor-amarelo-claro); color: var(--cor-grafite); border-color: var(--cor-amarelo); }
.alerta.aviso::before { content: "i"; display: inline-grid; place-items: center; width: 1.4rem; height: 1.4rem; border-radius: 50%; background: var(--cor-grafite); color: var(--cor-amarelo); font-size: 0.8rem; }

/* ============ 6. Cartão-calendário com argolas ============ */
/* .cal-card: cartão branco com faixa laranja e duas argolas (KV). */
.cal-card, .busca-hero, .filtros[data-filtros], .contato, .plano, .cadeado-corpo, .auth, .cal-card--amarelo {
  position: relative;
  background: var(--cor-branco);
  border-radius: var(--raio-lg);
  border-top: 16px solid var(--cor-laranja);
  box-shadow: var(--sombra-2);
  padding: var(--esp-6) var(--esp-5) var(--esp-5);
}
.cal-card::before, .cal-card::after,
.busca-hero::before, .busca-hero::after,
.filtros[data-filtros]::before, .filtros[data-filtros]::after,
.contato::before, .contato::after,
.plano::before, .plano::after,
.cadeado-corpo::before, .cadeado-corpo::after,
.auth::before, .auth::after {
  content: "";
  position: absolute;
  top: -30px;
  width: 16px;
  height: 36px;
  border-radius: 10px;
  background: var(--cor-laranja);
  border: 4px solid var(--cor-branco);
  box-shadow: 0 0 0 1px rgba(60, 35, 10, 0.06);
}
.cal-card::before, .busca-hero::before, .filtros[data-filtros]::before, .contato::before, .plano::before, .cadeado-corpo::before, .auth::before { left: 16%; }
.cal-card::after, .busca-hero::after, .filtros[data-filtros]::after, .contato::after, .plano::after, .cadeado-corpo::after, .auth::after { right: 16%; }
.cal-card--amarelo { border-top-color: var(--cor-amarelo); }
.cal-card--amarelo::before, .cal-card--amarelo::after { background: var(--cor-amarelo); }
.cal-card--sem-argolas::before, .cal-card--sem-argolas::after { display: none; }

/* Cartão simples */
.cartao, .tres article, .fila, .vazio {
  background: var(--cor-branco);
  border: 1.5px solid var(--cor-linha);
  border-radius: var(--raio-lg);
  padding: var(--esp-5);
}
.vazio { text-align: center; padding: var(--esp-7) var(--esp-5); background: var(--cor-creme); border-style: dashed; }
.vazio h1, .vazio h2 { margin-bottom: 0.3em; }

/* ============ 7. Topo (header) ============ */
.topo {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 250, 242, 0.88);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid rgba(234, 223, 204, 0.8);
}
.topo-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--esp-4); min-height: var(--altura-topo); }
.marca { display: inline-flex; padding: 6px 0; border-radius: var(--raio-sm); flex: none; }
.marca img { height: 52px; width: auto; min-width: 146px; }
.menu { display: flex; align-items: center; gap: 0.25rem; }
.menu > a:not(.btn) {
  position: relative;
  padding: 0.55rem 0.8rem;
  border-radius: var(--raio-pilula);
  color: var(--cor-grafite);
  font-weight: var(--peso-forte);
  font-size: 0.98rem;
  text-decoration: none;
  transition: background-color var(--duracao) var(--curva);
}
.menu > a:not(.btn):hover { background: var(--cor-amarelo-claro); }
.menu > a[aria-current="page"] { background: var(--cor-amarelo); }
.menu form { margin: 0; }
.menu .btn { margin-left: 0.35rem; }
.menu .btn-ghost { min-height: 40px; padding: 0.45rem 1rem; }
.nav-toggle {
  display: none;
  align-items: center;
  gap: 0.5rem;
  min-height: var(--alvo-toque);
  padding: 0.5rem 1rem 0.5rem 0.85rem;
  border: 0;
  border-radius: var(--raio-pilula);
  background: var(--cor-grafite);
  color: var(--cor-branco);
  font-weight: var(--peso-black);
}
.nav-toggle::before {
  content: "";
  width: 18px; height: 12px;
  background:
    linear-gradient(var(--cor-amarelo), var(--cor-amarelo)) 0 0 / 100% 2.5px no-repeat,
    linear-gradient(var(--cor-amarelo), var(--cor-amarelo)) 0 50% / 100% 2.5px no-repeat,
    linear-gradient(var(--cor-amarelo), var(--cor-amarelo)) 0 100% / 65% 2.5px no-repeat;
  transition: transform var(--duracao) var(--curva);
}
.nav-toggle[aria-expanded="true"]::before {
  background:
    linear-gradient(45deg, transparent 44%, var(--cor-amarelo) 44%, var(--cor-amarelo) 56%, transparent 56%),
    linear-gradient(-45deg, transparent 44%, var(--cor-amarelo) 44%, var(--cor-amarelo) 56%, transparent 56%);
  width: 14px; height: 14px;
}
.nav-toggle:focus-visible { outline: none; box-shadow: var(--foco-anel); }

@media (max-width: 1023px) {
  .marca img { height: 50px; }
  .nav-toggle { display: inline-flex; }
  .menu {
    display: none;
    position: absolute;
    left: var(--margem-lateral);
    right: var(--margem-lateral);
    top: calc(var(--altura-topo) - 4px);
    flex-direction: column;
    align-items: stretch;
    gap: 0.15rem;
    padding: var(--esp-4);
    background: var(--cor-branco);
    border-radius: var(--raio-lg);
    border-top: 12px solid var(--cor-laranja);
    box-shadow: var(--sombra-3);
    max-height: calc(100vh - var(--altura-topo) - 1rem);
    overflow-y: auto;
  }
  .menu.aberto { display: flex; animation: menu-abrir 220ms var(--curva); }
  .menu > a:not(.btn) { padding: 0.85rem 1rem; font-size: 1.08rem; border-radius: var(--raio-md); }
  .menu > a:not(.btn)::after { content: "→"; position: absolute; right: 1rem; color: var(--cor-laranja-texto); }
  .menu .btn { margin: 0.5rem 0 0; width: 100%; min-height: 50px; }
  .menu form .btn { width: 100%; }
}
@keyframes menu-abrir { from { opacity: 0; transform: translateY(-8px) scale(0.98); } to { opacity: 1; transform: none; } }

/* ============ 8. Faixas (demonstração, impersonação, Mural) ============ */
.faixa-demo {
  background: var(--cor-amarelo-claro);
  color: var(--cor-grafite);
  text-align: center;
  padding: 0.5rem var(--margem-lateral);
  font-weight: var(--peso-forte);
  font-size: 0.86rem;
  border-bottom: 1px solid var(--cor-amarelo);
}
.faixa-demo::before { content: "Demonstração"; display: inline-block; margin-right: 0.6rem; padding: 0.1rem 0.55rem; border-radius: var(--raio-pilula); background: var(--cor-grafite); color: var(--cor-branco); font-size: 0.7rem; font-weight: var(--peso-black); letter-spacing: 0.08em; text-transform: uppercase; vertical-align: 1px; }
.faixa-imp {
  display: flex; flex-wrap: wrap; gap: var(--esp-3); align-items: center; justify-content: space-between;
  padding: 0.7rem var(--margem-lateral);
  background: var(--cor-laranja);
  color: var(--cor-grafite);
  font-weight: var(--peso-black);
}
.faixa-imp form { margin: 0; }

/* Faixa do Mural dos Fundadores (discreta, acima do rodapé ou abaixo do topo) */
.mural-faixa {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--esp-3) var(--esp-5);
  padding: 0.85rem 1.1rem 0.85rem 0.9rem;
  border-radius: var(--raio-lg);
  background: var(--cor-creme);
  border: 1.5px solid var(--cor-linha);
}
.mural-faixa__marca { display: flex; align-items: center; gap: 0.8rem; font-weight: var(--peso-forte); }
.mural-faixa__mini {
  width: 52px; height: 36px; border-radius: 8px; flex: none;
  background:
    linear-gradient(90deg, transparent 0 9px, var(--cor-creme) 9px 10px) 0 0 / 10px 10px,
    linear-gradient(transparent 0 9px, var(--cor-creme) 9px 10px) 0 0 / 10px 10px,
    linear-gradient(135deg, var(--cor-amarelo) 0 40%, var(--cor-laranja) 40% 55%, var(--cor-amarelo-claro) 55%);
}
.mural-faixa__titulo { font-family: var(--fonte-titulo); font-weight: 600; font-size: 1.1rem; display: block; line-height: 1.1; }
.mural-faixa__contador { display: inline-flex; align-items: baseline; gap: 0.35rem; font-weight: var(--peso-black); font-variant-numeric: tabular-nums; }
.mural-faixa__contador strong { font-family: var(--fonte-titulo); font-size: 1.35rem; font-weight: 600; }
.mural-faixa__barra { display: block; width: 140px; height: 8px; border-radius: 99px; background: var(--cor-branco); overflow: hidden; border: 1px solid var(--cor-linha); }
.mural-faixa__barra i { display: block; height: 100%; background: var(--cor-laranja); border-radius: 99px; }

/* Mural: grade de células 20x20 px */
.mural {
  --celula: 20px;
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--colunas, 40), var(--celula));
  grid-auto-rows: var(--celula);
  width: max-content;
  max-width: 100%;
  overflow: auto;
  padding: 2px;
  border-radius: var(--raio-md);
  background-color: var(--cor-branco);
  background-image:
    linear-gradient(90deg, var(--cor-linha) 1px, transparent 1px),
    linear-gradient(var(--cor-linha) 1px, transparent 1px);
  background-size: var(--celula) var(--celula);
  border: 1.5px solid var(--cor-linha);
}
.mural__bloco {
  display: block;
  border-radius: 3px;
  background: var(--cor-amarelo) center / cover no-repeat;
  outline: 1px solid rgba(31, 26, 23, 0.12);
  outline-offset: -1px;
  transition: transform var(--duracao) var(--curva), box-shadow var(--duracao) var(--curva);
}
.mural__bloco:hover, .mural__bloco:focus-visible { transform: scale(1.06); box-shadow: var(--sombra-2); z-index: 2; position: relative; }
.mural__bloco--laranja { background-color: var(--cor-laranja); }
.mural__bloco--creme { background-color: var(--cor-amarelo-claro); }
.mural__bloco--grafite { background-color: var(--cor-grafite); }
.mural__livre { background: transparent; outline: 2px dashed var(--cor-laranja-texto); outline-offset: -2px; border-radius: 3px; }
.mural-legenda { display: flex; flex-wrap: wrap; gap: var(--esp-3) var(--esp-5); font-size: var(--fs-sm); font-weight: 700; }

/* ============ 9. Card de feira ============ */
.lista-feiras { display: grid; gap: var(--esp-5); grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); }

.card-feira {
  --capa-altura: 148px;
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  grid-template-areas: "capa capa" "quando corpo";
  align-items: start;
  background: var(--cor-branco);
  border-radius: var(--raio-lg);
  border: 1px solid var(--cor-linha);
  box-shadow: var(--sombra-1);
  overflow: hidden;
  isolation: isolate;
  transition: transform 220ms var(--curva), box-shadow 220ms var(--curva), border-color 220ms var(--curva);
}
.card-feira:hover { transform: translateY(-4px); box-shadow: var(--sombra-3); border-color: var(--cor-amarelo); }
.card-feira:focus-within { border-color: var(--cor-grafite); }

/* Capa ilustrada por setor (fallback quando não há foto) */
.card-capa {
  grid-area: capa;
  position: relative;
  height: var(--capa-altura);
  background-color: var(--cor-amarelo);
  background-image: url("../img/grade-calendario.svg");
  background-size: 44px 44px;
  background-position: -6px -6px;
  overflow: hidden;
}
.card-capa::after {
  content: "";
  position: absolute;
  right: -40px; bottom: -70px;
  width: 210px; height: 210px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
}
.card-capa .card-ico {
  position: absolute;
  right: 22px; top: 24px;
  z-index: 1;
  display: grid; place-items: center;
  width: 76px; height: 76px;
  border-radius: 22px;
  background: var(--cor-branco);
  color: var(--cor-grafite);
  box-shadow: var(--sombra-2);
  transform: rotate(-6deg);
  transition: transform 320ms var(--curva);
}
.card-capa .card-ico .ico { width: 40px; height: 40px; stroke-width: 1.6; }
.card-feira:hover .card-ico { transform: rotate(0deg) scale(1.06); }
.card-capa img { width: 100%; height: 100%; object-fit: cover; }
.capa-0 { background-color: var(--cor-amarelo); }
.capa-1 { background-color: var(--cor-laranja); }
.capa-2 { background-color: var(--cor-amarelo-claro); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72'%3E%3Crect x='6' y='6' width='60' height='60' rx='16' fill='%23FFC401' fill-opacity='.35'/%3E%3C/svg%3E"); }
.capa-3 { background-color: var(--cor-creme); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72'%3E%3Crect x='6' y='6' width='60' height='60' rx='16' fill='%23FF7A00' fill-opacity='.14'/%3E%3C/svg%3E"); }
.capa-4 { background-color: var(--cor-amarelo); background-image: linear-gradient(170deg, #FFC401 0%, #FFB000 45%, #FF8A00 100%); }
.capa-5 { background-color: #FFD54A; }
.capa-1 .card-ico, .capa-4 .card-ico { transform: rotate(5deg); }

/* Data em cartão-calendário com argolas */
.quando {
  grid-area: quando;
  position: relative;
  z-index: 2;
  margin: -46px 0 18px 20px;
  width: 84px;
  padding: 19px 4px 9px;
  border-radius: 18px;
  background: var(--cor-branco);
  box-shadow: var(--sombra-2);
  text-align: center;
  overflow: visible;
}
.quando::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 12px;
  border-radius: 18px 18px 0 0;
  background: var(--cor-laranja);
}
.quando::after {
  content: "";
  position: absolute;
  top: -8px; left: 22px;
  width: 8px; height: 18px;
  border-radius: 6px;
  background: var(--cor-laranja);
  box-shadow: 0 0 0 2.5px var(--cor-branco), 32px 0 0 0 var(--cor-laranja), 32px 0 0 2.5px var(--cor-branco);
}
.quando .dia { display: block; font-family: var(--fonte-titulo); font-weight: 600; font-size: 2.15rem; line-height: 1; }
.quando .mes { display: block; margin-top: 4px; font-size: 0.64rem; white-space: nowrap; font-weight: var(--peso-black); letter-spacing: 0.04em; text-transform: uppercase; color: var(--cor-laranja-texto); }

.card-corpo { grid-area: corpo; display: flex; flex-direction: column; min-width: 0; padding: 14px 20px 20px 16px; }
.card-corpo .badges { display: flex; flex-wrap: wrap; gap: 0.35rem; min-width: 0; margin: 0 0 0.7rem; }
.card-corpo .badges .badge { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.card-corpo .badges .badge.tipo-b2b, .card-corpo .badges .badge.tipo-b2c, .card-corpo .badges .badge.tipo-misto { flex: none; white-space: nowrap; background: var(--cor-grafite); color: var(--cor-branco); opacity: 1; }
.card-corpo h3 { margin: 0 0 0.35rem; font-size: 1.22rem; line-height: 1.15; overflow-wrap: anywhere; }
.card-corpo h3 a { color: var(--cor-grafite); text-decoration: none; background: linear-gradient(transparent 62%, var(--cor-amarelo) 62%, var(--cor-amarelo) 92%, transparent 92%) no-repeat 0 0 / 0 100%; transition: background-size 320ms var(--curva); }
.card-corpo h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.card-feira:hover .card-corpo h3 a, .card-corpo h3 a:focus-visible { background-size: 100% 100%; }
.card-corpo h3 a:focus-visible { outline: none; }
.card-feira:has(h3 a:focus-visible) { box-shadow: var(--foco-anel); }
.meta { display: flex; gap: 0.45rem; align-items: flex-start; margin: 0 0 0.6rem; color: var(--texto-suave); font-weight: 700; font-size: 0.93rem; line-height: 1.4; }
.card-corpo .meta::before {
  content: "";
  flex: none;
  width: 1.05rem; height: 1.05rem; margin-top: 0.1rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11z' fill='none' stroke='%23A84A00' stroke-width='2.2' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='10' r='2.4' fill='none' stroke='%23A84A00' stroke-width='2.2'/%3E%3C/svg%3E") no-repeat center / contain;
}
.card-expositores { display: flex; gap: 0.45rem; align-items: flex-start; margin: -0.25rem 0 0.6rem; color: var(--texto-suave); font-weight: 700; font-size: 0.93rem; line-height: 1.4; }
.card-expositores .ico { flex: none; width: 1.05rem; height: 1.05rem; margin-top: 0.1rem; color: var(--cor-laranja-texto); stroke-width: 2.2; }
.card-expositores strong { color: var(--cor-grafite); font-weight: var(--peso-black); font-variant-numeric: tabular-nums; }
.resumo { margin: 0; color: var(--cor-grafite); font-weight: 600; font-size: 0.97rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.card-acao { position: absolute; z-index: 3; top: 14px; left: 14px; }
.fav {
  display: inline-grid; place-items: center;
  width: var(--alvo-toque); height: var(--alvo-toque);
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.92);
  color: var(--cor-grafite);
  font-size: 1.2rem;
  line-height: 1;
  text-decoration: none;
  box-shadow: var(--sombra-1);
  cursor: pointer;
  transition: transform var(--duracao) var(--curva), background-color var(--duracao) var(--curva);
}
.fav:hover { transform: scale(1.1); color: var(--cor-grafite); background: var(--cor-branco); }
.fav:focus-visible { outline: none; box-shadow: var(--foco-anel); }
.fav.ativo, .fav-texto.ativo { background: var(--cor-grafite); color: var(--cor-amarelo); }
.fav.ativo { animation: fav-pop 320ms var(--curva); }
@keyframes fav-pop { 50% { transform: scale(1.25); } }

/* Card horizontal (lista compacta): adicione .card-feira--linha */
@media (min-width: 700px) {
  .card-feira--linha { grid-template-columns: 180px auto minmax(0, 1fr); grid-template-rows: auto; grid-template-areas: "capa quando corpo"; --capa-altura: auto; }
  .card-feira--linha .card-capa { height: 100%; min-height: 120px; }
  .card-feira--linha .quando { margin: 22px 0 22px -42px; }
  .card-feira--linha .card-corpo { padding: 22px; }
}

/* ============ 10. Conteúdo borrado de assinante ============ */
/* Teaser da lista: fantasmas de card + cartão trancado */
.cadeado { position: relative; margin-top: var(--esp-6); padding-bottom: var(--esp-4); }
.cadeado-fantasma {
  display: grid;
  gap: var(--esp-5);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr));
  filter: blur(6px) saturate(0.9);
  opacity: 0.75;
  pointer-events: none;
  user-select: none;
  -webkit-mask: linear-gradient(#000 20%, transparent 95%);
  mask: linear-gradient(#000 20%, transparent 95%);
}
.cadeado-fantasma span {
  position: relative;
  display: block;
  height: 300px;
  border-radius: var(--raio-lg);
  background:
    linear-gradient(var(--cor-esqueleto), var(--cor-esqueleto)) 22px 190px / 70% 18px no-repeat,
    linear-gradient(var(--cor-esqueleto), var(--cor-esqueleto)) 22px 222px / 50% 12px no-repeat,
    linear-gradient(var(--cor-esqueleto), var(--cor-esqueleto)) 22px 246px / 80% 12px no-repeat,
    linear-gradient(var(--cor-amarelo), var(--cor-amarelo)) 0 0 / 100% 140px no-repeat,
    var(--cor-branco);
  border: 1px solid var(--cor-linha);
}
.cadeado-fantasma span:nth-child(2) { background-color: var(--cor-branco); background-image: linear-gradient(var(--cor-esqueleto), var(--cor-esqueleto)), linear-gradient(var(--cor-esqueleto), var(--cor-esqueleto)), linear-gradient(var(--cor-esqueleto), var(--cor-esqueleto)), linear-gradient(var(--cor-laranja), var(--cor-laranja)); }
.cadeado-fantasma span:nth-child(3) { background-image: linear-gradient(var(--cor-esqueleto), var(--cor-esqueleto)), linear-gradient(var(--cor-esqueleto), var(--cor-esqueleto)), linear-gradient(var(--cor-esqueleto), var(--cor-esqueleto)), linear-gradient(var(--cor-amarelo-claro), var(--cor-amarelo-claro)); }
.cadeado-fantasma span::after {
  content: "";
  position: absolute; left: 20px; top: 98px;
  width: 78px; height: 84px; border-radius: 18px;
  background: linear-gradient(var(--cor-laranja) 0 12px, var(--cor-branco) 12px);
  box-shadow: var(--sombra-2);
}
.cadeado-corpo {
  position: relative;
  z-index: 2;
  width: min(620px, 100%);
  margin: -230px auto 0;
  padding: var(--esp-7) var(--esp-6) var(--esp-6);
  text-align: center;
  box-shadow: var(--sombra-3);
}
.cadeado-corpo > * { position: relative; }
.cadeado-corpo .selo { margin-bottom: var(--esp-4); }
.cadeado-corpo h2 { font-size: clamp(1.6rem, 1.3rem + 1.3vw, 2.2rem); }
.cadeado-corpo p { max-width: 30rem; margin-inline: auto; }
.cadeado-corpo .btn { margin-top: var(--esp-3); }
.cadeado-corpo .btn::after { content: "→"; color: var(--cor-amarelo); }

/* Bloco genérico borrado: <div class="borrado"><div class="borrado__conteudo" aria-hidden="true">…</div><div class="borrado__cta">…</div></div> */
.borrado { position: relative; border-radius: var(--raio-lg); overflow: hidden; }
.borrado__conteudo { filter: blur(7px); opacity: 0.8; pointer-events: none; user-select: none; }
.borrado__cta {
  position: absolute; inset: 0;
  display: grid; place-content: center; justify-items: center; gap: 0.6rem;
  padding: var(--esp-5);
  text-align: center;
  background: radial-gradient(ellipse at center, rgba(255, 250, 242, 0.95) 0%, rgba(255, 250, 242, 0.75) 60%, rgba(255, 250, 242, 0.35) 100%);
}
.borrado__cta p { margin: 0; max-width: 26rem; }
.cadeado-ico {
  display: grid; place-items: center;
  width: 3.5rem; height: 3.5rem;
  border-radius: var(--raio-md);
  background: var(--cor-amarelo);
  box-shadow: var(--sombra-solida);
  margin-bottom: 0.3rem;
}
.cadeado-ico .ico { width: 1.7rem; height: 1.7rem; stroke-width: 2; }

/* Contato bloqueado na ficha da feira: linhas viram campos trancados */
.contato-bloqueado { display: grid; gap: 0.55rem; margin: 0 0 var(--esp-4); }
.contato-bloqueado .linha {
  position: relative;
  display: flex; align-items: center; gap: 0.75rem;
  height: 56px;
  padding: 0 1rem;
  border-radius: var(--raio-md);
  background: var(--cor-creme);
  border: 1px solid var(--cor-linha);
  overflow: hidden;
}
.contato-bloqueado .linha::before {
  flex: none;
  min-width: 4.6rem;
  font-size: 0.72rem; font-weight: var(--peso-black); letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--cor-cinza);
}
.contato-bloqueado .linha:nth-child(1)::before { content: "E-mail"; }
.contato-bloqueado .linha:nth-child(2)::before { content: "Telefone"; }
.contato-bloqueado .linha:nth-child(3)::before { content: "Expor"; }
.contato-bloqueado .linha::after {
  content: "";
  flex: 1;
  height: 14px;
  border-radius: 99px;
  background: repeating-linear-gradient(90deg, var(--cor-grafite) 0 8px, transparent 8px 13px);
  opacity: 0.55;
  filter: blur(3.5px);
}
.contato-bloqueado .curta::after { flex: 0 0 55%; }
.acoes-contato { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.acoes-contato .btn { white-space: normal; text-align: center; }
.liberada-ate { margin-bottom: var(--esp-4); }
.plano-avulso .nota { margin: 0 0 0.75rem; }

/* ============ 11. Planos ============ */
.planos { display: grid; gap: var(--esp-7) var(--esp-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); align-items: stretch; }
.plano { display: flex; flex-direction: column; padding: var(--esp-6) var(--esp-5) var(--esp-5); }
.plano h2 { font-size: 1.5rem; margin-bottom: 0.2rem; }
.plano ul { list-style: none; padding: var(--esp-4) 0 0; margin: var(--esp-4) 0 var(--esp-5); display: grid; gap: 0.7rem; flex: 1; align-content: start; border-top: 2px dashed var(--cor-linha); }
.plano-destaque ul { border-top-color: rgba(31, 26, 23, 0.25); }
.plano li { display: flex; gap: 0.6rem; margin: 0; font-weight: 700; font-size: 0.98rem; }
.plano li::before {
  content: ""; flex: none; width: 1.35rem; height: 1.35rem; margin-top: 0.05rem; border-radius: 50%;
  background: var(--cor-amarelo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.5l3.8 3.8 7.2-8' fill='none' stroke='%231F1A17' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 0.9rem;
}
.plano form { display: grid; gap: 0.75rem; margin-top: auto; }
.plano > .btn { margin-top: auto; }
.preco { margin: 0.3rem 0 0; font-family: var(--fonte-titulo); font-weight: 600; font-size: clamp(2.6rem, 2.2rem + 1.5vw, 3.4rem); line-height: 1; letter-spacing: -0.02em; }
.preco span { font-family: var(--fonte-corpo); font-size: 1rem; font-weight: var(--peso-black); letter-spacing: 0; color: var(--texto-suave); }
.plano-destaque { background: var(--cor-amarelo); border-top-color: var(--cor-grafite); box-shadow: var(--sombra-3); }
.plano-destaque::before, .plano-destaque::after { background: var(--cor-grafite); }
.plano-destaque .selo { position: absolute; top: 18px; right: 18px; background: var(--cor-grafite); color: var(--cor-branco); border-color: var(--cor-grafite); }
.plano-destaque li::before { background-color: var(--cor-branco); }
.plano-destaque .preco span { color: var(--cor-grafite); }
.plano-destaque input, .plano-destaque select { border-color: var(--cor-grafite); }
.caixa-plano { display: grid; gap: 0.8rem; padding: var(--esp-4); border-radius: var(--raio-md); background: var(--cor-creme); }
.caixa-plano p { margin: 0; }

/* Tabela comparativa de planos */
.tabela-planos th:not(:first-child), .tabela-planos td:not(:first-child) { text-align: center; }
.tabela-planos .sim::before { content: "✓"; display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--cor-amarelo); font-weight: 900; }
.tabela-planos .nao { color: var(--cor-cinza); }

/* ============ 12. Tabelas, subnav e métricas (área logada e admin) ============ */
.tabela-wrap { overflow-x: auto; background: var(--cor-branco); border: 1px solid var(--cor-linha); border-radius: var(--raio-lg); box-shadow: var(--sombra-1); }
table { width: 100%; border-collapse: collapse; font-size: 0.96rem; }
th, td { text-align: left; padding: 0.85rem 1rem; border-bottom: 1px solid var(--cor-linha); vertical-align: top; }
thead th { position: sticky; top: 0; background: var(--cor-creme); font-size: 0.74rem; font-weight: var(--peso-black); text-transform: uppercase; letter-spacing: 0.07em; white-space: nowrap; }
tbody tr { transition: background-color var(--duracao) var(--curva); }
tbody tr:hover { background: var(--cor-offwhite); }
tbody tr:last-child td { border-bottom: 0; }
td small { color: var(--texto-suave); }
td form { margin: 0.25rem 0 0; }

.subnav {
  display: flex; gap: 0.35rem;
  margin: var(--esp-5) 0;
  padding: 0.4rem;
  overflow-x: auto;
  scrollbar-width: thin;
  background: var(--cor-branco);
  border: 1px solid var(--cor-linha);
  border-radius: var(--raio-pilula);
}
.subnav a {
  flex: none;
  padding: 0.5rem 0.95rem;
  border-radius: var(--raio-pilula);
  color: var(--cor-grafite);
  font-weight: var(--peso-forte);
  font-size: 0.92rem;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--duracao) var(--curva);
}
.subnav a:hover { background: var(--cor-amarelo-claro); }
.subnav a[aria-current="page"] { background: var(--cor-grafite); color: var(--cor-branco); }

.metricas { display: grid; gap: var(--esp-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); margin: var(--esp-5) 0; }
.metricas article {
  position: relative;
  display: flex; flex-direction: column; gap: 0.2rem;
  padding: var(--esp-5) var(--esp-4) var(--esp-4);
  border-radius: var(--raio-lg);
  background: var(--cor-branco);
  border: 1px solid var(--cor-linha);
  box-shadow: var(--sombra-1);
  overflow: hidden;
}
.metricas article::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: var(--cor-amarelo); }
.metricas article:first-child { background: var(--cor-amarelo); border-color: var(--cor-amarelo); }
.metricas article:first-child::before { background: var(--cor-grafite); }
.metricas strong { font-family: var(--fonte-titulo); font-weight: 600; font-size: clamp(1.7rem, 1.4rem + 1vw, 2.2rem); line-height: 1.05; font-variant-numeric: tabular-nums; }
.metricas span { font-size: 0.86rem; font-weight: 700; color: var(--texto-suave); }
.metricas article:first-child span { color: var(--cor-grafite); }

.barras { display: grid; gap: 0.6rem; }
.barra { display: grid; grid-template-columns: 6.5rem 1fr auto; gap: 0.7rem; align-items: center; font-size: 0.9rem; }
.barra i { display: block; height: 12px; min-width: 8px; background: var(--cor-laranja); border-radius: 99px; }

.paginacao { display: flex; gap: 0.4rem; flex-wrap: wrap; justify-content: center; margin: var(--esp-6) 0; }
.paginacao a {
  display: inline-grid; place-items: center;
  min-width: var(--alvo-toque); height: var(--alvo-toque);
  padding: 0 0.6rem;
  border-radius: var(--raio-pilula);
  background: var(--cor-branco);
  border: 1.5px solid var(--cor-linha);
  color: var(--cor-grafite);
  font-weight: var(--peso-black);
  text-decoration: none;
}
.paginacao a:hover { background: var(--cor-amarelo-claro); }
.paginacao a.atual { background: var(--cor-grafite); border-color: var(--cor-grafite); color: var(--cor-branco); }

/* Passos numerados (cadastre sua feira) */
.passos { list-style: none; counter-reset: passo; padding: 0; margin: var(--esp-5) 0; display: grid; gap: var(--esp-4); }
.passos li {
  counter-increment: passo;
  position: relative;
  display: grid; grid-template-columns: auto 1fr; gap: var(--esp-4); align-items: center;
  margin: 0;
  padding: var(--esp-4) var(--esp-5) var(--esp-4) var(--esp-4);
  background: var(--cor-branco);
  border: 1px solid var(--cor-linha);
  border-radius: var(--raio-lg);
  font-weight: 700;
}
.passos li::before {
  content: counter(passo);
  display: grid; place-items: center;
  width: 3.2rem; height: 3.2rem;
  border-radius: var(--raio-md);
  background: var(--cor-amarelo);
  font-family: var(--fonte-titulo);
  font-size: 1.6rem;
  font-weight: 600;
}
.passos li:last-child::before { background: var(--cor-laranja); }

/* ============ 13. As 15 feiras do dia ============ */
.amostra-dia {
  position: relative;
  padding: var(--esp-6) var(--esp-5);
  border-radius: var(--raio-xl);
  background: var(--cor-creme);
  overflow: hidden;
}
.amostra-dia__topo { display: flex; flex-wrap: wrap; gap: var(--esp-4); align-items: flex-end; justify-content: space-between; margin-bottom: var(--esp-5); }
.amostra-dia__topo h2 { margin: 0; }
.amostra-dia__selo {
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 0.5rem 0.9rem 0.5rem 0.5rem;
  border-radius: var(--raio-pilula);
  background: var(--cor-branco);
  font-weight: var(--peso-black);
  font-size: 0.9rem;
}
.amostra-dia__data {
  display: grid; place-items: center;
  width: 2.4rem; height: 2.4rem;
  border-radius: 10px;
  background: linear-gradient(var(--cor-laranja) 0 9px, var(--cor-amarelo) 9px);
  font-family: var(--fonte-titulo); font-size: 1.05rem; padding-top: 6px;
}
.amostra-dia__contador { font-variant-numeric: tabular-nums; }
.amostra-dia__lista { counter-reset: amostra; }
.amostra-dia__lista > * { counter-increment: amostra; }
@media (max-width: 699px) {
  .amostra-dia { padding-inline: 0; }
  .amostra-dia__topo, .amostra-dia__rodape { margin-inline: var(--esp-5); }
  .amostra-dia__lista.lista-feiras {
    display: grid; grid-auto-flow: column; grid-auto-columns: 82%; grid-template-columns: none;
    overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--esp-5);
    padding: 4px var(--esp-5) var(--esp-4);
    scrollbar-width: none;
  }
  .amostra-dia__lista > * { scroll-snap-align: start; }
}
.amostra-dia__rodape { display: flex; flex-wrap: wrap; gap: var(--esp-4); align-items: center; justify-content: space-between; margin-top: var(--esp-5); padding-top: var(--esp-5); border-top: 2px dashed var(--cor-linha); }
.amostra-dia__rodape p { margin: 0; font-weight: 700; }

/* ============ 14. Quiz ============ */
.quiz { display: grid; gap: var(--esp-5); }
.quiz__progresso { display: flex; align-items: center; gap: var(--esp-3); font-weight: var(--peso-black); font-size: 0.9rem; }
.quiz__barra { flex: 1; display: grid; grid-auto-flow: column; gap: 6px; }
.quiz__barra i { height: 10px; border-radius: 99px; background: var(--cor-amarelo-claro); }
.quiz__barra i.feito { background: var(--cor-laranja); }
.quiz__barra i.atual { background: var(--cor-amarelo); }
.quiz__passo-num { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: var(--raio-md); background: var(--cor-amarelo); font-family: var(--fonte-titulo); font-size: 1.5rem; }
.quiz__pergunta { font-size: var(--fs-h2); margin: 0; }
.quiz__opcoes { display: grid; gap: var(--esp-3); grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); border: 0; padding: 0; margin: 0; }
.quiz__opcao {
  position: relative;
  display: flex; align-items: center; gap: 0.85rem;
  min-height: 72px;
  padding: 0.9rem 1rem;
  border-radius: var(--raio-md);
  background: var(--cor-branco);
  border: 2px solid var(--cor-linha);
  font-size: 1.02rem;
  font-weight: var(--peso-forte);
  cursor: pointer;
  transition: border-color var(--duracao) var(--curva), transform var(--duracao) var(--curva), background-color var(--duracao) var(--curva);
}
.quiz__opcao input { position: absolute; opacity: 0; }
.quiz__opcao .ico-quadrado { width: 2.75rem; height: 2.75rem; border-radius: 14px; background: var(--cor-creme); box-shadow: none; }
.quiz__opcao .ico-quadrado .ico { width: 1.35rem; height: 1.35rem; }
.quiz__opcao:hover { border-color: var(--cor-amarelo); transform: translateY(-2px); }
.quiz__opcao:has(input:checked) { border-color: var(--cor-grafite); background: var(--cor-amarelo-claro); }
.quiz__opcao:has(input:checked) .ico-quadrado { background: var(--cor-amarelo); }
.quiz__opcao:has(input:checked)::after {
  content: ""; position: absolute; top: 10px; right: 10px; width: 1.4rem; height: 1.4rem; border-radius: 50%;
  background: var(--cor-grafite) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23FFC401' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 0.85rem;
}
.quiz__opcao:has(input:focus-visible) { box-shadow: var(--foco-anel); }
.quiz__acoes { display: flex; flex-wrap: wrap; gap: var(--esp-3); justify-content: space-between; align-items: center; }

/* ============ 15b. Busca com IA ============ */
/* Selo de IA: mini-calendário grafite com "IA" amarelo e argolas laranja */
.selo-ia {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 2.1rem; height: 2rem;
  margin-top: 4px;
  border-radius: 9px;
  background: var(--cor-grafite);
  color: var(--cor-amarelo);
  font-family: var(--fonte-titulo);
  font-weight: 600;
  font-size: 0.92rem;
  line-height: 1;
  letter-spacing: 0.02em;
  flex: none;
}
.selo-ia::before {
  content: "";
  position: absolute;
  top: -5px; left: 7px;
  width: 4px; height: 9px;
  border-radius: 3px;
  background: var(--cor-laranja);
  box-shadow: 0 0 0 1.5px var(--cor-branco), 13px 0 0 0 var(--cor-laranja), 13px 0 0 1.5px var(--cor-branco);
}
.selo-ia--grande { width: 3rem; height: 2.85rem; border-radius: 13px; font-size: 1.3rem; }
.selo-ia--grande::before { left: 10px; width: 6px; height: 13px; top: -7px; box-shadow: 0 0 0 2px var(--cor-branco), 18px 0 0 0 var(--cor-laranja), 18px 0 0 2px var(--cor-branco); }

.busca-ia { display: grid; gap: var(--esp-6); }
.busca-ia__form { display: grid; gap: var(--esp-3); }
.selo-ia--mini { width: 1.6rem; height: 1.5rem; margin: 0; border-radius: 7px; font-size: 0.72rem; }
.selo-ia--mini::before { display: none; }
.busca-ia__campo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 8px 8px 8px 18px;
  border-radius: var(--raio-pilula);
  background: var(--cor-branco);
  border: 1px solid var(--cor-linha);
  box-shadow: 0 1px 2px rgba(31, 26, 23, 0.04), 0 8px 24px -12px rgba(31, 26, 23, 0.14);
  transition: box-shadow var(--duracao) var(--curva), border-color var(--duracao) var(--curva);
}
.busca-ia__campo:hover { border-color: #E2D6C6; }
.busca-ia__campo:focus-within { border-color: var(--cor-amarelo); box-shadow: 0 0 0 4px rgba(255, 196, 1, 0.28), 0 8px 24px -12px rgba(31, 26, 23, 0.14); }
.busca-ia .busca-ia__input {
  flex: 1;
  min-width: 0;
  min-height: 48px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  font-size: clamp(1.02rem, 0.95rem + 0.3vw, 1.18rem);
  font-weight: 600;
}
.busca-ia .busca-ia__input:focus-visible { box-shadow: none; outline: none; }
.busca-ia__input::placeholder { color: var(--cor-cinza); font-weight: 500; transition: opacity 220ms var(--curva); }
.busca-ia__input--trocando::placeholder { opacity: 0; }
.busca-ia__enviar {
  flex: none;
  display: grid; place-items: center;
  width: var(--alvo-toque); height: var(--alvo-toque);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--cor-creme);
  color: var(--cor-grafite);
  cursor: pointer;
  transition: background-color var(--duracao) var(--curva), color var(--duracao) var(--curva);
}
.busca-ia__enviar .ico { width: 1.15rem; height: 1.15rem; stroke-width: 2.2; }
.busca-ia__enviar:hover, .busca-ia[data-estado="digitando"] .busca-ia__enviar { background: var(--cor-grafite); color: var(--cor-branco); }
.busca-ia__enviar:focus-visible { outline: none; box-shadow: var(--foco-anel); }
.busca-ia__enviar[disabled] { opacity: 0.5; cursor: progress; }
.busca-ia__exemplos {
  display: flex; flex-wrap: nowrap; gap: 0.25rem 1.1rem;
  padding-inline: 18px;
  overflow-x: auto; scrollbar-width: none;
}
.busca-ia__exemplos::-webkit-scrollbar { display: none; }
.busca-ia__exemplo {
  flex: none;
  min-height: 32px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--cor-cinza);
  font: inherit;
  font-size: var(--fs-sm);
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}
.busca-ia__exemplo:hover { color: var(--cor-grafite); text-decoration: underline; text-decoration-color: var(--cor-amarelo); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.busca-ia__exemplo:focus-visible { outline: none; color: var(--cor-grafite); box-shadow: var(--foco-anel); border-radius: 4px; }
.busca-ia__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; align-items: center; margin: 0; padding-inline: 18px; font-size: var(--fs-xs); color: var(--cor-cinza); }
.busca-ia__uso[hidden] { display: none; }
.busca-ia__exemplos-rotulo { font-size: var(--fs-xs); font-weight: var(--peso-black); letter-spacing: var(--tracking-etiqueta); text-transform: uppercase; }
.busca-ia__filtros { color: var(--cor-cinza); font-weight: 700; text-decoration: none; }
.busca-ia__filtros:hover { color: var(--cor-grafite); text-decoration: underline; text-decoration-color: var(--cor-amarelo); }
.busca-ia__saida:empty { display: none; }

/* Pensando: três argolas do calendário que pulam */
.busca-ia__pensando { display: inline-flex; align-items: center; gap: 0.8rem; padding: 0.6rem 1.1rem 0.6rem 0.8rem; border-radius: var(--raio-pilula); background: var(--cor-amarelo); font-weight: var(--peso-black); width: fit-content; }
.ia-pensando { display: inline-flex; gap: 5px; align-items: flex-end; height: 18px; }
.ia-pensando i { display: block; width: 7px; height: 16px; border-radius: 4px; background: var(--cor-grafite); }
.ia-pensando i:nth-child(2) { background: var(--cor-laranja); }
@media (prefers-reduced-motion: no-preference) {
  .ia-pensando i { animation: ia-pulo 900ms var(--curva) infinite; }
  .ia-pensando i:nth-child(2) { animation-delay: 120ms; }
  .ia-pensando i:nth-child(3) { animation-delay: 240ms; }
  @keyframes ia-pulo { 0%, 100% { translate: 0 0; } 40% { translate: 0 -6px; } }
  .card-esqueleto span { background-size: 200% 100%; animation: brilho 1.4s linear infinite; }
  @keyframes brilho { to { background-position: -200% 0; } }
  .busca-ia__resposta, .busca-ia .lista-feiras > * { animation: entrar 480ms var(--curva) both; }
  .busca-ia .lista-feiras > *:nth-child(2) { animation-delay: 70ms; }
  .busca-ia .lista-feiras > *:nth-child(3) { animation-delay: 140ms; }
  .busca-ia .lista-feiras > *:nth-child(n+4) { animation-delay: 210ms; }
}
.busca-ia__esqueleto { margin-top: var(--esp-5); }
.card-esqueleto {
  display: grid; gap: 12px; align-content: start;
  height: 300px; padding: 160px 22px 22px;
  border-radius: var(--raio-lg);
  border: 1px solid var(--cor-linha);
  background: linear-gradient(var(--cor-amarelo-claro), var(--cor-amarelo-claro)) 0 0 / 100% 140px no-repeat, var(--cor-branco);
}
.card-esqueleto span { display: block; height: 14px; border-radius: 99px; background: linear-gradient(90deg, var(--cor-esqueleto) 0%, var(--cor-creme) 50%, var(--cor-esqueleto) 100%); }
.card-esqueleto span:nth-child(1) { width: 40%; }
.card-esqueleto span:nth-child(2) { width: 85%; height: 20px; }
.card-esqueleto span:nth-child(3) { width: 65%; }
.card-esqueleto span:nth-child(4) { width: 75%; }

/* Resposta */
.busca-ia__resposta {
  display: grid; grid-template-columns: auto 1fr; gap: var(--esp-4); align-items: start;
  padding: var(--esp-5);
  border-radius: var(--raio-lg) var(--raio-lg) var(--raio-lg) 8px;
  background: var(--cor-creme);
  border: 1.5px solid var(--cor-linha);
}
.busca-ia__texto { margin: 0; font-size: var(--fs-lg); font-weight: 700; line-height: 1.5; max-width: 60rem; }
.busca-ia__texto:focus { outline: none; }
.busca-ia__entendi { display: grid; gap: 0.5rem; margin-top: var(--esp-4); }
.chip-filtro--remover { background: var(--cor-branco); border-color: var(--cor-linha); min-height: 40px; padding: 0.35rem 0.6rem 0.35rem 0.9rem; font-size: 0.92rem; }
.chip-filtro--remover::before { display: none; }
.chip-filtro--remover:hover { background: var(--cor-amarelo-claro); }
.chip-filtro--remover .remover { display: inline-grid; place-items: center; width: 1.45rem; height: 1.45rem; border-radius: 50%; background: var(--cor-grafite); color: var(--cor-branco); font-size: 1rem; }
.chip-filtro__rotulo { font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cor-laranja-texto); }
.chip-filtro--remover:focus-visible { outline: none; box-shadow: var(--foco-anel); }
.busca-ia__topo-lista { display: flex; flex-wrap: wrap; gap: var(--esp-3); align-items: center; justify-content: space-between; margin: var(--esp-5) 0 var(--esp-4); }
.busca-ia__topo-lista .contagem { margin: 0; }

/* Card bloqueado (fora da degustação) */
.card-feira--bloqueada .card-corpo, .card-feira--bloqueada .quando, .card-feira--bloqueada .card-capa { filter: blur(5px); opacity: 0.75; user-select: none; }
.card-feira--bloqueada:hover { transform: none; }
.card-trava {
  position: absolute; inset: 0; z-index: 4;
  display: grid; place-content: center; justify-items: center; gap: 0.5rem;
  background: linear-gradient(rgba(255, 250, 242, 0.35), rgba(255, 250, 242, 0.85));
  color: var(--cor-grafite);
  font-weight: var(--peso-black);
  text-decoration: none;
}
.card-trava > span:not(.cadeado-ico):not(.sr-only) { padding: 0.45rem 1rem; border-radius: var(--raio-pilula); background: var(--cor-grafite); color: var(--cor-branco); font-size: 0.92rem; }
.card-trava:hover .cadeado-ico { transform: rotate(-8deg) scale(1.05); }
.card-trava .cadeado-ico { transition: transform var(--duracao) var(--curva); }
.card-trava:focus-visible { outline: none; box-shadow: inset 0 0 0 4px var(--cor-grafite); border-radius: var(--raio-lg); }
.busca-ia__assine, .busca-ia__aviso {
  display: grid; gap: var(--esp-4); align-items: center;
  margin-top: var(--esp-5);
  padding: var(--esp-5);
  border-radius: var(--raio-lg);
  background: var(--cor-amarelo);
}
.busca-ia__assine p, .busca-ia__aviso p { margin: 0.2rem 0 0; }
.busca-ia__aviso { background: var(--cor-branco); border: 2px dashed var(--cor-linha); }
.busca-ia__aviso h3 { margin: 0; font-size: var(--fs-h3); }
.busca-ia__aviso--erro { border: 2px solid var(--cor-amarelo); background: var(--cor-amarelo-claro); }
/* Contato fictício do card bloqueado: placeholder fixo, nunca dado real */
.card-contato-ficticio { display: grid; gap: 0.25rem; margin: 0.6rem 0 0; font-weight: 800; font-size: 0.92rem; letter-spacing: 0.02em; }

/* Limite diário atingido */
.busca-ia__limite {
  display: grid; gap: var(--esp-4); align-items: center;
  padding: var(--esp-5);
  border-radius: var(--raio-lg);
  background: var(--cor-creme);
  border: 1px solid var(--cor-linha);
}
.busca-ia__limite h3 { margin: 0; font-size: var(--fs-h3); }
.busca-ia__limite p { margin: 0.25rem 0 0; max-width: 46ch; }
.busca-ia__limite-medidor { display: flex; align-items: center; gap: 0.7rem; }
.busca-ia__limite-zero { font-family: var(--fonte-titulo); font-weight: 600; font-size: 1.25rem; line-height: 1; padding: 0.35rem 0.75rem; border-radius: var(--raio-pilula); background: var(--cor-branco); }
.busca-ia__limite-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-3); }
@media (min-width: 700px) {
  .busca-ia__assine, .busca-ia__aviso, .busca-ia__limite { grid-template-columns: auto 1fr auto; }
}
@media (max-width: 559px) {
  .busca-ia__campo { padding-left: 14px; gap: 0.6rem; }
  .busca-ia__exemplos, .busca-ia__meta { padding-inline: 14px; }
  .busca-ia__resposta { grid-template-columns: 1fr; }
}

/* Abas IA / filtros */
.abas-busca { display: inline-flex; gap: 4px; padding: 5px; margin-bottom: var(--esp-6); border-radius: var(--raio-pilula); background: var(--cor-branco); box-shadow: var(--sombra-1); }
.aba-busca { padding: 0.5rem 1.05rem; border-radius: var(--raio-pilula); color: var(--cor-grafite); font-weight: var(--peso-black); font-size: 0.92rem; text-decoration: none; }
.aba-busca:hover { background: var(--cor-creme); color: var(--cor-grafite); }
.aba-busca[aria-selected="true"] { background: var(--cor-grafite); color: var(--cor-branco); }
.aba-busca:focus-visible { outline: none; box-shadow: var(--foco-anel); }

/* ============ 15c. Seletor (combobox de setor) ============ */
/* views/partials/seletor_setor.php + /assets/js/seletor-setor.js. Doc: docs/design-system/seletor-setor.md */
.seletor { position: relative; min-width: 0; }
.seletor__rotulo:not(.sr-only) { margin-bottom: 0.4rem; }
.js .seletor__nativo { display: none; }
html:not(.js) .seletor__gatilho { display: none; }

.seletor__gatilho {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  min-height: 50px;
  padding: 0 0.85rem 0 0.95rem;
  background: var(--cor-branco);
  border: 1.5px solid var(--cor-borda-campo);
  border-radius: 14px;
  color: var(--cor-grafite);
  font-family: var(--fonte-corpo);
  font-size: 1rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  transition: border-color var(--duracao) var(--curva), box-shadow var(--duracao) var(--curva);
}
.seletor__gatilho:hover { border-color: var(--cor-grafite); }
.seletor__gatilho:focus-visible { outline: none; border-color: var(--cor-grafite); box-shadow: 0 0 0 4px var(--cor-amarelo); border-radius: 14px; }
.seletor__valor { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.seletor__valor.is-vazio { color: var(--cor-cinza); font-weight: 600; }
.seletor__ico { width: 1.2rem; height: 1.2rem; color: var(--cor-cinza); }
.seletor__seta { flex: none; width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform var(--duracao) var(--curva); }
.seletor.is-aberto .seletor__seta { transform: rotate(180deg); }

/* Variante grande: pílula leve, mesma linguagem da busca com IA */
.seletor--grande .seletor__gatilho {
  min-height: 64px;
  padding: 0 1.35rem 0 1.4rem;
  gap: 0.85rem;
  border: 1px solid var(--cor-linha);
  border-radius: var(--raio-pilula);
  box-shadow: 0 1px 2px rgba(31, 26, 23, 0.04), 0 8px 24px -12px rgba(31, 26, 23, 0.14);
  font-size: clamp(1.05rem, 1rem + 0.25vw, 1.15rem);
}
.seletor--grande .seletor__gatilho:hover { border-color: #E2D6C6; }
.seletor--grande.is-aberto .seletor__gatilho { border-color: var(--cor-amarelo); box-shadow: 0 0 0 4px rgba(255, 196, 1, 0.28), 0 8px 24px -12px rgba(31, 26, 23, 0.14); }
.seletor--grande .seletor__gatilho:focus-visible { border-color: var(--cor-linha); box-shadow: var(--foco-anel); border-radius: var(--raio-pilula); }

/* Painel */
.seletor__painel {
  position: absolute;
  z-index: 45;
  top: calc(100% + 8px);
  left: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: min(360px, calc(100vw - 2rem));
  background: var(--cor-branco);
  border: 1px solid var(--cor-linha);
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(31, 26, 23, 0.05), 0 24px 48px -16px rgba(60, 35, 10, 0.24);
  overflow: hidden;
  animation: seletor-entra var(--duracao) var(--curva);
}
.seletor__painel[hidden] { display: none; }
.seletor--acima .seletor__painel { top: auto; bottom: calc(100% + 8px); }
.seletor--direita .seletor__painel { left: auto; right: 0; }
@keyframes seletor-entra { from { opacity: 0; transform: translateY(-4px); } }

.seletor__cabeca { display: none; }
.seletor__busca {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0 1.1rem;
  border-bottom: 1px solid var(--cor-linha);
  color: var(--cor-cinza);
  transition: border-color var(--duracao) var(--curva);
}
.seletor__busca:focus-within { border-bottom-color: var(--cor-grafite); color: var(--cor-grafite); }
.seletor__busca .ico { width: 1.1rem; height: 1.1rem; }
.seletor .seletor__input {
  flex: 1;
  min-width: 0;
  min-height: 54px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  color: var(--cor-grafite);
  font-size: 1rem;
  font-weight: 600;
}
.seletor .seletor__input:focus-visible { outline: none; }
.seletor__input::placeholder { color: var(--cor-cinza); font-weight: 500; }

.seletor__barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.6rem 0.75rem 0.3rem 1.1rem;
  font-size: var(--fs-xs);
  color: var(--cor-cinza);
}
.seletor__conta { font-weight: 700; font-variant-numeric: tabular-nums; }
.seletor__ordem { display: inline-flex; gap: 2px; padding: 2px; border-radius: var(--raio-pilula); background: var(--cor-offwhite); }
.seletor__ordem-btn {
  min-height: 28px;
  padding: 0 0.7rem;
  border: 0;
  border-radius: var(--raio-pilula);
  background: transparent;
  color: var(--cor-cinza);
  font-size: var(--fs-xs);
  font-weight: var(--peso-forte);
  transition: background-color var(--duracao) var(--curva), color var(--duracao) var(--curva);
}
.seletor__ordem-btn:hover { color: var(--cor-grafite); }
.seletor__ordem-btn[aria-pressed="true"] { background: var(--cor-branco); color: var(--cor-grafite); box-shadow: 0 1px 2px rgba(60, 35, 10, 0.12); }
.seletor__ordem-btn:focus-visible { outline: none; box-shadow: var(--foco-anel); }

.seletor__lista {
  list-style: none;
  margin: 0;
  padding: 0.2rem 0.4rem 0.45rem;
  max-height: min(340px, 52vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--cor-linha) transparent;
}
.seletor__opcao {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 44px;
  margin: 0;
  padding: 0.5rem 0.7rem 0.5rem 0.55rem;
  border-radius: 12px;
  color: var(--cor-grafite);
  cursor: pointer;
}
.seletor__opcao::before {
  content: "";
  flex: none;
  width: 1rem; height: 1rem;
}
.seletor__opcao[aria-selected="true"]::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%231F1A17' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
}
.seletor__opcao.is-ativo { background: var(--cor-creme); }
.seletor__nome {
  flex: 1;
  min-width: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  overflow-wrap: anywhere;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.3;
}
.seletor__opcao[aria-selected="true"] .seletor__nome { font-weight: var(--peso-black); }
.seletor__opcao--limpar .seletor__nome { color: var(--cor-cinza); }
.seletor__achado { padding: 0; border-radius: 2px; font-weight: inherit; }
.seletor__total { flex: none; color: var(--cor-cinza); font-size: var(--fs-xs); font-weight: 700; font-variant-numeric: tabular-nums; }
.seletor__vazio { margin: 0; padding: 1.1rem 1.1rem 1.4rem; color: var(--cor-cinza); font-size: var(--fs-sm); text-align: center; }
.seletor__vazio[hidden] { display: none; }

/* Mobile: bottom sheet */
.seletor-veu { position: fixed; inset: 0; z-index: 1000; background: rgba(31, 26, 23, 0.36); animation: seletor-veu var(--duracao) var(--curva); }
.seletor-veu[hidden] { display: none; }
html.seletor-travado { overflow: hidden; }
@keyframes seletor-veu { from { opacity: 0; } }
@keyframes seletor-sobe { from { transform: translateY(24px); opacity: 0.6; } }
@media (min-width: 700px) { .seletor-veu { display: none !important; } }
@media (max-width: 699px) {
  .seletor__painel {
    position: fixed;
    z-index: 1001;
    inset: auto 0 0 0;
    width: auto;
    min-width: 0;
    max-height: 86vh;
    max-height: 86dvh;
    border: 0;
    border-radius: 24px 24px 0 0;
    box-shadow: 0 -12px 40px rgba(60, 35, 10, 0.18);
    padding-bottom: env(safe-area-inset-bottom);
    animation: seletor-sobe calc(var(--duracao) * 1.5) var(--curva);
  }
  .seletor__painel::before { content: ""; flex: none; align-self: center; width: 40px; height: 4px; margin-top: 8px; border-radius: 4px; background: var(--cor-linha); }
  .seletor__cabeca { display: flex; align-items: center; justify-content: space-between; padding: 0.25rem 0.5rem 0 1.25rem; }
  .seletor__titulo { margin: 0; font-family: var(--fonte-titulo); font-weight: var(--peso-titulo); font-size: 1.35rem; }
  .seletor__titulo:focus-visible { outline: none; }
  .seletor__fechar { display: grid; place-items: center; width: var(--alvo-toque); height: var(--alvo-toque); padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--cor-grafite); }
  .seletor__fechar:hover { background: var(--cor-creme); }
  .seletor__fechar:focus-visible { outline: none; box-shadow: var(--foco-anel); }
  .seletor__busca { margin: 0.5rem 1rem 0; padding: 0 1rem; border: 1px solid var(--cor-linha); border-radius: var(--raio-pilula); }
  .seletor__busca:focus-within { border-color: var(--cor-grafite); }
  .seletor .seletor__input { min-height: 48px; font-size: 1rem; }
  .seletor__barra { padding: 0.7rem 1rem 0.35rem 1.25rem; }
  .seletor__ordem-btn { min-height: 34px; padding: 0 0.85rem; }
  .seletor__lista { flex: 1 1 auto; min-height: 0; max-height: none; padding: 0.2rem 0.6rem 1rem; }
  .seletor__opcao { min-height: 52px; }
}

/* ============ 15. Rodapé ============ */
.rodape {
  position: relative;
  margin-top: var(--esp-8);
  padding: var(--esp-8) 0 var(--esp-5);
  background: var(--cor-creme);
  color: var(--cor-grafite);
  overflow: hidden;
}
.rodape::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 10px;
  background: linear-gradient(90deg, var(--cor-amarelo) 0 60%, var(--cor-laranja) 60% 80%, var(--cor-grafite) 80%);
}
.rodape::after {
  content: "";
  position: absolute;
  right: 3%; top: 56px;
  width: 92px; height: 121px;
  background: url("../img/grade-checks.svg") no-repeat center / contain;
  pointer-events: none;
  display: none;
}
@media (min-width: 1300px) { .rodape::after { display: block; } }
.rodape-grid { position: relative; z-index: 1; display: grid; gap: var(--esp-6); }
.rodape-grid img { height: 56px; width: auto; margin-bottom: var(--esp-4); }
.rodape-grid p { max-width: 24rem; color: var(--cor-grafite); font-weight: 600; }
.rodape-grid strong { display: block; margin-bottom: 0.6rem; font-size: 0.78rem; font-weight: var(--peso-black); letter-spacing: 0.09em; text-transform: uppercase; }
.rodape-grid a { display: block; width: fit-content; padding: 0.3rem 0; color: var(--cor-grafite); font-weight: var(--peso-forte); text-decoration: none; }
.rodape-grid a:hover { text-decoration: underline; text-decoration-color: var(--cor-laranja); text-decoration-thickness: 3px; }
.rodape-base {
  position: relative; z-index: 1;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--esp-3);
  margin-top: var(--esp-7); padding-top: var(--esp-5);
  border-top: 1.5px solid var(--cor-linha);
  color: var(--texto-suave);
  font-size: 0.9rem; font-weight: 700;
}
@media (min-width: 800px) {
  .rodape-grid { grid-template-columns: 1.6fr 1fr 1fr; }
}

/* ============ 16b. Alternador de visão (Lista | Calendário | Mapa) e segmentado ============ */
/* <nav class="alternador" aria-label="Ver feiras como"><a aria-current="page">…</a></nav> */
.alternador, .segmentado {
  display: inline-flex;
  gap: 2px;
  padding: 4px;
  border-radius: var(--raio-pilula);
  background: var(--cor-branco);
  border: 1.5px solid var(--cor-linha);
  box-shadow: var(--sombra-1);
}
.alternador a, .segmentado button {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 40px;
  padding: 0.4rem 1rem 0.4rem 0.8rem;
  border: 0;
  border-radius: var(--raio-pilula);
  background: transparent;
  color: var(--cor-grafite);
  font-family: var(--fonte-corpo);
  font-weight: var(--peso-black);
  font-size: 0.94rem;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--duracao) var(--curva), color var(--duracao) var(--curva);
}
.segmentado button { padding-inline: 0.95rem; }
.alternador a:hover, .segmentado button:hover { background: var(--cor-amarelo-claro); color: var(--cor-grafite); }
.alternador a[aria-current="page"], .segmentado button[aria-pressed="true"] { background: var(--cor-grafite); color: var(--cor-branco); }
.alternador a[aria-current="page"] .ico { color: var(--cor-amarelo); }
.alternador a:focus-visible, .segmentado button:focus-visible { outline: none; box-shadow: var(--foco-anel); }
.alternador .ico { width: 1.1rem; height: 1.1rem; stroke-width: 2.1; }
.busca-topo { display: flex; flex-wrap: wrap; gap: var(--esp-4); align-items: center; justify-content: space-between; margin-bottom: var(--esp-5); }
.busca-topo .contagem { margin: 0; }
@media (max-width: 420px) {
  .alternador { display: flex; width: 100%; }
  .alternador a { flex: 1; justify-content: center; padding-inline: 0.5rem; }
}

/* ============ 16. Movimento ============ */
@media (prefers-reduced-motion: no-preference) {
  .entrar { animation: entrar 700ms var(--curva) both; }
  .entrar-2 { animation-delay: 90ms; }
  .entrar-3 { animation-delay: 180ms; }
  .entrar-4 { animation-delay: 270ms; }
  .entrar-5 { animation-delay: 360ms; }
  @keyframes entrar { from { opacity: 0; translate: 0 18px; } to { opacity: 1; translate: 0 0; } }

  .marca-texto--animar { animation: marcar 900ms 400ms var(--curva) both; background-size: 0 100%; }
  @keyframes marcar { to { background-size: 100% 100%; } }

  @supports (animation-timeline: view()) {
    .card-feira, .revelar, .plano, .passos li, .tres article {
      animation: revelar linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 40%;
    }
    @keyframes revelar { from { opacity: 0; translate: 0 28px; scale: 0.98; } to { opacity: 1; translate: 0 0; scale: 1; } }
  }

  .flutuar { animation: flutuar 6s ease-in-out infinite; }
  @keyframes flutuar { 50% { translate: 0 -10px; rotate: -1deg; } }
}

/* ============ 16c. /feiras em tabela (Cards | Tabela) ============ */
.alternador--vista { margin: 0 0 var(--esp-4); }
.filtro-telefone { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1rem; margin: var(--esp-3) 0 var(--esp-4); }
.filtro-telefone--trancado .check { color: var(--cor-cinza); cursor: not-allowed; }
.filtro-telefone__nota { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.88rem; font-weight: 700; }
.filtro-telefone__nota .ico { width: 1rem; height: 1rem; }
.filtro-negado { margin: 0 0 var(--esp-4); }
.tabela-aviso { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; margin: 0 0 var(--esp-4); padding: 0.6rem 0.9rem; border-radius: var(--raio-sm); background: var(--cor-creme); border: 1px solid var(--cor-linha); font-size: 0.9rem; }
.tabela-aviso p { margin: 0; flex: 1 1 18rem; }
.tabela-aviso .ico { width: 1.15rem; height: 1.15rem; flex: none; }

/* Topo da tabela: contagem + chips dos filtros ativos */
.tabela-topo { margin: 0 0 var(--esp-4); }
.tabela-topo__contagem { margin: 0 0 0.7rem; color: var(--cor-cinza); font-weight: 600; }
.tabela-topo__contagem strong { color: var(--cor-grafite); font-weight: var(--peso-black); }
.filtro-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.filtro-chip { display: inline-flex; align-items: center; gap: 0.4rem; min-height: 2.25rem; padding: 0.3rem 0.85rem; border-radius: var(--raio-pilula); background: var(--cor-amarelo-claro); border: 1px solid transparent; color: var(--cor-grafite); font-size: 0.86rem; font-weight: 800; text-decoration: none; }
.filtro-chip .ico { width: 0.85rem; height: 0.85rem; stroke-width: 2.6; }
.filtro-chip:hover { background: var(--cor-amarelo); color: var(--cor-grafite); }
.filtro-chip:focus-visible, .filtro-chips__limpar:focus-visible { outline: none; box-shadow: var(--foco-anel); }
.filtro-chip--opcao { background: var(--cor-branco); border-color: var(--cor-borda-campo); }
.filtro-chip--trancado { background: var(--cor-branco); border-color: var(--cor-linha); color: var(--cor-cinza); }
.filtro-chip--trancado:hover { background: var(--cor-creme); color: var(--cor-grafite); }
.filtro-chips__limpar { display: inline-flex; align-items: center; min-height: 2.25rem; padding: 0 0.4rem; color: var(--cor-grafite); font-size: 0.86rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; border-radius: var(--raio-xs); }
.filtro-chips__limpar:hover { color: var(--cor-laranja-texto); }

/* Tabela: cartão branco, cabeçalho em versalete, linhas com bloco de data e botões de contato */
.tabela-feiras-caixa { background: var(--cor-branco); border: 1px solid var(--cor-linha); border-radius: var(--raio-md); box-shadow: var(--sombra-1); }
.tabela-feiras { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 0.92rem; line-height: 1.35; }
.tabela-feiras th, .tabela-feiras td { padding: 0.95rem 1rem; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--cor-linha); font-weight: inherit; }
.tabela-feiras thead th { background: var(--cor-offwhite); color: var(--cor-cinza); font-size: 0.72rem; font-weight: var(--peso-black); letter-spacing: 0.09em; text-transform: uppercase; white-space: nowrap; padding-top: 0.8rem; padding-bottom: 0.8rem; }
.tabela-feiras thead th:first-child { border-top-left-radius: var(--raio-md); padding-left: 1.25rem; }
.tabela-feiras thead th:last-child { border-top-right-radius: var(--raio-md); text-align: right; padding-right: 1.25rem; }
.tabela-feiras tbody:last-of-type tr:last-child > * { border-bottom: 0; }
.tabela-feiras tbody:last-of-type .linha-feira > :first-child { border-bottom-left-radius: var(--raio-md); }
.tabela-feiras tbody:last-of-type .linha-feira > :last-child { border-bottom-right-radius: var(--raio-md); }
.tabela-feiras tbody.aberto .linha-feira > * { border-bottom-color: transparent; }
.tabela-feiras .linha-feira:hover > *, .tabela-feiras tbody.aberto > tr > * { background: #FFFBEF; }
.tabela-feiras .linha-feira > td:first-child { padding-left: 1.25rem; width: 6.5rem; }
.tabela-feiras .linha-feira > td:last-child { padding-right: 1.25rem; }
.tabela-feiras .col-feira { width: 38%; }
.tabela-feiras .col-org { width: 21%; }
.tabela-feiras .col-site { width: 19%; }

.data-bloco { display: flex; flex-direction: column; align-items: stretch; width: 4.2rem; overflow: hidden; border: 1px solid var(--cor-linha); border-radius: var(--raio-sm); background: var(--cor-branco); text-align: center; box-shadow: 0 1px 0 var(--cor-linha); }
.data-bloco__mes { display: block; padding: 0.18rem 0.2rem; background: var(--cor-amarelo-claro); font-size: 0.66rem; font-weight: var(--peso-black); letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; }
.data-bloco__dia { display: block; padding: 0.15rem 0 0.2rem; font-family: var(--fonte-titulo); font-size: 1.45rem; font-weight: 700; line-height: 1.1; }
.data-bloco__dia--texto { font-family: var(--fonte-corpo); font-size: 0.74rem; font-weight: 800; color: var(--cor-cinza); padding: 0.35rem 0.1rem; }
.data-bloco__ate { display: block; width: 4.2rem; margin-top: 0.25rem; font-size: 0.7rem; font-weight: 700; color: var(--cor-cinza); text-align: center; white-space: nowrap; }

.feira-nome { display: inline; color: var(--cor-grafite); font-family: var(--fonte-titulo); font-size: 1.04rem; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.feira-nome:hover { color: var(--cor-laranja); }
.feira-nome:focus-visible { outline: none; box-shadow: var(--foco-anel); border-radius: 4px; }
.feira-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.55rem; margin-top: 0.35rem; color: var(--cor-cinza); font-size: 0.84rem; font-weight: 600; }
.feira-meta__lugar { display: inline-flex; align-items: center; gap: 0.25rem; }
.feira-meta__lugar .ico { width: 0.95rem; height: 0.95rem; color: var(--cor-laranja); }
.feira-meta__setor { display: inline-block; padding: 0.08rem 0.55rem; border: 1px solid var(--cor-amarelo); border-radius: var(--raio-pilula); background: #FFF9E6; color: var(--cor-grafite); font-size: 0.76rem; font-weight: 800; }

.org-nome { display: block; font-weight: 800; overflow-wrap: anywhere; }
.org-meta { display: block; margin-top: 0.15rem; color: var(--cor-cinza); font-size: 0.8rem; font-weight: 600; }
.site-link { display: inline-flex; align-items: center; gap: 0.4rem; max-width: 100%; color: var(--cor-grafite); font-weight: 800; text-decoration: none; }
.site-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-link .ico { width: 1rem; height: 1rem; flex: none; color: var(--cor-cinza); }
a.site-link:hover { color: var(--cor-laranja-texto); }
a.site-link:hover span { text-decoration: underline; text-underline-offset: 3px; }
a.site-link:focus-visible { outline: none; box-shadow: var(--foco-anel); border-radius: 4px; }
.tabela-feiras .jateado { display: inline-block; filter: blur(5px); opacity: 0.75; user-select: none; pointer-events: none; white-space: nowrap; }

.contato-botoes { display: flex; justify-content: flex-end; gap: 0.45rem; }
.contato-btn { position: relative; display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; flex: none; padding: 0; border: 1px solid var(--cor-linha); border-radius: var(--raio-sm); background: var(--cor-branco); color: var(--cor-grafite); cursor: pointer; text-decoration: none; transition: background-color 0.12s, border-color 0.12s; }
.contato-btn > .ico { width: 1.1rem; height: 1.1rem; }
.contato-btn:hover, .contato-btn:focus-visible, .contato-btn[aria-expanded="true"] { background: var(--cor-amarelo); border-color: var(--cor-amarelo); color: var(--cor-grafite); }
.contato-btn:focus-visible { outline: none; box-shadow: var(--foco-anel); }
.contato-btn:disabled { background: var(--cor-offwhite); border-color: var(--cor-linha); color: #C9BDAE; cursor: not-allowed; }
.contato-dica { position: absolute; right: 50%; bottom: calc(100% + 0.5rem); z-index: 5; display: inline-flex; align-items: center; gap: 0.35rem; translate: 50% 0; padding: 0.35rem 0.6rem; border-radius: var(--raio-xs); background: var(--cor-grafite); color: var(--cor-branco); font-size: 0.78rem; font-weight: 800; line-height: 1.2; white-space: nowrap; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity 0.12s; }
.contato-dica::after { content: ""; position: absolute; top: 100%; left: 50%; translate: -50% 0; border: 5px solid transparent; border-top-color: var(--cor-grafite); }
.contato-btn:last-child .contato-dica { right: -0.3rem; translate: 0 0; }
.contato-btn:last-child .contato-dica::after { left: auto; right: 0.9rem; translate: 0 0; }
.contato-dica .ico { width: 0.85rem; height: 0.85rem; flex: none; }
.contato-dica .jateado { filter: blur(4px); opacity: 0.9; }
.contato-btn:hover .contato-dica, .contato-btn:focus-visible .contato-dica { opacity: 1; visibility: visible; }
.contato-btn--mais[aria-expanded="true"] .contato-dica { opacity: 0; visibility: hidden; }

.linha-detalhes[hidden] { display: none !important; }
.linha-detalhes > td { padding: 0 1.25rem 1.1rem; }
.detalhes-feira { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem 1.5rem; padding: 1rem 1.1rem; border: 1px solid var(--cor-linha); border-radius: var(--raio-sm); background: var(--cor-branco); }
.detalhes-feira__lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 0.8rem 1.5rem; flex: 1 1 32rem; margin: 0; }
.detalhes-feira__lista dt { margin: 0 0 0.15rem; color: var(--cor-cinza); font-size: 0.7rem; font-weight: var(--peso-black); letter-spacing: 0.08em; text-transform: uppercase; }
.detalhes-feira__lista dd { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.7rem; margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.detalhes-feira__lista dd .ico { width: 0.9rem; height: 0.9rem; flex: none; }
.detalhes-feira__trancado dd { gap: 0.4rem; color: var(--cor-cinza); }
.detalhes-feira__acoes { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.detalhes-feira__acoes .btn .ico { width: 0.9rem; height: 0.9rem; }
.tabela-feiras .redes-feira--mini { margin: 0; gap: 0.3rem; flex-wrap: nowrap; }
.tabela-feiras .redes-feira--mini a { width: 2rem; height: 2rem; }
.tabela-feiras .redes-feira--mini .ico { width: 1rem; height: 1rem; }

@media (max-width: 1100px) and (min-width: 800px) {
  .tabela-feiras th, .tabela-feiras td { padding: 0.8rem 0.6rem; }
  .tabela-feiras .col-site { width: 15%; }
  .contato-btn { width: 2.35rem; height: 2.35rem; }
}

/* Celular: cada feira vira um cartão empilhado, sem rolagem lateral */
@media (max-width: 799px) {
  .tabela-feiras-caixa { background: none; border: 0; box-shadow: none; }
  .tabela-feiras, .tabela-feiras tbody, .tabela-feiras tr, .tabela-feiras th, .tabela-feiras td { display: block; width: auto; }
  .tabela-feiras thead { display: none; }
  .tabela-feiras tbody { margin-bottom: 0.8rem; border: 1px solid var(--cor-linha); border-radius: var(--raio-md); background: var(--cor-branco); box-shadow: var(--sombra-1); overflow: visible; }
  .tabela-feiras .linha-feira { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "data feira" "org org" "site site" "contato contato"; column-gap: 0.85rem; padding: 0.9rem; }
  .tabela-feiras .linha-feira > * { padding: 0 !important; border: 0 !important; background: none !important; border-radius: 0 !important; width: auto !important; }
  .tabela-feiras .linha-feira > .col-data { grid-area: data; }
  .tabela-feiras .linha-feira > .col-feira { grid-area: feira; align-self: center; }
  .tabela-feiras .linha-feira > .col-org { grid-area: org; margin-top: 0.7rem; }
  .tabela-feiras .linha-feira > .col-site { grid-area: site; margin-top: 0.35rem; }
  .tabela-feiras .linha-feira > .col-org:not(:has(*)), .tabela-feiras .linha-feira > .col-site:not(:has(*)) { display: none; }
  .tabela-feiras .linha-feira > .col-contato { grid-area: contato; margin-top: 0.8rem; padding-top: 0.8rem !important; border-top: 1px solid var(--cor-linha) !important; }
  .contato-botoes { justify-content: flex-start; }
  .contato-btn { width: 2.9rem; height: 2.9rem; }
  .contato-btn--mais { margin-left: auto; }
  .contato-btn:first-child .contato-dica { right: auto; left: -0.3rem; translate: 0 0; }
  .contato-btn:first-child .contato-dica::after { left: 0.9rem; translate: 0 0; }
  .contato-dica { white-space: normal; width: max-content; max-width: 15rem; }
  .linha-detalhes > td { padding: 0 0.9rem 0.9rem; border: 0; }
  .detalhes-feira { padding: 0.85rem; background: var(--cor-offwhite); }
  .detalhes-feira__lista { flex-basis: 100%; grid-template-columns: 1fr; }
}
