a:6:{i:0;s:10345:"				<div class="h1"><h1>Short Escape in Kashmir - Honey Moon Special Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.osrvacation.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.osrvacation.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Short Escape in Kashmir - Honey Moon Special 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">
						2 Nights / 3 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 </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.osrvacation.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Short Escape in Kashmir - Honey Moon Special 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="65008"/>
						</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_14/406010/119817.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/406010/119817.jpg"  height="150"  width="150"    alt="Short Escape in Kashmir - Honey Moon Special Tour" title="Short Escape in Kashmir - Honey Moon Special Tour" /></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 in Srinagar
								</p>
								<p class="aj">Our representative will assist you at the airport and transfer you to the hotel or houseboat for check in.<br />
Srinagar (Lake City) - It tells the story of love of the Mughal Emperors for this paradise like vale with deep green rice fields, rivers, gardens in bloom and lakes rimmed by houseboats, where lush wild gardens of lotus and water-lily grow amidst bustling lanes.<br />
Afternoon visit important sights of Srinagar City - Shankaracharya Temple & Mughal Gardens Shankaracharya Temple (Hindu Shrine) - Situated on the highest hill of Srinagar, it is nearly one thousand feet above the city.<br />
The temple commands a magnificent panoramic view of the Srinagar city. It is devoted to lord Shiva. The site dates back to 2500 BC. The philosopher Shankaracharya stayed at this site when he visited Kashmir ten centuries ago to revive Sanatan Dharma. NishatBagh (Garden of Pleasure) - The largest Mughal garden situated on the banks of world famous Dal-Lake in the backdrop of Zabarwan hills encircles the Dal Lake.<br />
Empress Noor Jahan’s brother Asif Khan laid the Garden in 1633 AD. Nishat has seven terraces with a beautiful central water course flowing right in the middle. These terraces rise dramatically off the mountains from the eastern part of the lake.<br />
Shalimar Bagh (Garden of Pleasure) - It was planted by Mughal emperor Jehangir for Empress Noor Jahan in 1619 AD and later extended in 1727 A.D. by Shah Jahan.<br />
The Garden blooms with innumerable varieties of flowers in spring and autumn.<br />
Overnight stay at the hotel or 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 2:</b> Pahalgam
								</p>
								<p class="aj">In the morning after breakfast your journey starts towards Pahalgam, en-route visit Saffron fields of Pampora, see the beautiful countryside, lots of rice fields and Awantipura ruins on the way.<br />
Awantipura Ruins (1100 years Old Temple) - Built in 09th century AD by King Avantivarman and dedicated to Lord Vishnu and Lord Shiva. Situated 29 kms from Srinagar, the temple ruins at Awantipura represent some of the finest examples of architecture of this region.<br />
Later continue your drive to Pahalgam through the pine forest, the confluence of the streams flowing from the river Lidder&Sheshnag Lake which are famous for their scenic beauty. Pahalgam ( Valley of Shepherds) - It is situated at an altitude of 2,130 m above sea level and has a golf course at 2400 meters above the sea level. Surrounded with fragrant pine forests, the idyllic resort includes a golf course and spots for angling.<br />
The bubbling Lidderharbors a sizeable population of rainbow trout and mahaseer to ensure you don’t come away disappointed.<br />
The nearby forested slopes are home to the Himalayan brown bear. After having your lunch at local restaurant, proceed to have bridle walks and feed your cameras with the picture of magnificent view of mountains.<br />
(OPTIONAL)<br />
One can enjoy Horse ride at Pahalgam. (Additional cost to be directly paid by clients).<br />
Around Pahalgam are many places of interest, and because the resort is set between fairly steep hills, it is worth hiring a pony rather than walking.<br />
Hajan an idyllic spot for a picnic.<br />
Afternoon drive back from Pahalgam to Srinagar,<br />
overnight stay at the hotel or 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 3:</b> Gulmarg Departure
								</p>
								<p class="aj">In the morning after breakfast proceed for a picturesque drive to Gulmarg. Gulmarg (Meadow of lowers) - It was discovered as a tourist destination by the British in the 19th century. Prior to that, Mughal emperors vacationed in the Gulmarg valley which is about 03 kms long and up-to 01 km wide. It is exquisitely situated in a pine surrounded basin of the Pir Panjal range at an altitude of 2,730 meters above sea level and one of the most famous tourist destinations of Kashmir.<br />
It also has one of the world’s highest green golf courses with 18 holes, as well as a clubhouse, which is a historical building in its own right. OPTIONAL - One can enjoy Gondola ride or Horse ride at Gulmarg.<br />
For a fun-filled ride of a most unusual kind, Gulmarg’s newly constructed gondola lift from high above Gulmarg, through pine-clad slopes is exhilarating.<br />
From Gulmarg a pony track leads upwards to Khilanmarg, Kangdori& seven springs, a couple of hours by pony longer on foot.<br />
Afternoon drive back from Gulmarg to Srinagar<br />
Overnight stay at the hotel or houseboat<br />
Departure from Srinagar<br />
After breakfast enjoy a relaxing Shikara ride on the lake - It’s one of the most soothing & relaxing aspects of a holiday in Kashmir and you will be transferred to Srinagar airport in time to board flight to back sweet home.</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">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.osrvacation.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Short Escape in Kashmir - Honey Moon Special 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="65008"/>
						</form>
						</div>
						
						";i:1;s:88:"Book Short Escape in Kashmir - Honey Moon Special Tour - 2 Nights / 3 Days Tour Packages";i:2;s:151:"book short escape in kashmir - honey moon special tour - 2 nights / 3 days tour packages, hill stations & valleys tour packages, srinagar tour packages";i:3;s:203:"Book Short Escape in Kashmir - Honey Moon Special Tour - 2 Nights / 3 Days tour packages from Osr Vacation Pvt Ltd - Get attractive 2 Nights / 3 Days Hill Stations & Valleys  tour packages for  Srinagar.";i:4;s:429:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar"        
		                 },
		      "description": "",
		      "name": "Short Escape in Kashmir - Honey Moon Special Tour",
		      "telephone": "+91-9555961410"
		    }
		    </script>
			";i:5;N;}