a:6:{i:0;s:11057:"				<div class="h1"><h1>Shimla Manali Tour Packages</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travelroots.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelroots.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Shimla Manali Tour Packages</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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Kullu, Manali, Shimla</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.travelroots.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Shimla Manali Tour Packages - 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="120337"/>
						</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_16/450898/194943.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/450898/194943.jpg"  width="150" height="150"    alt="Shimla Manali Tour Packages" title="Shimla Manali Tour Packages" /></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
								</p>
								<p class="aj">On arrival at Delhi airport before 12 Noon our driver will pickup you. And transfer to Shimla by  Car. Situated in the North-west Himalayas, Shimla is the capital of Himachal Pradesh. Simla (now spelled Shimla) was the glorious summer resort of the British Raj, famous for its snowcapped peaks, apples, and pine forest, flowers and gentle smiling people. On arrival check in hotel. Overnight stay 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> Shimla - Kufri
								</p>
								<p class="aj">After a scrumptious breakfast, leave the hotel for an excursion to Kufri. It is a small hill station in Himachal Pradesh, which is widely acknowledged for its undulating mountain terrains and lush greenery.<br />
One of the most prominent attractions of this place includes the Himalayan Wildlife Zoo, which is home to a variety of rare species of wild animals and birds. Also, this destination has an amusement park, which is an ideal place to spend quality time with family and friends.<br />
After enjoying a sightseeing tour of Kufri, return proceed for a leisure walk in the beautiful Mall Road of Shimla. This road, constructed during British colonial rule, has numerous showrooms, shops, eateries and cafés.<br />
Evening Back to Hotel 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 3:</b> Shimla - Manali
								</p>
								<p class="aj">After Breakfast, check out hotel and depart for Manali. Drive past Beas-Sutlej Link project, Pandoh Dam/ Kullu Valley.  Lunch shall be en-route on direct payment basis.<br />
At the northern end of the Kullu valley sits the ancient site, but modern town, of Manali. It is a pleasant, if overdeveloped, town with lovely forests and orchards nearby for hiking, and good facilities for visitors. In the 1970s and 1980s, Manali was very much a 'scene'. In summer, the town would attract numerous western hippies and travelers drawn by the high quality marijuana that grows in the area<br />
Evening on arrival check in the hotel 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> Manali - Snow point
								</p>
								<p class="aj">After Breakfast, proceed for a Day trip to Rohtang Pass reroute visit Rahala Water Falls and Rani Nullah falls Solang Valley. Over Night Stay at Hotel.<br />
Rohtang Pass (3979 m): Rohtang pass is 51kms. From Manali on highway to Keylong/Leh. It offers a panorama and spectacular mountain view. The pass is open from May to October each year although trekkers can cross it earlier. It is a gateway to Lahaul Spiti, Pangi and Leh valley. There are beautiful sights of glaciers, peaks and Chandra river flows down in the Lahaul valley. ( If Rohtang Will be Closed We will show you Solang Valley )<br />
<br />
Rahala Water Falls: 16kms. On the way to Rohtang pass. If one goes to Marhi on foot from Kothi from the old road, the sight of the falls is fascinating. It is a good picnic spot as well.</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 Sightseeing
								</p>
								<p class="aj">After Breakfast leave for Half day Local sightseeing <br />
<br />
Manali Sightseeing Places<br />
<br />
Hadimba Temple is dedicated to the wife of Bhim, one of the five Pandava brothers in the Indian epic Mahabharata. As the legend goes, Bhim married Hadimba and they had a son. Later on, Hadimba left the place and became a spiritual. <br />
<br />
Manu Temple which is believed to be the only temple of Manu in India, who is considered as the creator of the human race on earth. Located at a distance of 3 km from the main bazaar in Old Manali, the temple is believed to be the abode of Manu, the ancient law-giver of India, <br />
<br />
Vashist springs and temple in a tiny hamlet situated on the bank of Beas River that turns towards Rohtang. It is well known for its hot sulphur springs and temples. Taking a dip in this water is considered sacred by many. Nearby is the pyramidal stone temple devoted to Vashist Muni, a revered sage, Nehru Kund is a natural spring in the region. Located at a distance of around 6 km from Manali, it has been named after the late Prime Minister Jawahar Lal Nehru. The Kund has derived its name from Nehru, as he used to drink water from it, on his journey to Manali, <br />
<br />
The Manali Gompa which serves as an important gathering place for Buddhists from Lahaul, Spiti, Kinnaur, Ladakh, Nepal and Tibet. Built in the 1960s, the new monastery is famous for its wall paintings, Chortens and a large statue of Lord Buddha, <br />
<br />
Van Vihar which is a municipal garden is situated in front of the Tibetan market on Mall Road. In the lake located within the park, tourists can opt for boating. The park is adorned with big deodar trees.<br />
​</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> Departure
								</p>
								<p class="aj">Morning After breakfast Drive to Delhi, Drop at Delhi IGI Airport Terminal 1, After 5 Pm and fly back to home, With Sweet Memories of Shimla Manali Packages</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.travelroots.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Shimla Manali Tour Packages - 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="120337"/>
						</form>
						</div>
						
						";i:1;s:66:"Book Shimla Manali Tour Packages - 5 Nights / 6 Days Tour Packages";i:2;s:136:"book shimla manali tour packages - 5 nights / 6 days tour packages, valley tour packages, new delhi, kullu, manali, shimla tour packages";i:3;s:184:"Travel Root Solutions Pvt. Ltd. offers Shimla Manali Tour Packages - 5 Nights / 6 Days tour package, budget Valley tour packages for New Delhi, Kullu, Manali, Shimla at exciting price.";i:4;s:431:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Kullu, Manali, Shimla"        
		                 },
		      "description": "",
		      "name": "Shimla Manali Tour Packages",
		      "telephone": "+91-9625922222"
		    }
		    </script>
			";i:5;N;}