/* ───────── INSCRIÇÃO E INGRESSO ───────── */
/* o atributo hidden precisa vencer os display: grid/flex dos componentes */
[hidden] { display: none !important; }
/* .chip também é o selo de credenciais do pastor (sections.css): sem o ponto dourado aqui */
.regform .chip::before, .app .chip::before { content: none; }
/* .chips da seção do pastor tem margem própria; nos formulários o espaço vem do .field */
.regform .chips, .app .chips { margin-top: 0; }
html:not(.js) [data-action="register"] { display: none; }
.hero__cta { position: relative; z-index: 1; margin-top: 2rem; }
html.motion .hero__cta { animation: fade-up 0.8s var(--ease-out-expo) 2.5s both; }
.text-link {
  display: inline-flex; align-items: center; gap: 0.45em; min-height: 3rem; margin-top: 0.75rem;
  font-size: var(--fs-sm); font-weight: 600; color: var(--c-gold-deep); text-decoration: none;
  background: linear-gradient(currentColor 0 0) 0 85% / 0 1px no-repeat; transition: background-size var(--dur) var(--ease-out-expo);
}
.text-link:hover { background-size: 100% 1px; }
/* como <button> (ex.: "+ Inscrever outra pessoa"): sem a borda e o fundo padrão do navegador */
button.text-link { padding: 0; border: 0; background-color: transparent; font-family: inherit; cursor: pointer; }

