/* Built-in questionnaire. Reads the page's --f-* tokens (fallbacks = brand dark). */
.nzf [hidden], .nzf[hidden] { display: none !important; }
.nzf { --fa: var(--f-accent, #74FFBF); --fa-ink: var(--f-accent-ink, #0E3B2A); --fl: var(--f-line, #333335); --fi: var(--f-field, #242425); --ft: var(--f-ink, #F2F2F2); --fs: var(--f-soft, #A9A9A9);
  display: flex; flex-direction: column; min-height: 100%; padding: 18px 20px 0; color: var(--ft); font-family: "Heebo", system-ui, sans-serif; }
.nzf__intro { margin: 0 0 14px; color: var(--fs); font-size: .9rem; }
.nzf__steps { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 0 0 22px; padding: 0; counter-reset: s; }
.nzf__steps li { counter-increment: s; padding-top: 8px; border-top: 3px solid var(--fl); color: var(--fs); font-size: .8rem; font-weight: 600; transition: border-color .3s, color .3s; }
.nzf__steps li::before { content: counter(s) " · "; }
.nzf__steps li.is-past { border-color: color-mix(in srgb, var(--fa) 45%, transparent); }
.nzf__steps li.is-on { border-color: var(--fa); color: var(--ft); }
.nzf__page { display: flex; flex-wrap: wrap; gap: 18px 12px; }
.nzf__field { flex: 1 1 100%; min-width: 0; margin: 0; padding: 0; border: 0; }
.nzf__field--third { flex: 1 1 calc(33% - 12px); }
.nzf__q { display: block; margin: 0 0 7px; padding: 0; font-weight: 600; font-size: .98rem; line-height: 1.4; }
.nzf__req { color: var(--fa); margin-inline-start: 4px; }
.nzf input[type=text], .nzf input[type=tel], .nzf input[type=email], .nzf textarea {
  width: 100%; min-height: 50px; padding: 12px 14px; border: 1.5px solid var(--fl); border-radius: 12px;
  background: var(--fi); color: var(--ft); font: inherit; font-size: 16px; line-height: 1.5; resize: vertical;
  transition: border-color .2s, box-shadow .2s;
}
.nzf input[dir=ltr] { text-align: right; }
.nzf input:focus, .nzf textarea:focus { outline: none; border-color: var(--fa); box-shadow: 0 0 0 3px color-mix(in srgb, var(--fa) 25%, transparent); }
.nzf__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.nzf__field--stack .nzf__opts { flex-direction: column; }
.nzf__opt { position: relative; cursor: pointer; }
.nzf__opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.nzf__opt span { display: flex; align-items: center; min-height: 46px; min-width: 64px; justify-content: center; padding: 8px 16px; border: 1.5px solid var(--fl); border-radius: 12px; background: var(--fi); font-weight: 600; line-height: 1.35; transition: background .2s, border-color .2s, color .2s; }
.nzf__field--stack .nzf__opt span { justify-content: flex-start; text-align: right; }
.nzf__opt input:checked + span { background: var(--fa); border-color: var(--fa); color: var(--fa-ink); }
.nzf__opt input:focus-visible + span { outline: 2px solid var(--fa); outline-offset: 2px; }
@media (hover: hover) { .nzf__opt:hover span { border-color: var(--fa); } }
.nzf__err { margin: 6px 0 0; color: #FF6B78; font-size: .88rem; font-weight: 600; }
.nzf__field.is-bad input, .nzf__field.is-bad textarea, .nzf__field.is-bad .nzf__opt span { border-color: #FF6B78; }
.nzf__bar { position: sticky; bottom: 0; display: flex; align-items: center; gap: 12px; margin: 22px -20px 0; padding: 14px 20px max(14px, env(safe-area-inset-bottom)); background: var(--s-bg, #1C1C1C); border-top: 1px solid var(--fl); }
.nzf__status { flex: 1; margin: 0; color: var(--fs); font-size: .88rem; }
.nzf__next { border: 0; cursor: pointer; font: inherit; font-weight: 800; background: var(--fa); color: var(--fa-ink); min-height: 52px; padding: 0 26px; border-radius: 999px; }
.nzf__next:disabled { opacity: .55; cursor: progress; }
.nzf__back { min-height: 52px; padding: 0 18px; border: 1.5px solid var(--fl); border-radius: 999px; background: none; color: var(--ft); font: inherit; font-weight: 700; cursor: pointer; }
.nzf__done { padding: 30px 0; outline: none; }
.nzf__done-t { margin: 0 0 8px; font: 700 2rem/1.05 "Practica", sans-serif; color: var(--fa); }
.nzf__done p { margin: 0 0 18px; }
.nzf__done .nzbtn, .nzf__next.nzbtn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
