a:6:{i:0;s:26506:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>PARADISE KASHMIR TOUR PACKAGE</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.silverraytravel.co.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.silverraytravel.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> PARADISE KASHMIR TOUR PACKAGE</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Srinagar, Pahalgam, Sonamarg, Gulmarg</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.silverraytravel.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="PARADISE KASHMIR TOUR PACKAGE - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="188857"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_19/566299/296185.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_19/566299/296185.jpg"  width="150" height="93"    alt="PARADISE KASHMIR TOUR PACKAGE" title="PARADISE KASHMIR TOUR PACKAGE" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								“Cradled in the lap of majestic snow-capped mountains peaks of the Himalayas, Kashmir is the most beautiful place on earth, so we call it “PARADISE or HEAVEN ON EARTH” Located in the northern part of the Indian subcontinent, the Indian state of Jammu and Kashmir lies in the vicinity of the karakoram and western Himalayan mountain ranges. Filled with snow-clad mountains, glittering peaks, variety of flowers that welcome you into a perfumed air, Jammu and Kashmir is a paradise in itself, enticing all those who choose to visit the place. Kashmir is always the favourite destination among tourist. Now, open to tourism after a spell of troubled times, Kashmir is again attracting hordes of tourist and is definitely proving to be the most famous tourist destination in the state. An ancient city, there are many attractions that can lure the tourist to this land. Dal Lake, Nishat Bagh, Shalimar Bagh, Chashma Shai, Tulip Garden, Kheer Bhawani Temple, Gulmarg, Yusmarg, Sonamarg, Pahalgam, Kokarnag, Daksum, Verinag are some of the best known tourist spots in Kashmir.<br />
<br />
Kashmir beautiful Himalayan valley with breathtaking mountain scenery, clear lakes, lush vegetation and magnificent forest. The capital city Srinagar (1, 730 m) is famous for its canals, houseboats and Mughal Gardens. The Valley is home to rich biodiversity includes a large number of birds species, many of which are unique to Kashmir. Kashmir lifestyle is essentially slow paced and reflects religious diversity. Kashmir’s are known to enjoy their music in its various local forms and the traditional dress of both male / female is often quite colorful. The Dumhal is a famous dance in Kashmir, performed by men of the Wattal region. The women perform the Ruff, another folk dance (Well knowing song bombroo, bombroo). Kashmir has been noted for its fine arts for centuries including poetry and handicrafts.<br />
<br />
To explore these varied landforms and more, buy Kashmir tour packages from Yatra. The state can be easily reached via road, rail and air from all parts of country, leading to easy access. One of its top tourist destinations is its capital, Srinagar. Here, people can visit Dal Lake, take a ride on Shikara, stay in houseboat and relax in lakeside Mughal gardens like Shalimar Bagh, Nishat Bagh, Chashma Shai Garden, Shankracharya Temple. The cuisine of the state is fragrant and full of spices, with dishes like Gushtaba, Dum Aloo, Rogan Josh, Kashmiri Yakhni and the famous Tea, Kashmiri Kahwa, being the favorites. Kashmir is also famous for fruits & Dry Fruits all over the world (popularly Kashmiri Apple, Kashmiri Cherry, Kashmiri Walnuts and Kashmiri Almond), while in the city with Kashmir holiday packages, travellers can buy exquisite hand wovan rugs and carpets, and the globally renowned pashmina shawls. The valley of Kashmir is surrounded by splendid hill stations like sonamarg, Gulmarg and Pahalgam, Where adventure sports like skiing can be relished in winters.								</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> SRINAGAR ARRIVAL & LOCAL MUGHAL GARDENS
										</p>
										<p class="aj">Meet our represented pick up from Srinagar Airport to transfer Srinagar hotel check in Hotel fresh up and visit half day Shankracharya Temple Darshan & local Mughal gardens Nishat Bagh (Located on the bank of Dal Lake, with the Zabarwan Mountains as its back drop, Nishat Bagh is a Garden of bliss that commands a Magnificent view of the Lake beneath the snow capped Pir Panjal mountain range that stands far away to the west of the valley. The Bagh was designed and built in 1633 by Asif khan, elder brother of Noor Jehan). Shalimar Garden (The Shalimar Bagh is celebrated royal garden of Kashmir. The Emperor Jahangir was so fascinated with the garden that he called it “one of the sights of Kashmir.” Shalimar Bagh is Located on the northeast side of Dal lake, approximately fifteen kilometers away from the center of Srinagar. It was laid out by Jahangir as Farah Baksh (“the delightful”) in 1619, while he was founding the city of Srinagar. Chashma Shahi Garden (the royal Spring), also called Cheshma Shahi, is one of the Mughal gardens built around a spring by Ali Mardan, a governor of Mughal emperor Shah Jahan, in 1632. the garden is located in the Zabarwan Range, near Raj Bhawan (Governor’s house) over looking Dal Lake in Srinagar Kashmir) after Mughal Gardens Sight seeing back Hotel Dinner & over night stay in Srinagar 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> SRINAGAR-GULMARG-SRINAGAR (48 KMS ONE WAY 02:30 HRS APPROX)
										</p>
										<p class="aj">Morning after breakfast day excursion tour Srinagar to Gulmarg (Meadow of flower) Gulmarg is 2730 mts above the sea level Gulmarg offers spectacular view of snow capped mountain peaks, conifer forest and green meadow; it is home to the heights 18 hole golf course of the world. Arrival gulmarg and enjoy the Gondola ride (Gondola ride is subject weather conditions and at your own cost) to Khilanmarg (1st phase) for breathtaking view of Nanga Parbat peak (The Fifth Highest mountain of the world). There after time is free for activities on your own. You may enjoy an optional sledge ride on the snow covered slopes (on direct payment basis). After gulmarg Sight seeing back Srinagar Evening free for rest in Hotel. Dinner & over night stay in Srinagar 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> SRINAGAR-SONAMARG-SRINAGAR (90 KMS ONE WAY 03: 00 HRS APPROX)
										</p>
										<p class="aj">Morning after breakfast day excursion tour Srinagar to Sonamarg (Meadow of Gold). Sonamarg lies in Sind valley streamed with flowers as surrounded by mountains. Sonamarg is also the base for some interesting treks to altitude of Himalayan lakes. Enjoy horse ridding upto Thajiwas Glacier and sledge ridding on snow (at your own cost). While returning back Srinagar visit Kheer Bhawani Temple, the most important temple for the followers of historical Vedic religion in Kashmir, known as the Kashmir Pandits. After Sight seeing back Srinagar. Evening free for rest in Hotel. Dinner & over night stay in 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 4:</b> SRINAGAR-PAHALGAM (95 KMS ONE WAY 03: 00 HRS APPROX)
										</p>
										<p class="aj">Morning after breakfast check out Srinagar Hotel to Drive Pahalgam. Pahalgam is 2440 mtrs above sea level (The Valley of Shepherds) Pahalgam is also famous for its alpine treks, forest and along the Lidder River, nature walk and also the base camp of Amarnath Yatra. On the way saffron fields, Avantipura ruins of an 1100 yrs old temple of lord Vishnu. On arrival pahalgam check in hotel and enjoy the surrounding beautiful or walk Baisaran which is (02 kms from pahalgam, and enjoy explore the beauty of “pahalgam” one can go to chandanwari (16 kms from pahalgam) is starting point of Amarnath Pilgrimage “The Adobe of Shiva” and enjoy of Aru Valley (10 kms from Pahalgam) has a fine meadow of Picturesque scenery and starting point of trekking of (Lidderwat, Kolahoi Glacier & Trsar Lake), and enjoy Betaab Valley (07 kms from Pahalgam), Betaab valley is named after bollywood movie Betaab which was extensively shot here. The valley is characterised by picture perfect views and is a kind of popular picnic sport for tourist after sight seeing back hotel. Dinner & over night stay in Pahalgam 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> PAHALGAM-SRINAGAR (95 KMS ONE WAY 03: 00 HRS APPROX)
										</p>
										<p class="aj">Morning after breakfast check out Pahalgam hotel to same route Srinagar check in Houseboat fresh up and after noon also get a view of some very interesting places around the lake. Shikara ride on Dal Lake to enjoy the Sunset, Char Chinar and Floating Garden after Sight seeing Srinagar Local Handicraft shopping Market and personal activities back Houseboat. Dinner & over night stay in Houseboat</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-AIRPORT DEPARTURE
										</p>
										<p class="aj">Morning after free time till departure, check out Srinagar Houseboat and transfer Srinagar Airport fly for return journey with memories of Kashmir Tour by WELCOME TOUR & TRAVELS to your own destination.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																				<li>All Package cost G.ST 05% Includes.</li><li>
All Pickups, Transfer and Sight seeing by Non-Ac Vehicles ex Jammu Railway Station / Jammu Airport</li><li>
Accommodation per room double sharing basis MAPI Basis (Room + Breakfast + Dinner)</li><li>
Meals Plan MAP Plan (Room + Breakfast & Dinner pure Veg)</li><li>
03 nights in Srinagar at Hotel as per category package</li><li>
01 night in Srinagar at Houseboat as per category package</li><li>
01 night in Pahalgam at Hotel as per category package</li><li>
Children upto 05 years complimentary (sharing same bed with parents)</li><li>
Check in hotel & check out hotel time 12:00 pm noon</li><li>
Half day Srinagar Local Mughal Gardens Sight seeing.</li><li>
Full day Excursion Tour Sonamarg Sight seeing</li><li>
Full day Excursion Tour Gulmarg Sight seeing</li><li>
Vehicles provided as per tour itinerary above (Point to point basis)</li><li>
To & Fro and upto 01 Hour Shikara ride in Famous Dal Lake Sight seeing</li><li>
Above rates are net & non-commissionable.</li><li>
Above rates include all taxes & service charges</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Air Tickets / Train Tickets</li><li>
Personal expenses such as laundry, telephone bill, tips & gratuity, mineral water, soft & hard water, paragliding, porter age</li><li>
Any cost arising due to calamities like, landslides, road blockage, political disturbances (strike), etc (to be borne by the client, who is directly payable on the spot)</li><li>
Room Heater charge</li><li>
Unforeseen Expenses beyond our control</li><li>
Tips to Waiters / Driver / Any other person</li><li>
Monument fees at all places and gardens</li><li>
Tour Itinerary can be changed depending upon the availability of hotel</li><li>
Any kind of personal expenses or optional Tours / Extra meals ordered</li><li>
Any meals except those listed in above inclusion</li><li>
Anything not mentioned in the inclusions</li><li>
Incase of early check in hotel or late check out hotel manager or tour organizer / tour operator, other wise full charge will be pay</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Some Advance Percentage of total booking amount</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>If we withdraw or terminate a Product or service, you shall be immediately notified of the withdrawal or termination and the reason for the withdrawal or termination. However, if a change is requested by you to your travel arrangements is permitted and possible, our standard service fees will apply in addition to any additional Supplier charges. Please contact us by phone or email to enquire about how to request changes. Please note that all reservation changes are subject to availability and the terms and conditions of the product purchased.</li><li>
45 days prior to arrival: 10% of the Tour / service cost</li><li>
15 days prior to arrival: 25% of the Tour / service cost</li><li>
07 days prior to arrival: 50% of the Tour / service cost</li><li>
48 hours prior to arrival OR No Show: No Refund</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.silverraytravel.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="PARADISE KASHMIR 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="188857"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/jammu-tour-packages.htm" title="Jammu Tour Packages">Jammu</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/katra-tour-packages.htm" title="Katra Tour Packages">Katra</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/leh-ladakh-tour-packages.htm" title="Leh Ladakh Tour Packages">Leh Ladakh</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/sonamarg-tour-packages.htm" title="Sonamarg Tour Packages">Sonamarg</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/patnitop-tour-packages.htm" title="Patnitop Tour Packages">Patnitop</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/gulmarg-tour-packages.htm" title="Gulmarg Tour Packages">Gulmarg</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/srinagar-tour-packages.htm" title="Srinagar Tour Packages">Srinagar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/pahalgam-tour-packages.htm" title="Pahalgam Tour Packages">Pahalgam</a> <b class="alpha50 bn small">(2)</b></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.silverraytravel.co.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Srinagar, Pahalgam, Sonamarg, Gulmarg</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.silverraytravel.co.in/holiday-packages/a-mata-vaishno-devi-with-kashmir-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/566299/296187.jpg"  alt="A MATA VAISHNO DEVI WITH KASHMIR TOUR" title="A MATA VAISHNO DEVI WITH KASHMIR TOUR"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.silverraytravel.co.in/holiday-packages/a-mata-vaishno-devi-with-kashmir-tour.htm" title="A MATA VAISHNO DEVI WITH KASHMIR TOUR"><h3>A Mata Vaishno Devi With Kashmir Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								8 Nights / 9 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Jammu, Katra, Srinagar, Pahalgam, Sonama..</p>
															<div class="mt10px small">
							<form name="pkg_188859" id="pkg_188859" method="post" action="http://www.silverraytravel.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.silverraytravel.co.in/holiday-packages/a-mata-vaishno-devi-with-kashmir-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="A MATA VAISHNO DEVI WITH KASHMIR TOUR - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="188859"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.silverraytravel.co.in/holiday-packages/amazing-kashmir-tour-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/566299/296186.jpg"  alt="AMAZING KASHMIR TOUR PACKAGE" title="AMAZING KASHMIR TOUR PACKAGE"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.silverraytravel.co.in/holiday-packages/amazing-kashmir-tour-package.htm" title="AMAZING KASHMIR TOUR PACKAGE"><h3>Amazing Kashmir Tour Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Sonamarg</p>
															<div class="mt10px small">
							<form name="pkg_188858" id="pkg_188858" method="post" action="http://www.silverraytravel.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.silverraytravel.co.in/holiday-packages/amazing-kashmir-tour-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="AMAZING KASHMIR TOUR PACKAGE - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="188858"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:68:"Book PARADISE KASHMIR TOUR PACKAGE - 5 Nights / 6 Days Tour Packages";i:2;s:149:"book paradise kashmir tour package - 5 nights / 6 days tour packages, hill station tour packages, srinagar, pahalgam, sonamarg, gulmarg tour packages";i:3;s:183:"Silver Ray Travel offers PARADISE KASHMIR TOUR PACKAGE - 5 Nights / 6 Days tour package, budget Hill Station tour packages for Srinagar, Pahalgam, Sonamarg, Gulmarg at exciting price.";i:4;s:3410:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Pahalgam, Sonamarg, Gulmarg"        
		                 },
		      "description": "“Cradled in the lap of majestic snow-capped mountains peaks of the Himalayas, Kashmir is the most beautiful place on earth, so we call it “PARADISE or HEAVEN ON EARTH” Located in the northern part of the Indian subcontinent, the Indian state of Jammu and Kashmir lies in the vicinity of the karakoram and western Himalayan mountain ranges. Filled with snow-clad mountains, glittering peaks, variety of flowers that welcome you into a perfumed air, Jammu and Kashmir is a paradise in itself, enticing all those who choose to visit the place. Kashmir is always the favourite destination among tourist. Now, open to tourism after a spell of troubled times, Kashmir is again attracting hordes of tourist and is definitely proving to be the most famous tourist destination in the state. An ancient city, there are many attractions that can lure the tourist to this land. Dal Lake, Nishat Bagh, Shalimar Bagh, Chashma Shai, Tulip Garden, Kheer Bhawani Temple, Gulmarg, Yusmarg, Sonamarg, Pahalgam, Kokarnag, Daksum, Verinag are some of the best known tourist spots in Kashmir.

Kashmir beautiful Himalayan valley with breathtaking mountain scenery, clear lakes, lush vegetation and magnificent forest. The capital city Srinagar (1, 730 m) is famous for its canals, houseboats and Mughal Gardens. The Valley is home to rich biodiversity includes a large number of birds species, many of which are unique to Kashmir. Kashmir lifestyle is essentially slow paced and reflects religious diversity. Kashmir’s are known to enjoy their music in its various local forms and the traditional dress of both male / female is often quite colorful. The Dumhal is a famous dance in Kashmir, performed by men of the Wattal region. The women perform the Ruff, another folk dance (Well knowing song bombroo, bombroo). Kashmir has been noted for its fine arts for centuries including poetry and handicrafts.

To explore these varied landforms and more, buy Kashmir tour packages from Yatra. The state can be easily reached via road, rail and air from all parts of country, leading to easy access. One of its top tourist destinations is its capital, Srinagar. Here, people can visit Dal Lake, take a ride on Shikara, stay in houseboat and relax in lakeside Mughal gardens like Shalimar Bagh, Nishat Bagh, Chashma Shai Garden, Shankracharya Temple. The cuisine of the state is fragrant and full of spices, with dishes like Gushtaba, Dum Aloo, Rogan Josh, Kashmiri Yakhni and the famous Tea, Kashmiri Kahwa, being the favorites. Kashmir is also famous for fruits & Dry Fruits all over the world (popularly Kashmiri Apple, Kashmiri Cherry, Kashmiri Walnuts and Kashmiri Almond), while in the city with Kashmir holiday packages, travellers can buy exquisite hand wovan rugs and carpets, and the globally renowned pashmina shawls. The valley of Kashmir is surrounded by splendid hill stations like sonamarg, Gulmarg and Pahalgam, Where adventure sports like skiing can be relished in winters.",
		      "name": "PARADISE KASHMIR TOUR PACKAGE",
		      "telephone": "+91-7006353219"
		    }
		    </script>
			";i:5;N;}