{# Wizard step frame: heading, carried-forward state, body, nav buttons. A step's custom "template" only supplies the body — everything else here still applies, so custom steps keep working navigation and indicators. #}
{% if step_meta.title %}
{{ step_meta.title }}
{% endif %} {% if step_meta.description %}

{{ step_meta.description }}

{% endif %} {# Everything collected so far that isn't editable on this step. #} {% for key, value in state_fields %} {% if value is string %} {% else %} {% for v in value %} {% endfor %} {% endif %} {% endfor %} {% if step_meta.template %} {% include step_meta.template %} {% elif step_meta.review %}
{% for row in review_rows %} {% endfor %}
{{ row.label }}{{ row.value }}
{% else %} {% for field in form_fields %} {% include "partials/_form_field.html" %} {% endfor %} {% endif %} {% if step_meta.nav %} {% include "partials/_wizard_nav.html" %} {% endif %}
{% if is_partial %} {# Out-of-band swap: keep the step indicators in the card header in sync. #}
{% include "partials/_wizard_indicators.html" %}
{% endif %}