a:6:{i:0;s:10843:"				<div class="h1"><h1>Devine of 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>Devine of 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Jammu, Katra, Srinagar, Anantnag, Baramulla, Ganderbal</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="Devine of 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="114076"/>
						</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/186420.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/356661/186420.jpg"  width="150" height="150"    alt="Devine of Kashmir Package" title="Devine of Kashmir Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					It is believed that when two people tie the auspicious knot of marriage, they must take the blessings of the almighty. Keeping the same in mind we have crafted a special honeymoon package that along with a romantic getaway gifts you an escape of divinity. Our Divine of Kashmir Honeymoon Tour Package lets you explore the pristine beauty of Srinagar, Sonmarg, Gulmarg and Pahalgam, and at the same time gives you the opportunity to pay homage at Vaishno Devi. It is deemed that the blessings of the deity will gift you a long lasting happy married life.<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> Arrive Srinagar
								</p>
								<p class="aj">On arrive transfer to hotel. After check in proceed to sightseeing including Shankarachary temple, Pari Mahal, Chasma - e - Shahi & Mughal Gardens. Overnight stay at 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> Srinagar-Sonmarg-Srinagar
								</p>
								<p class="aj">After morning breakfast take a ride to Shikara (Optional) on the lake Its one of the most peaceful & relaxing aspects in Kashmir. Later you will be driven for full day excursion trip to Sonmarg. Sonamarg (Meadow of Gold) – It is a place of enthralling beauty, lies in Sindh Valley, streamed with flowers, surrounded by mountains and perched at an altitude of 2690 m above sea level. Visited less frequently by tourists, it has as its backdrop, snowy mountains against a clear sky. It is a quiet alpine retreat surrounded with sycamore, silver birch, fir and pine trees and the last halt on the Kashmir side for the drive from Srinagar to Leh. It is also the base for some interesting treks to the high altitude of Himalayan Lakes. After having your lunch at local restaurant, feed your cameras with the picture of magnificent view of mountains. You can enjoy Horse ride at Sonmarg (Optional). Afternoon drive back from Sonmarg to Srinagar. Overnight stay at 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> Srinagar-Gulmarg
								</p>
								<p class="aj">After breakfast drive to Gulmarg, it is also famous for world longest cable car. This distance of 60 kms will covered in approx 2 hrs. Gulmarg has one of the best Ski slopes in the world and highest golf course of the world with 18 holes. One can also have the view of Nanga Parbhat if weather permits. The view enroute from Tangmarg to Gulmarg is fascinating. One can also have a short trek upto Khilangmarg which can be covered in about 3 to 4 hrs or enjoy the scenic view of Kongdori on a Cable Car Known as (Gondola). Later visit a local Handicrafts Emporium for hand-knotted specialty silken carpets, shawls, jewelry ornaments. Overnight stay at hotel.</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> Gulmarg-Pahalgam
								</p>
								<p class="aj">After breakfast drive to Pahalgam. On arrival at Pahalgam check in at hotel. Later enjoy the nature and admire the beauty of this calm place and be in awe of the serene surroundings. Also visit “Valley of Shepherds”. One can also enjoy a pony ride to nearby places like Chandanwadi (on a direct hire basis) or if you are an avid nature lover you may take pleasure in a peaceful walk along the River Lidder. Pahalgam is famous for some trekking routes also & is the base camp for Amarnath Pilgrimage. Overnight stay at hotel.</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-Katra
								</p>
								<p class="aj">After breakfast drive to Katra. Katra town lying in the foot of Trikuta Mountains, it serves as the base camp for visiting the world famous shrine of Shri Mata Vaishno Devi which is accessible by foot along a 14 Kms long well laid footpath. Every year more than 4.5 million pilgrims pass through Katra on their way to the holy shrine. Overnight stay at hotel.</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> Katra-Vaishnodevi Darshan-Katra
								</p>
								<p class="aj">After breakfast start the Holy Journey to Mata Vaisno Devi Darshan. Trek to Mata Vaishno Devi shrine (14 kms), ponies can also be arranged by your own for the trek and (also can take return Helicopter, optional) return back to Katra late in evening/night, Mata Vaishno Devi temple is one of the holiest Hindu temples dedicated to Shakti and is the second most visited religious shrine in India after Tirupati Balaji Temple in Andhra Pradesh. Overnight stay at hotel.</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> Katra-Jammu
								</p>
								<p class="aj">Morning after breakfast you will be transferred to Jammu airport / railway station in time for your onward destination.<br />
<br />
Tour & Services Ends.</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.kashmirhilltours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Devine of 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="114076"/>
						</form>
						</div>
						
						";i:1;s:64:"Book Devine of Kashmir Package - 6 Nights / 7 Days Tour Packages";i:2;s:156:"book devine of kashmir package - 6 nights / 7 days tour packages, valley tour packages, jammu, katra, srinagar, anantnag, baramulla, ganderbal tour packages";i:3;s:214:"Book Devine of Kashmir Package - 6 Nights / 7 Days tour packages from Blue Hills Tours & Travels - Get attractive 6 Nights / 7 Days Valley  tour packages for  Jammu, Katra, Srinagar, Anantnag, Baramulla, Ganderbal.";i:4;s:1004:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Jammu, Katra, Srinagar, Anantnag, Baramulla, Ganderbal"        
		                 },
		      "description": "It is believed that when two people tie the auspicious knot of marriage, they must take the blessings of the almighty. Keeping the same in mind we have crafted a special honeymoon package that along with a romantic getaway gifts you an escape of divinity. Our Divine of Kashmir Honeymoon Tour Package lets you explore the pristine beauty of Srinagar, Sonmarg, Gulmarg and Pahalgam, and at the same time gives you the opportunity to pay homage at Vaishno Devi. It is deemed that the blessings of the deity will gift you a long lasting happy married life.",
		      "name": "Devine of Kashmir Package",
		      "telephone": "+91-9469000836"
		    }
		    </script>
			";i:5;N;}