a:6:{i:0;s:23111:"				<div class="h1"><h1>09Nts / 10Days Srinagar - Kargil - Leh - Pangong - Nubra - Leh - Sarchu - Manali Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.bluedolphintravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.bluedolphintravels.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>09Nts / 10Days Srinagar - Kargil - Leh - Pangong - Nubra - Leh - Sarchu - Manali 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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Manali, Srinagar, Leh Ladakh, Kargil</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.bluedolphintravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="09Nts / 10Days Srinagar - Kargil - Leh - Pangong - Nubra - Leh - Sarchu - Manali 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="96636"/>
						</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_15/428110/163693.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/428110/163693.jpg"  width="150" height="150"    alt="09Nts / 10Days Srinagar - Kargil - Leh - Pangong - Nubra - Leh - Sarchu - Manali Tour" title="09Nts / 10Days Srinagar - Kargil - Leh - Pangong - Nubra - Leh - Sarchu - Manali Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Assistance on arrival at Leh<br />
Traditional Welcome in the hotel<br />
Accommodation on twin sharing basis as per the selected category of packages<br />
BT: Bed Tea, B: Breakfast, D: Dinner<br />
Kindly Note the vehicles provided are not on disposable basis and are strictly on point to point basis as per the Itinerary selected<br />
Inner line Permit. <br />
All airport transfers & sightseeing tours by:<br />
Budgeted: = NAC Tavera/Qualis, <br />
Deluxe: = NAC Innova / Scorpio / Xylo<br />
Super Deluxe: = NAC Innova / Scorpio / Xylo<br />
Luxury: = 01 NAC Innova <br />
Wild life fee & Red Cross fee. <br />
The Ladakh Autonomous Hill Development Council fee (Ladakh entry fee)9 % GST Tax Extra <br />
Airfare to and from Leh or any other destination<br />
Monument & Museum Entrance Fees to be paid directly.<br />
Any kind of personal expenses, extra meals, starters & Drinks (Alcoholic, Mineral, Aerated etc)<br />
Any kind of optional tours<br />
Tips, Insurance, Laundry, Phone Calls, Guide Fee & Camera Fee<br />
Services of vehicle on leisure days and after finishing the sightseeing tour<br />
Adventure activity costs (Pony Ride, Camel Safari, Rafting, paragliding etc)<br />
Medical & Travel insurance<br />
Additional Costs due to Flight Cancellations, Road blocks, natural calamities and nature’s fury<br />
Anything not mentioned under the category “PACKAGE INCLUSIONS<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> Srinagar airport pick up O/N Srinagar
								</p>
								<p class="aj">Arrival Srinagar. Transfer to the hotel. Rest of the day free at leisure. Enjoy shikara ride in the evening. O/N in Srinagar.</p>					
									<p><b>Meals : </b> (Dinner)</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> Srinagar – Drass - Kargil. (8 Hrs – 209 Kms)
								</p>
								<p class="aj">Morning after Breakfast leave for Kargil, by visiting Sonamarg (Known As Meadow of Gold), Enroute Drass which has become famous as the second coldest inhabited place in the world by virtue of the intense cold that descends upon the valley along with repeated snowfall during winter. Winter temperature is sometimes known to plummet to less than 40 degree Celsius. Have a magnificent view of Kargil war Famous Peaks (Tiger Hill, Tololing) & visit Vijay Smarak and pay your tribute to soldiers who laid their lives for us in Kargil War in 1999, reach Kargil hotel by evening. O/N Kargil.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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> Kargil – Leh (6Hrs – 213Kms)
								</p>
								<p class="aj">Morning after Breakfast leave for Ule, enroute visit Mulbek it is a huge Chamba statue, an image of a future Buddha, cutting to the rock face beside the road. It's one of the most interesting stops along the road, after that visit Lamayuru monastery (Founded in the 10th Century it’s the Oldest Monastery in Central Ladakh) later  have a magnificent view of spectacular Moonlandscape. enroute visit Alchi, Likir Monastery, Magnetic Hill, Pathar Sahib Gurudwara. Lunch at Hotel in Leh. Evening free time at Leisure. O/N Leh.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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> Leh Local Sightseeing (Shey – Thiksey – hemis- Shanti Stupa)
								</p>
								<p class="aj">After breakfast drive up along the scenic Indus valley. Enroute stop over to visit the famous Shey Palace & Monastery, Thiksey Monastery after Hot Lunch at hotel visit Hall of Fame and enjoy an evening sunset at Shanti Stupa.<br />
Shey Palace & Monastery<br />
This summer palace of the erstwhile King of Leh is set upon a hill. The monastery itself has a 7.5 meter high, copper statue of a sitting Buddha, wrought in gold. This is the largest of it’s kind in the world. <br />
Thiksey Monastery<br />
19 Kms from Leh, Thiksey is one of the largest and most impressive Gompas of Ladakh. The Thiksey monastery provides a panoramic view of the green Indus Valley from its vantage point atop a hill. It has chambers full of statues, Stupas and colorfulTankhas.<br />
Hall of Fame<br />
Hall of Fame near Leh is worth a visit for every citizen. It is a glorious museum constructed by Indian army. You can see the memorabilia, eminent defence personalities with biographies, images and weapons used during Kargil war. <br />
Shanti Stupa<br />
Shanti Stupa is located at about 1km from Leh. It was built by a Japanese order and has wonderful views over Leh and the Indus valley especially at sunset. The stupa was built in 1980s and is a beautiful monument decorated with colourful paintings and enshrines large statues of Buddha. O/N Leh.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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(5 HRS – 160 KMS)
								</p>
								<p class="aj">After Breakfast drive to Nubra Valley via Khardung la pass the highest motorable pass in the world (18,380 feet). Enroute get excellent view of great Karakoram Range. Keep driving through Syok River and reach Hundur by Afternoon. After Lunch visit sand dunes for camel safari. O/N Hundur.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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 Valley – Pangong Lake (10 HRS)
								</p>
								<p class="aj">Today we Drive on one of the remotest route of Ladakh made especially for the Indian Army, which connects Nubra Valley to Pangong Lake by passing Leh. This route was washed away in a cloud burst in 2010. Parts of it are still not rebuilt. With various stream crossings, driving on dry riverbeds, smoothtarmac and switchbacks, it truly is a religious experience for an adventure lover.Later free time at leisure and enjoy the colour changing lake and the sun set on the banks of lake .O/N at Pangong Lake .</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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> Pangong Lake – Leh (4 HRS ONE WAY – 140 KMS)
								</p>
								<p class="aj">Early morning after Breakfast leave for Leh through Changla Pass 17,350 ft. (3rd Highest Motorable road in the world), Spend time at the banks of Pangong Lake. This lake of Pangong  is 5/6 kms wide and over 144 kms long and is shared by two countries (25% India and 75% China). Later free for Shopping at Leh Local Market. O/N Leh.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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> Leh – Sarchu (07 HRS-260 KMS)
								</p>
								<p class="aj">After Breakfast drive to Sarchu. Before  we reach Sarchu. We’ll pass Taglang La (17,480 ft) surrounded by Scenic Himalayas. The drive up to Sarchu would be Quite Scenic. ries of 21 switchbacks that take you down into the valley .O/N Sarchu.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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> Sarchu–Manali (05 HRS – 230 KMS )
								</p>
								<p class="aj">The last day of the tour is the greenest so far, along the Chandra and Bagha rivers. Finally, we cross the scenic Rohtang pass down to the sight of lush green Himalayan mountains and waterfalls that appear out of nowhere. Nature here is at its best. After the descent from the pass, you drive into Manali, a popular hill station in the Himalayas and call it a day at a hotel here, your thirst for adventure undoubtedly sated. O/N Manali.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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> Manali to Destination
								</p>
								<p class="aj">After Breakfast, back to Destination with Sweet Memories of Ladakh.</p>					
									<p><b>Meals : </b> (Breakfast & Dinner)</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>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>9 % GST Tax Extra </li><li>
Airfare to and from Leh or any other destination</li><li>
Monument & Museum Entrance Fees to be paid directly.</li><li>
Any kind of personal expenses, extra meals, starters & Drinks (Alcoholic, Mineral, Aerated etc)</li><li>
Any kind of optional tours</li><li>
Tips, Insurance, Laundry, Phone Calls, Guide Fee & Camera Fee</li><li>
Services of vehicle on leisure days and after finishing the sightseeing tour</li><li>
Adventure activity costs (Pony Ride, Camel Safari, Rafting, paragliding etc)</li><li>
Medical & Travel insurance</li><li>
Additional Costs due to Flight Cancellations, Road blocks, natural calamities and nature’s fury</li><li>
Anything not mentioned under the category “PACKAGE INCLUSIONS</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>Prices valid from 01st April 2017 to 15th September 2017.</li>
	<li>Prices valid for minimum 02, 04 &amp; 06 pax travelling together in one vehicle.</li>
	<li>Journey can be arranged from Delhi / Chandigarh / Jammu Railway Station or Airport at Nominal Extra charges.</li>
	<li>Hotels / Houseboats Accommodation in Delhi / Chandigarh / Manali / Keylong / Jammu / Srinagar can be arranged on best deals.</li>
	<li>&nbsp;The above rates are applicable strictly for resident Indian citizens only.</li>
</ul>


<strong>OTHER CHARGES</strong>

<ul>
	<li>Professional Tourist Guide @ INR. 2000 per day</li>
	<li>Camel Safari @ INR. 500 per ride</li>
	<li>River Rafting in Indus (Phey to Nimo) @ INR. 2200 per person (25th June to 30th August only)</li>
	<li>Cultural program @ INR. 8500 per program</li>
</ul>

<p><strong>IMPORTANT NOTE</strong>

<ul>
	<li>Above rates are Net &amp; Non-commissionable to you.</li>
	<li>Kindly note that names of hotels / Camps mentioned above only indicate that our rates have been based on usage of these hotels and it is not to be construed that accommodation is confirmed at these hotels until and unless we convey such confirmation to you. In the event of accommodation not becoming available at any of the above mentioned hotels we shall book alternate accommodation at a similar or next best available hotel and shall pass on the difference of rates (supplement/reduction whatever applicable) to you.</li>
	<li>Our offer is based on usage of base category rooms at the mentioned hotels (unless specified otherwise) and if this category of rooms is not available we shall try to confirm accommodation in next available higher category of rooms and shall advise supplementary cost involved while conveying the status.</li>
	<li>We shall not be responsible for any change in the itinerary due to landslides, flight cancellations, weather conditions or any unforeseen circumstances. The additional cost incurred will be in addition to the cost</li>
</ul>

<p><strong>BOOKING POLICY</strong>

<ul>
	<li>50% advance to confirm the booking&nbsp;&nbsp;</li>
	<li>50% balance 30 days before the date of travel</li>
</ul>

<p><strong>CANCELLATION POLICY</strong>

<ul>
	<li>25 % before 60 days from date of commencement of tour</li>
	<li>50 % before 45 days from date of commencement of tour</li>
	<li>75 % before 30 days from date of commencement of tour</li>
	<li>100 % before 15 days from date of commencement of tour</li>
</ul>

<p><strong>Terms &amp; Conditions:</strong>

<ul>
	<li>Prices valid from 01st April 2017 to 15th September 2017.</li>
	<li>Prices valid for minimum 02, 04 &amp; 06 pax travelling together in one vehicle.</li>
	<li>Journey can be arranged from Delhi / Chandigarh / Jammu Railway Station or Airport at Nominal Extra charges.</li>
	<li>Hotels / Houseboats Accommodation in Delhi / Chandigarh / Manali / Keylong / Jammu / Srinagar can be arranged on best deals.</li>
	<li>&nbsp;The above rates are applicable strictly for resident Indian citizens only.</li>
</ul>						
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Minimum Paying Pax</td>
				<td class="headHr p5px b">Standard</td>
				<td class="headHr p5px b">Deluxe</td>
				<td class="headHr p5px b">Super Dlx</td>
				<td class="headHr p5px b">Premium</td>
			</tr>
			<tr>
				<td class="data p5px">02 Pax with Innova/Xylo</td>
				<td class="data p5px">Rs. 56,224</td>
				<td class="data p5px">Rs. 58,943</td>
				<td class="data p5px">Rs. 66,368</td>
				<td class="data p5px">Rs. 81,760</td>
			</tr>
			<tr>
				<td class="data p5px">04 Pax with Innova/Xylo</td>
				<td class="data p5px">Rs. 37,271</td>
				<td class="data p5px">Rs. 39,991</td>
				<td class="data p5px">Rs. 47,415</td>
				<td class="data p5px">Rs. 62,807</td>
			</tr>
			<tr>
				<td class="data p5px">06 Pax  with Innova /Xylo</td>
				<td class="data p5px">Rs. 30,953</td>
				<td class="data p5px">Rs. 33,673</td>
				<td class="data p5px">Rs. 41,097</td>
				<td class="data p5px">Rs. 56,489</td>
			</tr>
			<tr>
				<td class="data p5px">08Pax with Tempo Traveller</td>
				<td class="data p5px">Rs. 31,111</td>
				<td class="data p5px">Rs. 33,830</td>
				<td class="data p5px">Rs. 41,255</td>
				<td class="data p5px">Rs. 53,949</td>
			</tr>
			<tr>
				<td class="data p5px">10Pax with Tempo Traveller</td>
				<td class="data p5px">Rs. 28,552</td>
				<td class="data p5px">Rs. 31,273</td>
				<td class="data p5px">Rs. 38,697</td>
				<td class="data p5px">Rs. 54,088</td>
			</tr>
			<tr>
				<td class="data p5px">12Pax with Tempo Traveller</td>
				<td class="data p5px">Rs. 26,847</td>
				<td class="data p5px">Rs. 29,566</td>
				<td class="data p5px">Rs. 36,991</td>
				<td class="data p5px">Rs. 52,383</td>
			</tr>
		</table></div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Place</td>
				<td class="headHr p5px b">Standard</td>
				<td class="headHr p5px b">Deluxe</td>
				<td class="headHr p5px b">Super Deluxe</td>
				<td class="headHr p5px b">Premium</td>
			</tr>
			<tr>
				<td class="data p5px">Srinagar</td>
				<td class="data p5px">Al Hamra/ Similar</td>
				<td class="data p5px">Hotel Royal Batoo, Hotel Asian Park, Hotel Supreme Hill</td>
				<td class="data p5px">Hotel Pine Spring, Hotel Grand Mumtaz, Hotel New Mumtaz</td>
				<td class="data p5px">R K Sarovar Portico</td>
			</tr>
			<tr>
				<td class="data p5px">Kargil</td>
				<td class="data p5px">Zojila Residency, Hotel Royal Gasho,</td>
				<td class="data p5px">Zojila Residency, Hotel Royal Gasho</td>
				<td class="data p5px">The Caravan Serai, The Highland  Mountain Resort</td>
				<td class="data p5px">The Caravan Serai, The Highland Mountain Resort</td>
			</tr>
			<tr>
				<td class="data p5px">Leh</td>
				<td class="data p5px">Sia la, Horpo,  Royal Ladakh, Kangla</td>
				<td class="data p5px">Ladakh Imperial, New Antelope, The Palace, Hilltown, Rafica, Ladakh Continental, The ladakh, The Himalaya</td>
				<td class="data p5px">Grand Himalaya, Spic n span, Shangrila</td>
				<td class="data p5px">Grand Dragon, The Zen</td>
			</tr>
			<tr>
				<td class="data p5px">Hundur (Nubra)</td>
				<td class="data p5px">Chunkas Camp, Summer Camp, Desert oasis</td>
				<td class="data p5px">Chunkas Camp, Summer Camp, Desert oasis</td>
				<td class="data p5px">Chunkas Camp, Summer Camp, Desert oasis</td>
				<td class="data p5px">Desert Himalaya, Earth home</td>
			</tr>
			<tr>
				<td class="data p5px">Pangong</td>
				<td class="data p5px">Red Start, Dreamland Wooden Cottage, Wonderland Camp</td>
				<td class="data p5px">Red start, Dreamland Wooden Cottage, Wonderland Camp</td>
				<td class="data p5px">Red start, Dreamland Wooden Cottage, Wonderland Camp</td>
				<td class="data p5px">Red start, Dreamland Wooden Cottage, Wonderland Camp</td>
			</tr>
			<tr>
				<td class="data p5px">Sarchu</td>
				<td class="data p5px">Adventure Camp</td>
				<td class="data p5px">Adventure Camp</td>
				<td class="data p5px">Adventure Camp</td>
				<td class="data p5px">Adventure Camp</td>
			</tr>
			<tr>
				<td class="data p5px">Manali</td>
				<td class="data p5px">A Star Regency</td>
				<td class="data p5px">Byke Neelkanth, Daffodil Hotel / Vivaan Resort</td>
				<td class="data p5px">Manali Heights, De Vivendi  resort</td>
				<td class="data p5px">River Country, Manu Allaya Resort</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bluedolphintravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="09Nts / 10Days Srinagar - Kargil - Leh - Pangong - Nubra - Leh - Sarchu - Manali 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="96636"/>
						</form>
						</div>
						
						";i:1;s:125:"Book 09Nts / 10Days Srinagar - Kargil - Leh - Pangong - Nubra - Leh - Sarchu - Manali Tour - 9 Nights / 10 Days Tour Packages";i:2;s:199:"book 09nts / 10days srinagar - kargil - leh - pangong - nubra - leh - sarchu - manali tour - 9 nights / 10 days tour packages, valley tour packages, manali, srinagar, leh ladakh, kargil tour packages";i:3;s:236:"Blue Dolphin Travels offers 09Nts / 10Days Srinagar - Kargil - Leh - Pangong - Nubra - Leh - Sarchu - Manali Tour - 9 Nights / 10 Days tour package, budget Valley tour packages for Manali, Srinagar, Leh Ladakh, Kargil at exciting price.";i:4;s:1778:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Manali, Srinagar, Leh Ladakh, Kargil"        
		                 },
		      "description": "Assistance on arrival at Leh
