a:6:{i:0;s:11179:"				<div class="h1"><h1>Australian Getaway Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.geetcompany.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.geetcompany.com/holiday-tour-packages.htm" title="Holiday Tour Packages">Holiday Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Australian Getaway Tour</p>
				<br />
				
									<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>
					
					<table class="w100 formTable imgWidth">
					<tr>
					
											<td class="p10px vat imgWidth150 w150px">
						<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_1/22362/56497.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/56497.jpg"  width="150" height="150"    alt="Australian Getaway Tour" title="Australian Getaway Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Tour Code :</b> 303</p>
												<p class="mb5px"><b>Duration :</b> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Sydney, Gold Coast</p>
												<p><b>Price (Starting From) :</b>						
						INR 58800 Per Person						</p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.geetcompany.com/travel-inquiry.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="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="28539"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
											<br />
					
					<div class="packageTabs myTabs horizontal mc"><!--MY TABS STARTS-->
					<ul class="fo lsn m0px p0px">
					
											<li id="tab2"><a href="#data2">Itinerary</a></li>
												<li id="tab4"><a href="#data4">Tour Detail</a></li>
												<li id="tab6"><a href="#data6">Terms &amp; Conditions</a></li>
											</ul>
					
					
											<div class="ic bdr" id="data2"><!--DATA2 START-->
						<br />
						<ul class="lsn m0px p0px">
									<li>
									<p class="b mb5px">Day 1: Brisbane Airport - Gold Coast
									</p>
									<div class="data p10px">Arrival at Brisbane Airport, meet and Greet with our local representative, we will take you on a 1 hour drive to gold coast. Check inn to the hotel. You can enjoy the evening at leisure or go for shopping and stay overnight at the hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Gold Coast - Dream world
									</p>
									<div class="data p10px">After enjoying breakfast at hotel, visit dreamworld theme park biggest in the nation with rides, attractions, shows and characters to thrill kids of all ages. Families will enjoy time with their little ones in Wiggles World and the Dream Works Experience featuring Madagascar Madness, Shrek's Faire Faire Away and the brand new Kung Fu Panda: Land of Awesomeness. Filled to the brim with famous characters, adventure rides, live shows and entertaining attractions these lands are perfect for the whole family mixing thrill with fun. Take a wild journey through Tiger Island, where magnificent tigers play with their human handlers before entering Dreamworld Corroboree, home to more than 500 native animals and stay overnight at the hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Gold Coast - Sea world
									</p>
									<div class="data p10px">After enjoying breakfast at the hotel, visit Sea World is set on 25 picturesque hectares and has been a family favorite theme park for over 35 years. Now, more than just a theme park Sea World has more than exciting rides, attractions and shows. It is also firmly committed to marine research and rescue, and a place where visitors can learn about and make contact with a variety of marine animals. A jam packed fun and educational day awaits you at Sea World. From the adrenalin pumping Jet Rescue, to the delightful dolphin show, from the magestic heights of the Sky High Skyway to the amazing Polar Bears. Be dazzled and amazed at the speed and agility of Sea World's penguins. Get up close to the fearsome shark and stay overnight at the hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Gold Coast - Sea world
									</p>
									<div class="data p10px">After enjoying breakfast at the hotel, check out from hotel & transfers to airport to Brisbane airport. Board your next flight for Sydney, on arrival at airport, meet and Greet with our local representative & transfers to hotel. . Check inn to the hotel, day is free for leisure and stay overnight at the hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Sydney
									</p>
									<div class="data p10px">After enjoying breakfast at the hotel, enjoy morning half day Sydney city tour with views of opera house & Harbour bridge from Milsons point & manly beach, no hotel drop off. This tour ends at darling Harbour & proceed to sea life aquarium to exchange Combo 2 Pass voucher for admissions to Sea Life Aquarium + Sydney Tower Eye with 4D Experience. Evening proceed on OWN to King Street Wharf #5, Darling Harbour by 1850-1900hrs to join Sydney Show Boat Indian Dinner Cruise with standard seating, no transfers of any tour and stay overnight at hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Sydney
									</p>
									<div class="data p10px">After enjoying breakfast at the hotel, enjoy full day blue mountain tour with Wildlife Park & scenic rides at scenic world. Experience spectacular scenery, wildlife, plant life and fresh mountain air. You will spend a full day exploring the Blue Mountains region on an all inclusive tour. Enjoy a unique and relaxing environment and stay overnight at hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 7: Sydney Departure
									</p>
									<div class="data p10px">After enjoying breakfast, check-out of your hotel in morning and proceed to the airport to board the return flight.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
						Australia, is a country comprising the mainland of the Australian continent, the island of Tasmania, and numerous smaller islands. It is the world's sixth-largest country by total area. Australia is the land of adventure. It is one of the most popular destinations on the planet for backpackers and luxury travelers alike. World-renowned landmarks like Sydney's Opera House and Harbour Bridge, Uluru, the Great Barrier Reef, Great Ocean Road and some of the most unique wildlife on the planet have helped Australia become a must see destination on any traveler’s list.Australia visa if required from Delhi at INR 10000 per person.<br />
Original passport valid for 6 months from the date of returning<br />
2 photographs white background size 35 x 45mm on matt finish with 80% face  latest (person must be wearing colored clothes)<br />
6 months Latest Bank statement  with stamp and sign on it of company & self both<br />
03 Years latest Income Tax Return of company & self both<br />
Request letter stating the purpose of visit<br />
Photo id card or visiting card & NOC letter if employed<br />
NOC require from other directors if company is Pvt Ltd OR require from other partners if company in partnership<br />
Require marriage card & photographs if newly married couples.<br />
Require savings like: LIC, Bond, FDR, KVP, Property Papers etc<br />
Hotel Confirmation voucher<br />
Confirm return air ticket.<br />
EXCLUSIONS<br />
Any Meals other than specified in inclusions.<br />
Personal expenses such as tips, porterage, telephone calls, rooms service, etc.<br />
Surcharge will be applicable on particular events, Festival, exhibition & Fairs.<br />
Any Security deposit asks by the hotel’s reception during check in at Hotel.<br />
Travel Insurance.<br />
GST - 3.09% extra01-1031-03							<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Hotel</li>
																				<li>Transfers</li>
																	</ul>
							<br />
														<p class="b mb5px dif">Exclusions :</p> <ul><li>Australia visa if required from Delhi at INR 10000 per person.</li><li>
Original passport valid for 6 months from the date of returning</li><li>
2 photographs white background size 35 x 45mm on matt finish with 80% face  latest (person must be wearing colored clothes)</li><li>
6 months Latest Bank statement  with stamp and sign on it of company & self both</li><li>
03 Years latest Income Tax Return of company & self both</li><li>
Request letter stating the purpose of visit</li><li>
Photo id card or visiting card & NOC letter if employed</li><li>
NOC require from other directors if company is Pvt Ltd OR require from other partners if company in partnership</li><li>
Require marriage card & photographs if newly married couples.</li><li>
Require savings like: LIC, Bond, FDR, KVP, Property Papers etc</li><li>
Hotel Confirmation voucher</li><li>
Confirm return air ticket.</li><li>
EXCLUSIONS</li><li>
Any Meals other than specified in inclusions.</li><li>
Personal expenses such as tips, porterage, telephone calls, rooms service, etc.</li><li>
Surcharge will be applicable on particular events, Festival, exhibition & Fairs.</li><li>
Any Security deposit asks by the hotel’s reception during check in at Hotel.</li><li>
Travel Insurance.</li><li>
GST - 3.09% extra</li></ul><br />
													<!--DATA4 EMD--></div>
												<div class="ic bdr" id="data6"><!--DATA6 START-->
						<br />
						* 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. ~^#^~						<!--DATA6 EMD--></div>
											
					<!--MY TABS END--></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, gold coast tour packages";i:3;s:175:"Book Australian Getaway Tour - 6 Nights / 7 Days tour packages from Geet & Company - Get attractive 6 Nights / 7 Days Forts and Palaces  tour packages for  Sydney, Gold Coast.";i:4;s:2123:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Sydney, Gold Coast"        
		                 },
		      "description": "Australia, is a country comprising the mainland of the Australian continent, the island of Tasmania, and numerous smaller islands. It is the world's sixth-largest country by total area. Australia is the land of adventure. It is one of the most popular destinations on the planet for backpackers and luxury travelers alike. World-renowned landmarks like Sydney's Opera House and Harbour Bridge, Uluru, the Great Barrier Reef, Great Ocean Road and some of the most unique wildlife on the planet have helped Australia become a must see destination on any traveler’s list.Australia visa if required from Delhi at INR 10000 per person.
Original passport valid for 6 months from the date of returning
2 photographs white background size 35 x 45mm on matt finish with 80% face  latest (person must be wearing colored clothes)
6 months Latest Bank statement  with stamp and sign on it of company & self both
03 Years latest Income Tax Return of company & self both
Request letter stating the purpose of visit
Photo id card or visiting card & NOC letter if employed
NOC require from other directors if company is Pvt Ltd OR require from other partners if company in partnership
Require marriage card & photographs if newly married couples.
Require savings like: LIC, Bond, FDR, KVP, Property Papers etc
Hotel Confirmation voucher
Confirm return air ticket.
EXCLUSIONS
Any Meals other than specified in inclusions.
Personal expenses such as tips, porterage, telephone calls, rooms service, etc.
Surcharge will be applicable on particular events, Festival, exhibition & Fairs.
Any Security deposit asks by the hotel’s reception during check in at Hotel.
Travel Insurance.
GST - 3.09% extra01-1031-03",
		      "name": "Australian Getaway Tour",
		      "telephone": "+91-9896771268"
		    }
		    </script>
			";i:5;N;}