a:6:{i:0;s:13836:"				<div class="h1"><h1>Trans Himalayan Jeep Safari Spiti Leh Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.majestickullumanali.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.majestickullumanali.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Trans Himalayan Jeep Safari Spiti Leh 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">
						12 Nights / 13 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Manali, Leh Ladakh, Lahaul & Spiti, Sarchu, Kahrdungla</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.majestickullumanali.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Trans Himalayan Jeep Safari Spiti Leh 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="21792"/>
						</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_9/269130/40057.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/269130/40057.jpg"  height="150"  width="150"    alt="Trans Himalayan Jeep Safari Spiti Leh Tour" title="Trans Himalayan Jeep Safari Spiti Leh 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 Manali
								</p>
								<p class="aj">On your arrival at Manali, you will be met by our representatives and transferred to a hotel. Rest of the day at leisure. Overnight stay will be in 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 2:</b> Manali
								</p>
								<p class="aj">Morning visit Hadimba Temple, Manu Temple and Tibetan monastery. Thereafter free time to relax Evening welcome Dinner. Overnight 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 3:</b> Manali to Chandertal
								</p>
								<p class="aj">Morning after breakfast Start for Chandertal enroute, stop for lunch at Chatru. Thereafter continue your drive to Chandertal. Arrive Chandertal and enjoy the beautiful lake. Overnight at 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> Chandertal-Kaza
								</p>
								<p class="aj">Morning after breakfast drive to Kaza. Arrive Kaza and check in at Hotel. Thereafter drive to Kibber Village (4,025m) and the famous Ki-Monastery (4,116m). Though the distance to Ki is not much, but you have to ascend a height of more than 1,000 M on a difficult road. Ki is the oldest and largest Gompa in Spiti having a spectacular location. Evening back to Kaza. Overnight 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 5:</b> Kaza-Dhankar-Tabo
								</p>
								<p class="aj">Morning after breakfast drive to Tabo visiting Dhankar Monastary. Visit Tabo Gompa (temple). Founded in 996 AD, the Gompa has some of the best-preserved examples of Indo-Tibetan art remaining in the world. Dinner and overnight in the Hotel/tent.</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> Tabo to Losar (171 Km)
								</p>
								<p class="aj">In the morning, leave for Kaza (3,600 meters), at about 47 Km from Tabo and then to Kibber, 18Km up. Visit the scenic Kibber Village (4,025m) and the famous Ki-Monastery (4,116m). Though the distance to Ki is not much, but you have to ascend a height of more than 1,000 M on a difficult road. Ki is the oldest and largest Gompa in Spiti having a spectacular location. Later, ride down to Rangrik and then into the barren landscape in a gorge for next 30 Km to Hanse (3,950m) clinging to the road cliffs and the unpaved stretch of roads with not many villages falling en-route. Then, ride further 20Km to arrive at Losar (4,079m).<br />
<br />
Dinner and overnight camping at Losar.</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> Losar to Jispa (174Km)
								</p>
								<p class="aj">Enjoy an early morning ride up to Kunzumla Pass (4,551 m) & then proceed to visit the picturesquely beautiful Chander Tal Lake (4,270m), about 12 Km from the Pass. Spend some time and enjoy the spectacular beauty of the surroundings around the lake.<br />
<br />
Thereafter, drive to Batal-Chhatru-Gramphoo and then to Tandi. Have your lunch en-route. Later, proceed to Keylong. Dinner and overnight in the hotel at Keylong.</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> Losar to Jispa (174Km)
								</p>
								<p class="aj">Enjoy an early morning ride up to Kunzumla Pass (4,551 m) & then proceed to visit the picturesquely beautiful Chander Tal Lake (4,270m), about 12 Km from the Pass. Spend some time and enjoy the spectacular beauty of the surroundings around the lake.<br />
<br />
Thereafter, drive to Batal-Chhatru-Gramphoo and then to Tandi. Have your lunch en-route. Later, proceed to Keylong. Dinner and overnight in the hotel at Keylong.</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> Ride to Sarchu (104 Km)
								</p>
								<p class="aj">After breakfast, drive to Jispa-Darcha and proceed through the hairpin bends entering into the Higher Himalayan Range. After reaching the top of the gorge, drive straight to Himmatnagar Cantonment. It is again an unpaved stretch of the Patseo & ZinZing Bar hairpins bends, as you get closer to Suraj Tal. Then, proceed to Baralacha La (4,883m). Later, descend down to arrive at Bharatpur. Enjoy your packed lunch and enter to the gorge of Sarchu. Come out of the gorge after crossing the bridge and enter the Sarchu Plateau (4,100m). Here you can enjoy a cool and refreshing breeze, soothing your body and nerves. Dinner and overnight in tents at Sarchu.</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> Sarchu to Leh (246 Km)
								</p>
								<p class="aj">Today, you will enjoy a long but pleasurable Drive. Drive in the plateau area for next 30 Km with a good speed but be cautious of the bad patches en-route. Ascend the road bends of Gata Loops early in the morning to beat the uphill traffic and scale the height of Takh (3,950m) and then it is a downhill. Cross over the low-lying road in the stream and ascend uphill again to the height of Lachung La Pass (5,060m) about 54 km from Sarchu. Then, drive downhill for 25 km till you hit the base of bridge before Pang (4,630m). Ensure to cross over Pang before 12.00 noon as traffic is not allowed in afternoon. Later, cross Tanglang La (75km from Pang) and another 30 km to Rumtse. Thereafter, proceed further to Leh, the saddle of Buddhist Culture.<br />
<br />
Dinner and overnight in the hotel in Leh.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Leh to Khardung La and ride into Nubra Valley
									</p>
									<p class="aj">Ride to the world’s highest motorable road, Khardung La. At 18,380 feet (5,602m), the ride will take a few hours of climbing out of Leh. Capture the unforgettably beautiful view in your camera at the top, and then ride down into the beautiful Nubra Valley. Tonight stay in a fixed camp for dinner and 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 12:</b> Nubra Valley to Khardung La to Leh
									</p>
									<p class="aj">From Nubra Valley, backtrack to Khardung La and then Leh. Enjoy free time at Leh. Overnight stay at Leh.</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 13:</b> Leh – Delhi
									</p>
									<p class="aj">Board an early morning flight from Leh airport for Delhi.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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>
												</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.majestickullumanali.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Trans Himalayan Jeep Safari Spiti Leh 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="21792"/>
						</form>
						</div>
						
						";i:1;s:83:"Book Trans Himalayan Jeep Safari Spiti Leh Tour - 12 Nights / 13 Days Tour Packages";i:2;s:175:"book trans himalayan jeep safari spiti leh tour - 12 nights / 13 days tour packages, valley tour packages, manali, leh ladakh, lahaul & spiti, sarchu, kahrdungla tour packages";i:3;s:230:"Book Trans Himalayan Jeep Safari Spiti Leh Tour - 12 Nights / 13 Days tour packages from Majestic Kullu Manali - Get attractive 12 Nights / 13 Days Valley  tour packages for  Manali, Leh Ladakh, Lahaul & Spiti, Sarchu, Kahrdungla.";i:4;s:468:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Manali, Leh Ladakh, Lahaul & Spiti, Sarchu, Kahrdungla"        
		                 },
		      "description": "",
		      "name": "Trans Himalayan Jeep Safari Spiti Leh Tour",
		      "telephone": "+91-9816800144"
		    }
		    </script>
			";i:5;N;}