a:6:{i:0;s:10373:"				<div class="h1"><h1>Uttarakhand Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.highspiritadventures.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.highspiritadventures.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Uttarakhand 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">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Mussoorie, Rishikesh</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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Uttarakhand 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="118724"/>
						</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/445618/192505.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/445618/192505.jpg"  width="150" height="150"    alt="Uttarakhand Tour" title="Uttarakhand 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 Delhi
								</p>
								<p class="aj">On reaching Delhi, get ready for a scenic drive to Rishikesh – the world capital of Yoga.<br />
<br />
Set in the foothills of the Himalayas, Rishikesh is a beautiful city that remains thronged with devotees and adventure enthusiasts all through the year. The city features a unique charm and scenic beauty which adds to the visit of every traveler. The place holds immense religious importance as it is the starting point of sacred pilgrimage tours of Hindus- the Char Dham Yatra (comprising Gangotri, Badrinath, Yamunotri and Kedarnath).The place features a serene and pleasant ambiance which is perfect for those who wish for some privacy and peace, away from the daily hustle and bustle of the overcrowded cities.<br />
<br />
Firstly, you will be driven to the Neelkanth Mahadev Temple, which is located around 35 km from Rishikesh. Set at an elevation of 1330 meter, Neelkanth Mahadev Temple is one among the most revered temples of Lord Shiva in the country. As per the legend, the temple is constructed at the same place where Lord Shiva consumed poison which came out of Samudra, because of which his throat turned blue. This incidence gave him the name of Neelkanth. Seek blessings of Lord Shiva and then leave for the next attraction.<br />
<br />
Visit Lakshman Jhula, a popular attraction of Rishikesh. The place is known to offer picturesque views of the snow capped mountains and lush green forests. The bridge was built in the year 1939 and it is believed that Lakshman, brother of Lord Ram, crossed the Ganges on jute ropes, on which the bridge stands today.<br />
<br />
In the evening, drive back to the hotel and 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 2:</b> Sightseeing in Rishikesh
								</p>
								<p class="aj">This day is booked for sightseeing at the popular attractions of Rishikesh. As you travel through the revered shrines and popular ashrams of Rishikesh, you get to know more about the rich history of the place. So, you visit attractions like Triveni Ghat, which is the place of confluence of the three holy rivers- the Ganges, Yamuna and Saraswati and Bharat Mandir, which was built back during 9th century by philosopher Adi Shankaracharya.<br />
<br />
Shivpuri is a beautiful place which is well-known for offering spectacular views of the valley. The place is also popular for activities like rafting and camping. You can indulge in activities like bungee jumping.<br />
<br />
Enjoy sightseeing and some adventure sports. Later, come back to the hotel and 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> Rishikesh to Mussoorie
								</p>
								<p class="aj">In the morning, you check out from the hotel and leave for your next destination- Mussoorie, the Queen of Hills.<br />
<br />
Located at the foothills of the Garhwal Himalayas, Mussoorie is set at an elevation of 1880 meter and offers breathtaking views of the snow capped Shivalik ranges. The place is known for its rich biodiversity, which allures wildlife enthusiasts from all over. Lal Tibba, located at height of 2290 meter is the highest point at the place. Gun Hill Mussoorrie, located at 6800 feet above sea level. This is second highest point of Mussoorrie On reaching Mussoorie, check-in at the hotel and 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 4:</b> Sightseeing in Mussoorie
								</p>
								<p class="aj">Wake up with the soft breeze of Mussoorie and get ready for a day set amid its serenity and scenic beauty. Begin with a visit to the popular tourist attractions of Mussoorie. The pleasant weather adds to your sightseeing tour of Mussoorie. Spend some time at the alluring Kempty Falls and feel close to nature. The falls is all around surrounded by flora and High Mountains which add to its beauty. Take a dip in the chilled water of the fall and enjoy some great time in a tranquil environment.<br />
<br />
Later, leave for the most popular attraction of the hill station, Mussoorie. Have a look at those buildings dating back to the British era. Shop some souvenirs from the market for your friends and family.<br />
<br />
After enjoying this beautiful day, return to the hotel and have a comfortable night stay 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> Departure
								</p>
								<p class="aj">This is the last day of your Uttarakhand Tour. Pack up your bags, check-out from the hotel and start driving drive towards Delhi, from where you can leave for your next destination. The tour ends here.</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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Uttarakhand 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="118724"/>
						</form>
						</div>
						
						";i:1;s:55:"Book Uttarakhand Tour - 4 Nights / 5 Days Tour Packages";i:2;s:124:"book uttarakhand tour - 4 nights / 5 days tour packages, valley tour packages, new delhi, mussoorie, rishikesh tour packages";i:3;s:178:"Book Uttarakhand Tour - 4 Nights / 5 Days tour packages from High Spirit Adventures - Get attractive 4 Nights / 5 Days Valley  tour packages for  New Delhi, Mussoorie, Rishikesh.";i:4;s:419:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Mussoorie, Rishikesh"        
		                 },
		      "description": "",
		      "name": "Uttarakhand Tour",
		      "telephone": "+91-8629029169"
		    }
		    </script>
			";i:5;N;}