
                <div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_1' style='display:none'><a id='gf_1' class='gform_anchor' ></a><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_1' id='gform_1'  action='/attorney-profiles/daniel-abasolo/#gf_1'>
                        <div class='gform_body'><ul id='gform_fields_1' class='gform_fields top_label form_sublabel_below description_below'><li id='field_1_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_1' >Your Name<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_1_1' type='text' value='' class='medium'  tabindex='1'   aria-required="true" aria-invalid="false" /></div></li><li id='field_1_2' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_2' >Email<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'>
                            <input name='input_2' id='input_1_2' type='text' value='' class='medium' tabindex='2'    aria-required="true" aria-invalid="false"/>
                        </div></li><li id='field_1_3' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_3' >Phone</label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_1_3' type='text' value='' class='medium'  tabindex='3'    aria-invalid="false" /></div></li><li id='field_1_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label'  >What is the nature of your case?</label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_1_4'><li class='gchoice_1_4_1'>
								<input name='input_4.1' type='checkbox' onclick='gf_apply_rules(1,[6]);' onkeypress='gf_apply_rules(1,[6]);' value='Personal Injury'  id='choice_1_4_1' tabindex='4'  />
								<label for='choice_1_4_1' id='label_1_4_1'>Personal Injury</label>
							</li><li class='gchoice_1_4_2'>
								<input name='input_4.2' type='checkbox' onclick='gf_apply_rules(1,[6]);' onkeypress='gf_apply_rules(1,[6]);' value='Serious Injury or Death'  id='choice_1_4_2' tabindex='5'  />
								<label for='choice_1_4_2' id='label_1_4_2'>Serious Injury or Death</label>
							</li><li class='gchoice_1_4_3'>
								<input name='input_4.3' type='checkbox' onclick='gf_apply_rules(1,[6]);' onkeypress='gf_apply_rules(1,[6]);' value='Does this legal issue require immediate attention?'  id='choice_1_4_3' tabindex='6'  />
								<label for='choice_1_4_3' id='label_1_4_3'>Does this legal issue require immediate attention?</label>
							</li><li class='gchoice_1_4_4'>
								<input name='input_4.4' type='checkbox' onclick='gf_apply_rules(1,[6]);' onkeypress='gf_apply_rules(1,[6]);' value='Business'  id='choice_1_4_4' tabindex='7'  />
								<label for='choice_1_4_4' id='label_1_4_4'>Business</label>
							</li><li class='gchoice_1_4_5'>
								<input name='input_4.5' type='checkbox' onclick='gf_apply_rules(1,[6]);' onkeypress='gf_apply_rules(1,[6]);' value='Mediation'  id='choice_1_4_5' tabindex='8'  />
								<label for='choice_1_4_5' id='label_1_4_5'>Mediation</label>
							</li><li class='gchoice_1_4_6'>
								<input name='input_4.6' type='checkbox' onclick='gf_apply_rules(1,[6]);' onkeypress='gf_apply_rules(1,[6]);' value='Will, Trust or Probate'  id='choice_1_4_6' tabindex='9'  />
								<label for='choice_1_4_6' id='label_1_4_6'>Will, Trust or Probate</label>
							</li><li class='gchoice_1_4_7'>
								<input name='input_4.7' type='checkbox' onclick='gf_apply_rules(1,[6]);' onkeypress='gf_apply_rules(1,[6]);' value='Family Law'  id='choice_1_4_7' tabindex='10'  />
								<label for='choice_1_4_7' id='label_1_4_7'>Family Law</label>
							</li><li class='gchoice_1_4_8'>
								<input name='input_4.8' type='checkbox' onclick='gf_apply_rules(1,[6]);' onkeypress='gf_apply_rules(1,[6]);' value='Real Estate Law'  id='choice_1_4_8' tabindex='11'  />
								<label for='choice_1_4_8' id='label_1_4_8'>Real Estate Law</label>
							</li></ul></div></li><li id='field_1_6' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_6' >Please explain the urgency of your issue</label><div class='ginput_container ginput_container_textarea'><textarea name='input_6' id='input_1_6' class='textarea small' tabindex='12'    aria-invalid="false"   rows='10' cols='50'></textarea></div></li><li id='field_1_5' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_5' >Can you give a brief description of your legal issues?</label><div class='ginput_container ginput_container_textarea'><textarea name='input_5' id='input_1_5' class='textarea medium' tabindex='13'    aria-invalid="false"   rows='10' cols='50'></textarea></div></li><li id='field_1_7' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_' ><label class='gfield_label' for='input_1_7' >Comments</label><div class='ginput_container'><input name='input_7' id='input_1_7' type='text' value='' /></div><div class='gfield_description'>This field is for validation purposes and should be left unchanged.</div></li>
                            </ul></div>
        <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_1' class='gform_button button' value='Submit' tabindex='14' onclick='if(window["gf_submitting_1"]){return false;}  window["gf_submitting_1"]=true;  ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_1"]){return false;} window["gf_submitting_1"]=true;  jQuery("#gform_1").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=1&amp;title=&amp;description=&amp;tabindex=1' />
            <input type='hidden' class='gform_hidden' name='is_submit_1' value='1' />
            <input type='hidden' class='gform_hidden' name='gform_submit' value='1' />
            
            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' />
            <input type='hidden' class='gform_hidden' name='state_1' value='WyJbXSIsIjRhNjg2ODJjNjExZDdhNDFkMTZlMjMyNDQ1ZGEzMzk2Il0=' />
            <input type='hidden' class='gform_hidden' name='gform_target_page_number_1' id='gform_target_page_number_1' value='0' />
            <input type='hidden' class='gform_hidden' name='gform_source_page_number_1' id='gform_source_page_number_1' value='1' />
            <input type='hidden' name='gform_field_values' value='' />
            
        </div>
                        </form>
                        </div>
                <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_1' id='gform_ajax_frame_1'>This iframe contains the logic required to handle AJAX powered Gravity Forms.</iframe>
                <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 1, 'https://springer-lyle.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery('#gform_ajax_frame_1').load( function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_1');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_1').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;if(is_form){jQuery('#gform_wrapper_1').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_1').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_1').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_1').offset().top); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_1').val();gformInitSpinner( 1, 'https://springer-lyle.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery(document).trigger('gform_page_loaded', [1, current_page]);window['gf_submitting_1'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('#gforms_confirmation_message_1').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_1').replaceWith('<' + 'div id=\'gforms_confirmation_message_1\' class=\'gform_confirmation_message_1 gforms_confirmation_message\'' + '>' + confirmation_content + '<' + '/div' + '>');jQuery(document).scrollTop(jQuery('#gforms_confirmation_message_1').offset().top);jQuery(document).trigger('gform_confirmation_loaded', [1]);window['gf_submitting_1'] = false;}, 50);}else{jQuery('#gform_1').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [1, current_page]);} );} );</script><script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"U.S. Dollar","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/springer-lyle.com\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/springer-lyle.com\/wp-content\/plugins\/gravityforms\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 1) {gf_global["number_formats"][1] = {"1":{"price":false,"value":false},"2":{"price":false,"value":false},"3":{"price":false,"value":false},"4":{"price":false,"value":false},"6":{"price":false,"value":false},"5":{"price":false,"value":false},"7":{"price":false,"value":false}};if(window['jQuery']){if(!window['gf_form_conditional_logic'])window['gf_form_conditional_logic'] = new Array();window['gf_form_conditional_logic'][1] = { logic: { 6: {"field":{"actionType":"show","logicType":"any","rules":[{"fieldId":"4","operator":"is","value":"Serious Injury or Death"},{"fieldId":"4","operator":"is","value":"Does this legal issue require immediate attention?"}]},"nextButton":null,"section":null} }, dependents: { 6: ["6"] }, animation: 0, defaults: [], fields: {"1":[],"2":[],"3":[],"4":[6],"6":[],"5":[],"7":[]} }; if(!window['gf_number_format'])window['gf_number_format'] = 'decimal_dot';jQuery(document).ready(function(){gf_apply_rules(1, ["6"], true);jQuery('#gform_wrapper_1').show();jQuery(document).trigger('gform_post_conditional_logic', [1, null, true]);} );} } } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [1, 1]) } ); </script>