a:6:{i:0;s:12089:"				<div class="h1"><h1>New Zealand South Island Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.parlholidays.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.parlholidays.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>New Zealand South Island 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">Christchurch, Dunedin</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.parlholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="New Zealand South Island 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="86836"/>
						</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_15/447323/151805.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/447323/151805.jpg"  width="150" height="150"    alt="New Zealand South Island Tour" title="New Zealand South Island 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> Arrival in Christchurch
								</p>
								<p class="aj">Today you arrive in Christchurch, popular as the 'Garden City' of New Zealand. It is also the 'Gateway to South Island'. Meet our tour representative who would help you in assisted transfer to the hotel in a chauffeur-driven car. Complete the check-in formalities at the hotel. After this, you are now free to spend the day as per your own liking. This lovely place is a delight to visit and is bordered by the Pacific Ocean on one side and the hills on the other. You can do so much just in few hours. Indulge in activities like mountain biking, bungy jumping, skiing, hiking, golfing, surfing, dolphin and seal viewing, and swimming. Do not forget to shop at the famous parks and, visit the stunning gardens and the wineries. Christchurch is the largest city of South Island.<br />
<br />
Stay overnight in Christchurch.</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> Christchurch - Dunedin
								</p>
								<p class="aj">After breakfast on day 2 of the tour, you begin moving southwards across the Canterbury Plains passing Timaru and Oamaru towns in order to arrive at Dunedin. The lovely and lush green Canterbury Plains offer a remarkable site of a variety of crops. This road journey is going to be a treat for you. Timaru and Oamaru are popular heritage towns. The destination of the day, Dunedin is a city with Scottish influence, it is quite popular for its natural history and Otago University. On arrival, check-into the hotel. The city houses a number of striking structures of Victorioan architecture. During leisure hours, you can visit the historic public buildings, extravagant houses, decorative hotels and impressive churches.<br />
<br />
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 3:</b> Dunedin- Te Anau
								</p>
								<p class="aj">Post breakfast, the morning is free for optional activities. You can visit the popular attractions of Dunedin such as Dunedin Railway Station. Votanic Garden, Otago Peninsula, Toitu Otago Settlers museum, Tunnel beach, Chinese Garden and more. Later on, you depart from Dunedin crossing the Southland Plains. Treat your eyes to the lovely views of the surroundings while you are driving past the towns of Gore and Balclutha. Finally you arrive at Te Anau town that is places on the shores of Te Anau Lake. After completing the check-in formalities, your day is at leisure. It is an ideal stopover for those who are visiting Milford Sound. Food and shopping experiences are great here. You can opt for Glowworm tour tonight, which is going to an amazing experience. Take a boat from the Lake and travel across it to arrive at 12000-yr-old limestone caves, etched into twirling shapes because of the force of the river that flows through these caves. Tourists travel through these caves, by boot and on foot. The case has a space where you can spot thousands of shining glow worms, seen only in New Zealand. This is a superb experience for all age-groups. This tour doesn't take more than two and a half hours.<br />
<br />
Overnight stay.</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> Te Anau - Milford Sound - Queenstown
								</p>
								<p class="aj">On day 4, after breakfast, get all set to move forward. You cross the Eglinton Valley with a flat floors and steep sides. While you enjoy the scenery, drive past the spectacular man- made Homer Tunnel, an engineering marvel. Finally you arrive at Milford Sound, known for its scenic beauty and colorful hues. Milford Sound, a World Heritage Site, has been described by Rudyard Kipling as the 'eighth wonder of the world'. A must thing-to-do here is a cruise on the very popular fiord, flanked by Mitre Peak and the gushing Bowen Falls. Treat your eyes to the lovely views of cliffs rising from the sea water and the seals, enjoying sunbathing. Do not forget to take pictures. If you are lucky, you might spot dolphins and penguins. Later, continue with your journey. Arrival at Queenstown. Check-in formalities.<br />
<br />
Overnight in Queenstown.</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> Queenstown
								</p>
								<p class="aj">After a sumptuous breakfast, explore this beautiful place called Queenstown, an alpine resort with breathtaking and exciting scenery. The options are endless. You can partake in horse trekking, bungy jumping, river surfing, jet boating. Gondola rides, boat riding, fishing, hiking, and rafting. The food, wine, golfing experience and spa therapies are extremely luxuries. It is also the Adventure Capital of the World. Placed on the shores of Wakatipu Lake, this place is bounded by mystical mountains and is a must-visit during your tour to South Island of New Zealand. You can partake in adventure activities and can also enjoy sightseeing here. Coronet Park, Lake Wakatipu, Lake Wanaka, Shotover River, Hollyford Track etc. are some of the attractions in Queenstown that can be explored.<br />
<br />
Stay overnight in Queenstown.</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> Queenstown - Mt Cook - Christchurch
								</p>
								<p class="aj">Today, after breakfast, you begin driving through the Central Otago region towards Lake Pukaki- one of the largest alpine lakes in South Island and Mount Cook, also known as Aoraki, the cloud piercer. It is the highest mountain in New Zealand. Your visit here is going to be a memorable one. Later on, next you visit the Church of the Good Shepherd on the banks of Lake Tekapo, this place is not only a place of worship but is popular as a wedding venue due its breathtaking location. Now, you cross the Canterbury Plains to return back to Christchurch.</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> Departure
								</p>
								<p class="aj">On the last day of the tour, after breakfast, depart for your home destination.</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.parlholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="New Zealand South Island 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="86836"/>
						</form>
						</div>
						
						";i:1;s:68:"Book New Zealand South Island Tour - 6 Nights / 7 Days Tour Packages";i:2;s:129:"book new zealand south island tour - 6 nights / 7 days tour packages, heritage tour packages, christchurch, dunedin tour packages";i:3;s:159:"Parl Holidays offers New Zealand South Island Tour - 6 Nights / 7 Days tour package, budget Heritage tour packages for Christchurch, Dunedin at exciting price.";i:4;s:422:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Christchurch, Dunedin"        
		                 },
		      "description": "",
		      "name": "New Zealand South Island Tour",
		      "telephone": "+91-9250975237"
		    }
		    </script>
			";i:5;N;}