a:6:{i:0;s:21228:"				<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="h1"><h1>Leh Ladakh  4 Nights / 5 Days</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.aasimtourtravel.co.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.aasimtourtravel.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Leh Ladakh  4 Nights / 5 Days</p> 
									
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						4 Nights / 5 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Leh Ladakh</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.aasimtourtravel.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Leh Ladakh  4 Nights / 5 Days - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="198209"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_24/691573/317804.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_24/691573/317804.jpg"  height="150"  width="150"    alt="Leh Ladakh  4 Nights / 5 Days" title="Leh Ladakh  4 Nights / 5 Days" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Duration : 4 Nights / 5 Days<br />
Destination Covered : Leh Ladakh<br />
Price (Starting From) : price on request<br />
* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.								</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 Leh.
										</p>
										<p class="aj">Arrival Leh, Wisdom representative will meet, greet, assist and transfer you to Hotel in Leh. Rest of the day free to acclimatize to the high altitude of Ladakh. In the evening take a walk to the local bazaar in Leh. Overnight at Hotel in 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 2:</b> Sightseeing around Leh (90 Kms round trip)
										</p>
										<p class="aj">Morning after breakfast visit Hall of Fame, Spituk Monastery and Kali Mata Temple, Magnetic Hill, Gurudwara Patthar Sahib and Confluence of Zanskar - Indus rivers. Return to Leh for lunch (on own). In the evening visit Leh Palace, Donkey Sanctuary and Shanti Stupa for beautiful sunset view. Dinner and overnight stay at the hotel in Leh.<br />
<br />
LADAKH HALL OF FAME: The Hall of Fame is a glorious museum constructed by the Indian Army. It is worth a visit for every citizen. You can see the memorabilia, eminent defense personalities with biographies, images and weapons used during the Kargil and other key strategic battles fought in Ladakh. And belongings of the enemy soldiers found at war site. All the martyr and the gallantry awards. Here’s something that you will be proud of our defense personnel who sacrificed themselves so that we could live in peace.<br />
<br />
SPITUK GOMPA: 8 Kms from Leh, it stands prominently on the top of hillock commanding a panoramic view of the Indus Valley for miles. Many icons of Buddha and fine Thankas are to be found in this 15th century Gompa. The Gompa also houses a collection of ancient masks, antique arms, and an awe-inspiring image of Mahakaal. The face of the Kali image is kept covered and is revealed only at the annual function at January every year.<br />
<br />
MAGNETIC HILL : Defying the Law of gravity. This place is close to the Gurdwara Shri Patthar Sahib. It has been noticed that when a vehicle is parked on neutral gear on this metallic road the vehicle slides up-hill that’s the Believe it or not of Ladakh!<br />
<br />
GURDWARA SHRI PATTHAR SAHIB:<br />
Situated 25 miles from Leh, Gurudwara Pathar Sahib stands at the place where Guru Nanak, the founder of Sikh religion and the first guru, is believed to have vanquished a demon. According to legend, during his sojourn in Ladakh, Guru Nanak was attacked by a demon. The demon threw a large boulder on the guru as he sat at the base of a hill meditating. However, the rock became soft like molten wax and failed to cause any harm to the Sikh guru. The demon was in for a surprise when he found the Sikh guru unscathed. Bristling with fury, the demon tried to crush Guru Nanak by kicking the boulder with all his might. To his surprise, the demon’s foot caused a deep impression in the boulder which had turned soft. Realizing that the man in front of him was no mortal soul, the demon underwent a transformation and stopped harassing the people. The boulder with the imprints of Guru Nanak Dev Ji and the foot of daemon still rests there. The gurudwara is maintained today by the Indian Army. It is a tradition for vehicles to stop and pay obeisance at the temple.<br />
<br />
CONFLENCE OF THE ZANSKAR & INDUS : On way to Sham Valley before Nimu village one can have this magnificent view of two rivers in wed-lock! In seasons they have different colors and flow and wildness.<br />
<br />
DONKEY SANCTUARY : The sanctuary is situated just off the road leading to Khardungla Pass. The public is encouraged to visit the sanctuary and friendly signs will direct you to the sanctuary from the center of Leh. Once at the sanctuary, the artistic surprise awaiting you is well worth the effort. It is open to the public throughout the day and donations and juicy carrots are most welcome and used exclusively for improving the lives and welfare of these wonderful animals.<br />
<br />
LEH PALACE : The Palace overlooks Leh town and is modeled on the Potala Palace in Lhasa, Tibet. The palace was built by King Sengge Namgyal in the 17th century, but was later abandoned when Dogra forces took control of Ladakh in the mid-19th century. The royal family moved to Stok Palace. Leh Palace is nine storeys high; the upper floors accommodated the royal family, the stables and store rooms were in the lower floors. The palace, a ruin, is currently being restored by the Archaeological Survey of India. The palace is open to the public and the roof provides panoramic views of Leh and the surrounding areas. The richest collection of jewellery, ornaments, Thangkas, ceremonial dresses, crowns, and centuries-old pieces of jewellery are kept here for public display. There are Chinese Thangka or sooth paintings which are more than 450 years old but still look new.<br />
<br />
SHANTI STUPA (Japanese Peace Pagoda) : Shanti Stupa/Japanese peace pagoda is build by a Japanese religious organization headed by Head monk Nakamura with the help from the organization and local people. It is situated at a hill top in Cahngspa village providing a bird eye view of the Leh town and the surrounding mountain peaks. Architecturally it has the Japanese touch with small clean rooms on the side for meditators and the main Japanese shrine at the entrance.</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> Excursion to Pangong Lake (280 Kms round trip)
										</p>
										<p class="aj">Morning after breakfast drive to to Pangong Lake on the Indo China border. Evening back to hotel in Leh for dinner and overnight.<br />
<br />
THE PANGONG LAKE : This route takes the visitor past the picturesque villages of Shey and Thiksey, and turns off the Indus valley by the side valley of Chemrey and Sakti. The Ladakh range is crossed by the Chang-la (18,000 feet / 5,475 M) which despite its great elevation is one of the easier passes, remaining open for much of the year even in winter, apart from periods of actual snowfall. Tangse, just beyond the foot of the pass, has an ancient temple.<br />
<br />
But the main attraction of this circuit is the Pangong Lake, situated at 14,000 feet (4,267 M). A long narrow basin of inland drainage, hardly six to seven kilometers at its widest point to which foreigners are permitted, is only some seven km along the southern shore from the head of the lake, but it affords spectacular views of the mountains of the Changchenmo range to the north, their reflection shimmering in the ever-changing blues and greens of the lakes brackish water. Above Spangmik are the glacier and snow-capped peaks of the Pangong range.</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> Excursion to Khardungla Pass (78 Km round trip)
										</p>
										<p class="aj">After breakfast prepare yourself for the ultimate adventure of your life. We will drive upto the Kardungla Top to have a magnificent view of the surrounding valleys. Return to Leh. In the evening take a stroll to the market for shopping. Dinner and overnight at the hotel in Leh.<br />
<br />
khardungla pass: The road journey to Nubra valley leads through Khardung La pass (The highest Motorable road in the world) 18,390 ft. around 39 Kms. Away from Leh. There are two checkpoints on the both sides of the pass. Khardong is the first village of Nubra valley at higher altitude than Deskit and other villages.<br />
<br />
checkpoints on the both sides of the pass. Khardong is the first village of Nubra valley at higher altitude than Deskit and other villages.</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> Airport Departure.
										</p>
										<p class="aj">Leave on time for Leh airport to board your flight to Delhi.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																				<li>EP (No Meal)</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>30% Advance Percentage of total booking amount</li><li>
Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.aasimtourtravel.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Leh Ladakh  4 Nights / 5 Days - 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="198209"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.aasimtourtravel.co.in/leh-ladakh-tour-packages.htm" title="Leh Ladakh Tour Packages">Leh Ladakh</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.aasimtourtravel.co.in/srinagar-tour-packages.htm" title="Srinagar Tour Packages">Srinagar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.aasimtourtravel.co.in/anantnag-tour-packages.htm" title="Anantnag Tour Packages">Anantnag</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.aasimtourtravel.co.in/baramulla-tour-packages.htm" title="Baramulla Tour Packages">Baramulla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.aasimtourtravel.co.in/ganderbal-tour-packages.htm" title="Ganderbal Tour Packages">Ganderbal</a> <b class="alpha50 bn small">(1)</b></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.aasimtourtravel.co.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(4)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Leh Ladakh</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.aasimtourtravel.co.in/holiday-packages/leh-ladakh-tour4-nights5-days.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_24/691573/317797.jpg"  height="100"  width="100"    alt="Leh Ladakh Tour 4 Nights / 5 Days" title="Leh Ladakh Tour 4 Nights / 5 Days"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.aasimtourtravel.co.in/holiday-packages/leh-ladakh-tour4-nights5-days.htm" title="Leh Ladakh Tour 4 Nights / 5 Days"><h3>Leh Ladakh Tour 4 Nights / 5 Days</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Leh Ladakh</p>
															<div class="mt10px small">
							<form name="pkg_198202" id="pkg_198202" method="post" action="https://www.aasimtourtravel.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.aasimtourtravel.co.in/holiday-packages/leh-ladakh-tour4-nights5-days.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Leh Ladakh Tour 4 Nights / 5 Days - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="198202"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.aasimtourtravel.co.in/holiday-packages/srinagar-leh-ladakh-tour8-nights9-days.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_24/691573/317796.jpg"  height="100"  width="100"    alt="Srinagar Leh Ladakh Tour 8 Nights / 9 Days" title="Srinagar Leh Ladakh Tour 8 Nights / 9 Days"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.aasimtourtravel.co.in/holiday-packages/srinagar-leh-ladakh-tour8-nights9-days.htm" title="Srinagar Leh Ladakh Tour 8 Nights / 9 Days"><h3>Srinagar Leh Ladakh Tour 8 Nights / 9 Days</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 34999</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								8 Nights / 9 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Srinagar, Leh Ladakh</p>
															<div class="mt10px small">
							<form name="pkg_198201" id="pkg_198201" method="post" action="https://www.aasimtourtravel.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.aasimtourtravel.co.in/holiday-packages/srinagar-leh-ladakh-tour8-nights9-days.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Srinagar Leh Ladakh Tour 8 Nights / 9 Days - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="198201"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:68:"Book Leh Ladakh  4 Nights / 5 Days - 4 Nights / 5 Days Tour Packages";i:2;s:122:"book leh ladakh  4 nights / 5 days - 4 nights / 5 days tour packages, hill station tour packages, leh ladakh tour packages";i:3;s:160:"Aasim Tour and Travel offers Leh Ladakh  4 Nights / 5 Days - 4 Nights / 5 Days tour package, budget Hill Station tour packages for Leh Ladakh at exciting price.";i:4;s:628:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Leh Ladakh"        
		                 },
		      "description": "Duration : 4 Nights / 5 Days
Destination Covered : Leh Ladakh
Price (Starting From) : price on request
* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.",
		      "name": "Leh Ladakh  4 Nights / 5 Days",
		      "telephone": "+91-9469787555"
		    }
		    </script>
			";i:5;N;}