a:6:{i:0;s:11863:"				<div class="h1"><h1>Vaishno Devi with Kashmir Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.pptt.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.pptt.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Vaishno Devi with 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">Duration </td>
						<td class="p5px pl0px vat">
						8 Nights / 9 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.pptt.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Vaishno Devi with 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="62373"/>
						</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_8/228917/116391.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/228917/116391.jpg"  width="150" height="150"    alt="Vaishno Devi with Kashmir Tour" title="Vaishno Devi with Kashmir Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Air Fair, Train Ticket,<br />
Lunch, Phone, Laundry<br />
Driver Tips<br />
Extra Shikara Ride<br />
Extra Gondola Ride Tickets<br />
Extra Horse Ride in Pahalgam, Sonamarg<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> Jammu - Katra
								</p>
								<p class="aj">Arrive Jammu , Meet and assist on arrival and proceed straight to Katra by Coach Arrive Katra and check in at Hotel. and Overnight in 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 2:</b> Katra - Mata Vaishno Devi Darshan
								</p>
								<p class="aj">Early Morning proceed to Vaishno Devi Shrine (Approx. 13 km Trek ) One can trek up to the Shrine if fitness permits, otherwise Pony or Palanquins are also available at an extra cost. Arrive at Vaishno Devi Bhawan. Wash and change before Mata Darshan. After Mata Vaishno Devi Darshan, proceed for Bhaironji Darshan (Optional). After Darshan back to Hotel, and Rest and Overnight stay in 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 3:</b> Katra - Srinagar
								</p>
								<p class="aj">Pickup from Katra Hotel and drive to Srinagar, evening on arrival in Srinagar Check-in at Houseboat / Hotel. 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 4:</b> Srinagar Local Sightseeing
								</p>
								<p class="aj">After breakfast proceed for full day tour of world famous Mughal Gardens visiting the Nishat Bagh (The garden of pleasure) and Shalimar Bagh (Adobe of love) , Shankaracharya Temple , Pari Mahal , Hazratbal Shrine .In the afternoon Shikara ride on The Dal Lake to enjoy the beauty that God has graced this city . Kashmir was a favorite of the Mughal emperors who visited it as often as they could. Cool and refreshing after the plains of North India where the business of governance kept them, they planted gardens with stepped terraces and flowing watercourses. When they rested in their gardens, they dream they were in paradise You will get a view of some very interesting places around the Lake. Overnight stay at Deluxe Houseboat / 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> Srinagar - Sonamarg - Srinagar (84 km, 3 hrs One Way)
								</p>
								<p class="aj">After Breakfast drive to Sonamarg, Sonamarg is a small and beautiful hill resort. Sonamarg literally means the 'Meadow of Gold' and is known so due to the flowers that wraps the meadow in the spring.<br />
In the earlier days, Sonamarg lies on the main trading route into central Asia. Sonamarg is the last major point in the Kashmir valley before the Zoji La pass into Ladakh. Sonmarg with altitude of 2690 Meters is the most beautiful drive from Srinagar. One can ride on horse to visit to Thajiwas Glacier where snow remains round the year. Return back to Srinagar. Overnight Srinagar.</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> Srinagar - Gulmarg (56 km/2 hrs)
								</p>
								<p class="aj">After breakfast check out hotel and drive to Gulmarg, Meadow of Flowers. Situated at an altitude of 2730 meters, full day at leisure to take the leisurely walks on the lush green meadows of flowers with a backdrop of the snow capped mountains. Gulmarg looks like a fantasy set in a film and not surprisingly have been the venue of several films. The valley of Gulmarg, a large meadow about 3-sq-kms in area, stands at 2,730 metres, 56-km south west of Srinagar. The name means 'Meadow Of Flowers' and in the spring it's just that, a rolling meadow dotted with countless colorful Bluebells, Daisies, Forget Me Not's and Buttercups. The valley itself is about 3-km long and up to a km wide. Enjoy pony ride or Gondola ride (rope way) to Khilanmarg at your own cost. Dinner & overnight in the Gulmarg.</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> Gulmarg - Pahalgam (140 km/4 hrs)
								</p>
								<p class="aj">After Breakfast check out hotel and drive to the Pahalgam. Valley of Shepherds. Pahalgam is 95 km. east of Srinagar, 2400 mt. above sea level popular holiday resort. It is called "Shepherds village" at the head of the Lidder valley. Best place for trout fishing. Apart from angling, Pahalgam is also known as the starting point for trekking. Reroute you will have an rare opportunity to visit the Saffron fields. Also visit Awantipora Ruins & Anantnag Sulphur Springs enroute, Arrive and proceed to your hotel, Dinner & overnight at the Pahalgam.</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> Pahalgam
								</p>
								<p class="aj">After Breakfast, Visit to Chandanwari (at your own cost), The snow Point (14 Km) at your own cost or enjoy pony ride at your own cost, Return back to Pahalgam, rest of the day at leisure to explore the countryside and enjoy leisurely walks through the pine forest along the River Lidder. Dinner and overnight stay at the 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 9:</b> Pahalgam - Srinagar (94 km / 3 hrs)
								</p>
								<p class="aj">After breakfast check out hotel and transfer to the Srinagar Airport.</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">Exclusions :</p> <ul><li>Any Air Fair, Train Ticket,</li><li>
Lunch, Phone, Laundry</li><li>
Driver Tips</li><li>
Extra Shikara Ride</li><li>
Extra Gondola Ride Tickets</li><li>
Extra Horse Ride in Pahalgam, Sonamarg</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.pptt.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Vaishno Devi with 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="62373"/>
						</form>
						</div>
						
						";i:1;s:69:"Book Vaishno Devi with Kashmir Tour - 8 Nights / 9 Days Tour Packages";i:2;s:177:"book vaishno devi with kashmir tour - 8 nights / 9 days tour packages, religious & pilgrimage tour packages, jammu, katra, srinagar, anantnag, baramulla, ganderbal tour packages";i:3;s:237:"Book Vaishno Devi with Kashmir Tour - 8 Nights / 9 Days tour packages from Pretty Planet Tour & Travels - Get attractive 8 Nights / 9 Days Religious & Pilgrimage  tour packages for  Jammu, Katra, Srinagar, Anantnag, Baramulla, Ganderbal.";i:4;s:607:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Jammu, Katra, Srinagar, Anantnag, Baramulla, Ganderbal"        
		                 },
		      "description": "Any Air Fair, Train Ticket,
Lunch, Phone, Laundry
Driver Tips
Extra Shikara Ride
Extra Gondola Ride Tickets
Extra Horse Ride in Pahalgam, Sonamarg",
		      "name": "Vaishno Devi with Kashmir Tour",
		      "telephone": "+91-9906543070"
		    }
		    </script>
			";i:5;N;}