a:6:{i:0;s:13783:"				<div class="h1"><h1>Himachal with Vaishno Devi and Golden Temple Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.getsholidayindiatour.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.getsholidayindiatour.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Himachal with Vaishno Devi and Golden Temple 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">GHIT-59</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						11 Nights / 12 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Dalhousie, Manali, Shimla, Dharamshala, Katra, Amritsar</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.getsholidayindiatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himachal with Vaishno Devi and Golden Temple 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="116350"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					Accommodation on Double / Twin Sharing Basis as Per Package Selected.<br />
MAP Plan (Breakfast and Dinner).<br />
All Sightseeing as per Itinerary.<br />
All Transportation by Indigo/Dezire (2-4Pax) & Innova- Xylo (6Pax).Any Kind of Personal Expenses or Optional Tours / Extra Meals Ordered.<br />
Tips, Insurance, Laundry, Phone Calls.<br />
Any Kind of Drinks (Alcoholic, Mineral, Aerated).<br />
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.<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> New Delhi - Shimla
								</p>
								<p class="aj">Arrive Delhi airport / railway station and drive to Shimla (350 Kms. / 08 hrs) the former summer capital of British India, set amidst the snow capped Shivalik Mountains which offers some of the most stunning views of the mighty Himalayas. Enroute visit Pinjore Gardens or Ropeway at Timber Trail, Parwanoo. Arrive and check into the hotel. Evening free to stroll on The Mall and the famous Ridge. Ridge is famous for its stunning vistas of the valley and the Christ Church which is the most photographed landmark of Shimla. Overnight in 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 2:</b> Shimla
								</p>
								<p class="aj">After Breakfast Excursion to Kufri. Kufri is famous for its Himalayan National Park, Poney and Yak Ride and One can see the endless Himalayan Panorama from Kufri, after lunch sightseeing of various places in and around. Shimla mosques built in(1830), Vice regal Lodge built in (1885), Christ Church built in (1844), The Gaiety Theatre- the first beauty contest of world was supposed to start (1887), The Grindlays Bank (1912)- the world wide bank started by Robert Melville Grindlay, The Scandal Point and The famous Shopping Plaza of the North The Mall. O/N 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> Shimla to Manali
								</p>
								<p class="aj">Transfer from Shimla to Manali by surface Enroute visit Kullu valley, Beas River, Dashehra maidan etc. Arrive and transfer to hotel Manali. Evening free for rest. Night stay in Manali.</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> Manali (Local Sightseeing)
								</p>
								<p class="aj">Morning proceed to Visit the 450 years old Hidimbadevi Temple, the oldest temple in Manali, Tibetean center & monastery, Vasisth village, known for its hot Sulpher springs Roerich art Gallery. Bahist Temple, Solang Valley which offers a spectacular view of glaciers and snow capped peaks..at an altitude of 3978 meters. Also visit Kothi, Rahala Water falls on the way. (Subject to weather conditions and road being open). Rest of the day is at leisure or takes a stroll down the Mall road. Night stay in Manali.</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> Rohtang Pass (100 Kms. Round Tour)
								</p>
								<p class="aj">Early morning visit A place not to be missed - Rohtang Pass, (51Kms. / 03Hrs.) from Manali at an altitude of 3978 meters. Also visit Kothi, Rahala Water falls on the way.(subject to weather conditions and road being open). Rest of the day is at leisure or takes a stroll down the Mall road. Night stay in Manali. (Visit to Rohtang Pass not included in the cost. subject to weather conditions and road being open).(As per Himachal Goverment Rouling outsiders not go to do the Rohtang Pass & Guest Have to Take Car from union on Direct Payment Basis. )</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> Manali to Dharmshala (280 Kms. / 10 Hrs.)
								</p>
								<p class="aj">A distance of 260 kilometer on the way stopping at Baijnath known for its Shiva Temple and further at Palampur famous For Tea Garden. Dharamhsala is a hill-station lying on the spur of the Dhauladhar Mountains about 18 kms north-east of Kangra, It is known for its scenic beauty set amidst high pine and oak trees. Since 1960, when it became the temporary headquarters of His Holiness The Dalai Lama, Dharamshala has risen to international repute as “The Little Lhasa in India”. O/N Hotel Dharamshala</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> Dharmshala to Dalhousie (145 Kms. / 05 Hrs.)
								</p>
								<p class="aj">After Breakfast drive from Dharamshala towards Dalhousie after doing the local sightseeing of Places which includes, His holiness Dalai lama residence at Mc Leodgunj, War memorial, Bhagsunath temple and Dal Lake. Reach Dalhousie in the evening. O/N Hotel Dalhousie</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> Dalhousie - Khajjiar
								</p>
								<p class="aj">Dalhousie has been named after the British Governor – General of the l9th century, Lord Dalhousie. Surrounded by varied vegetation – pines, dodders, oaks and flowering rhododendron. Local sightseeing of Dalhousie includes visit to Panjipula, Subhash Baoli and excursion to Khajjiar 24 Kms. from Dalhousie surrounded by thick Deodar forest. Drive from Dalhousie to Khajjiar is awesome. O/N 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> Dalhousie - Katra (245 Kms. / 05 Hrs.)
								</p>
								<p class="aj">Transfer from Dalhousie to Katra by Surface. On arrival check in to your pre booked hotel. Overnight stay at Katra 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 10:</b> Katra.
								</p>
								<p class="aj">Early morning after breakfast start your journey to Vaishno Devi Darshan. Late Evening come back to hotel. Overnight Stay at Hotel.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Katra - Amritsar (300 Kms. / 05 Hrs.)
									</p>
									<p class="aj">Morning after breakfast proceeds toward Amritsar. On time check in to your pre booked hotel. After freshen up visit Golden Temple and litter around some market place too. 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 12:</b> Amritsar Depart.
									</p>
									<p class="aj">Morning after Breakfast Visit Wagha Border, Jalliawala Bagh, Golden Temple and if time permits you can go for local market to shop around. On time check out from hotel and proceed towards Airport/ Railway Station to board your flight back to home.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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 Kind of Personal Expenses or Optional Tours / Extra Meals Ordered.</li><li>
Tips, Insurance, Laundry, Phone Calls.</li><li>
Any Kind of Drinks (Alcoholic, Mineral, Aerated).</li><li>
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.</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.getsholidayindiatour.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himachal with Vaishno Devi and Golden Temple 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="116350"/>
						</form>
						</div>
						
						";i:1;s:90:"Book Himachal with Vaishno Devi and Golden Temple Tour - 11 Nights / 12 Days Tour Packages";i:2;s:199:"book himachal with vaishno devi and golden temple tour - 11 nights / 12 days tour packages, religious & pilgrimage tour packages, dalhousie, manali, shimla, dharamshala, katra, amritsar tour packages";i:3;s:239:"Gets Holiday India Tour offers Himachal with Vaishno Devi and Golden Temple Tour - 11 Nights / 12 Days tour package, budget Religious & Pilgrimage tour packages for Dalhousie, Manali, Shimla, Dharamshala, Katra, Amritsar at exciting price.";i:4;s:1010:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dalhousie, Manali, Shimla, Dharamshala, Katra, Amritsar"        
		                 },
		      "description": "Accommodation on Double / Twin Sharing Basis as Per Package Selected.
MAP Plan (Breakfast and Dinner).
All Sightseeing as per Itinerary.
All Transportation by Indigo/Dezire (2-4Pax) & Innova- Xylo (6Pax).Any Kind of Personal Expenses or Optional Tours / Extra Meals Ordered.
Tips, Insurance, Laundry, Phone Calls.
Any Kind of Drinks (Alcoholic, Mineral, Aerated).
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.",
		      "name": "Himachal with Vaishno Devi and Golden Temple Tour",
		      "telephone": "+91-8532003202"
		    }
		    </script>
			";i:5;N;}