Going back to this:
My biggest concern is that when the user moves beyond the root level… we’re setting root to display:none. Therefore, I have questions about whether or not the submit button is actually going to submit the root with the given branch. Maybe we could cache it somehow?
My fear is now the opposite. We’ll have validation rules on ALL input fields… visible or not. So, let’s say the user selects a branch based on their needs and satisfies the validation conditions for that branch… all the other branches are invalid. So, if the submit button is submitting them all… we’re going to get errors and a contact form that doesn’t work. How can we selectively submit?