a:6:{i:0;s:11415:"				<div class="h1"><h1>Amazing Ladakh Tour with Pangong</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>Amazing Ladakh Tour with Pangong</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">
						8 Nights / 9 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.nomadicsteps.co.in/enquiry-form-10003.htm">
						<input type="hidden" name="subject" value="Amazing Ladakh Tour with Pangong - 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="85712"/>
						</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/150455.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/466826/150455.jpg"  width="150" height="150"    alt="Amazing Ladakh Tour with Pangong" title="Amazing Ladakh Tour with Pangong" /></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> Leh
								</p>
								<p class="aj">As you arrive at the Kushok Bakula airport in Leh, you will be greeted by our tour representative. From here, you will be transferred to the hotel. The first day would be free of any kind of excursion. Thus, it is up to you to stroll around the locales of Leh city or rest in your hotel rooms. By evening come back to the hotel for an 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 2:</b> Leh
								</p>
								<p class="aj">Head to an early morning journey to the west of Leh. This side of the city is famous for the ancient Alchi Monastery, which offers splendid miniature paintings. Post the Alchi Monastery, visit the Magentic hill which displays an epic confluence of the river Indus and Zanskar. On the way back to your hotel, you can make a pitstop to visit the Military Hall of Fame. Night would be spent relaxing at 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 3:</b> Leh - Tsomoriri Lake
								</p>
								<p class="aj">The third day of our Ladakh tour with Pangong is dedicated to the natural beauty of the region. Early morning, start your journey to the picturesque Tsomoriri Lake. The lake is around 220 kms from Leh and is situated at an altitude of 4200 m. From Leh, make your way diving right along the Indus river into the Rupshu valley. During the journey, you are likely to come across Chumathang hot springs and the Mahe bridge. On your arrival at Tsomoriri Lake, make a check in at the nearby camps. Later in the day, explore the wetland sanctuaries near the shore, which is a popular breeding ground for thousands of migratory birds including the Black Naked Cranes and Brahmini Duck.</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> Tsomoriri Lake - Tsokar Lake - Leh
								</p>
								<p class="aj">As you finish your morning breakfast, you would be embarked on a journey to the exotic Tsokar Lake. On your way, you can make frequent stoppages to visit the Puga Geo-thermal gas springs and the nomadic Rebo tents settled at the Polo-Kongka pass. There you can also visit the Monastery of Thukje village. Rest of the journey will make you cross the Tanglangla pass which is at a height of around 5300 metre. Journey ends at Stok in the evening, which is followed by an overnight stay at 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 5:</b> Leh - Nubra Valley
								</p>
								<p class="aj">Wake up early morning and start your drive to the exotic Nubra valley. you would be passing through Khardungla, which is touted as the highest motorable pass in the world. Upon your arrival in Nubra valley, check in to a hotel / camp to wear off your tiredness. Later, explore the sand dunes of Nubra on a Double humped camel back. Post that, visit the world renowned Diskit Monastery, which houses a 100 ft tall Maitreya Buddha statue. After all the sightseeing, return to your hotel/camp and spend the night at leisure.</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">Start your day on a spiritual note by visiting the Samstanling Monastery right after your breakfast. Post that, make your return journey to Leh. You would be served lunch on the journey itself. By the evening, you will reach Leh. Feel free to spend the rest of your day relaxing your hotel or some shopping in the local market. After that, dinner and overnight stay in 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 7:</b> Leh - Pangong Lake
								</p>
								<p class="aj">Around 135 kms from the city of Leh, lies the enchanting Pangong Lake. Early in the morning, embark on a journey to the Pangong Lake via the Changla pass which is located at an altitude of 17500 ft. On your way to Pangong, you would be crossing Durbuk and Tangtse village. By afternoon, you would be reaching one of the most wonderful lakes of India, the Pangong Lake. A leisure walk on the shore of the lake will let you enjoy the interplay of colors of the Pangong. In the evening, our tour representative will take you to the nearby nomadic village.</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> Pangong Lake - Leh
								</p>
								<p class="aj">This would possibly be the last day of our Amazing Ladakh Tour with Pangong . Start your day fresh by witnessing the scenic Pangong lake getting illuminated by the early morning rays of the sun. Post breakfast, drive back to Leh. On reaching Leh, explore the local market and check in to the hotel for an 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 9:</b> Leh - Delhi
								</p>
								<p class="aj">Post breakfast, our tour representative will take you to Kushok Bakula airport to board the flight to Delhi. This marks the end of our delightful Ladakh tour.</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="Amazing Ladakh Tour with Pangong - 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="85712"/>
						</form>
						</div>
						
						";i:1;s:71:"Book Amazing Ladakh Tour with Pangong - 8 Nights / 9 Days Tour Packages";i:2;s:119:"book amazing ladakh tour with pangong - 8 nights / 9 days tour packages, valley tour packages, leh ladakh tour packages";i:3;s:149:"Nomadic Steps offers Amazing Ladakh Tour with Pangong - 8 Nights / 9 Days tour package, budget Valley tour packages for Leh Ladakh at exciting price.";i:4;s:414:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Leh Ladakh"        
		                 },
		      "description": "",
		      "name": "Amazing Ladakh Tour with Pangong",
		      "telephone": "+91-9469261146"
		    }
		    </script>
			";i:5;N;}