a:6:{i:0;s:10581:"				<div class="h1"><h1>Shri Amarnath Yatra ( Helicopter Package )</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sharmatravel.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Shri Amarnath Yatra ( Helicopter Package )</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">Tour Code </td>
						<td class="p5px pl0px vat">MY-AN03D</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						2 Nights / 3 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Srinagar, Sonamarg, Amarnath</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.sharmatravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Shri Amarnath Yatra ( Helicopter Package ) - 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="121817"/>
						</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_18/513007/196800.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_18/513007/196800.jpg"  width="150" height="150"    alt="Shri Amarnath Yatra ( Helicopter Package )" title="Shri Amarnath Yatra ( Helicopter Package )" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Accommodation on twin / triple sharing basis<br />
Daily Breakfast & Dinner Veg. only at hotels.<br />
Welcome drinks on arrivals.<br />
News Papers in the vehicle.<br />
Surface transportation by AC Cars (AC will switch off in Hills).<br />
All interstate taxes, permits, parking, road tax, toll taxes and fuel charges etc include.<br />
All government applicable taxes and service chargesAir Fare / Train Fare.<br />
Personal expenses such as laundry, telephone calls, tips, liquor, boating & joy rides.<br />
All kind of personal expenses such as tips, laundry, telephone bills and beverages, Camera Fees.<br />
Cable Car Tickets, Any meals unless and otherwise specifically mentioned.<br />
Any claim due to road blocks, curfew, accident etc.<br />
Any other items which not specified in “Cost 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-Sonmarg
								</p>
								<p class="aj">On arrival Srinagar Airport, you will be welcomed by our representative (outside the airport) after then proceed for half day Srinagar local sightseeing famous Mughal Gardens, Cheshma Shahi (Royal Spring), Nishat Bagh (Garden of Pleasure), Shalimar Bagh (Abode of Love), which the Mughal laid out in the 16th century along the banks of Dal Lake in the heart of Srinagar. Drive to Sonmarg which will take about 3 hrs to reach the destination. Check into at 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 2:</b> Sonmarg - Amarnath Darshan - Srinagar
								</p>
								<p class="aj">Early in the morning, proceed to Baltalvia Sonamarg. After 3 hrs drive to Baltal, start with the securit y check before boarding the Helicopter to Barari - Marg. Upon arrival at Barari-Marg, start trekking for Holy Amarnath Cave. After Darshan of Shiv-Lingam at Holy cave, return to Barari-Marg for your onward journey to Baltal.<br />
<br />
Note: Operation of helicopter is subjected to weather conditions.<br />
After reaching Baltal, you will be met and transferred to Srinagar. Overnight stay at 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> Departure from Srinagar
								</p>
								<p class="aj">After Breakfast check out from hotel and proceed to visit Shankaracharya Temple located on a hil lock and enjoy panoramic views of the entire city, along with the famous Dal Lake & River Jhelum. On the way, visit the Handloom center famous for production of Pashmina/Shahtoosh shawls and carpets famous all over the world after than Depart for Airport.</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">Exclusions :</p> <ul><li>Air Fare / Train Fare.</li><li>
Personal expenses such as laundry, telephone calls, tips, liquor, boating & joy rides.</li><li>
All kind of personal expenses such as tips, laundry, telephone bills and beverages, Camera Fees.</li><li>
Cable Car Tickets, Any meals unless and otherwise specifically mentioned.</li><li>
Any claim due to road blocks, curfew, accident etc.</li><li>
Any other items which not specified in “Cost Inclusions “.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><strong>ADVANCE BOOKING FEE:-</strong><br />
45 or more days before departure: Rs 25% per person.<br />
30 days before departure: 50% of total amount.<br />
Less than 30 days before departure: 100% of the total amount.

<p><strong>NOTE:-</strong><br />
Hotels can be change without prior notice or Depends on distance covered by vehicle.<br />
May be you have to start your journey early in the morning cause of same day Darshan.<br />
Early journey may become cause of breakfast loss.<br />
We charged only for 10 Night accommodation, Extra night due to any reason will be on direct payment basis.<br />
In case of Helicopter Darshan guest have to stay in Sonmarg/Srinagar or nearby places.						
    	<p class="h dif xlarge b mb5px">HOTEL RATES (Per Person Rate) Valid till 31st Aug 2018</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">CATEGORY</td>
				<td class="headHr p5px b">2 PAX</td>
				<td class="headHr p5px b">4 PAX</td>
				<td class="headHr p5px b">6 PAX</td>
				<td class="headHr p5px b">Extra Person</td>
			</tr>
			<tr>
				<td class="data p5px">Standard Hotel</td>
				<td class="data p5px">15500</td>
				<td class="data p5px">14800</td>
				<td class="data p5px">13500</td>
				<td class="data p5px">11000</td>
			</tr>
			<tr>
				<td class="data p5px">Deluxe Hotel</td>
				<td class="data p5px">16999</td>
				<td class="data p5px">15800</td>
				<td class="data p5px">14800</td>
				<td class="data p5px">11500</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">HOTEL USED</p>
    	<div class="otherDetails aj">We provide Indigo/Sumo/Tempo Traveler for Standard Package & Dzire/Innova/Tempo Traveler for Deluxe Package.</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">DESTINATION</td>
				<td class="headHr p5px b">STANDARD HOTEL</td>
				<td class="headHr p5px b">DELUXE HOTEL</td>
			</tr>
			<tr>
				<td class="data p5px">Sonmarg</td>
				<td class="data p5px">New Zam Zam or similar</td>
				<td class="data p5px">Glacier Heights or similar</td>
			</tr>
			<tr>
				<td class="data p5px">Srinagar</td>
				<td class="data p5px">Golden Finger or similar</td>
				<td class="data p5px">Nishat View or similar</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sharmatravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Shri Amarnath Yatra ( Helicopter Package ) - 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="121817"/>
						</form>
						</div>
						
						";i:1;s:81:"Book Shri Amarnath Yatra ( Helicopter Package ) - 2 Nights / 3 Days Tour Packages";i:2;s:163:"book shri amarnath yatra ( helicopter package ) - 2 nights / 3 days tour packages, religious & pilgrimage tour packages, srinagar, sonamarg, amarnath tour packages";i:3;s:208:"Book Shri Amarnath Yatra ( Helicopter Package ) - 2 Nights / 3 Days tour packages from Sharma Travel - Get attractive 2 Nights / 3 Days Religious & Pilgrimage  tour packages for  Srinagar, Sonamarg, Amarnath.";i:4;s:1202:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Sonamarg, Amarnath"        
		                 },
		      "description": "Accommodation on twin / triple sharing basis
Daily Breakfast & Dinner Veg. only at hotels.
Welcome drinks on arrivals.
News Papers in the vehicle.
Surface transportation by AC Cars (AC will switch off in Hills).
All interstate taxes, permits, parking, road tax, toll taxes and fuel charges etc include.
All government applicable taxes and service chargesAir Fare / Train Fare.
Personal expenses such as laundry, telephone calls, tips, liquor, boating & joy rides.
All kind of personal expenses such as tips, laundry, telephone bills and beverages, Camera Fees.
Cable Car Tickets, Any meals unless and otherwise specifically mentioned.
Any claim due to road blocks, curfew, accident etc.
Any other items which not specified in “Cost Inclusions “.",
		      "name": "Shri Amarnath Yatra ( Helicopter Package )",
		      "telephone": "+91-9643567755"
		    }
		    </script>
			";i:5;N;}