a:6:{i:0;s:10781:"				<div class="h1"><h1>Amarnath Yatra Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.shareoursource.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.shareoursource.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Amarnath Yatra 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">Tour Code </td>
						<td class="p5px pl0px vat">AMRIB01</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						3 Nights / 4 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">
						INR 17950 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Group Size more than 15 - Discount INR 1000 per person</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.shareoursource.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Amarnath Yatra 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="63385"/>
						</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/433238/119006.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/433238/119006.jpg"  width="150" height="150"    alt="Amarnath Yatra Tour" title="Amarnath Yatra Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Group Size more than 15 - Discount INR 1000 per personAir & train Tickets.<br />
Monument fees at all places.<br />
Shikara Ride.<br />
Cable Car Ticket Gondola Gulmarg.<br />
Guide charges.<br />
Ponies & Palkies charges.<br />
All personal nature like video camera, tip, table drink, etc and any other miscellaneous charges which are not shown in the 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
								</p>
								<p class="aj">SRINAGAR-SONMARG: Pick up from Srinagar international airport, drive to Sonmarg. At arrival transfer to Hotel at Sonmarg at Sonmarg.</p>					
									<p><b>Meals : </b> Full Board</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> Neelgrath
								</p>
								<p class="aj">SONMARG- NEELGRATH-SRINAGAR: Reporting at helipad 2, hours prior to scheduled time. Collect Boarding card and proceed to helipad. Board in for Panjtharni. From Panjtharni to holy cave the distance of 11.00 Kms (Return journey) by pony/palki/trek not included in package.Retun after Darshan. Board in Helicopter for Neelgrath (This year Helipad has been changed from Baltal to Neelgrath which is just 2-3 Kms from Sonmarg. At arrival to Neelgrath Drive back to Sonmarg, Arrive Sonmarg by evening transfer Hotel and O/N stay.</p>					
									<p><b>Meals : </b> Full Board</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> Sonmarg
								</p>
								<p class="aj">Sonmarg - Srinagar- & Local Sightseeing Srinagar O/N Stay Hotel.</p>					
									<p><b>Meals : </b> Full Board</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> Srinagar
								</p>
								<p class="aj">SRINAGAR: Check out hotel. Drop at Srinagar Airport 2,hours prior to departure of the flight. Tour ends</p>					
									<p><b>Meals : </b> Full Board</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>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Air & train Tickets.</li><li>
Monument fees at all places.</li><li>
Shikara Ride.</li><li>
Cable Car Ticket Gondola Gulmarg.</li><li>
Guide charges.</li><li>
Ponies & Palkies charges.</li><li>
All personal nature like video camera, tip, table drink, etc and any other miscellaneous charges which are not shown in the inclusions</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>July & August<br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>Preferably from chennai- For customized tour as per the customer's convenience.<br /><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><strong>GENERAL TERMS &amp; CONDITIONS</strong>

<ul>
	<li>All the packages provides twin/triple Sharing&nbsp;AC /Non Ac Rooms as per the mention in the packages.</li>
	<li>South / North indian&nbsp; Veg/ Non veg buffetmeals will be provided . The packet lunch will be given for customers,where&nbsp; the spot meals can not be provided during the travel</li>
	<li>Sos traders will not be held responsible for the misbehaviours/damage caused by the individual while on the tour</li>
	<li>Sostraders advise all the customer to buy travel insurance&nbsp; additionally through sostraders sales desk agent before departuring the tour.</li>
	<li>Comfortable transportation will be given on the private/SIC through car/Van/Minibus/Bus depending upon the customer group size for the particular package.</li>
	<li>Sos traders has got full right to change the Itineraries for the required circumstances. The changes in cost and itineraries will informed immediately. Amount will be refunded according to the refund policy if raised by customer</li>
	<li>Probelems faced by the customers should be informed immediately to the hotel/transport provider/tour manager/sostraders.</li>
	<li>No boarding, drinks and beverages wll be given during the train/Flight travel as per package category</li>
	<li>All the customers who are under group tour not allowed to go seperately or extending the tour without proper intimation.</li>
	<li>For Train transport only sleeper class is included in all the packages. unless other wise if the customer shows specific interest to have Secon/third AC tier will be given with extra charges only.</li>
</ul>

<p><strong>EXCLUDED</strong>

<ul>
	<li>Entrance fee for Adventure, watersport,park,cable&nbsp;&nbsp; car, winter cloth,Rental, laundryetc. Auto, local&nbsp; transport, beverages and drinks during Bus/ Train&nbsp; travels except the item mention in the package</li>
</ul>

<p><strong>CANCELLATION POLICY</strong>

<ul>
	<li>No refund of Advance if cancelled by individual</li>
	<li>7days before 10% of tour amount refunded</li>
	<li>15 days before 50% of tour amount refunced</li>
	<li>30 days before 100% minusing the advance amount</li>
	<li>will refunded</li>
</ul>

<p style="line-height: 20px">Booking Advance

<ul style="line-height: 20px">
	<li>Book your ticket by paying advance amount of Rs.5000 through our website www.shareoursource.in &nbsp;with details of payment</li>
</ul>

<p>&nbsp;						
    	<p class="h dif xlarge b mb5px">Package Cost</p>
    	<div class="otherDetails aj">Srinagar - Sonmarg - Neelgrath - Srinagar</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">INR 17950</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.shareoursource.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Amarnath Yatra 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="63385"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Amarnath Yatra Tour - 3 Nights / 4 Days Tour Packages";i:2;s:140:"book amarnath yatra tour - 3 nights / 4 days tour packages, religious & pilgrimage tour packages, srinagar, sonamarg, amarnath tour packages";i:3;s:196:"Book Amarnath Yatra Tour - 3 Nights / 4 Days tour packages from Share Our Source Traders - Get attractive 3 Nights / 4 Days Religious & Pilgrimage  tour packages for  Srinagar, Sonamarg, Amarnath.";i:4;s:752:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Sonamarg, Amarnath"        
		                 },
		      "description": "Group Size more than 15 - Discount INR 1000 per personAir & train Tickets.
Monument fees at all places.
Shikara Ride.
Cable Car Ticket Gondola Gulmarg.
Guide charges.
Ponies & Palkies charges.
All personal nature like video camera, tip, table drink, etc and any other miscellaneous charges which are not shown in the inclusions",
		      "name": "Amarnath Yatra Tour",
		      "telephone": "+91-9444728610"
		    }
		    </script>
			";i:5;N;}