a:6:{i:0;s:15319:"				<div class="h1"><h1>Stok Kangri Trek Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rapidactionexpedition.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rapidactionexpedition.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Stok Kangri Trek 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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Leh Ladakh</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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Stok Kangri Trek 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="101010"/>
						</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/446641/169647.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/446641/169647.jpg"  height="150"  width="150"    alt="Stok Kangri Trek Tour" title="Stok Kangri Trek Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Your trek starts with the arrival from Delhi to Leh. Spend some time to acclimatize with the beauty and weather. Leh is the place where you get the perfect combination of natural exquisiteness with cultural beauty. The whole path to the Stok Village is full of natural grandeur and flourishing green trees. From Changa Ma, you will go to Base Camp. Set up in a grassy area, it is a place that gives pleasure to everyone. This exotic area has many water bodies. Staying here in the tents is a life time opportunity. You will rest here for one complete day and get adequate knowledge about all the possibilities and challenges of the trek from your guide. From here, you will trek to your destination Stok Kangri. Ascend climbing for 9-10 hours and you will reach at the top of the ridge. Standing at the summit, you can view the Karakoram Range to your north and Zanskar Range to your south. At your front, the extensive and open ground provides you a regal feel. This trek offers you the incredible trekking experience. We are the best trekking company in providing the finest customized deals to trekkers worldwide. We develop a schedule as per your requirements and needs. With us, you will experience the best trekking excursion every time. We not only plan your trip, but take care of every issue no matter big or small. Our motto is to create the most excellent trekking experience of your life. Simply give us a call and leave everything on our professionals. Call us..Today..!!Food / Meal in Leh.<br />
Any kind of personal expenses.<br />
Insurance.<br />
Mules or porter to carry personal luggage.<br />
Anything not specifically mentioned under the head price Includes.<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> Arrive Leh
								</p>
								<p class="aj">Your trekking to Stok Kangri begins with the arrival to Leh. You can easily reach Leh once you come to Delhi. You can reach Leh from Delhi either through a flight or through the road. Taking the flight is a better option as you would be saving a lot on time and energy. Taking the road may cost you a lot of time as you have to first go to either Srinagar or Manali to start for Leh. You can spend a day in Leh to acclimatize to the weather. Trekking in the area of Leh is among the best options among Trekking in India.</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> Leh (Acclimatization day)
								</p>
								<p class="aj">On day 2nd, you can enjoy the cultural and natural beauty of Leh. This can be considered as a day to get familiar with the town and also acclimatize to the weather. Lah is culturally a rich place. There are dozens of monasteries and ancient temples that you can go around. They are located in and around the town. Therefore you would be getting enough time to go around the place in a day. You can have an overnight stay in Leh. The hotels are easily accessible and rates are reasonable too. You can enjoy trekking here as post monsoon trek and pre monsoon trek.</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> Leh (11500 ft.) to Chang Ma (13087 ft.) via Stok Village (11800 ft.)
								</p>
								<p class="aj">It is one of the best sites that you would have once you have decided to trek this area of land. Trekking in Leh, could be considered by some people to be living their dreams. At any point of time, you might just feel that you are right in the middle of heaven. This is a day when you would enjoy a great drive and have an enjoyable trekking experience. The day starts with a drive to Stok village. At the start of the drive from Leh, you would go through many exotic and beautiful scenes. The drive to the Stok village is an adventurous one and if full of natural beauty and lush green trees. The weather is perfectly fine for the summer season. The Stok village lies immediately to the south of Leh and it is well known for a royal palace. The recently crowned king of Ladakh lives here. There is also a small museum inside the palace which has beautiful and religious artifacts.<br />
<br />
The day 3 is however the day when you trek to Chang Ma. This might be a difficult trek and you may experience the joy of a snow trek. You would like to spend the night here and the overnight stay would be in tents in the open lands.</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> Chang Ma (13087 ft.) to Mankorma (14200 ft.)
								</p>
								<p class="aj">The whole trek passes through the barren grey landscape of Ladakh. From chang ma trek up to Mankorma, This day will show you the real beauty of ladhak and gives you the answer why ladhak known as cold desert, while trekking you will cross the 2-3 times small streams, it is a fairly easy trek along with the river and you would love the overnight stay in tents.</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> Mankorma (14200 ft.) to Base camp (16300 ft.)
								</p>
								<p class="aj">A few hours trek takes you back to the base camp. This exotic base camp is a pleasurable place. It lies in a grassy area. This area has a number of water bodies in the form of lakes and water streams. During the day time, you can walk on the upper areas of the campsite and enjoy the views of the surroundings. There are some beautiful peaks like Gulap Kangri, Parcha Kangri and many others. You can also take rest in the base camp to make sure that the group is ready for the next day’s trek and touring. You would get time to acclimatize to the weather. This is pretty necessary because in the coming days, you wuld find a drastic change in the climate and might experience thin air and lack of oxygen.<br />
<br />
The overnight stay, would again be arranged in tents and make sure that you have enough warm clothes for the lowering temperature.</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> Rest day + training day
								</p>
								<p class="aj">This day is an easy day for trekkers. You would enjoy the time for going around and knowing the place to a much better extent. It is essentially a day to train for the upcoming trek and know the possibilities and challenges that are involved in it. Your trek leader and guide would let you know about all the different changes in the terrain. You need adequate knowledge and experience to go around the mountains. There might be situations where you have to trek in the sinking snow. You would find your legs sinking up to your knees. Therefore it is essential that you know the weather and surrounding conditions. It is also a day when you would to take enough rest so that you are well prepared for the coming excursion. The overnight stay would again be in tents. By now, you should be well familiar to the conditions prevailing during the day and night.</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> Base camp (16300 ft.) to Stok Kangri (20080 ft.) back to base camp.
								</p>
								<p class="aj">Now that you have had rest for a day i.e. the Stok Kangri trek, you should be well prepared for the big climb. You should wakeup early to start the climb. The route goes through glaciers and then comes to steep slopes to the summit ridge. This is a long climb, so you should be mentally strong and prepared psychologically. It would take somewhere between 9 to 10 hours for average climbers. Slow climbers may take another 2 to 3 hours in addition. At the start of the trek, after a couple of hours, you should reach to the summit of the ridge. The summit offers you great views of the area. The wide and open surroundings give you a royal feeling. Towards the north, you would get a view of the Karakoram range. The Saser Kangri dominates the sky in the north along with the Karakoram, and the Zansker ranges in the south. The overnight stay, as usual, would be in tents.</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> Base camp to Leh
								</p>
								<p class="aj">Day 8 would be the ultimate day of your fantastic trekking experience. The trek which included high altitude trekking mountaineering and expedition would finally come to an end after this day. But before you end the day, you would see a lot of snow clad beauty and memorable view of mountain ranges. The joy of Ladakh trekking can be rejuvenated from this spot. As the day rises, you would have to start coming back from Base camp to Leh. The trek back could be difficult and you need to perform care and precision. On the same day, after you reach Leh, you would also have to cover up to Stok Village on your feet. Stok village is the final stopping point of trekking. From Stok village to Leh, you would have to take a drive. The drive may make you nostalgic of all the fun that you had while trekking the mountains in the last eight days.</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>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Food / Meal in Leh.</li><li>
Any kind of personal expenses.</li><li>
Insurance.</li><li>
Mules or porter to carry personal luggage.</li><li>
Anything not specifically mentioned under the head price Includes.</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.rapidactionexpedition.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Stok Kangri Trek 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="101010"/>
						</form>
						</div>
						
						";i:1;s:60:"Book Stok Kangri Trek Tour - 7 Nights / 8 Days Tour Packages";i:2;s:110:"book stok kangri trek tour - 7 nights / 8 days tour packages, trekking tour packages, leh ladakh tour packages";i:3;s:165:"Book Stok Kangri Trek Tour - 7 Nights / 8 Days tour packages from Rapid Action Expedition - Get attractive 7 Nights / 8 Days Trekking  tour packages for  Leh Ladakh.";i:4;s:2062:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Leh Ladakh"        
		                 },
		      "description": "Your trek starts with the arrival from Delhi to Leh. Spend some time to acclimatize with the beauty and weather. Leh is the place where you get the perfect combination of natural exquisiteness with cultural beauty. The whole path to the Stok Village is full of natural grandeur and flourishing green trees. From Changa Ma, you will go to Base Camp. Set up in a grassy area, it is a place that gives pleasure to everyone. This exotic area has many water bodies. Staying here in the tents is a life time opportunity. You will rest here for one complete day and get adequate knowledge about all the possibilities and challenges of the trek from your guide. From here, you will trek to your destination Stok Kangri. Ascend climbing for 9-10 hours and you will reach at the top of the ridge. Standing at the summit, you can view the Karakoram Range to your north and Zanskar Range to your south. At your front, the extensive and open ground provides you a regal feel. This trek offers you the incredible trekking experience. We are the best trekking company in providing the finest customized deals to trekkers worldwide. We develop a schedule as per your requirements and needs. With us, you will experience the best trekking excursion every time. We not only plan your trip, but take care of every issue no matter big or small. Our motto is to create the most excellent trekking experience of your life. Simply give us a call and leave everything on our professionals. Call us..Today..!!Food / Meal in Leh.
Any kind of personal expenses.
Insurance.
Mules or porter to carry personal luggage.
Anything not specifically mentioned under the head price Includes.",
		      "name": "Stok Kangri Trek Tour",
		      "telephone": "+91-9411191687"
		    }
		    </script>
			";i:5;N;}