a:6:{i:0;s:10789:"				<div class="h1"><h1>Kashmir - E - Kashmir Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.india-travelguide.net/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.india-travelguide.net/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Kashmir - E - Kashmir 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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Srinagar, Anantnag, Baramulla</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.india-travelguide.net/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir - E - Kashmir 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="116047"/>
						</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/8021/189053.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/8021/189053.jpg"  width="150" height="150"    alt="Kashmir - E - Kashmir Package" title="Kashmir - E - Kashmir 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 in Srinagar
								</p>
								<p class="aj">After arriving at the Srinagar Airport, meet our tour representative who helps you with an assisted transfer to Houseboat. Complete the check-in formalities and relish the welcome drink. After settling-in, begin the city tour of Srinagar. The list of attractions includes gardens of Srinagar- Mughal Gardens, Chashmi-e Shahi (The Royal Spring), Nishat Bagh (The Garden of pleasure) Shalimar Bagh (Abode of love). Mughal Gardens – a well-maintained group of garden built in Charbaugh structure in Persian style, a favorite of the Mughal rulers. It features canals, fountains and pools. This garden was commissioned by Emperor Babur and has contributions from his predecessors like Jehangir and Shah Jahan. Visited by tourists in huge numbers, Mughal Garden is one of the most popular attractions in Kashmir. The garden is a combination of three important gardens- namely the Nishat Bagh, Chashm-e-shahi and Shalimar Bagh. Nishat Bagh is a terraced Mughal garden that is the second largest Mughal garden in Kashmir. Lying on the eastern side of the Dal Lake, this garden has 12 terrace levels, with old chinars, rows of flowers and water channels with fountains. Shalimar Bagh was commissioned in 1619 by Mughal Emperor Jahangir for his wife Nur Jahanand is popular as the high point of Mughal horticulture. Chashm-e-shahi is the smallest of the 3 gardens here nut is extremely popular for its Royal Spring. There is a shelter space around the spring that is known to be quite rich in iron and minerals. The evening is scheduled for a memorable Shikara Ride in famous Dal Lake.  An activity not to be missed when in Srinagar, Shikara ride takes you to the length and breadth of the lake. Shikara is a small narrow boat that lets you cruise on the serene waters of the lake. There is floating markets selling Kashmiri specialties like dry fruits and woolen and Pashmina shawls. There would be other Shikaras selling various knick-knacks, ice creams, fruits and vegetables. While cursing, get dressed like the locals do and click memorable photographs. There are even bigger Shikaras selling eatables like pakoras, Maggie and more. Dinner and Overnight in the House Boat.</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
								</p>
								<p class="aj">Post breakfast, the day is scheduled for an excursion to Gulmarg, a place that boasts of pristine beauty in abundance. The place looks like heaven nestled amidst high-peaked mountains and covered with a sheet of lush greenery and colorful flowers. A visit to Gulmarg will surely be refreshing and memorable. It has been a holiday resort from the days of the British. The road from Srinagar to Gulmarg is festooned with beautiful white and purple flowers. Enjoy the scenery. As you reach Gulmarg, get all set to explore the place and explore its attractions. The hill town boasts of housing Asia’s highest and longest cable car project, the Gulmarg Gondola, the most popular thing to do here. This is two-stage ropeway Cable car that carries around 600 people per hour, to and from Kongdoori Mountain, nearby Afarwat Peak (13,780 ft). Once you reach the top, treat your eyes to the beautiful views of the snow-capped Himalayas. You can also partake in hiking and horse riding to know the place. If you are visiting Gulmarg between December and April, do try Skiing as Gulmarg is one of the world’s best skiing destinations. Try your hand at golfing at the highest golf course in the world with 18 holes. Return to Srinagar by evening. Overnight stay.</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 - Pahalgam - Srinagar
								</p>
								<p class="aj">After enjoying breakfast, leave the hotel for a full day excursion of Pahalgam or the Valley of Shepherds. On the way, take at halt to visit the Saffron fields. Pampore is the place in Kashmir that has been growing Saffron from past 2500 years. Kashmiri Saffron is known to be of the best quality. You can click pictures here as memories. Admire the nature’s mesmerizing views.   Later, continue towards Pahalgam, a beautiful hill town of Kashmir, covered with lush greenery. Located on the banks of Lidder River, Pahalgam is a favorite spot for the shooting of Bollywood movies and allures a crazy number of tourists. On arrival, explore the popular tourist attractions of Pahalgam. If you are an adventure enthusiast, try your hand in River Lidder. Hop onto a horse’s back to explore the place. You can shop for some amazing stuff from the market of Pahalgam. Visit Avantipura Ruins, remains of ancient Hindu temples that were commissioned by King Awanti Varman who ruled the region during the 9th century. The ruins have temples, dedicated to Lord Shiva and Lord Vishnu. The place is surrounded by greenery and offers mental peace. The next attraction is Anantnag Sulphur Springs, 2 in number. The water of these springs is very fresh. Spend some memorable with your loved ones here. In the evening, back to Srinagar. Stay overnight.</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> Departure from Srinagar
								</p>
								<p class="aj">Departure from Srinagar</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.india-travelguide.net/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir - E - Kashmir 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="116047"/>
						</form>
						</div>
						
						";i:1;s:68:"Book Kashmir - E - Kashmir Package - 3 Nights / 4 Days Tour Packages";i:2;s:141:"book kashmir - e - kashmir package - 3 nights / 4 days tour packages, hill station tour packages, srinagar, anantnag, baramulla tour packages";i:3;s:186:"Lawania Adventures Pvt. Ltd. offers Kashmir - E - Kashmir Package - 3 Nights / 4 Days tour package, budget Hill Station tour packages for Srinagar, Anantnag, Baramulla at exciting price.";i:4;s:430:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Anantnag, Baramulla"        
		                 },
		      "description": "",
		      "name": "Kashmir - E - Kashmir Package",
		      "telephone": "+91-9810039303"
		    }
		    </script>
			";i:5;N;}