:root{
  --fundo:#f7f6f3;
  --papel:#ffffff;
  --tinta:#2b3640;
  --suave:#6a757e;
  --linha:#e4e2dc;
  --verde:#4f6b80;
  --verde-esc:#3d566a;
  --manga:#e8c9a9;
  --manga-claro:#f5e9da;
  --noite:#4a6378;
  --noite-claro:#e3eaf0;
  --raio:14px;
}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;background:var(--fundo);color:var(--tinta);
  font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  -webkit-text-size-adjust:100%}
.wrap{max-width:760px;margin:0 auto;padding:0 16px}
:focus-visible{outline:3px solid var(--manga);outline-offset:2px}

/* Topo */
.topo{background:#e2e9ee;color:var(--tinta);padding:28px 0 28px;
  border-bottom:1px solid #d3dce3}
.topo h1{margin:0;font-size:clamp(2rem,8vw,3.2rem);line-height:1;font-weight:900;letter-spacing:-.03em}
.sub{margin:12px 0 0;color:#5b6b78;font-size:.95rem}
main.wrap{padding-top:20px;padding-bottom:48px}

/* Filtros */
.filtros{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);
  padding:12px;box-shadow:0 8px 24px -16px rgba(43,54,64,.18)}
.dias{display:flex;flex-wrap:wrap;gap:6px}
.dia{flex:0 0 auto;border:1px solid var(--linha);background:var(--fundo);
  color:var(--tinta);border-radius:999px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;
  min-height:44px;display:flex;align-items:center;gap:6px}
.dia small{font-weight:700;font-size:.7rem;background:var(--manga);color:#5a4129;border-radius:999px;padding:1px 7px}
.dia[aria-selected="true"]{background:var(--verde);border-color:var(--verde);color:#fff}
.dia[aria-selected="true"] small{background:var(--manga)}
.bairro{display:block;margin-top:10px}
.bairro span{display:block;font-size:.85rem;color:var(--suave);margin-bottom:4px}
select{width:100%;min-height:46px;font:inherit;padding:0 12px;border:1px solid var(--linha);
  border-radius:10px;background:#fff;color:var(--tinta)}

.contagem{margin:20px 2px 10px;color:var(--suave);font-size:.95rem}

/* Cards */
.feiras{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.card{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;
  background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);
  padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;
  text-decoration:none;transition:border-color .15s,transform .15s}
.card:hover{border-color:var(--verde);transform:translateY(-1px)}
.card .nome{font-weight:800;font-size:1.1rem;letter-spacing:-.01em}
.card .end{grid-column:1;color:var(--suave);font-size:.92rem}
.card .meta{grid-column:2;grid-row:1 / span 2;text-align:right;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.turno{font-size:.78rem;font-weight:700;border-radius:999px;padding:2px 9px}
.turno.manha{background:var(--manga-claro);color:#6b4f2e}
.turno.noite{background:var(--noite-claro);color:var(--noite)}
.hora{font-weight:700;font-variant-numeric:tabular-nums;font-size:.95rem}
.diaTag{grid-column:1;font-size:.85rem;color:var(--verde);font-weight:700}

.vazio{background:var(--papel);border:1px dashed var(--linha);border-radius:var(--raio);
  padding:28px 20px;text-align:center}
.vazio p{margin:0 0 14px}

/* Botões */
.btn,.btn-sec{display:inline-flex;align-items:center;justify-content:center;min-height:50px;
  padding:0 22px;border-radius:12px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer;border:2px solid var(--verde)}
.btn{background:var(--verde);color:#fff}
.btn:hover{background:var(--verde-esc)}
.btn-sec{background:#fff;color:var(--verde)}
.btn-sec:hover{background:var(--fundo)}

/* Detalhe */
.voltar{display:inline-flex;align-items:center;min-height:44px;margin:0 0 10px;padding:0 14px;
  background:#fff;border:1px solid var(--linha);border-radius:999px;font:inherit;font-weight:700;
  color:var(--verde);cursor:pointer}
.det{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);overflow:hidden;
  box-shadow:0 8px 24px -16px rgba(43,54,64,.18)}
.det-cab{padding:20px 18px 6px}
.det-cab h2{margin:0;font-size:clamp(1.6rem,6vw,2.2rem);line-height:1.1;font-weight:900;letter-spacing:-.02em}
.det-cab p{margin:6px 0 0;color:var(--suave)}
.info{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 18px}
.info div{background:var(--fundo);border-radius:10px;padding:10px 12px}
.info dt{font-size:.8rem;color:var(--suave)}
.info dd{margin:0;font-weight:800;font-size:1.05rem}
.mapa{display:block;width:100%;height:320px;border:0;border-top:1px solid var(--linha);border-bottom:1px solid var(--linha)}
.acoes{padding:16px 18px 20px;display:grid;gap:10px}
.acoes .btn{width:100%;font-size:1.1rem}
.acoes small{color:var(--suave);text-align:center}
@media(min-width:560px){.acoes{grid-template-columns:1fr 1fr}.acoes small{grid-column:1/-1}.mapa{height:380px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-width:420px){.dia{padding:8px 11px;font-size:.92rem}}

/* Detalhes no mobile */
.em-detalhe .topo{display:none}
.em-detalhe main.wrap{padding-top:12px}
@media(max-width:559px){
  .mapa{height:calc(100vh - 300px);height:calc(100dvh - 300px);min-height:320px;max-height:600px}
  .acoes{position:sticky;bottom:0;background:var(--papel);border-top:1px solid var(--linha);
    padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
  .acoes .btn-sec,.acoes small{display:none}
  .det{overflow:visible}
  .det-cab{padding-top:14px}
  .info{padding:10px 16px}
  .voltar{position:sticky;top:8px;z-index:2}
}

/* Feira mais perto */
.perto{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);
  padding:16px;margin-bottom:12px;box-shadow:0 8px 24px -16px rgba(43,54,64,.18)}
.perto h2{margin:0 0 4px;font-size:1.1rem;font-weight:800}
.perto-msg{margin:0 0 12px;color:var(--suave);font-size:.95rem}
.perto .btn{width:100%}
.perto-card{background:var(--fundo);margin-bottom:12px}
@media(min-width:560px){.perto .btn{width:auto}}
