a:6:{i:0;s:9367:"				<div class="h1"><h1>Self - Drive Tour of Melbourne Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travelbhai.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelbhai.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Self - Drive Tour of Melbourne Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Melbourne, Warrnambool</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travelbhai.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Self - Drive Tour of Melbourne Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="53619"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_14/397474/104233.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397474/104233.jpg"  width="150" height="150"    alt="Self - Drive Tour of Melbourne Tour" title="Self - Drive Tour of Melbourne Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
											<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Arrive Melbourne airport
								</p>
								<p class="aj">After arriving at the Melbourne international airport, continue to the car rental company desk to pick your car hired for self drive. Proceed to the hotel. Later, leave for sightseeing including the Eureka Sky deck 88 entry- to have a bird’s view of the city, Melbourne cricket ground (tour between 10 a.m. - 3 p.m.) and the Melbourne aquarium - home to thousands of aquatic animals. The evening is scheduled for an unforgettable and unique dining experience on-board the Colonial Tramcar Restaurant, a restaurant on wheels. Relish your dinner and taste the best Australian wines while cruising along the streets of Melbourne. Admire the colonial-style interiors and the friendly service. Stay overnight in Melbourne.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Melbourne - Mornington Peninsula
								</p>
								<p class="aj">On day, post breakfast begin driving to Yarra Valley, a beautiful and lush valley, popular for its wines. Indulge in wine tasting at the well-known De Bortoli Wine Estate. Afterwards, continue your drive to Mornington Peninsula where you can indulge in a number of activities. Take a walk in the lush fields and relish juicy sunny ridge strawberries at the peninsula fields- Australia’s largest producer of strawberries. Growing strawberries is the third generation business in the peninsular region. Next you explore the beautiful Ashcombe Maze & Lavender Gardens (25 acres of area) - the oldest and the most famous hedge maze and circular rose maze in Australia. Night stay in Mornington Peninsula.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 3:</b> Mornington Peninsula - Warrnambool
								</p>
								<p class="aj">Post breakfast on the 3rd day of the tour, you can opt for a tour of the Queenscliff Sorrento Ferry Service. This trip of 40-minutes is a link between the spectacular Bellarine Peninsula and Mornington Peninsula. Enjoy a view of this beautiful coastal region and spot the dolphins. The next attraction is Port Campbell National Park, popular for the twelve apostles and collection of wave-sculpted rock formations. Another major highlight is Loch Ard Gorge, a shipwreck ‘loch ard’ of the 19th century and the London Bridge. Take a walk along the shipwreck coast. Afterwards, drive along the picturesque Great Ocean road. After this, if you want then you can take a flight towards the bay of islands over the 12 apostles through the London Bridge or can simply take a walk on the shipwreck coast up till the Cape Otway Lighthouse. Night stay in Warrnambool.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Warrnambool - Melbourne
								</p>
								<p class="aj">Post breakfast on day 4, begin driving towards Melbourne. On the way take a halt to visit Ballarat, the sovereign hill a Gold Museum. Get back in time, into the 1850s when affluent men and women, all dressed-up in the fineries and gold, walked down the street, showing-off their wealth. View the jaw-dropping collected of gold coins, artifacts and nuggets. Continue towards Melbourne. The evening is free for the activities of your interest. Stay overnight.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Departure from Melbourne
								</p>
								<p class="aj">Today is the last day of the tour when post a healthy breakfast, you receive an on-time transfer to the airport where your first return the car and later board a flight for your onward journey or can opt for an extension of your vacation.</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount * Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. * Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travelbhai.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Self - Drive Tour of Melbourne Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="53619"/>
						</form>
						</div>
						
						";i:1;s:74:"Book Self - Drive Tour of Melbourne Tour - 4 Nights / 5 Days Tour Packages";i:2;s:145:"book self - drive tour of melbourne tour - 4 nights / 5 days tour packages, forts and palaces tour packages, melbourne, warrnambool tour packages";i:3;s:173:"Travel Bhai offers Self - Drive Tour of Melbourne Tour - 4 Nights / 5 Days tour package, budget Forts and Palaces tour packages for Melbourne, Warrnambool at exciting price.";i:4;s:429:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Melbourne, Warrnambool"        
		                 },
		      "description": "",
		      "name": "Self - Drive Tour of Melbourne Tour",
		      "telephone": "+91-9811617033"
		    }
		    </script>
			";i:5;N;}