a:6:{i:0;s:14925:"				<div class="h1"><h1>Jannat-E-Kashmir Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.arihanttours.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.arihanttours.in/india-tours.htm" title="India Tours">India Tours</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Jannat-E-Kashmir 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Srinagar, Pahalgam, Gulmarg</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 24990 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.arihanttours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jannat-E-Kashmir 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="8703"/>
						</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_1/26194/7381.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/7381.jpg"  width="150" height="150"    alt="Jannat-E-Kashmir Tour" title="Jannat-E-Kashmir Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Jannat-E-Kashmir is a five days long tour to mesmerizing beauty of Kashmir Valley will prove to be a rejuvenating and revitalizing experience by all means. The land popularly known as 'Heaven on Earth' is indeed one of the most enchanting sights in whole of India; its silent valleys and spectacular snow-clad peaks have something divine about them, creating an aura of surreal serenity. Enjoy an encounter with Mother Nature and explore her finest of treasures in the paradise that Kashmir is and another fabulous memory of India tour in your travel memoirs.Any Medical/rescue evacuation due to mishaps.<br />
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.<br />
Mineral water / Soft or hard drinks / Starters.<br />
Entrance Free.<br />
Horse Riding.<br />
Gondola Ride in Gulmarg.<br />
Any other things that is not included in the "Package Cost Includes" Column.<br />
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.<br />
Government Service tax @ 3.09 Extra.01-0131-12<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> Arrive at Srinagar
								</p>
								<p class="aj">Upon your arrival at the airport, meet our representative awaiting just outside the arrival hall, past the customs area& currency shops.<br />
<br />
In the afternoon you will check-into a deluxe houseboat which will cruise through Dal Lake, taking you past floating vegetable gardens. While riding the houseboats there will be plenty of opportunities for bird watching with gamut of species including Kingfisher, Little Bittern, Common Pariah Kites, Grebe etc flying past the region. Overnight stay on the houseboat.</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 - Gulmarg
								</p>
								<p class="aj">After breakfast leave for Gulmarg (Meadow of Flowers). Situated 2730 meter above the sea level is a gorgeous hamlet whose beauty reaches its pinnacle during the winters when the region is dressed in balmy snow covers. Gulmarg has one of the best ski slopes in the world and highest golf course with 18 holes. Under favorable weather conditions arrangements for skiing and golf can be made on demand. If weather permits one can also have the view of Nanga Parbat, the naked mountain that is over 26,000 ft and dominates the entire region. Other exciting leisure time activities such as cable car (Gondola) for mountain ride up to Khilangmarg also can be arranged.</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> Gulmarg - Pahalgam
								</p>
								<p class="aj">After breakfast drive to Pahalgam (The valley of shepherds) is planned under this Kashmir tour. En-route, visit the saffron field of Pampore; the region is renowned for producing the world's best saffron. Driving further you will take a little halt at Awantipura Ruins (1100 years old temple of Lord Vishnu built by the King Awantivarman), and enjoy the beautiful countryside. Drive through the pine forests and a gorgeous rural setting to reach Pahalgam. Arrive at Pahalgam and enjoy stunning views of Lidder Valley. Magnificent view of the mountains can be best explored on feet as you start to take an evening walk in the region following pony trails.</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> Pahalgam - Srinagar
								</p>
								<p class="aj">Post breakfast on this day set on sightseeing tour of the Mughal Gardens. The elegance in the countenance and behavior of its people is surely inspired by the charm of its quaint environs. Srinagar with its placid lakes, enchanting environs, slumbering houseboats, fascinating Mughal gardens and gorgeous flower-beds appears no less than heavenly. In the city you will be directed to a deluxe houseboat for overnight stay. Floating on Dal Lake in a traditional Shikara take brief pauses to explore Mughal Gardens, Shalimar and Nishat Bagh and Chashme Shahi.<br />
<br />
Lined with mighty chinar trees, overlooking the scintillating waters of Dal Lake and marked by ornamental fountains, Nishat Bagh sings the saga of impressive Mughal architecture. These gardens in Srinagar are reminders of the zenith of Mughal horticulture, and Shalimar Bagh built by Jehangir for his wife empress Nur Jahan is another specimen of that. The graceful garden adorning another side of Dal Lake is a gorgeous panorama embellished with artificial streams, terraced landscape, Mughal pavilions full of emerald hues.</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> Srinagar
								</p>
								<p class="aj">In the vicinity visit the hillside temple of Shankaracharya. Built in the 11th Century, the Shiva temple is built of rock stone and overlooks the Dal Lake. Dating back to 200 B.C.E. the temple was demolished and the one which now exists is its reformed version built in 9th century C.E. Rest of the day will be free for leisurely activities such as shopping etc.</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> Srinagar - Departure
								</p>
								<p class="aj">Our representative will escort you to Srinagar Airport and will make all the arrangements for your convenient journey henceforth. You will thus bid goodbye to the land of eternal beauty, heavenly charm and pious most ideally called "the heaven on earth".</p>					
									<p><b>Meals : </b> Breakfast</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>Any Medical/rescue evacuation due to mishaps.</li><li>
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.</li><li>
Mineral water / Soft or hard drinks / Starters.</li><li>
Entrance Free.</li><li>
Horse Riding.</li><li>
Gondola Ride in Gulmarg.</li><li>
Any other things that is not included in the "Package Cost Includes" Column.</li><li>
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.</li><li>
Government Service tax @ 3.09 Extra.</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>Any Time<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>Package valid only for Indian nationals.</li>
	<li>On-Refundable booking fee of Rs.2000 required to confirm/ hold the booking.</li>
	<li>Air tickets and hotels are subject to availability. It is mandatory for guests to present valid photo identification at the time of check-in.</li>
	<li>The identification proofs accepted are Driving License, Voters Card, Passport, Ration Card. Without valid ID the guest will not be allowed to check in. Note-PAN Cards will not be accepted as a valid ID card.</li>
	<li>All transfers and sightseeing are as per the Itinerary/package and in case of Air Conditioned vehicles, It will be switched off in the hills.</li>
	<li>The inclusion of extra bed with a booking is facilitated with a folding cot or a mattress as an extra bed. Early check-in or late check-out is subject to availability and may be chargeable by the hotel.</li>
	<li>The standard check-in time is 1300hrs and the standard check-out time is 1000hrs. Any kind of personal expenses (Laundry, room service etc.) or optional tours/ extra meals are not inclusive in the package cost.</li>
	<li>The hotel reserves the right of admission. Accommodation can be denied to guests posing as a couple if suitable proof of identification is not presented at check-in.</li>
	<li>Arihant tours will not be responsible for any check-in denied by the hotel due to the aforesaid reason. In case of non-availability of above mentioned hotels similar category hotel will be provided.</li>
	<li>Arihant tours reserves the right to change/modify or terminate the offer any time at its own discretion and without any prior notice.</li>
</ul>						
    	<p class="h dif xlarge b mb5px">Package cost</p>
    	<div class="otherDetails aj">EX - DELHI</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Package Type</td>
				<td class="headHr p5px b">Period</td>
				<td class="headHr p5px b">Rate On Twin Sharing</td>
				<td class="headHr p5px b">Extra Adult</td>
				<td class="headHr p5px b">Extra Child >5</td>
			</tr>
			<tr>
				<td class="headVr p5px">Standard</td>
				<td class="data p5px">1 April To 31 June</td>
				<td class="data p5px">Rs. 24990/-</td>
				<td class="data p5px">Rs. 21990/-</td>
				<td class="data p5px">Rs. 19990/-</td>
			</tr>
			<tr>
				<td class="headVr p5px">Deluxe</td>
				<td class="data p5px">1 April To 31 June</td>
				<td class="data p5px">Rs. 29990/-</td>
				<td class="data p5px">Rs. 25990/-</td>
				<td class="data p5px">Rs. 23990/-</td>
			</tr>
			<tr>
				<td class="headVr p5px">Luxury</td>
				<td class="data p5px">1 April To 31 June</td>
				<td class="data p5px">Rs. 34990/-</td>
				<td class="data p5px">Rs. 31990/-</td>
				<td class="data p5px">Rs. 28990/-</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.arihanttours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jannat-E-Kashmir 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="8703"/>
						</form>
						</div>
						
						";i:1;s:60:"Book Jannat-E-Kashmir Tour - 5 Nights / 6 Days Tour Packages";i:2;s:125:"book jannat-e-kashmir tour - 5 nights / 6 days tour packages, valley tour packages, srinagar, pahalgam, gulmarg tour packages";i:3;s:170:"Book Jannat-E-Kashmir Tour - 5 Nights / 6 Days tour packages from Arihant Tours - Get attractive 5 Nights / 6 Days Valley  tour packages for  Srinagar, Pahalgam, Gulmarg.";i:4;s:1523:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Pahalgam, Gulmarg"        
		                 },
		      "description": "Jannat-E-Kashmir is a five days long tour to mesmerizing beauty of Kashmir Valley will prove to be a rejuvenating and revitalizing experience by all means. The land popularly known as 'Heaven on Earth' is indeed one of the most enchanting sights in whole of India; its silent valleys and spectacular snow-clad peaks have something divine about them, creating an aura of surreal serenity. Enjoy an encounter with Mother Nature and explore her finest of treasures in the paradise that Kashmir is and another fabulous memory of India tour in your travel memoirs.Any Medical/rescue evacuation due to mishaps.
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.
Mineral water / Soft or hard drinks / Starters.
Entrance Free.
Horse Riding.
Gondola Ride in Gulmarg.
Any other things that is not included in the "Package Cost Includes" Column.
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.
Government Service tax @ 3.09 Extra.01-0131-12",
		      "name": "Jannat-E-Kashmir Tour",
		      "telephone": "+91-9420566577"
		    }
		    </script>
			";i:5;N;}