a:6:{i:0;s:22322:"				<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-->				
									<div class="h1"><h1>Kashmir Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.homelandladakhtour.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.homelandladakhtour.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Kashmir Tour</p> 
									
						<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> 
						3 Nights / 4 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Srinagar, Anantnag, Baramulla</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.homelandladakhtour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir Tour - 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="123378"/>
						</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_18/513364/198957.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_18/513364/198957.jpg"  width="150" height="150"    alt="Kashmir Tour" title="Kashmir Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<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">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
										</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
										</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">Return home with sweet memories</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>Hotel</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 
* Airfare/Transport fare to be paid full at one time in advance.</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>* 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.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.homelandladakhtour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir 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="123378"/>
						</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.homelandladakhtour.in/packages-in-leh-ladakh.htm" title="Packages in Leh Ladakh">Leh Ladakh</a> <b class="alpha50 bn small">(19)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/packages-in-kargil.htm" title="Packages in Kargil">Kargil</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/packages-in-lachung.htm" title="Packages in Lachung">Lachung</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/packages-in-pelling.htm" title="Packages in Pelling">Pelling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/packages-in-lahaul-spiti.htm" title="Packages in Lahaul & Spiti">Lahaul & Spiti</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/packages-in-yumthang.htm" title="Packages in Yumthang">Yumthang</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></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.homelandladakhtour.in/road-trip-holidays-catid.htm" title="Road Trip Packages">Road Trip</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/festive-events-holidays-catid.htm" title="Festive & Events Packages">Festive & Events</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/river-rafting-holidays-catid.htm" title="River Rafting Packages">River Rafting</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/winter-holidays-catid.htm" title="Winter Packages">Winter</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.homelandladakhtour.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.homelandladakhtour.in/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.homelandladakhtour.in/camping-holidays-catid.htm" title="Camping Packages">Camping</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.homelandladakhtour.in/yak-safari-holidays-catid.htm" title="Yak Safari Packages">Yak Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></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, Anantnag, Baramulla</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.homelandladakhtour.in/tour-packages/bike-tour-from-manali-srinagar-via-ladakh-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/513364/196193.jpg"  alt="Bike Tour From Manali - Srinagar Via Ladakh Tour" title="Bike Tour From Manali - Srinagar Via Ladakh Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.homelandladakhtour.in/tour-packages/bike-tour-from-manali-srinagar-via-ladakh-tour.htm" title="Bike Tour From Manali - Srinagar Via Ladakh Tour"><h3>Bike Tour From Manali - Srinagar Via Ladak..</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> : 
								9 Nights / 10 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Manali, Srinagar, Leh Ladakh, Kargil</p>
															<div class="mt10px small">
							<form name="pkg_121332" id="pkg_121332" method="post" action="http://www.homelandladakhtour.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.homelandladakhtour.in/tour-packages/bike-tour-from-manali-srinagar-via-ladakh-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Bike Tour From Manali - Srinagar Via Ladakh 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="121332"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.homelandladakhtour.in/tour-packages/manali-leh-via-tsokar-tsomoriri-zanskar.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/513364/210958.jpg"  alt="Manali-Leh-Via Tsokar Tsomoriri-Zanskar" title="Manali-Leh-Via Tsokar Tsomoriri-Zanskar"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.homelandladakhtour.in/tour-packages/manali-leh-via-tsokar-tsomoriri-zanskar.htm" title="Manali-Leh-Via Tsokar Tsomoriri-Zanskar"><h3>Manali-leh-via Tsokar Tsomoriri-zanskar</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 / 10 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Manali, Srinagar, Leh Ladakh</p>
															<div class="mt10px small">
							<form name="pkg_132788" id="pkg_132788" method="post" action="http://www.homelandladakhtour.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.homelandladakhtour.in/tour-packages/manali-leh-via-tsokar-tsomoriri-zanskar.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Manali-Leh-Via Tsokar Tsomoriri-Zanskar - 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="132788"/>
							</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:51:"Book Kashmir Tour - 3 Nights / 4 Days Tour Packages";i:2;s:126:"book kashmir tour - 3 nights / 4 days tour packages, lakes & rivers tour packages, srinagar, anantnag, baramulla tour packages";i:3;s:158:"Homeland Ladakh offers Kashmir Tour - 3 Nights / 4 Days tour package, budget Lakes & Rivers tour packages for Srinagar, Anantnag, Baramulla at exciting price.";i:4;s:413:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Anantnag, Baramulla"        
		                 },
		      "description": "",
		      "name": "Kashmir Tour",
		      "telephone": "+91-9419491989"
		    }
		    </script>
			";i:5;N;}