Functionality wise, you're missing things like... when I enter in a date in the past for booking it still takes me through to the next page, shows me a bike option while telling me I can't book in the past.
If someone sets a date in the past, don't show the bikes to choose. That's the same for all your error messages.
When I go forward with an incorrect date, then return, if one of the dates was correct and I don't change it and I then make the other correct, it still shows it as invalid. I have to physically refresh the page to re-enter dates. (as opposed to going back in the history).
When it says "choose a bike". I click a picture... that's my first reaction.
On the booking form where I enter my details, it only validates when fields aren't empty...
For name and last name it should only allow letters. Telephone only number, emails should validate as
[email protected] No point accepting an email address without @ .
I'm only going over your booking form, but these are things you have to take in to consideration when building it and testing it yourself.
I know the point of checking the site out is for it's functionality... but the design is a huge part of a website. I would advise you to mimic the front site or grab a free theme from a website.
You've made a good start, it's just not finished. Always think of making the user journey as smooth as possible. For instance, "Should the user see the next page in order to find out they didn't fill out a field correctly? Only to have to go back a page and fill it in again." Validate and show errors on the same page. Use Javascript & PHP to make it look nicer and more secure.