a:6:{i:0;s:13043:"				<div class="h1"><h1>Himalayan Delight Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.visithimalayatours.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.visithimalayatours.com/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Himalayan Delight 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">Chandigarh City, Dalhousie, Manali, Shimla, Dharamshala</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.visithimalayatours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himalayan Delight 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="38894"/>
						</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_10/283509/78677.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/283509/78677.jpg"  width="150" height="150"    alt="Himalayan Delight Tour" title="Himalayan Delight 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> Delhi / Shimla
								</p>
								<p class="aj">Arrive Delhi. You will be met, assisted and driven to Shimla (366 kms / 8.5 hrs approx). Arrive Shimla and check in to your hotel. Overnight in Shimla.</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> Shimla
								</p>
								<p class="aj">Proceed for a full-day tour of Shimla. Visit the six-storeyed Vice-Regal Lodge or Rashtrapati Niwas, formerly the residence of Lord Dufferin, the British Viceroy. The style of architecture is English Renaissance, the masonry comprises light blue limestone and the wrought stonework is done in sandstone. Also visit the Christ Church and St. Michael's Cathedral, known for its stained glass window. Overnight in Shimla.</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> Manali
								</p>
								<p class="aj">Drive to Manali (260 kms / 7 hrs approx). Arrive Manali and check in to your hotel. Rest of day at leisure. Overnight in Manali.</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> Manali
								</p>
								<p class="aj">Proceed for a full-day excursion to Rohtang Pass (One way 51 kms / 3.5 hrs approx). Manali is the gateway to Rohtang pass beyond which lie the twin valleys of Lahaul and Spiti. The pass is at an altitude of 13,400 ft., and the area offers spectacular sights of glaciers and peaks, and Chandra river that flows down the Lahaul valley. Overnight in Manali.<br />
<br />
Rohtang Pass<br />
Activity Place<br />
Rohtang Pass is a high mountain pass on the eastern Pir Panjal Range of the Himalayas around 51 km from Manali. It connects the Kullu Valley with the Lahaul and Spiti Valleys of Himachal Pradesh.<br />
Maximum Duration of Visit: 3:0 hrs</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> Manali
								</p>
								<p class="aj">Proceed for a full-day tour of Manali. Visit the Hidimba or Dhungri Temple, dedicated to Hidimba, wife of the Pandava prince, Bheema. The temple is noted for its four-storeyed pagoda and exquisite wooden carvings. Visit the Manu Maharishi Temple, dedicated to sage Manu. Later visit Vashisht Kund, to see a pair of old stone temples. Thereafter proceed to the Tibetan Market, featuring shops that sell shawls, woolen clothes, handicrafts, imported goods and souvenirs. Overnight in Manali. <br />
<br />
Hidimba Devi Temple<br />
Temple<br />
Hidimba Devi Temple, also known variously as the Hidimba Temple,is located in Manali,a hill station in the State of Himachal Pradesh in north India.It is an ancient cave temple dedicated to Hidimba<br />
Maximum Duration of Visit: 1:0 hrs<br />
<br />
Vashistha Kund<br />
Temple<br />
A tiny local, situated on the banks of the majestic River Ravi, Vashisht is bestowed with natural springs and fabulous sand stone temples. The Vasisht Kund temple is dedicated to Sage Vasisht and<br />
Maximum Duration of Visit: 2:0 hrs</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> Dharamsala
								</p>
								<p class="aj">Drive to Dharamsala (235 kms / 5 hrs approx). Arrive Dharamsala and check in to your hotel and relax. Overnight in Dharamsala.<br />
<br />
Explore Dharamsala<br />
<br />
Dharamshala, India<br />
Dharamshala or Dharamshala is a hill station in Himachal Pradesh, famed for its large Tibetan community centered around the activities of the Dalai Lama.</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> Dalhousie
								</p>
								<p class="aj">Proceed for a half-day sightseeing tour of Dharamshala. Set against the magnificent backdrop of the towering Dhauladhar ranges, Dharamsala, lies perched up on the high slopes of the Kangra valley. Dharamsala is better known as Dalai Lama's abode and Tibet's Government-in-exile. A visit to the Namgyal Monastery, ensconcing the Center of Tibetan Studies is nothing short of mandatory. Visit McLeod Ganj - Little Lhasa is thick with the Tibetan cultural feel. Evening, drive to Dalhousie (143 kms / 3.5 hrs approx). Arrive Dalhousie and check in to your hotel. Overnight in Dalhousie</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> Dalhousie
								</p>
								<p class="aj">Enjoy a day at leisure in Dalhousie. Built on and around five hills, Dalhousie is located on the edge of the Dhauladhar range and surrounded by breathtaking snow- capped peaks. Overnight in Dalhousie.</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> Chandigarh
								</p>
								<p class="aj">Drive to Chandigarh (318 kms / 6 hrs approx). Arrive Chandigarh and check into your hotel. Afternoon proceed for a half-day tour of Chandigarh. Visit the famous Rock Garden. Spread over 12 acres of wooded land, it features urban waste turned into art objects. Also visit the Rose Garden this beautiful garden features nearly 1,600 varieties of roses. Later, visit the Government Museum & Art Gallery. Overnight in Chandigarh. Chandigarh is a city in Northern India that serves as the capital of the states of Punjab and Haryana.Chandigarh has various visitor attractions including. more<br />
Top things to do<br />
Restaurants<br />
Hotels<br />
Shopping<br />
Travel Tips<br />
<br />
Rock Garden<br />
Place to Visit<br />
Rock Garden [11] designed by Nek Chand. One day 36 years ago, Nek Chand, a humble transport official, began to clear a little patch of jungle to make himself a small garden area. He set stones around<br />
<br />
Rose Garden<br />
Place to Visit<br />
Zakir Hussain Rose Garden, is a botanical garden located in Chandigarh, India and spread over 30 acres (120,000 m2) of land, with 50,000 rose-bushes of 1600 different species. Named after India's .<br />
Maximum Duration of Visit: 2:0 hrs<br />
<br />
Government Museum & Art Gallery<br />
Museum<br />
Located in Sector 10, Government Museum & Art Gallery in Chandigarh is a very famous tourist attraction place that houses magnificent Gandhara period stone sculptures. This museum is open on all days.<br />
Maximum Duration of Visit: 3:0 hrs</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> Chandigarh / Delhi
								</p>
								<p class="aj">Drive to Delhi (250 kms / 5 hrs approx). Proceed to the airport to board the flight for your onward 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>
																		<li>Transport</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.visithimalayatours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himalayan Delight 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="38894"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Himalayan Delight Tour - 9 Nights / 10 Days Tour Packages";i:2;s:163:"book himalayan delight tour - 9 nights / 10 days tour packages, lakes & rivers tour packages, chandigarh city, dalhousie, manali, shimla, dharamshala tour packages";i:3;s:217:"Visit Himalaya Tours & Trek Pvt. Ltd. offers Himalayan Delight Tour - 9 Nights / 10 Days tour package, budget Lakes & Rivers tour packages for Chandigarh City, Dalhousie, Manali, Shimla, Dharamshala at exciting price.";i:4;s:449:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Chandigarh City, Dalhousie, Manali, Shimla, Dharamshala"        
		                 },
		      "description": "",
		      "name": "Himalayan Delight Tour",
		      "telephone": "+91-9899262860"
		    }
		    </script>
			";i:5;N;}