/* Layout do fluxo guiado: desenho fixo no topo, painel embaixo. */
body { overflow: hidden; }
.app { height: 100dvh; max-width: 520px; margin: 0 auto; display: flex; flex-direction: column; }
.vis { position: relative; flex: 0 0 52%; transition: flex-basis .9s cubic-bezier(.2,.8,.2,1); }
.app.final .vis { flex-basis: 66%; }
.vis svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.painel { position: relative; flex: 1; }
.etapa { position: absolute; inset: 0; padding: 4px 20px 18px; display: flex; flex-direction: column; gap: 6px;
  opacity: 0; transform: translateY(14px); pointer-events: none; transition: opacity .18s, transform .2s; }
.etapa.on { opacity: 1; transform: none; pointer-events: auto;
  transition: opacity .45s .16s, transform .5s .16s cubic-bezier(.2,.8,.2,1); }
.etapa .btn { margin-top: auto; }
.etapa .btn + .btn { margin-top: 8px; }
.marca { display: flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--ouro); }
.marca .coracao { width: 30px; margin: 0; }
.etapa h1 { font-size: 34px; line-height: 1.05; }
.chamada { margin: 0; color: var(--suave); font-size: 15px; }
.privacidade { margin: 10px 2px 0; font-size: 11.5px; line-height: 1.4; color: var(--suave); text-align: center; }
.aviso-pdf { margin: 6px 0 0; min-height: 0; font-size: 12.5px; color: #b0483c; text-align: center; }
.aviso-pdf:empty { display: none; }
.etapa label.rot { margin-top: 4px; }
.linha-topo { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: var(--suave); }
.voltar { background: none; border: 0; color: var(--suave); font-size: 14px; padding: 6px 0; cursor: pointer; }
#e-area h3 { font-size: 28px; line-height: 1.05; color: var(--c); }
#e-area .perg { margin: 0; font-family: var(--serif); font-style: italic; font-size: 18px; line-height: 1.3; }
#e-area.troca h3, #e-area.troca .perg { animation: surge .5s both; }
#e-area.troca .perg { animation-delay: .08s; }
.btn[disabled] { opacity: .35; box-shadow: none; }
