a:6:{i:0;s:11409:"				<div class="h1"><h1>Kashmir Delighted Tour Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.pragyatravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.pragyatravels.com/tour-packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Kashmir Delighted Tour 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">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</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.pragyatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir Delighted Tour 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="67155"/>
						</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/434232/122712.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/434232/122712.jpg"  width="150" height="150"    alt="Kashmir Delighted Tour Package" title="Kashmir Delighted Tour Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</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
								</p>
								<p class="aj">Upon arrival, meet our representative and take a transfer to the hotel. Spend the day at leisure on Boulevard road which is one of the most famous tourist place in Srinagar and is situated around the Dal Lake surrounded by Zabarwan mountain ranges, enjoy Romantic Shikara ride in Dal Lake.</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 to Pahalgam
								</p>
								<p class="aj">After breakfast, check out the hotel & proceed to Pahalgam.<br />
This world famous hill station is 45 km and located on the banks of Lidder River at an altitude of 7200 ft. from sea level. It is a famous tourist attraction and a favorite place for shooting of Bollywood films, and is still a health resort. A number of treks in this region also begin from Pahalgam, as the 35 km trail traverses through pinewoods to the spectacular Kolahoi Glacier.The Lidder River gives rise to Lidder Valley, originates from Kolhoi Glacier in the vicinity of Sonamarg and runs southwards through an alpine meadow called Lidderwat, from which the river has got its name. The river flows through lush green mountains of fir. The tourist village Aru is situated on its bank. It covers 30 kilometers to the tourist destination of Pahalgam where it meets a major tributary (the East Lidder) from Sheshnag Lake and runs westwards until it meets the Jehlum River at Gurnar Khanabal village of Anantnag. It has crystal blueish water as of Neelum River. Pahalgam occupies the central Lidder Valley. Pahalgam aslso known as valley of shepherds.</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
								</p>
								<p class="aj">After breakfast, check out the hotel & proceed to Gulmarg.<br />
Gulmarg has been a resort for the kings like Yousuf Shah Chak and Jahangir who used to visit frequently. Gulmarg, meaning the place of roses. During the early part of the 20th century the famous Central Asian explorer Sir Marc Aurel Stein (1862-1943), made his home here in a tent between his expeditions. It was a favorite summer holiday destination for the British stationed in India.<br />
Gulmarg ( Meadow of Flowers) 2730 Mts. above sea level. The distance of 60 kms will be covered in about 1.5 hrs. .Gulmarg has one of the best SKI slopes, The slopes of Afarwat Hills of the Pir Panjal Range of the Himalaya Chain boast one of the longest and highest ski slopes in Asia. The total distance covered by ski lifts is five kilometres and the resort peaks at an altitude of 3,950 m (12,959 ft), accessed by an aerial gondola (telecabine). is not in the town or the actual hilltop The view reroute from Tangmarg to Gulmarg is fascinating. One can also have a short trek up to Khilanmarg which can be covered in about 3 to 4 hrs. Chair Lifts for mountain ride are also available. One must visit the Gondola chair lift. It is also known as queen of Kashmir.</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 local
								</p>
								<p class="aj">After Breakfast, check out from the hotel & proceed to vist srinagar<br />
Srinagar is one of several places that has been called the "Venice of the East" or the "Kashmiri Venice Lakes around the city include Dal Lake - noted for its houseboats - and Nagin Lake. In the afternoon take a Romantic shikara ride in Dal Lake & get the pleasure to see the sunset and enjoy the beauty that God has graced this city . You will get a view of some very interesting places around the Lake.<br />
Srinagar has some Mughal gardens, forming a part of those laid by the Mughal emperors across the Indian subcontinent. Those of Srinagar and its close vicinity include Chashma Shahi (the royal fountains); Pari Mahal (the palace of the fairies); Nishat Bagh (the garden of spring); Shalimar Bagh; and the Naseem Bagh.<br />
The Sher Garhi Palace houses administrative buildings from the state government. Another palace of the Maharajas, the Gulab Bhavan, has now become the Lalit Grand Palace 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 5:</b> Srinagar to Sonmarg
								</p>
								<p class="aj">Sonamarg vicinity lies the great Himalayan glaciers of Kashmir Valley namely Kolhoi Glacier and Machoi Glacier with some peaks of above 5000 meters.Sonamarg an alpine valley is situated at the bank of Nallah Sindh, Sonamarg, which means ' meadow of gold ' has, as its backdrop, snowy mountains against a cerulean sky. The Sindh meanders along here and abounds with trout and mahseer, snow trout can be caught in the main river. One can have access to snow which is furnished all over like a white carpet. Ponies can be hired for the trip up to Thajiwas glacier a major attraction during the summer months The climate of Sonamarg is very bracing,From Sonamarg, trekking routes lead to the Himalayan lakes of Vishansar Lake, Krishansar Lake, Gangabal Lake and Gadsar Lake, and Satsar, glacier-fed and surrounded by banks of alpine flowers.. Sonamarg is also the take off station for the drive to Ladakh across the Zojila, a major pass in the Great Himalayan Range, through which the Srinagar-Leh Road passes. Back to Srinagar and 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 6:</b> Departure
								</p>
								<p class="aj">After breakfast leave towards the airport. Because of security guidelines the passengers has to report at least 45 min prior to departure. As a result of checking and traffic. it is always better to leave early.</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">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.pragyatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir Delighted Tour 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="67155"/>
						</form>
						</div>
						
						";i:1;s:69:"Book Kashmir Delighted Tour Package - 5 Nights / 6 Days Tour Packages";i:2;s:123:"book kashmir delighted tour package - 5 nights / 6 days tour packages, lakes & rivers tour packages, srinagar tour packages";i:3;s:165:"Book Kashmir Delighted Tour Package - 5 Nights / 6 Days tour packages from Pr Travels - Get attractive 5 Nights / 6 Days Lakes & Rivers  tour packages for  Srinagar.";i:4;s:410:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar"        
		                 },
		      "description": "",
		      "name": "Kashmir Delighted Tour Package",
		      "telephone": "+91-7060220730"
		    }
		    </script>
			";i:5;N;}