a:6:{i:0;s:13422:"				<div class="h1"><h1>Hampta Pass Trek</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.nomadicsteps.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.nomadicsteps.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Hampta Pass Trek</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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Manali</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.nomadicsteps.co.in/enquiry-form-10003.htm">
						<input type="hidden" name="subject" value="Hampta Pass Trek - 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="88350"/>
						</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/466826/153841.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/466826/153841.jpg"  width="150" height="150"    alt="Hampta Pass Trek" title="Hampta Pass Trek" /></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> Manali
								</p>
								<p class="aj">Arrival in Manali (on your own). Complete the check- in formalities at a Hotel. Check-in is followed by sightseeing in the beautiful Manali. One of the most popular hill stations in India, Manali receives heavy footfall of honeymooners and family vacationers every year. Lush ambiance, pleasant weather, adventure activities allure people from all around. Some of the main tourist attractions of Manali that you can visit include Solang Valley, Hidimba Devi temple, Rohtang pass and so on.<br />
<br />
Stay overnight stay 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 2:</b> Manali - Chika
								</p>
								<p class="aj">Today, you begin your journey towards Chika, a lovely sleepy town. Located at an altitude of 10,250 feet about the sea level, Chika would make you fall in love with her. On the way, you halt at Vashisht temple known for its hot springs. Just 3 km from Manali, this temple lies on the banks of Ravi River. The hot springs here are known to have therapeutic properties and the temple is dedicated to Sage Vashisht. Later, you can explore the tiny hamlets that are sprinkled here and there. One of such lovely village is Prerni. As you trek along the roads of the state, admire the mesmerizing scenery. Continue trekking to arrive at Jobri. You now come across roads that are dividing and notice a hike in the altitude. You can spot the temporary home of the workers of a hydro park here. The trek till here is pretty easy. Next, you walk upon a manmade concrete bridge. Cross the bridge and keep left, you arrive at a forest with coniferous trees. As you walk past Aleonallah, arrive at lush meadow that look extremely soothing. The landscape here is flat and so the trek is easy. After walking for 2 - 3 hours in the same direction, you arrive at today's destination-Chika. Set your camp near the water stream of water. Just relax and treat your eyes to the enchanting scenery.<br />
<br />
Overnight in camp.</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> Chika - Balu Ka Ghera
								</p>
								<p class="aj">On the 2nd day, relish a healthy breakfast and get all set for the day's trek that will take you to Bhalu ka Ghera, known for being home to brown bears. In the winter months, brown bears come to this place for hibernating. Walk in the same direction, you will see a bridge, made up of logs. As you carefully cross the bridge, you can now see a stream. Keep left. A high descent starts where you walk past colorful flowers. After sometime, you come across another stream. It is advisable that you cross the stream in the morning hours as the current is slow at this time. Walk on the left side and after a while you arrive at today's destination. The distance that is covered today is around 8 km and the time span of 4-5 hours. Once at the campsite, relax, savor the tranquility and admire the scenery.<br />
<br />
Stay overnight in camp.</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> Balu Ka Gera - Siagoru (walk past Hampta Pass)
								</p>
								<p class="aj">Begin your day early. Keep yourself on left of the valley and start the trek. You keep walking and walking for a couple hours and all you would see on your back is a sheet of white snow. Stay on left and you finally arrive at Hampta Pass. The experience of trekking in Hampta Pass is going to be a memorable experience for you. The scenic beauty is matchless. Do not forget to take pictures. On the way, you can relax at the stalls. After you begin walking past the Hampta Pass, you arrive at Lahaul, around 14000 feet above the sea level. You will love walking on the sheet of snow that remains the same all around the year. The trek is of moderate difficulty level and does not need much efforts from you. Just be careful while crossing the last bridge. The climb is a steep and difficult one. The climb is followed by a vast descent and finally you arrive at a plain surface. Walk past a number boulders. Walk in the same direction for some time and you come across a stream. Keep left. Continue walking on plain surface and after some time you reach Siagoru, lying at an above sea level of 13000 feet above the sea level. Set your camp here. You are going to love the place. The scenery is enchanting. After walking for 14 km, you would be tired. So, relax here, in the lap of nature.<br />
<br />
Stay overnight in camp.</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> Siagoru – Chatru-Camp
								</p>
								<p class="aj">After an early breakfast, start your day early. Start trekking, cross the river that can also be seen from your camp. The first half of your trek would be an easy descend but the other part of the trek would be tiresome that include an extremely steep altitude. You might feel slightly tired while crossing the rock zone. Once you walk past the descending path, you can now see the huge valley of river Chandra.<br />
<br />
Lying on the highway of Manali and Kaza, this river valley is 1000 feet above the sea level. While on one side you can see the barren might mountains, on the other you view snow-clad mountain peaks. There are a number of dhabas. Enjoy tasty food during your trek. You have covered 8 km today in around 5 hours.<br />
<br />
Stay overnight in a camp.</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> Drive to Chandratal - Manali
								</p>
								<p class="aj">This is the latter part of the trekking tour and you are going to return back to Manali. In the morning, get into the cars and begin driving to Chandra Tal. This road opens between mid-July and last week of October. During rest of the year, the road remains inaccessible due to snow cover. In case, your trek is not between this duration, then need not worry as there is an alternative route too, via Kunzum la forming a border between Spiti and Lahaul. Drive past Chotadhara, en-route from Kaza to Batal. After your reach Batal, you have 2 options. You can either continue to Chandra Tal that is around 14000 feet above the sea level, or you can continue towards Kunzum la.<br />
<br />
The lake is called Chandra Tal becauase its shape appears like a moon with glistening crystal clear water. When you are at the site, treat your eyes to the mesmerizing scenery and feel the cool breeze while you standing surrounded by the mighty peaks. Notice the colorful prayer flags fluttering. From Kunzum La also you can have a night view of the Chandra Bhaga range. Here also prayer flags put-up by the visiting people, are in-view. In case, the flag is of white color, it has been tied on someone's death and if the flag is a colored one, it means that someone's prayer got fulfilled. Do not miss spotting the good luck wheel here known as an important part of the people's day to day life. By rotating the wheel, one can bring good luck in his life. After enjoying the surroundings, we get back to Manali by the evening, via Chhatru and Rohtang Pass. The total distance covered today is 200 km. on reaching check-in at the hotel.<br />
<br />
Stay 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 7:</b> Departure from Manali
								</p>
								<p class="aj">Post breakfast on the last day of your tour, complete the check-out formalities and depart from Manali.</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.nomadicsteps.co.in/enquiry-form-10003.htm">
						<input type="hidden" name="subject" value="Hampta Pass Trek - 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="88350"/>
						</form>
						</div>
						
						";i:1;s:55:"Book Hampta Pass Trek - 6 Nights / 7 Days Tour Packages";i:2;s:101:"book hampta pass trek - 6 nights / 7 days tour packages, trekking tour packages, manali tour packages";i:3;s:146:"Book Hampta Pass Trek - 6 Nights / 7 Days tour packages from Nomadic Steps - Get attractive 6 Nights / 7 Days Trekking  tour packages for  Manali.";i:4;s:394:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Manali"        
		                 },
		      "description": "",
		      "name": "Hampta Pass Trek",
		      "telephone": "+91-9469261146"
		    }
		    </script>
			";i:5;N;}