:root { --texto: #1f2328; --suave: #5b6470; --linha: #e3e6ea; --realce: #c2410c; --fundo: #fffdf9; }
* { box-sizing: border-box; }
body { margin: 0; font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--texto); background: var(--fundo); }
main, .topo, .rodape { max-width: 46rem; margin: 0 auto; padding: 0 1rem; }
.topo { padding-block: 1rem; font-weight: 600; }
.topo a { color: var(--realce); text-decoration: none; }
h1 { font-size: 1.6rem; line-height: 1.25; margin: .5rem 0; }
h2 { font-size: 1.15rem; margin: 1.5rem 0 .5rem; }
a { color: var(--realce); }
.voltar { margin: 0; font-size: .95rem; }
.local, .tipos, .fonte, .conta { color: var(--suave); }
.preco { border: 1px solid var(--linha); border-radius: .5rem; padding: .75rem 1rem; background: #fff; }
.valor { font-size: 1.15rem; font-weight: 600; margin: .25rem 0; }
.factos { display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr; gap: .4rem 1rem; margin: 0; }
.factos dt { color: var(--suave); }
.factos dd { margin: 0; overflow-wrap: anywhere; }
.cards, .concelhos { list-style: none; padding: 0; }
.card { border: 1px solid var(--linha); border-radius: .5rem; padding: .75rem 1rem; margin-bottom: .75rem; background: #fff; }
.card h2 { margin: 0 0 .25rem; }
.card p { margin: .2rem 0; }
.concelhos li { padding: .5rem 0; border-bottom: 1px solid var(--linha); display: flex; justify-content: space-between; gap: 1rem; }
.entrada { font-weight: 600; }
.rodape { color: var(--suave); font-size: .85rem; padding-block: 2rem; }
@media (max-width: 30rem) {
  .factos { grid-template-columns: 1fr; gap: 0; }
  .factos dt { margin-top: .5rem; }
}
