{#if submitted && SuccessModalComponent} (submitted = false)} /> {/if} {#if showErrorModal && ErrorModalComponent} (showErrorModal = false)} onRetry={() => (showErrorModal = false)} /> {/if}
{bookingEyebrow}

{headingParts.plain}{' '} {headingParts.highlight}

{bookingIntro}

{#if !usesStepperShell}
Reply within 24 hours Free, no-obligation Meet & Greet
{/if}
{#if usesStepperShell}

{bookingSocialProofTitle}

{bookingSocialProofNote}
{/if} {#if step === 1 || isSingleStep}
{#if detailsStepIntro && !usesStepperShell}
{detailsStepIntro}
{/if}
{#if allowGeneralEnquiry}
 {enquiryModeLegend}
{/if} {#if !isGeneralEnquiry}
clearError('petName')} /> {#if errors.petName}

{errors.petName}

{/if}
clearError('location')} /> {#if errors.location}

{errors.location}

{/if}
{#if hasServices}
 Which service are you interested in? {#if serviceChoiceLocked} {/if}
{#if serviceChoiceLocked}
{selectedServices[0]}
{:else}
{#each booking.serviceOptions as service} {/each}
{/if} {#if errors.services}

{errors.services}

{/if}
{/if}
{#if errors.message}

{errors.message}

{/if}
{/if} {#if isGeneralEnquiry}
{#if errors.message}

{errors.message}

{/if}
{/if}
{#if !isSingleStep}

No payment, no pressure, just the right starting point for your dog.

{/if} {/if} {#if step === 2 || isSingleStep} {#if !isSingleStep} {/if}
{#if ownerIntro && !usesStepperShell}
{ownerIntro}
{/if}
clearError('fullName')} /> {#if errors.fullName}

{errors.fullName}

{/if}
clearError('email')} on:blur={() => { if (!email.trim()) return; const msg = validateEmail(email); errors = { ...errors, email: msg }; }} /> {#if errors.email}

{errors.email}

{/if}
clearError('phone')} /> {#if errors.phone}

{errors.phone}

{/if}
{#if !isSingleStep} {/if}
{/if}