a:6:{i:0;s:18297:"				<div class="h1"><h1>Heritage of Ladakh Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.excellworldholidays.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Heritage of Ladakh 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">
						6 Nights / 7 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.excellworldholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Heritage of Ladakh 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="14964"/>
						</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_1/27643/22245.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/27643/22245.jpg"  width="150" height="150"    alt="Heritage of Ladakh Tour" title="Heritage of Ladakh Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Airfares Train Fare.<br />
Any Monastery Entrance Fees, Any Joy Ride Or Rafting.<br />
Medical Expenses (Apart From First Aid) And Insurance Of Any Kind.<br />
Tips, Laundry, Liquors, Wines, Mineral Water, Telephone Charges, Camera Fee And Items Of Personal Nature.<br />
Transportation Is Not On Disposal Basis. It Is Strictly As Per The Programme, Any Extra Running Will Be Charges Extra.<br />
Any Expenses Arising Out Of Unforeseen Circumstances Like Flight Delay / Cancellation / Hike In Fare, Strike Or Any Other Natural Calamities Or Any Emergency Evacuation Expenses.<br />
Any Other Item Not Mentioned In The Cost Includes Section.<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, Our 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> Monastery tour and Sindhu Darshan
								</p>
								<p class="aj">Morning after breakfast, drive to Thiksey village, visit Thiksey monastery and drive to Shey Village to visit Shey Palace and Gompa. Continue drive to Hemis monastery to visit one of the most famous monasteries of Ladakh. Later on the way back to Leh get down at the Sindhu Ghat for Sindhu Darshan and walk along the river. After spending some time at the river come back to Hotel and relax. Dinner and overnight at the hotel in Leh.<br />
<br />
Thiksey Gompa: 19 Kms from Leh, spectacularly sited, Thiksey is one of the largest and architecturally most impressive Gompas. There are several temples in this Gompas, containing images, stupas and wall paintings of Buddha, which are exquisite.<br />
<br />
Shey Palace and Gompa: Situated on a hillock 15 Kms upstream from Leh, it was once the residence of the royal family. According to tradition, it was the seat of power of the pre-Tibetan kinds. A 7.5 mts high copper statue of Buddha, plated with gold and the largest of its kind, is installed here<br />
<br />
Hemis Gompa: 40 Kms from Leh, it is the wealthiest, best known and biggest Gompa of Ladakh. Its popularity stems from the major annual festival held here in summer. The festival is in honor of Guru Padma Sambhava?s birth anniversary. It also has the largest Thanka in Ladakh which is unfurled once in 12 years Hemis was built in 1630 during the reign of Singge Namgyal, an illustrious ruler of Ladakh. It flourished under the Namgyal Dynasty for the royalty favored the Drugpa sect, which is managed the monastery. It is divided into two, the assembly hall on the right and the main temple on the left. The hall (Dukhang) is also used as "green room" by the dancers during the festival. The temple is known as Tshogkhang. The verandahs have a surfeit of frescoes, among them the Buddhist "Wheel Of Life" (Kalachakra) and the lords of the four quarters, besides the prayer wheel.<br />
<br />
Sindhu Ghat: The Sindhu Ghat at Choglamsar village at the bank of River Indus has been inaugurated on the 1st of June 2001 by Hon?ble Minister for Home Shri L. K. Advani. Every year Sindhu festival is held on this bank of river, forges bonds of unity between communities. The festival is an ideal opportunity for travelers from all over the country and the world to visit this wonderful region and to savour its rugged beauty and charm.</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 Sham Valley
								</p>
								<p class="aj">Morning after breakfast drive to Alchi. Enroute visit Magnetic Hill, Gurudwara Patthar Sahib, Confluence of Zanskar and Indus river. Visit Alchi Monastery and drive back to Leh. Just before reaching Leh visit Ladakh Hall of fame. Arrive hotel in Leh for dinner and overnight.<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: The Shrine known as Gurdwara Patthar sahib is situated about 25 kms. Short of Leh town on the Leh-Srinagar road. Built in the everlasting memory of Shri Guru Nanak Deve Ji the great prophet who sanctified the place by his sacred visit during the year 1517 while on his second missionary tour (2nd Udassi 1515-1518). The Guru reached here via Nepal, Sikkim, Tibet Yarkand and Leh after having spiritual discourses with the sidhas at Mount Sumer (Central Himalayas). On the hill features across the road, there used to live a wicked demon that terrorized the people of the area. Their miseries multiplied day by day. As their miseries became unbearable they prayed for divine help. It is said that the Great Guru heard their woes and came to their rescue. The Guru settled down on the bank of the river flowing nearby. The people sought for help and the Guru blessed the people and became very popular in the area. The locals called him as Nanak Lama. The Demon got enraged and started making plans to kill Guru Nanak. One morning, when the Guru was sitting in meditation, he rolled down a big boulder from the hilltop with the aim of killing the Guru. But on the very touch of Guru's body, the solid rock melted like wax and Guru's back got embedded on it like a cushion. The Guru kept on sitting in meditation undisturbed. Thinking that the Guru must have been killed, the demon came down but was taken aback on seeing the Guru in meditation, undisturbed. With a rage of anger he tried to push the rock with his right foot but the rock had already became like wax his foot also got embedded into it. On this, he realized his folly and powerlessness as compared to the spiritual power of the Great Guru. He fell on the feet of Guru and humbly prayed to be pardoned. The Guru advised him to get rid of his wickedness and lead the life of a nobel person, in the service of humanity. This changed the life style of demon and he started serving the people. The Guru there after continued his Holy journey towards Srinagar and Kashmir via Kargil.<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 />
Alchi Gompa: 70 Kms from Leh, on the banks of the Indus, is the Alchi Gompa dating a thousand years back. One of its walls features thousands of miniature sized pictures of the Buddha. Three large sized images made of clay and painted brightly are its focal attractions. No longer an active religious center, it is looked after by monks from the Liker monastery. This is the only monastery amongst 34 monasteries, which is not located on a hilltop.<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.<br />
<br />
"Here's something that you will be proud of our defense personnel who sacrificed themselves so that we could live in peace."</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 Pangong Lake
								</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 Thikse, 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 5:</b> Leh - Nubra Via Khardung la Pass
								</p>
								<p class="aj">Early morning proceed to Nubra Valley via the World Highest Motorable road (5602 Mts) Khardung la pass. Arrive Nubra and proceed for a visit to the White Sand Dunes at Hunder. You can enjoy the camel ride (On Own). Later if time permits visit Hunder and Diskit monasteries and check in at Deluxe Camp. Evening at leisure. Overnight at the camp.<br />
<br />
Khardung la 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. Khardung is the first village of Nubra valley at higher altitude than Deskit and other villages.<br />
<br />
Deskit Village: Deskit is the main village of headquarter of Nubra valley, which has a small market consisting of a row of shops and about 500 years old Gompa on the hilltop. Spectacular view of the valley can be seen form the monastery.<br />
<br />
Deskit Gompa: Deskit Gompa was founded by Lama Sherab Zangpo of Stod in about 1420 AD during the reign of King Dragspa. About 100 monks are residing in the Gompa, which is a branch of Thikse Monastery. The monastic festival called Gustor takes place on 20th and 21st days of the 12th month of Tibetan calendar.<br />
<br />
Hundar Village: Hundar is a beautiful village to stay with lot of trees and you will really enjoy your stay at Hundar. It has a small monastery and ruined fort above the village. The walk or Camel Safari (Double Hump bacterian camels) from Hundar to Deskit, through sand dunes for two hours is wonderful (on own).</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> Nubra - Leh
								</p>
								<p class="aj">Morning after Breakfast proceed for Leh, once again driving via Khardung la pass the World Highest Motorable road. Evening explore Leh bazaar for souvenir, visit Leh Jokhang or Leh Mosque by foot. Overnight at the hotel.<br />
<br />
Jokhang: the Ladakh Buddhist Association in 1957 built the small Gonpa opposite to SBI and known as Jokhang in the main bazaar, which is open throughout the day for visitors. The Gonpa contains statue of Joyo Rinpoche (crowned Buddha).<br />
<br />
Leh Mosque: The Jama Masjid of Leh was built in 1666-67 AD under an agreement between Mughal Emperor Aurangzeb and Ladakhi ruler Deldan Namgyal. Initialy, the architecture of the mosque bore Tibetan, Central Asian and Ladakhi style. In recent years it has been reconstructed and given a new look with minarets and domes.</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> Airport Departure
								</p>
								<p class="aj">Leave on time for Leh airport to board your flight to Delhi.</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>
																		<li>Transport</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Airfares Train Fare.</li><li>
Any Monastery Entrance Fees, Any Joy Ride Or Rafting.</li><li>
Medical Expenses (Apart From First Aid) And Insurance Of Any Kind.</li><li>
Tips, Laundry, Liquors, Wines, Mineral Water, Telephone Charges, Camera Fee And Items Of Personal Nature.</li><li>
Transportation Is Not On Disposal Basis. It Is Strictly As Per The Programme, Any Extra Running Will Be Charges Extra.</li><li>
Any Expenses Arising Out Of Unforeseen Circumstances Like Flight Delay / Cancellation / Hike In Fare, Strike Or Any Other Natural Calamities Or Any Emergency Evacuation Expenses.</li><li>
Any Other Item Not Mentioned In The Cost Includes Section.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>Children Below 5 Years Of Age Are Allowed To Stay Free With Parents Without Extra Bed. Children Between 5 - 12 Years Have To Take An Extra Bed At The Prescribed Rate. 02Nd Child Between 5 - 12 Years Sharing Parent&#39;S Bed Have To Pay Extra For Meals Only.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.excellworldholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Heritage of Ladakh 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="14964"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Heritage of Ladakh Tour - 6 Nights / 7 Days Tour Packages";i:2;s:110:"book heritage of ladakh tour - 6 nights / 7 days tour packages, valley tour packages, leh ladakh tour packages";i:3;s:147:"Excellworld Holidays offers Heritage of Ladakh Tour - 6 Nights / 7 Days tour package, budget Valley tour packages for Leh Ladakh at exciting price.";i:4;s:1015:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Leh Ladakh"        
		                 },
		      "description": "Airfares Train Fare.
Any Monastery Entrance Fees, Any Joy Ride Or Rafting.
Medical Expenses (Apart From First Aid) And Insurance Of Any Kind.
Tips, Laundry, Liquors, Wines, Mineral Water, Telephone Charges, Camera Fee And Items Of Personal Nature.
Transportation Is Not On Disposal Basis. It Is Strictly As Per The Programme, Any Extra Running Will Be Charges Extra.
Any Expenses Arising Out Of Unforeseen Circumstances Like Flight Delay / Cancellation / Hike In Fare, Strike Or Any Other Natural Calamities Or Any Emergency Evacuation Expenses.
Any Other Item Not Mentioned In The Cost Includes Section.",
		      "name": "Heritage of Ladakh Tour",
		      "telephone": "+91-9881120349"
		    }
		    </script>
			";i:5;N;}