a:6:{i:0;s:22302:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>LEH KADAKH BIKE TOUR ADVENTURE</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.travelwayindia.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelwayindia.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> LEH KADAKH BIKE TOUR ADVENTURE</p>
						</div>
						</div>
						</section>
										<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-->				
								
						<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> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Leh - Alchi - Khardung La - Nubra Valley - Pangong Lake - Leh</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="http://www.travelwayindia.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="LEH KADAKH BIKE TOUR ADVENTURE - 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="200896"/>
						</form>
						
												</p>
											</td>
										</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Want to spend your next vacation traveling through some of the highest motorable roads in the world? Then you must try our Leh Ladakh Bike Tour Package which starts from Leh. The scenic beauty of Himalayas is best experienced when the cold mountain air ruffles your hair, with the sun playing hide and seek with the mighty Himalayas. In this Leh Ladakh bike tour package from Leh, you will rendezvous with the fresh waters of the Indus River, the chilly winds of Himalayas and the serene calm of Buddhist monasteries.<br />
<br />
This motorbike tour package from Leh to Leh will take you the religious sites, famous museums, glistening lakes, and on the way, you will cross the mighty passes namely Khardungla and Chang La. This tour itinerary is the perfect amalgamation of the adventure, thrill, spirituality, and pride. It will give you adrenaline rush at some time and you will feel proud while you visit the Hall of Fame in Leh. Leh Ladakh bullet trip for 7 days starts from Leh City and Ends in Leh City but it will provide you an opportunity to explore the immense beauty of this faraway land in the best possible way and give you memories of a lifetime which you will cherish always.<br />
<br />
How to reach - The easiest way to travel to Ladakh is by air. The nearest airport is Kushok Bakula Rimpochee Airport (IXL) located in Leh. This airport is connected with many international airports in India like Delhi. It also receives flights from Srinagar, Jammu, Chandigarh, and other common destinations in India								</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 at Leh
										</p>
										<p class="aj">Your Ladakh bike tour will start from the majestic town of Leh. When you arrive at Leh Airport, our tour representative will assist you in completing the hotel transfer formalities. As it is the first day of the Ladakh motorbike tour, today we suggest our guests to get acclimatized to the weather and altitude of Leh Ladakh. In the afternoon, you could choose to visit the town of Leh or Leh market.<br />
<br />
Overnight stay will be at a 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> Leh – Alchi – Magnetic Hill - Leh
										</p>
										<p class="aj">Wake up to a refreshing morning with a steamy hot breakfast being served for extinguishing your belly fire. Our bike tour starts, as we proceed towards the Sham valley, which is picturesque full of photogenic views.<br />
<br />
Visit the fabulous Alchi monastery, which is famous all over the region for its miniature paintings. Visit the Dukhang Hall, the Manjushree temple and the temples of Lot Sabha Lhakhang and Lhakhang Soma and experience pure divinity.<br />
<br />
Sitting on a small hilltop, the Likir monastery is located at a height of 3700 meters above sea level. Engaging views surround the Monastery and when you arrive at this place, you will understand why Buddhist monks can concentrate on meditation. With the tranquil Himalayas surrounding the place, even the sound of silence can be heard here. The monastery contains some of the most exotic thangkas that will entice you towards them.<br />
               Our next stop will be the magnetic hill. Why such an interesting name? Well, the magnetic hill is a place where the gravity defying, the vehicles roll upwards! The military Hall of Fame museum, located nearby is a place that will fill your heart with pride and sadness at the same time.<br />
<br />
It contains some great artifacts related to the war triumphs of the Indian army. There is a separate section that displays various weapons and other devices used during Operation Vijay, the Kargil war. You can also imagine the tough life of soldiers in the Siachen glacier by viewing the equipment used by them in this museum.<br />
<br />
Overnight stay at the 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 3:</b> Leh - Khardung La - Nubra Valley
										</p>
										<p class="aj">Good morning, sip some steaming hot coffee and help yourself with some mouthwatering breakfast. After you have your breakfast, we will move towards Nubra valley.<br />
<br />
On the way to Nubra, you will cross the mighty Khardungla pass, which is one of the highest motorable roads in the world. Feel the majestic beauty of Karakoram pass as you ride through these constricted roads in search of peace.<br />
<br />
We will visit the Sumoor village, which is a mesmerizing hill village located in the heart of the Himalayas. Situated on the banks of Nubra River, the Sumoor village is one of the most beautiful places in Ladakh valley.<br />
<br />
Overnight stay at the hotel in Nubra.</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> Nubra Valley – Hunder - Leh
										</p>
										<p class="aj">On the fourth day of your Ladakh bike tour from Leh to Leh, you will visit the famous Diskit monastery. Situated amidst the Himalayas, the Diskit monastery contains one of the most important Buddhist statues in the Ladakh region. The Maitreya Buddha statue measuring more than 100 feet never fails to inspire the spiritual being inside tourists.<br />
<br />
The Hunder sand dunes are located nearby and you can experience the thrill of riding a double-humped camel at an extra cost. At the end of the day, we drive back to Leh.<br />
<br />
Overnight stay at the 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 5:</b> Leh - Pangong Lake
										</p>
										<p class="aj">One of the most famous tourist attractions in Leh, the Pangong Lake is in our itinerary today.<br />
<br />
The Pangong Lake is the highest saltwater lake in the world is a sight to behold and we are sure that it will hypnotize you with its mesmerizing beauty. Spend some quality time on the banks of the Pangong solely before we move on towards Chang La, which is one of the highest motorable roads in the world to enjoy a hot lunch.</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> Pangong lake to Leh | Excursion to 3 idots School
										</p>
										<p class="aj">On the sixth day of our Ladakh motorcycle tour from Leh , we move back towards Leh,on  the way, pay a visit to the Druk White Lotus School, which shot to fame with the movie ‘3 Idiots’ as the site where the last scene was shot.<br />
 Capture some magical moments and of the town Karu and cross the famous Indus River which supported ancient Indus river valley civilization. The rest of the day is at your leisure. If time allows you can visit the Leh Palace, Shanti Stupa, and nearby places in Leh.<br />
<br />
Your overnight stay will be at your 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 7:</b> Transfer to Leh Airport
										</p>
										<p class="aj">After breakfast, depart for Leh airport with a bag full of memories.<br />
Have a great journey towards your destination.</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>MAP (Room + Breakfast + Lunch/Dinner)</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																						<li>Transport</li>
																						<li>Private Guides</li>
																						<li>Stay Included</li>
																						<li>Pickup-Drop</li>
																				<li>Comfortable 500cc Royal Enfield for dual riders and 350cc for solo riders on all days as per the itinerary.</li><li>
Airport pick up and drop as per your flight timings</li><li>
Accommodation at all locations on a triple and double (for couples & special requests) sharing basis in Hotels/Camps</li><li>
Buffet Breakfast and Dinner on all days</li><li>
Fuel for the whole trip as per the itinerary.</li><li>
Assured Inner line permits and Ladakh Union fee</li><li>
Experienced tour leader on a bike </li><li>
Daily maintenance by an experienced mechanic</li><li>
Spare parts change in the bike during the tour - front tube/rear tube/spark plug/clutch & brake wire/clutch & disc brake pads/engine oil/clutch plate </li><li>
A 4x4 backup vehicle to carry your luggage, spare parts and extra fuel</li><li>
Standard size helmet for the rider and the pillion </li><li>
Oxygen cylinder and Basic First-Aid during the tour.</li><li>
Evening Bonfire (Wherever possible)</li><li>
Driver expenses/ toll tax/ Fuel/ Parking charges</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>which are not mentionrd in inclusion.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* 20% 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><li>
* Refund will be made within 15 working days from the date of receipt of the cancellation.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travelwayindia.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="LEH KADAKH BIKE TOUR ADVENTURE - 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="200896"/>
						</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="http://www.travelwayindia.com/new-delhi-tour-packages.htm" title="New Delhi Tour Packages">New Delhi</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/agra-tour-packages.htm" title="Agra Tour Packages">Agra</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/jaipur-tour-packages.htm" title="Jaipur Tour Packages">Jaipur</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/dharamshala-tour-packages.htm" title="Dharamshala Tour Packages">Dharamshala</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/manali-tour-packages.htm" title="Manali Tour Packages">Manali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/kangra-tour-packages.htm" title="Kangra Tour Packages">Kangra</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/leh-ladakh-tour-packages.htm" title="Leh Ladakh Tour Packages">Leh Ladakh</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/mcleodganj-tour-packages.htm" title="Mcleodganj Tour Packages">Mcleodganj</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/prayagraj-tour-packages.htm" title="Prayagraj Tour Packages">Prayagraj</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/pushkar-tour-packages.htm" title="Pushkar Tour Packages">Pushkar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/corbett-tour-packages.htm" title="Corbett Tour Packages">Corbett</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/bareilly-tour-packages.htm" title="Bareilly Tour Packages">Bareilly</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></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="http://www.travelwayindia.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/jeep-safari-holidays-catid.htm" title="Jeep Safari Packages">Jeep Safari</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/wildlife-safari-holidays-catid.htm" title="Wildlife Safari Packages">Wildlife Safari</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.travelwayindia.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/abseiling-holidays-catid.htm" title="Abseiling Packages">Abseiling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.travelwayindia.com/biking-holidays-catid.htm" title="Biking Packages">Biking</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</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:69:"Book LEH KADAKH BIKE TOUR ADVENTURE - 6 Nights / 7 Days Tour Packages";i:2;s:161:"book leh kadakh bike tour adventure - 6 nights / 7 days tour packages, adventure tour packages, leh tour packages, alchi tour packages, khardung la tour packages";i:3;s:198:"Travel Way India offers LEH KADAKH BIKE TOUR ADVENTURE - 6 Nights / 7 Days tour package, budget Adventure tour packages for Leh - Alchi - Khardung La - Nubra Valley - Pangong Lake at exciting price.";i:4;s:1959:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Leh - Alchi - Khardung La - Nubra Valley - Pangong Lake"        
		                 },
		      "description": "Want to spend your next vacation traveling through some of the highest motorable roads in the world? Then you must try our Leh Ladakh Bike Tour Package which starts from Leh. The scenic beauty of Himalayas is best experienced when the cold mountain air ruffles your hair, with the sun playing hide and seek with the mighty Himalayas. In this Leh Ladakh bike tour package from Leh, you will rendezvous with the fresh waters of the Indus River, the chilly winds of Himalayas and the serene calm of Buddhist monasteries.

This motorbike tour package from Leh to Leh will take you the religious sites, famous museums, glistening lakes, and on the way, you will cross the mighty passes namely Khardungla and Chang La. This tour itinerary is the perfect amalgamation of the adventure, thrill, spirituality, and pride. It will give you adrenaline rush at some time and you will feel proud while you visit the Hall of Fame in Leh. Leh Ladakh bullet trip for 7 days starts from Leh City and Ends in Leh City but it will provide you an opportunity to explore the immense beauty of this faraway land in the best possible way and give you memories of a lifetime which you will cherish always.

How to reach - The easiest way to travel to Ladakh is by air. The nearest airport is Kushok Bakula Rimpochee Airport (IXL) located in Leh. This airport is connected with many international airports in India like Delhi. It also receives flights from Srinagar, Jammu, Chandigarh, and other common destinations in India",
		      "name": "LEH KADAKH BIKE TOUR ADVENTURE",
		      "telephone": "+91-9027368321"
		    }
		    </script>
			";i:5;N;}