a:6:{i:0;s:13784:"				<div class="h1"><h1>Honeymoon in Kashmir Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.arihanttours.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.arihanttours.in/india-tours.htm" title="India Tours">India Tours</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Honeymoon in Kashmir 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">Tour Code </td>
						<td class="p5px pl0px vat">AT09</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Srinagar, Pahalgam, Sonamarg, 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.arihanttours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Honeymoon in 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="7946"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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/26194/5564.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/5564.jpg"  width="150" height="150"    alt="Honeymoon in Kashmir Tour" title="Honeymoon in Kashmir Tour" /></a></p></div></li>
																		<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/26194/5560.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/5560.jpg"  width="150" height="150"    alt="Honeymoon in Kashmir Tour" title="Honeymoon in Kashmir Tour" /></a></p></div></li>
																		<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/26194/5561.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/5561.jpg"  width="150" height="150"    alt="Honeymoon in Kashmir Tour" title="Honeymoon in Kashmir Tour" /></a></p></div></li>
																		<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/26194/5562.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/5562.jpg"  width="150" height="150"    alt="Honeymoon in Kashmir Tour" title="Honeymoon in Kashmir Tour" /></a></p></div></li>
																		<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/26194/5563.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/5563.jpg"  width="150" height="150"    alt="Honeymoon in Kashmir Tour" title="Honeymoon in Kashmir Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					From Kashmir is a glittering jewel of India and its natural splendor is without compare. Although they say that Kashmir is one of those rare places where nature lies at its best, the exquisiteness of this perfect state is actually indescribable. Honeymoon in Kashmir. The state is dotted with such treasure-troves that draw people to this heavenly state from far and wide. Honeymoon in Kashmir have been designed after a thoughtful consideration as to what all should form a part of the itineraries. As you choose us as your Kashmir honeymoon guide, you are enabled an A-grade accommodation in a luxurious hotel of Kashmir.Any meals other than those specified.<br />
Expenses of personal nature such as tips, telephone calls, laundry, liquor etc.<br />
Entrance fees during sightseeing.<br />
Any other item not specified.01-0430-06<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 & transfer to House Boat/Hotel
								</p>
								<p class="aj">On arrival at Srinagar Airport or Bus Station, our representative will meet you. With displaying your name card and transfer you to the Houseboat/Hotel. Upon arrival check in to your House Boat/Hotel. Rest of the Day is at your leisure. Overnight at House Boat/Hotel.</p>					
									<p><b>Meals : </b> Breakfast and Dinner</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 City Tour & Dal Lake Tour
								</p>
								<p class="aj">This morning After Breakfast visit The City of Srinagar. The world famous Mughal Gardens visiting the Nishat Garden known as 'Garden of pleasure' built in 16PthP century (1633) by Mughal Emperor Asif Khan. Then visiting Shalimar Garden, 'Garden of love' Parimahal Garden also you can visit Tulip Garden, and then pay visit to famous Shankaracharya Temple situated on top of Hill where you can have a look of whole Srinagar City. In the Evening Shikara Ride on The Dal Lake to enjoy the beauty of the Kashmir. Overnight at House Boat Hotel.</p>					
									<p><b>Meals : </b> Breakfast and Dinner</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 to Sonmarg Day Trip
								</p>
								<p class="aj">This morning take a full day excursion to Sonmarg, which is the most beautiful, drive Srinagar. On the way you stop at many beautiful spots. One can ride on horse to visit Thajiwas Glacier where snow remains round the year. Sonmarg is known as Gateway of Ladakh. In the evening return to Srinagar. Overnight at House boat/Hotel.</p>					
									<p><b>Meals : </b> Breakfast and Dinner</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 to Pahalgam
								</p>
								<p class="aj">This morning after breakfast drive to Pahalgam 2440 Mtrs (Vale of Kashmir) on the way visit Saffron field and Awantipora ruins, which is eleven hundred years Old Temple. Finally by the lunchtime you will reach Pahalgam, which is the most famous palace for Indian Film Industry. After lunch enjoy the nature charm of the valley. Overnight at Hotel in Pahalgam.</p>					
									<p><b>Meals : </b> Breakfast and Dinner</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 Free Day
								</p>
								<p class="aj">After Breakfast, Visit to Chandanwari, The snow Point (14 Kms) at your own cost or enjoy pony ride at your own cost, or enjoy the nature charm by walk. Or explore the countryside and enjoy leisurely walks through the pine forest along the River Lidder. Overnight at Hotel in Pahalgam.</p>					
									<p><b>Meals : </b> Breakfast and Dinner</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> Pahalgam to Gulmarg
								</p>
								<p class="aj">This morning after Breakfast leave for Gulmarg which is one of the most beautiful summer resorts in the valley. It is also popular for its highest golf course in the world and skiing during the winter season. One can have Gondola ride (cable car) from Gulmarg to Khilanmarg. The name means 'Meadow of Flowers' and in the spring it's just that, a rolling meadow dotted with countless colorful Bluebells. Overnight at Hotel in Gulmarg.</p>					
									<p><b>Meals : </b> Breakfast and Dinner</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 7:</b> Full Day in Gulmarg
								</p>
								<p class="aj">Today you have free day in Gulmarg. The name means 'Meadow of Flowers' and in the spring it's just that, rolling meadow dotted with countless colorful Bluebells. & in winter it’s just white with snow. Attractions in Gulmarg the most beautiful Sumer Resort it is also popular for its highest golf course in the world and skiing during the winter season. One can have Gondola ride (cable car) from Gulmarg to Khilanmarg. OR Horse riding. OR enjoys the nature walk in Gulmarg. Gulmarg is surrounded on all sides by a chain of mountains which range from 4000 M to 5000. Overnight at Hotel in Gulmarg.</p>					
									<p><b>Meals : </b> Breakfast and Dinner</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 8:</b> Gulmarg to Srinagar airport/Bus stand drop for onwards Journey
								</p>
								<p class="aj">Today you will be transferred to Srinagar Airport/Bus Stand for your onward journey.</p>					
									<p><b>Meals : </b> Breakfast</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>Transport</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any meals other than those specified.</li><li>
Expenses of personal nature such as tips, telephone calls, laundry, liquor etc.</li><li>
Entrance fees during sightseeing.</li><li>
Any other item not specified.</li></ul><br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>Ex - Srinagar Rs 28000/- Per Person on Twin Sharing<br /><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.arihanttours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Honeymoon in 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="7946"/>
						</form>
						</div>
						
						";i:1;s:64:"Book Honeymoon in Kashmir Tour - 7 Nights / 8 Days Tour Packages";i:2;s:139:"book honeymoon in kashmir tour - 7 nights / 8 days tour packages, valley tour packages, srinagar, pahalgam, sonamarg, gulmarg tour packages";i:3;s:184:"Book Honeymoon in Kashmir Tour - 7 Nights / 8 Days tour packages from Arihant Tours - Get attractive 7 Nights / 8 Days Valley  tour packages for  Srinagar, Pahalgam, Sonamarg, Gulmarg.";i:4;s:1251:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Pahalgam, Sonamarg, Gulmarg"        
		                 },
		      "description": "From Kashmir is a glittering jewel of India and its natural splendor is without compare. Although they say that Kashmir is one of those rare places where nature lies at its best, the exquisiteness of this perfect state is actually indescribable. Honeymoon in Kashmir. The state is dotted with such treasure-troves that draw people to this heavenly state from far and wide. Honeymoon in Kashmir have been designed after a thoughtful consideration as to what all should form a part of the itineraries. As you choose us as your Kashmir honeymoon guide, you are enabled an A-grade accommodation in a luxurious hotel of Kashmir.Any meals other than those specified.
Expenses of personal nature such as tips, telephone calls, laundry, liquor etc.
Entrance fees during sightseeing.
Any other item not specified.01-0430-06",
		      "name": "Honeymoon in Kashmir Tour",
		      "telephone": "+91-9420566577"
		    }
		    </script>
			";i:5;N;}