a:6:{i:0;s:12130:"				<div class="h1"><h1>Australian Getaway Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.holidaymasti.co.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Australian Getaway 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">Tour Code </td>
						<td class="p5px pl0px vat">3265</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Sydney, Queensland</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 59000 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Australian Getaway 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="47986"/>
						</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_2/30465/93602.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/30465/93602.jpg"  width="150" height="150"    alt="Australian Getaway Tour" title="Australian Getaway Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Anything which is not included in the package cost.<br />
Cost of Lunch and dinners, Portage and tips to driver and guide.<br />
Any kind of Insurance.<br />
Any item not mentioned in detail itinerary or package inclusion.<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 Brisbane or Gold Coast
								</p>
								<p class="aj">Upon arrival at the Brisbane airport and after arrival formalities, and transfer to pre booked Hotel on SIC.<br />
(Early check in not guaranteed Normal Check in time 1400 Hours) Rest of the day is at leisure.</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> Gold Coast
								</p>
								<p class="aj">After breakfast, you have a choice to go for Dream world<br />
on seat in coach basis Dream world is home to 13 worlds. From the tallest and fastest thrill rides, to live interactive shows and unique animal attractions, there’s something for everyone at Dream world! Home to Tiger Island, Nick Central, The Australian Wildlife Experience, Wiggles World, AVPX, V8 Supercars Redline, Flow Rider and the Big 6 Thrill Rides - some of the tallest, fastest thrill rides in the world, Dream world is the ultimate place for family fun. You will be transferred back to the hotel on seat in coach basis. </p>					
									<p><b>Meals : </b> Breakfast</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> Gold Coast
								</p>
								<p class="aj">After breakfast. You have a choice to go for Sea world or Movie world (choice of one Theme park – Must be pre booked).Sea World is a marine mammal park, oceanarium, and theme park located on the Gold Coast, Queensland, and Australia. It includes rides, animal exhibits, shows etc. some of the popular rides and shows are Sea Viper, Jet Rescue, Pirates Unleashed, Fish Detective, etc. <br />
Movie World If you are fascinated by movies, movie characters, movie shows and how movies are made, Warner Bros Movie World could be a place to visit. This is a place where you are as likely to meet on the street — and have your picture taken with them — Batman and Robin, Wonder Woman, Marilyn Monroe, and many other characters from movies and comic strips, as you are to discover the fascinating world of movie making. Movie shows and movie-related rides are part of the Movie World theme park experience.</p>					
									<p><b>Meals : </b> Breakfast</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> Gold Coast - Sydney By Flight
								</p>
								<p class="aj">After breakfast at Hotel. You will bne transferred to Brisbane airport to board the flight for Sydney on SIC. On arrival at the Sydney airport and after customs and immigration formalities, you will be transferred to your pre-arranged hotel on seat in coach basis. (Early check in not guaranteed Normal Check in time 1400 Hours) Rest of the day is at leisure. PM Sydney Showboat Dinner cruise (Standard Indian Package) Cruise does not operate on Wednesday and Sunday. Please note pax has to reach their own at King Warf to board the Show boat.</p>					
									<p><b>Meals : </b>  Breakfast</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> Sydney
								</p>
								<p class="aj">After breakfast at the hotel, you will pick up for a morning half-day panoramic City tour of Sydney on seat in coach basis which will cover a visit to Opera House & Harbour Bridge and visit to Bondi Beach (The Tour is non refundable) The tour End at 1145 Hours near Darling Harbour or Circular Quay. Get down nearest to King Street Wharf, Darling Harbour to Sea Life Aquarium at Darl;ing Harbour to exchange Combo 2 Pass voucher for admissions to Sea Life Aquarium + Sydney Tower Eye with 4D experience. (Please note that transfers to Aquarium & Tower are not included) Reach hotel at your own. P.M Reach your own to King Stree Wharf #5, Darling Harbour by 1850 -1900 Hoours to join Sydney Sgow boat Indian Dinner Cruise with Standard Seating ( No transfers does not operate on Tuesday and Sunday) and no operation on 05 Oct and 25, 26 8 & 31 Dec. 01 Jan , 26 jan and 14 Feb. Show boat cruise do not provide Jain menu. Supplement cost of AUFD 25 Per person Extra for to upgrade to priority seating.</p>					
									<p><b>Meals : </b> Breakfast</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 6:</b> Sydney
								</p>
								<p class="aj">After breakfast at Hotel. Choice of 1 Full day SIC tour Eiither Port Stephens, Dolphin & Dunes Tour start at 0800 AM only on Wednesday Saturday return back at 1830 Hours. OR<br />
Hunter Valley Wineries Tour with Gourmet Style Lunch Tour depart at 0800 AM only on Tuesday, Wednesday, Friday and Sunday. Return back at 1830 Hours. Please note once tour is booked it is non refundable <br />
OR Depart for a full day tour of the Blue Mountains tour and Australian Wildlife Park Includes Rides at Scenic world (Optional) on seat in coach basis. Be transported from the centre of Sydney into the heart of the enchanting Blue Mountains for a great adventure. Visit Featherdale Wildlife Park to see up close native Kangaroos and Koalas from Australia, view the Three Sisters rock formation at Katoomba, ride the Scenicsender and Skyway. Your day tour includes a guided walk in the Blue Mountains National Park, Wentworth Falls, and Sublime Point etc. You will be transferred back to the hotel on seat in coach basis. </p>					
									<p><b>Meals : </b> Breakfast</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 7:</b> Sydney - Destinations
								</p>
								<p class="aj">After breakfast, check out and transfer on seat in coach basis to the Sydney international airport for your return flight to India.</p>					
									<p><b>Meals : </b> Breakfast</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>Meals</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Anything which is not included in the package cost.</li><li>
Cost of Lunch and dinners, Portage and tips to driver and guide.</li><li>
Any kind of Insurance.</li><li>
Any item not mentioned in detail itinerary or package inclusion.</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.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Australian Getaway 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="47986"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Australian Getaway Tour - 6 Nights / 7 Days Tour Packages";i:2;s:129:"book australian getaway tour - 6 nights / 7 days tour packages, forts and palaces tour packages, sydney, queensland tour packages";i:3;s:174:"Book Australian Getaway Tour - 6 Nights / 7 Days tour packages from Holiday Masti - Get attractive 6 Nights / 7 Days Forts and Palaces  tour packages for  Sydney, Queensland.";i:4;s:620:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Sydney, Queensland"        
		                 },
		      "description": "Anything which is not included in the package cost.
Cost of Lunch and dinners, Portage and tips to driver and guide.
Any kind of Insurance.
Any item not mentioned in detail itinerary or package inclusion.",
		      "name": "Australian Getaway Tour",
		      "telephone": "+91-8090952150"
		    }
		    </script>
			";i:5;N;}