a:6:{i:0;s:13107:"				<div class="h1"><h1>Vv002 Coulors Of New Zealand Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sanskrutivacations.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sanskrutivacations.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Vv002 Coulors Of New Zealand 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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Auckland, Christchurch, Rotorua, Queenstown, Waitomo</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.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Vv002 Coulors Of New Zealand 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="85326"/>
						</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_14/393874/149971.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/393874/149971.jpg"  width="150" height="150"    alt="Vv002 Coulors Of New Zealand Tour" title="Vv002 Coulors Of New Zealand 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 in Auckland
								</p>
								<p class="aj">Upon arrival you will be met by our local representative in the arrival hall and transferred to hotel in a private vehicle. Visit Sky tower in the evening (included) later take a short walk to Viaduct harbor.<br />
Overnight at 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> Auckland sightseeing
								</p>
								<p class="aj">After breakfast, today morning See firsthand why Auckland is regarded as one of the best cities in the world to live in, as you join this half day tour around the central city and picturesque suburbs. Self drive customers will pick up their rental car and go for sightseeing on self drive.<br />
Our journey begins with a short trip over the Harbour Bridge to the North Shore before returning to the central city to visit Queen St and the Auckland Viaduct.<br />
We continue on through the Auckland Domain, the city's oldest park, situated on a 62,000 year old volcano to Parnell Village for our morning tea stop. The historic buildings of Parnell have been transformed in to a trendy shopping area featuring many boutiques, antique, craft and specialty shops.<br />
Following this brief stop our tour will then take you along the scenic waterfront route of Tamaki Drive to the Michael Joseph Savage Memorial Park, in Mission Bay.<br />
A memorial to the first Labour Prime Minister of New Zealand and the founder of the welfare state. Michael Joseph Savage Memorial Park has panoramic views over Whenua Rangatira, Auckland city and Waitemata Harbour. This park is a popular wedding and tourist venue, with formal gardens and perfect venue for flying a fabulous array of colorful and creative kites. The tour then returns to downtown.<br />
Highlights:<br />
Harbour Bridge, Viaduct Harbour, Queen Street, Auckland Domain, Parnell Village, Tamaki Drive<br />
Michael Savage Memorial<br />
SIC Customers will travel in a coach and self-drive customers will travel in their rental car.<br />
Overnight at hotel (B)</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> Auckland – Rotorua via Waitomo
								</p>
								<p class="aj">After breakfast, today morning you will travel across the rich Waikato farmland for Waitomo. Enjoy a guided tour of the Waitomo Caves (included) and a boat ride through the famous Glow-Worm grotto. Enjoy twinkling lights emitting from the ceiling like stars in a dark night. Later travel across to forest Mamaku Range to arrive at the thermal resort of Rotorua. SIC Customers will travel in a coach and self-drive customers will travel in their rental car.<br />
Overnight at hotel (B).</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> Rotorua sightseeing
								</p>
								<p class="aj">After breakfast, today we proceed to AGRODOME (included) to witness the Agrodome Agricultural Show, where you will be entertained by New Zealand's performing sheep and other attractions. Later proceed to visit TE-PUIA thermal village (included) known for its hot springs, geysers and boiling mud pools. Watch the Maori craftsmen and learn about the traditional arts of carving and weaving and RAINBOW SPRINGS (included) to see the flower and fauna of New Zealand. SIC Customers will travel in a coach and self-drive customers will travel in their rental car. Evening at leisure.<br />
Overnight at hotel (B).</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> Rotorua - Queenstown
								</p>
								<p class="aj">After breakfast, travel to Rotorua airport and board your flight to Queenstown (flight not included), upon arrival in Alpine city travel to your hotel. Evening at leisure. SIC Customers will travel in a shared van and self-drive customers will travel in their rental car.<br />
Overnight at hotel (B)</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> Milford sound day tour
								</p>
								<p class="aj">After breakfast, this morning we head to MILFORD SOUND CRUISE (included). This famous cruise gives you an opportunity to see MITRE PEAK which is just out of the water and mile high. Go exploring with a nature guide in the tender vessels and kayaks. You may see fur seals lazing on the rocks and lots of sea birds and numerous waterfalls. Return back to the hotel in the evening. SIC Customers will travel in a coach and self-drive customers will travel in their rental car.<br />
Overnight at the hotel. (B)</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> Queenstown day free for optional activities
								</p>
								<p class="aj">After breakfast, today you have an option to enjoy the exciting SHOTOVER JET BOAT RIDE, LEDGE BUNGY JUMP, RIVER RAFTING, SKY DIVING OR SKY SWING (activities not included)<br />
Overnight in hotel. (B)</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> Queenstown- Glacier region
								</p>
								<p class="aj">After breakfast, this morning, leave for Franz Joseph. Discover the rugged scenery along one of New Zealand's most awe-inspiring highways. The viewing platforms overlooking Franz Josef show the sheer size and beauty of these natural wonders and provide fantastic photo opportunities. . SIC Customers will travel in a coach and self-drive customers will travel in their rental car.<br />
Overnight in hotel. (B)</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> To Christchurch via Greymouth (Tranz alpine train will be applicable only for SIC clients)
								</p>
								<p class="aj">After breakfast, check out from hotel and leave to Greymouth. On arrival you will board Tranz Alpine train (Seat in coach customers only) for one of the most scenic train journeys in the world. On arrival in Christchurch you will be transferred to hotel. . SIC Customers will travel in a coach and self-drive customers will travel in their rental car. <br />
Overnight at hotel. (B)</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 10:</b> Departure day
								</p>
								<p class="aj">After breakfast SIC customers will be transferred to airport in a shared vehicle. Self-drive customers will travel their rental car, drop the car at airport branch and board your flight for onward journey (flight not included)<br />
<br />
End of service……………</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.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Vv002 Coulors Of New Zealand 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="85326"/>
						</form>
						</div>
						
						";i:1;s:73:"Book Vv002 Coulors Of New Zealand Tour - 9 Nights / 10 Days Tour Packages";i:2;s:163:"book vv002 coulors of new zealand tour - 9 nights / 10 days tour packages, valley tour packages, auckland, christchurch, rotorua, queenstown, waitomo tour packages";i:3;s:215:"Book Vv002 Coulors Of New Zealand Tour - 9 Nights / 10 Days tour packages from Sanskruti Vacations - Get attractive 9 Nights / 10 Days Valley  tour packages for  Auckland, Christchurch, Rotorua, Queenstown, Waitomo.";i:4;s:457:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Auckland, Christchurch, Rotorua, Queenstown, Waitomo"        
		                 },
		      "description": "",
		      "name": "Vv002 Coulors Of New Zealand Tour",
		      "telephone": "+91-9769880881"
		    }
		    </script>
			";i:5;N;}