/* Páginas públicas da plataforma: mesma marca do site (tokens.css e vidro.css copiados de
   gerais-adventure-site/src/styles). Vidro só no topo e nos botões; campos sólidos. */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0; min-height: 100svh;
  background: var(--fundo); color: var(--texto);
  font-family: 'Bricolage Grotesque', 'Helvetica Neue', Arial, sans-serif;
  font-size: var(--t-1); line-height: 1.5;
}
a { color: var(--link); text-underline-offset: 0.18em; }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; border-radius: 4px; }
img { display: block; max-width: 100%; height: auto; }

.topo { position: sticky; top: 8px; z-index: 10; padding: 8px clamp(8px, 4vw, 40px) 0; }
.topo__barra { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  max-width: 860px; margin-inline: auto; padding: 6px 8px 6px 18px; border-radius: var(--raio-pilula); }
.topo__barra a.voltar { color: var(--vidro-texto); font-weight: 600; text-decoration: none; padding: 0.6rem 0.9rem; border-radius: var(--raio-pilula); }
.topo__barra a.voltar:hover { background: var(--vidro-fundo); }
.logo { width: 120px; }
.logo--escura { display: none; }
@media (prefers-color-scheme: dark) { .logo--clara { display: none; } .logo--escura { display: block; } }

main { max-width: 860px; margin-inline: auto; padding: clamp(28px, 6vw, 64px) clamp(16px, 4vw, 40px) 80px; }
h1 { font-weight: 800; font-variation-settings: 'opsz' 96, 'wdth' 75; font-size: clamp(2.3rem, 7vw, 3.8rem);
  line-height: 0.95; letter-spacing: -0.02em; margin: 0 0 1rem; }
h2 { font-weight: 750; font-variation-settings: 'opsz' 48, 'wdth' 85; font-size: var(--t-3); line-height: 1.05; margin: 2.5rem 0 1rem; }
.dado { font-weight: 700; font-variant-numeric: tabular-nums lining-nums; }
.apoio { color: var(--texto-2); }
.corrido { max-width: 62ch; }

/* resumo da caminhada */
.ficha { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem 1.5rem;
  margin: 1.5rem 0 0; padding: 1.25rem 0; border-block: 1px solid var(--regua); }
.ficha dt { font-size: 0.85rem; color: var(--texto-2); }
.ficha dd { margin: 0.15rem 0 0; font-weight: 650; }
.contribuicao { margin: 1rem 0 0; }

/* formulário */
form { max-width: 34rem; }
fieldset { border: 0; padding: 0; margin: 2rem 0 0; }
legend { font-weight: 750; font-variation-settings: 'opsz' 48, 'wdth' 85; font-size: var(--t-2); padding: 0; margin-bottom: 0.25rem; }
.campo { margin-top: 1.1rem; scroll-margin-top: 96px; }
.campo > label, .campo > .rotulo { display: block; font-weight: 600; margin-bottom: 0.35rem; }
.ajuda { display: block; font-size: 0.9rem; color: var(--texto-2); margin-top: 0.3rem; }
input[type=text], input[type=date], input[type=email], input[type=tel], textarea {
  width: 100%; min-height: 48px; padding: 0.7rem 0.85rem;
  font: inherit; color: var(--texto);
  background: var(--fundo-2); border: 1.5px solid var(--regua); border-radius: 12px;
}
input:focus, textarea:focus { border-color: var(--foco); outline: none; box-shadow: 0 0 0 3px color-mix(in oklab, var(--foco) 30%, transparent); }
.campo--erro input, .campo--erro textarea { border-color: var(--vermelho-texto); }
.erro { display: block; color: var(--vermelho-texto); font-weight: 600; font-size: 0.95rem; margin-top: 0.35rem; }
.marcar { display: flex; gap: 0.7rem; align-items: flex-start; font-weight: 500; cursor: pointer; }
.marcar input { width: 22px; height: 22px; margin: 0.15rem 0 0; flex: none; accent-color: var(--mata-viva); }
.opcoes { display: grid; gap: 0.6rem; list-style: none; padding: 0; margin: 0; }
.opcoes label { display: flex; gap: 0.7rem; align-items: center; padding: 0.85rem 1rem; border: 1.5px solid var(--regua);
  border-radius: 14px; background: var(--fundo-2); cursor: pointer; font-weight: 600; }
.opcoes label:has(input:checked) { border-color: var(--mata-viva); box-shadow: inset 0 0 0 1px var(--mata-viva); }
.fatos { padding-left: 1.2rem; }
.fatos li { margin-bottom: 0.5rem; }
fieldset.campo { margin-top: 1.5rem; }
.opcoes input { width: 20px; height: 20px; flex: none; accent-color: var(--mata-viva); }
.isca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.menor { padding: 1rem 1.1rem; margin-top: 1.2rem; border-left: 4px solid var(--bandeira); background: var(--fundo-2); border-radius: 0 12px 12px 0; }
.menor[hidden] { display: none; }
.termo-resumo { margin-top: 1.5rem; }
.enviar { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.botao { border: 1px solid var(--vidro-borda); }
.botao--reserva { font-size: 1.05rem; }
.avisos { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.avisos li { padding: 0.9rem 1rem; border-radius: 12px; font-weight: 600; background: var(--fundo-2); border-left: 4px solid var(--vermelho-texto); }
.erros-gerais { margin: 1.25rem 0 0; padding: 0.9rem 1rem; border-radius: 12px; background: var(--fundo-2);
  border-left: 4px solid var(--vermelho-texto); }
.erros-gerais p { margin: 0; font-weight: 600; }

/* lista da página inicial */
.lista { list-style: none; padding: 0; margin: 1.5rem 0 0; border-top: 1px solid var(--regua); }
.lista li { padding: 1.25rem 0; border-bottom: 1px solid var(--regua); display: grid; gap: 0.3rem; }
.lista a.titulo { font-size: var(--t-2); font-weight: 750; color: var(--texto); text-decoration: none; }
.lista a.titulo:hover { text-decoration: underline; }

.termo p { max-width: 64ch; }
.rodape { max-width: 860px; margin: 0 auto; padding: 2rem clamp(16px, 4vw, 40px) 3rem; color: var(--texto-2);
  font-size: 0.9rem; border-top: 1px solid var(--regua); }

@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }

/* aceite único */
.aceite { margin-top: 2rem; padding: 1.1rem 1.2rem; border: 1.5px solid var(--regua); border-radius: 14px; background: var(--fundo-2); }
.aceite legend { padding: 0 0.3rem; }
.aceite__pontos { margin: 0.25rem 0 0.5rem; padding-left: 1.2rem; }
.aceite__pontos li { margin-bottom: 0.35rem; }
button[disabled] { opacity: 0.55; cursor: not-allowed; transform: none; }
/* quem vai junto */
.pessoa { margin-top: 1rem; padding: 0.9rem 1rem 1rem; border: 1.5px dashed var(--regua); border-radius: 14px; }
.pessoa__topo { display: flex; justify-content: space-between; align-items: center; }
.pessoa__tirar { font: inherit; font-weight: 600; color: var(--vermelho-texto); background: none; border: 0; cursor: pointer; padding: 0.4rem; min-height: 44px; }
#junto-mais { margin-top: 1rem; }
