'airo-wp-form-step', 'data-airo-wp-step' => (string) $number, 'role' => 'group', 'aria-labelledby' => $heading_id, ) ); $html = sprintf( '

%3$s

%4$s
', $wrapper, esc_attr( $heading_id ), esc_html( $title ), $content ); // Text colour and typography style the step title, not the fields // (they skip serialization, so the wrapper never carries them). if ( function_exists( 'airowp_route_visual_supports' ) ) { $html = airowp_route_visual_supports( $html, $attributes, 'airo-wp-form-step__title', array( 'color', 'typography' ) ); } echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- wrapper from get_block_wrapper_attributes(), title/id escaped above, fields render their own escaped markup. } } airowp_render_form_step( $attributes, $content, $block );