.regform { display: grid; gap: 1.1rem; }
.regform__head { display: grid; gap: 0.75rem; }
.regform__steps { display: flex; gap: 0.5rem; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.regform__steps li {
  counter-increment: step; display: inline-flex; align-items: center; gap: 0.45em;
  font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: rgb(27 42 65 / 0.45);
}
.regform__steps li::before {
  content: counter(step); display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%;
  background: var(--c-sand); color: var(--c-night); font-size: 0.75rem;
}
.regform__steps li.is-on { color: var(--c-gold-deep); }
.regform__steps li.is-on::before { background: var(--grad-gold); }
.regform__step { display: grid; gap: 1.1rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.regform__step:not([hidden]) { animation: step-in 0.45s var(--ease-out-expo); }
@keyframes step-in { from { opacity: 0; transform: translateX(16px); } }

.field { display: grid; gap: 0.4rem; }
.field__label { font-size: var(--fs-sm); font-weight: 600; }
.field__label small { font-weight: 400; color: var(--c-ink-muted); }
.field__input {
  width: 100%; min-height: 3.25rem; padding: 0.8rem 1rem; border: 0; border-radius: 14px;
  background: var(--c-cream); color: var(--c-night); font: inherit; font-size: 1rem; /* 16px: iOS não dá zoom */
  box-shadow: inset 0 0 0 1.5px rgb(200 145 58 / 0.28); transition: box-shadow var(--dur-fast);
}
.field__input:focus { outline: none; box-shadow: inset 0 0 0 2px var(--c-gold); }
.field__input[aria-invalid="true"] { box-shadow: inset 0 0 0 2px #b4442a; }
.field__error, .regform__error { min-height: 1em; font-size: var(--fs-xs); color: #9b3a22; }
.regform__error { padding: 0.75rem 1rem; border-radius: 12px; background: #fbe9e3; }

.chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.chip {
  position: relative; display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0.55rem 1rem;
  border: 0; border-radius: var(--radius-pill); background: var(--c-cream); color: var(--c-night);
  box-shadow: inset 0 0 0 1.5px rgb(200 145 58 / 0.28); font: inherit; font-size: var(--fs-sm); font-weight: 600; cursor: pointer;
  transition: background var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast);
}
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip:has(input:checked), .chip[aria-pressed="true"] { background: var(--c-night); color: var(--c-ivory); box-shadow: none; }
.chip:has(input:focus-visible) { outline: 3px solid var(--c-gold); outline-offset: 2px; }
.chip:active { transform: scale(0.97); }

/* cidade: sugestões no fluxo (não flutuam), assim nada fica cortado pela folha nem pelo teclado */
.combo__list {
  display: grid; margin: 0; padding: 0.35rem; list-style: none; border-radius: 14px;
  background: var(--c-ivory); box-shadow: inset 0 0 0 1.5px rgb(200 145 58 / 0.28), var(--shadow-warm);
  animation: combo-in 0.25s var(--ease-out-expo);
}
@keyframes combo-in { from { opacity: 0; transform: translateY(-4px); } }
.combo__option {
  display: flex; align-items: center; min-height: 2.75rem; padding: 0.5rem 0.75rem; border-radius: 10px;
  font-size: 1rem; cursor: pointer; transition: background var(--dur-fast);
}
.combo__option:hover, .combo__option[aria-selected="true"] { background: var(--c-sand); }
.combo__option:active { background: rgb(200 145 58 / 0.25); }

.sessions-pick { display: grid; gap: 0.5rem; }
.session-pick {
  position: relative; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 1rem;
  align-items: center; padding: 0.85rem 1rem; border-radius: 16px; background: var(--c-cream); cursor: pointer;
  box-shadow: inset 0 0 0 1.5px rgb(200 145 58 / 0.28); transition: box-shadow var(--dur-fast), background var(--dur-fast);
}
.session-pick input { position: absolute; opacity: 0; pointer-events: none; }
.session-pick__time { grid-row: 1 / 3; font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 600; font-variant-numeric: tabular-nums; }
.session-pick__label { font-weight: 600; }
.session-pick__place { font-size: var(--fs-xs); color: var(--c-ink-muted); }
.session-pick:has(input:checked) { background: var(--c-ivory); box-shadow: inset 0 0 0 2px var(--c-gold), var(--shadow-warm); }
.session-pick:has(input:focus-visible) { outline: 3px solid var(--c-gold); outline-offset: 2px; }

.check { display: flex; align-items: center; gap: 0.6rem; min-height: 2.75rem; font-size: var(--fs-sm); cursor: pointer; }
.check input { width: 1.25rem; height: 1.25rem; accent-color: var(--c-gold-deep); }
.regform__trap { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.regform__actions { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem; }
.regform__next { width: 100%; }
.regform__legal { font-size: var(--fs-xs); color: var(--c-ink-muted); }
.regform__legal a { color: var(--c-gold-deep); }
[data-submit][aria-busy="true"] { opacity: 0.7; pointer-events: none; }
[data-submit][aria-busy="true"]::after {
  content: ""; width: 1rem; height: 1rem; margin-left: 0.5rem; border-radius: 50%;
  border: 2px solid currentColor; border-right-color: transparent; animation: spin 0.8s linear infinite;
}

/* ingresso */
.ticketbox { display: grid; gap: 1rem; }
.ticket {
  position: relative; overflow: hidden; isolation: isolate; display: grid; justify-items: center; gap: 0.4rem;
  padding: 1.75rem 1.5rem 1.5rem; border-radius: 28px; text-align: center; color: var(--c-ivory);
  background: radial-gradient(120% 70% at 50% 0%, #2b3f5e, var(--c-night) 60%);
  box-shadow: inset 0 0 0 1px rgb(233 194 122 / 0.35), 0 24px 50px rgb(27 42 65 / 0.35);
}
.ticket::after {
  content: ""; position: absolute; inset: -20% -60%; z-index: -1; transform: translateX(-60%);
  background: linear-gradient(105deg, transparent 42%, rgb(255 244 214 / 0.35) 50%, transparent 58%);
}
.ticket.is-new::after { animation: beam-sweep 1.6s cubic-bezier(0.35, 0.05, 0.3, 1) 0.2s both; }
.ticket__eyebrow { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--c-gold-light); }
.ticket__qr { width: min(15rem, 70vw); aspect-ratio: 1; margin: 0.75rem 0 0.25rem; padding: 0.75rem; border-radius: 18px; background: #fff; }
.ticket__qr svg { width: 100%; height: 100%; display: block; }
.ticket__code { font-size: var(--fs-lg); font-weight: 700; letter-spacing: 0.2em; font-variant-numeric: tabular-nums; color: var(--c-gold-light); }
.ticket__name { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 500; line-height: 1.1; }
.ticket__session { font-weight: 600; }
.ticket__place { font-size: var(--fs-sm); color: rgb(255 251 244 / 0.75); }
.ticket__hint {
  margin-top: 0.75rem; padding: 0.6rem 1rem; border-radius: var(--radius-pill);
  background: rgb(233 194 122 / 0.16); color: var(--c-gold-light); font-size: var(--fs-sm); font-weight: 600;
}
.ticket__another { justify-self: center; }
.ticket__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.ticket__actions .btn { width: 100%; }
@media (max-width: 22rem) { .ticket__actions { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .ticket.is-new::after, .regform__step:not([hidden]) { animation: none; } }

.ticket-page { min-height: 100svh; background: var(--grad-dawn), var(--c-cream); }
.ticket-page__main { display: grid; gap: 1.25rem; width: min(100% - 2 * var(--gutter), 30rem); margin-inline: auto; padding-block: calc(env(safe-area-inset-top) + 1.5rem) 3rem; }
.ticket-page__back { justify-self: center; font-family: var(--font-display); font-size: var(--fs-lg); color: var(--c-night); text-decoration: none; }
.ticket-page__status { text-align: center; color: var(--c-ink-muted); }
.privacy { gap: 1rem; } .privacy h2 { margin-top: 1rem; font-family: var(--font-display); font-size: var(--fs-lg); }

/* ───────── FOLHAS (dialog) — LP, ingresso e check-in ───────── */
.sheet {
  position: fixed; inset: auto 0 0; width: 100%; max-width: 32rem; max-height: none;
  margin: 0 auto; padding: 0; border: 0; border-radius: 28px 28px 0 0;
  background: var(--c-ivory); color: var(--c-night);
  box-shadow: 0 -20px 60px rgb(27 42 65 / 0.3);
  translate: 0 100%;
  transition: translate 0.5s var(--ease-out-expo), overlay 0.5s allow-discrete, display 0.5s allow-discrete;
}
.sheet[open] { translate: 0 0; }
@starting-style { .sheet[open] { translate: 0 100%; } }
.sheet::backdrop { background: rgb(27 42 65 / 0); transition: background 0.4s, overlay 0.4s allow-discrete, display 0.4s allow-discrete; }
.sheet[open]::backdrop { background: rgb(27 42 65 / 0.45); }
@starting-style { .sheet[open]::backdrop { background: rgb(27 42 65 / 0); } }
.sheet__inner { display: grid; gap: 1rem; padding: 0.75rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom)); }
.sheet__grip { justify-self: center; width: 2.5rem; height: 4px; border-radius: 4px; background: rgb(27 42 65 / 0.2); }
.sheet__title { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 500; }
.sheet__close { width: 100%; }
.sheet--register { max-width: 34rem; max-height: min(92dvh, 52rem); overflow-y: auto; overscroll-behavior: contain; }