Traditional Welcome in the hotel
Accommodation on twin sharing basis as per the selected category of packages
BT: Bed Tea, B: Breakfast, D: Dinner
Kindly Note the vehicles provided are not on disposable basis and are strictly on point to point basis as per the Itinerary selected
Inner line Permit. 
All airport transfers & sightseeing tours by:
Budgeted: = NAC Tavera/Qualis, 
Deluxe: = NAC Innova / Scorpio / Xylo
Super Deluxe: = NAC Innova / Scorpio / Xylo
Luxury: = 01 NAC Innova 
Wild life fee & Red Cross fee. 
The Ladakh Autonomous Hill Development Council fee (Ladakh entry fee)9 % GST Tax Extra 
Airfare to and from Leh or any other destination
Monument & Museum Entrance Fees to be paid directly.
Any kind of personal expenses, extra meals, starters & Drinks (Alcoholic, Mineral, Aerated etc)
Any kind of optional tours
Tips, Insurance, Laundry, Phone Calls, Guide Fee & Camera Fee
Services of vehicle on leisure days and after finishing the sightseeing tour
Adventure activity costs (Pony Ride, Camel Safari, Rafting, paragliding etc)
Medical & Travel insurance
Additional Costs due to Flight Cancellations, Road blocks, natural calamities and nature’s fury
Anything not mentioned under the category “PACKAGE INCLUSIONS",
		      "name": "09Nts / 10Days Srinagar - Kargil - Leh - Pangong - Nubra - Leh - Sarchu - Manali Tour",
		      "telephone": "+91-9558888723"
		    }
		    </script>
			";i:5;N;}