a:6:{i:0;s:10893:"				<div class="h1"><h1>Kashmir - E - Kashmir Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.kashmirhilltours.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.kashmirhilltours.com/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, Pahalgam, Gulmarg</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.kashmirhilltours.com/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="109342"/>
						</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_12/356661/180838.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/356661/180838.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).<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.  <br />
<br />
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.<br />
<br />
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.<br />
<br />
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.kashmirhilltours.com/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="109342"/>
						</form>
						</div>
						
						";i:1;s:68:"Book Kashmir - E - Kashmir Package - 3 Nights / 4 Days Tour Packages";i:2;s:133:"book kashmir - e - kashmir package - 3 nights / 4 days tour packages, valley tour packages, srinagar, pahalgam, gulmarg tour packages";i:3;s:191:"Book Kashmir - E - Kashmir Package - 3 Nights / 4 Days tour packages from Blue Hills Tours & Travels - Get attractive 3 Nights / 4 Days Valley  tour packages for  Srinagar, Pahalgam, Gulmarg.";i:4;s:428:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Pahalgam, Gulmarg"        
		                 },
		      "description": "",
		      "name": "Kashmir - E - Kashmir Package",
		      "telephone": "+91-9469000836"
		    }
		    </script>
			";i:5;N;}