a:6:{i:0;s:6716:"				<div class="h1"><h1>Treasure Hunt - 2 (Mussoorie - Nainital - Corbett) Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.kirtytours.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.kirtytours.com/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Treasure Hunt - 2 (Mussoorie - Nainital - Corbett) 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/4147/212.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/4147/212.jpg"  width="150" height="150"    alt="Treasure Hunt - 2 (Mussoorie - Nainital - Corbett) Tour" title="Treasure Hunt - 2 (Mussoorie - Nainital - Corbett) Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Duration :</b> 
						8 Nights / 9 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> New Delhi, Mussoorie, Nainital, Ranikhet, Corbett</p>
												<p><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.kirtytours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Treasure Hunt - 2 (Mussoorie - Nainital - Corbett) 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="370"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
										<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: Delhi - Ranikhet
									</p>
									<div class="data p10px">This morning we visit the Ridge, which offers magnificent views of the Nanda Devi. Later we proceed to the Golf course at Upat, the Government Fruit Garden and Research Station at Chaubatia.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Delhi - Ranikhet
									</p>
									<div class="data p10px">Our tour begins with a drive to Ranikhet where we will stay for two nights. Ranikhet with its majestic pine trees is situated 59 kms. From Nainital. According to the popular legend, once a beautiful queen camped here amidst the nestling pine, and hence the name.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Ranikhet - Nainital
									</p>
									<div class="data p10px">This morning we will be driven to Nainital and upon arrival, will check in to our hotel for two nights. Set around the 1.5km long and 500m wide Naini Lake, is the charming hill Station of Nainital. In the evening we take a stroll down the Mall or take a boat ride across the lake.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Nainital
									</p>
									<div class="data p10px">After breakfast we visit the Saat Taal (21kms) which are seven lakes including the jade green Garud Taal. Mountain biking and Rock Climbing for the more adventurous souls can be enjoyed here.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Nainital - Corbett
									</p>
									<div class="data p10px">Our journey this morning will bring us to Corbett where we will stay overnight. Take a jeep safari which is the best way to explore the jungle and its wildlife. The park is open from 15th November to 15th June.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Corbett
									</p>
									<div class="data p10px">This morning we drive to Mussoorie Named after the Himalayan shrub 'Mansoor'. Mussoorie is spread out over 16km, along a horse shoe shaped ridge overlooking the Doon Valley. The rest of the day is at leisure.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 7: Corbett - Mussoorie
									</p>
									<div class="data p10px">This day is at leisure for shopping. Take an optional tour to Kempty falls, a popular picnic spot situated 15kms away.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 8: Mussorie - Delhi
									</p>
									<div class="data p10px">After breakfast proceed to Delhi. Full day at Leisure.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 9: Delhi
									</p>
									<div class="data p10px">Tour ends with sweet memories.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
													<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Hotel</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:94:"Book Treasure Hunt - 2 (Mussoorie - Nainital - Corbett) Tour - 8 Nights / 9 Days Tour Packages";i:2;s:181:"book treasure hunt - 2 (mussoorie - nainital - corbett) tour - 8 nights / 9 days tour packages, valley tour packages, new delhi, mussoorie, nainital, ranikhet, corbett tour packages";i:3;s:234:"Book Treasure Hunt - 2 (Mussoorie - Nainital - Corbett) Tour - 8 Nights / 9 Days tour packages from Kirty Tours & Travels - Get attractive 8 Nights / 9 Days Valley  tour packages for  New Delhi, Mussoorie, Nainital, Ranikhet, Corbett.";i:4;s:476:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Mussoorie, Nainital, Ranikhet, Corbett"        
		                 },
		      "description": "",
		      "name": "Treasure Hunt - 2 (Mussoorie - Nainital - Corbett) Tour",
		      "telephone": "+91-9021222720"
		    }
		    </script>
			";i:5;N;}