a:6:{i:0;s:15684:"				<div class="h1"><h1>Australia Economy – 08 Nights & 09 Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.oppexholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.oppexholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Australia Economy – 08 Nights & 09 Days 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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Brisbane, Brisban, Gold Coast</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 78699 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Australia Economy – 08 Nights & 09 Days 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="114293"/>
						</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/37817/186724.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/37817/186724.jpg"  width="150" height="150"    alt="Australia Economy – 08 Nights & 09 Days Tour" title="Australia Economy – 08 Nights & 09 Days Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					(Inclusive of Visa Charges for Australia)<br />
03 Night accommodation in Gold Coast<br />
02 Night accommodation in Sunshine Coast<br />
03 Night accommodation in Brisbane<br />
Daily Breakfast<br />
Byron Bay, Bangalow and Green Cauldron Tour (Gold Coast)<br />
Dream world Tour (Gold Coast)<br />
Taste of the Sunshine Coast Tour by Con-x-ion tour (Sunshine Coast)<br />
1 Day Noosa and Sunshine Coast Hinterland Tour (Brisbane)<br />
Grand Brisbane Tour (Brisbane)<br />
Return airport transfers<br />
Australia VisaAny expenses of personal nature.<br />
GST as per applicable<br />
Hotels not booked yet.<br />
Rates Subject to change without prior notice<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> GOLD COAST
								</p>
								<p class="aj">Arrive Brisbane Tullamarine Airport & SIC transfers to Gold Coast hotel.Overnight at the Hotel</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">Breakfast. Morning half day SIC Byron Bay, Bangalow and Green Cauldron Tour Byron Bay, Bangalow and Green Cauldron Tour Byron Bay is a great destination but Northern New South Wales has so much more to offer. Bangalow, Tomewin and Great views of Mt Warning are just breathtaking so if you join us you're getting more than just Byron Bay. On top of all that, how does Morning Tea on us at the local Heritage House in Bangalow sound? Entry into the historical Society's stunning ever changing Museum and tea rooms included.</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">Breakfast. Morning day SIC Dream world Tour<br />
Dream world Tour Enjoy the day at Dreamworld, one of Australia's premier family theme parks. Opened in 1981, the park was dedicated by its founder 'to the happiness of all people'. It succeeded immediately and continues to make over one million visitors happy each year! The minute you enter the park, it is like entering another world where something new and exciting happens at every minute and at every turn. Dreamworld is home to The Big 6 Thrill Rides, Wiggles World, Dreamworks, The Australian Wildlife Experience, Tiger Island, V8 Supercars RedLine, AVPX and Australia's first and only FlowRider. All feature a host of exciting attractions to keep you entertained all day</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> SUNSHINE COAST
								</p>
								<p class="aj">Breakfast.SIC Transfer Gold Coast to Brisbane to Sunshine Coast.Enjoy beach and overnight at the Hotel.</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> SUNSHINE COAST
								</p>
								<p class="aj">Breakfast. Taste of the Sunshine Coast Tour by Con-x-ion tour. Taste of the Sunshine Coast Tour by Con-x-ion tour Discover the flavours and sights of the Sunshine Coast on this guided tour. Sample native nuts, cheeses and ginger, explore the artisanal village of Montville and taste fine wines at the famous vineyards of Maleny Mountain Wines. Once you're picked up from your hotel, sit back for a comfortable ride through the countryside. Your first stop is for coffee at a local roaster, followed by a visit to The Ginger Factory, the world’s largest operating ginger processing plant. Learn about this spicy and flavourful root as you tour the factory, and shop for a whole array of ginger-scented goodies.<br />
Continue on to The Nutworks, renowned for its high-quality macadamia nuts and chocolate products. Sample a variety of confections and nut-based treats, and then visit Maleny Cheese, where you can savour a creamy spoonful of yoghurt or nibble cheeses from smoky cheddar to herbed fresh feta. Your next stop is in the quaint village of Montville. Wander through unique galleries full of traditional arts and crafts as well as speciality shops selling delicious gourmet foods. Afterwards, sit back and raise a glass as you savour great Australian wine at Maleny Mountain Wines, a family-run vineyard that also boasts panoramic mountainous views from its tasting room.<br />
Conclude your tour at The Pub at Aussie World, where you can sit back and enjoy a refreshing drink on the sun-soaked deck or inside among the Australian memorabilia and fun décor.</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> BRISBANE
								</p>
								<p class="aj">Breakfast. Later SIC Transfer Sunshine Coast hotel to Brisbane. Overnight at the Hotel.</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> BRISBANE
								</p>
								<p class="aj">Breakfast. 1 Day Noosa and Sunshine Coast Hinterland Tour<br />
1 Day Noosa and Sunshine Coast Hinterland Tour This tour is the experience of the best of Sunshine Coast and the magnificent Hinterland in a day! A visit to Australia's famous Noosa Heads is a must! Spend over 1 and half hrs relaxing and exploring the Noosaville and Noosa Heads, including famous Hastings Street and its exclusive fashion boutiques and cosmopolitan restaurants. Stroll along the boardwalk of the stunning Noosa Beach and take in the spectacular scenery of the National Park and Laguna Bay. Included is a ferry trip along the beautiful Noosa River to the heart of Noosa. Depart Noosa in the afternoon to tour through some of the most picturesque scenery of the Hinterland. Stroll the quaint Montville village (known as 'The Creative Heart of the Sunshine Coast') and enjoy the atmosphere of the specialty shops and galleries. Complete the day with a great photo opportunity at Mary Cairncross Park, with a guided rainforest walk, and breathtaking views of the Glass House Mountains and the ocean.</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 8:</b> BRISBANE
								</p>
								<p class="aj">Breakfast. Grand Brisbane Tour.<br />
Grand Brisbane<br />
At every turn Brisbane is sure to surprise and delight with its charming mixture of trendy cafe and club culture and historic sandstone buildings. See the historic buildings of Brisbane such as Parliament House, GPO and the famous XXXX Brewery. See why Brisbane is know as "the River City" with a relaxing cruise through the city centre, morning tea included. Then it's on to Mt. Coot-tha Lookout where you can take in the spectacular panoramic views of the city. Finally you head to Lone Pine the world's largest Koala Sanctuary (entry included) where you will have the opportunity to cuddle a Koala (own expense) and see Australian wildlife close-up before being dropped off at your accommodation</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 9:</b> BRISBANE
								</p>
								<p class="aj">Breakfast. Check Out of Hotel. SIC transfer to Brisbane Airport for onward flight</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>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any expenses of personal nature.</li><li>
GST as per applicable</li><li>
Hotels not booked yet.</li><li>
Rates Subject to change without prior notice</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>The above is only an offer. In the event of Non availability of the specified hotel,alternate or similar hotels would be offered.</li>
	<li>Rates valid strictly for the requested period.</li>
	<li>RATES FOR PRIVATE SERVICES ARE BASED ON MINIMUM PAX TRAVELING. ANY CHANGE IN THRE NUMBER OF PAX WOULD LEAD TO CHANGE IN COST</li>
	<li>Any increase in the Airlines taxes /Hotel Surcharges from the time of Booking till the Departure date must be borne by pax.</li>
	<li>No refund for unutilized service</li>
	<li>All Hotels, Itinerary, restaurants subject to change without notice.</li>
	<li>Rates valid only for the dates and period requested. Change in date would lead to change of Cost</li>
	<li>Rates are based on as on date&rsquo;s exchange rate. Should there be any major fluctuation OPPEX TRAVELS AND TOURS reserve the right to furnish a fresh quote.</li>
	<li>Rates do not include Event/ Peak Season surcharges. Would be advised at the time of booking.</li>
	<li>Any damage caused to hotel rooms/ Coach during your stay, shall be payable by the Passengers.</li>
	<li>OPPEX TRAVELS AND TOURS will not be liable for the same.</li>
	<li>The Company shall not accept any liability or responsibility for any damages, loss, injury, accident, death, Flight Cancelation by Airline , breakdown, or irregularity, which may occur in carrying out the tour arrangement, weather conditions, strikes wars, quarantine or any other cause whatsoever and all such loss or expense must be borne by pax.</li>
	<li>All Tours subject to OPPEX TRAVELS AND TOURS Tour conditions</li>
	<li>For payments made in INR, the conversion would be based on the ROE as on the date of payments.</li>
	<li>(Please refer our Terms and Conditions and cancellation policies mentioned in our</li>
</ul>						
    	<p class="h dif xlarge b mb5px">HOTEL DETAILS:</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">PLACE</td>
				<td class="headHr p5px b">HOTEL NAME</td>
			</tr>
			<tr>
				<td class="data p5px">Brisbane</td>
				<td class="data p5px">Ibis or Similar</td>
			</tr>
			<tr>
				<td class="data p5px">Gold Coast</td>
				<td class="data p5px">Mantra Legend or similar</td>
			</tr>
			<tr>
				<td class="data p5px">Sunshine Coast</td>
				<td class="data p5px">Novotel Twin Waters Resort or similar</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Australia Economy – 08 Nights & 09 Days 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="114293"/>
						</form>
						</div>
						
						";i:1;s:85:"Book Australia Economy – 08 Nights & 09 Days Tour - 8 Nights / 9 Days Tour Packages";i:2;s:154:"book australia economy – 08 nights & 09 days tour - 8 nights / 9 days tour packages, heritage tour packages, brisbane, brisban, gold coast tour packages";i:3;s:245:"Book Australia Economy – 08 Nights & 09 Days Tour - 8 Nights / 9 Days tour packages from Oppex Travels & Tours ( a Division of Oppex Freight Systems - Get attractive 8 Nights / 9 Days Heritage  tour packages for  Brisbane, Brisban, Gold Coast.";i:4;s:1037:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Brisbane, Brisban, Gold Coast"        
		                 },
		      "description": "(Inclusive of Visa Charges for Australia)
03 Night accommodation in Gold Coast
02 Night accommodation in Sunshine Coast
03 Night accommodation in Brisbane
Daily Breakfast
Byron Bay, Bangalow and Green Cauldron Tour (Gold Coast)
Dream world Tour (Gold Coast)
Taste of the Sunshine Coast Tour by Con-x-ion tour (Sunshine Coast)
1 Day Noosa and Sunshine Coast Hinterland Tour (Brisbane)
Grand Brisbane Tour (Brisbane)
Return airport transfers
Australia VisaAny expenses of personal nature.
GST as per applicable
Hotels not booked yet.
Rates Subject to change without prior notice",
		      "name": "Australia Economy – 08 Nights & 09 Days Tour",
		      "telephone": "+91-9821321975"
		    }
		    </script>
			";i:5;N;}