a:6:{i:0;s:11340:"				<div class="h1"><h1>Australia 6N / 7D Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travelect.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelect.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Australia 6N / 7D 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Sydney, Brisbane, Gold Coast</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.travelect.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Australia 6N / 7D 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="56010"/>
						</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_12/333350/107040.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/107040.jpg"  width="150" height="150"    alt="Australia 6N / 7D Tour" title="Australia 6N / 7D 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 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>
								</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>
								</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>
								</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>
								</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 />
<br />
OR <br />
<br />
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>
								</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>
								</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>Transport</li>
																		<li>Transfers</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.travelect.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Australia 6N / 7D 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="56010"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Australia 6N / 7D Tour - 6 Nights / 7 Days Tour Packages";i:2;s:138:"book australia 6n / 7d tour - 6 nights / 7 days tour packages, forts and palaces tour packages, sydney, brisbane, gold coast tour packages";i:3;s:179:"El Travel Elect Pvt. Ltd offers Australia 6N / 7D Tour - 6 Nights / 7 Days tour package, budget Forts and Palaces tour packages for Sydney, Brisbane, Gold Coast at exciting price.";i:4;s:422:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Sydney, Brisbane, Gold Coast"        
		                 },
		      "description": "",
		      "name": "Australia 6N / 7D Tour",
		      "telephone": "+91-9225503370"
		    }
		    </script>
			";i:5;N;}