a:6:{i:0;s:12733:"				<div class="h1"><h1>Discover Himachal with 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>Discover Himachal with 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-54</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Dalhousie, Manali, Shimla, Dharamshala, 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="Discover Himachal with 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="116332"/>
						</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 (265 Kms. / 8 Hrs.)
								</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, (51 Kms. / 3 Hrs.) 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. / 5 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 – Amritsar (200 Kms. / 3-4 Hrs.)
								</p>
								<p class="aj">Transfer from Dalhousie to Amritsar by Surface. Arrive Amritsar and check in to your pre booked hotel. After freshen up visit Golden Temple, Mata Mandir, Jallianwala bagh and enjoy the place. Overnight 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 10:</b> Amritsar to Delhi (470 Kms. / 8-9 Hrs.)
								</p>
								<p class="aj">After B/F check out from hotel. Visit Wagah Border and then from there only Depart for Delhi. On arrival drop at Railway Station/ 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 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>~^#^~~^#^~<p><strong>NOTE</strong>

<ul>
	<li>Rooms are subject to availability.</li>
	<li>Charges for AC / Heater will be extra and as per hotel to hotel basis.</li>
	<li>Visit to Rohtang Pass will be extra only.</li>
	<li>AC will not operate on Hills.</li>
	<li>Government Service Tax (GST) will be extra only.</li>
	<li>Vehicles are on Disposal from Station to Station or Airport to Airport.</li>
	<li>Vehicle Charges are inclusive of all toll taxes / parking and driver allowance.</li>
</ul>												</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="Discover Himachal with 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="116332"/>
						</form>
						</div>
						
						";i:1;s:81:"Book Discover Himachal with Golden Temple Tour - 9 Nights / 10 Days Tour Packages";i:2;s:167:"book discover himachal with golden temple tour - 9 nights / 10 days tour packages, valley tour packages, dalhousie, manali, shimla, dharamshala, amritsar tour packages";i:3;s:223:"Book Discover Himachal with Golden Temple Tour - 9 Nights / 10 Days tour packages from Gets Holiday India Tour - Get attractive 9 Nights / 10 Days Valley  tour packages for  Dalhousie, Manali, Shimla, Dharamshala, Amritsar.";i:4;s:995:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dalhousie, Manali, Shimla, Dharamshala, 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": "Discover Himachal with Golden Temple Tour",
		      "telephone": "+91-8532003202"
		    }
		    </script>
			";i:5;N;}