a:6:{i:0;s:11634:"				<div class="h1"><h1>Lansdowne Hill Station Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.indiatourandvacations.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.indiatourandvacations.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Lansdowne Hill Station 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Mussoorie, Haridwar, Garhwal, Pauri Garhwal</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.indiatourandvacations.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Lansdowne Hill Station 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="54305"/>
						</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_13/376887/105018.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/376887/105018.jpg"  width="150" height="150"    alt="Lansdowne Hill Station Tour" title="Lansdowne Hill Station Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<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> Delhi - Lansdowne
								</p>
								<p class="aj">Arrive at Delhi and drive to Lansdowne. In the evening visit Karnva Ashram and Sidhbali.<br />
<br />
Upon your arrival at the airport, meet our representative will greet & meet you at Railway Station/Airport. Later at the hotel our representative will brief you about tour starting day after.<br />
<br />
Arrive at Delhi and drive to Lansdowne enjoys lunch en-route. Preserved from the rampant growth of tourism, Lansdowne is the name of untouched natural splendor which is perched in the hills of Pauri Garhwal. Founded by British the town was a renowned summer resort during colonial times. British were enchanted when they first laid eyes on this chirpy little hamlet and the salubrious climate of Lansdowne and set up a cantonment here. As you reach the quaint town, surrender to the serenity and pay an evening visit to Karnva Ashram at a distance of 14 kms and Sidhbali Temple at a distance of 3 kms from Lansdowne.</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> Lansdowne
								</p>
								<p class="aj">Proceed for city sightseeing. Enjoy surrounding panorama and try your hands at trekking, river crossing or camping. Later visit Jwalpadevi. Evening at leisure and shopping.<br />
<br />
On this day proceed for full day sightseeing of Lansdowne. Lansdowne today is known for housing the headquarters of the famous Garhwal Rifles squad of the Indian Army. So, while wandering around keep an eye for the famous Garhwal Rifles of the Indian Army. Immerse yourself in the nature's bounty surrounding the beautiful hill station and also don't miss going on Trekking, one of the best ways to explore Lansdowne. While in the vicinity try some adventurous activities; you can try your hands at River Crossing and Camping. Later on the tour will take you to Jwalpadevi located at a distance of about 52 kms it is known as one of the religious areas on the main Pauri-Kotdwar road. Evening go for souvenir hunting in the local bazaars. Return to the hotel and overnight stay in Lansdowne.</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> Lansdowne - Haridwar
								</p>
								<p class="aj">Drive to Haridwar. Check into a hotel and later drive to Har-Ki- Pauri to witness evening Aarti ritual on the banks of River Ganges.<br />
<br />
Drive to the holy city of Hindus, Haridwar and on arrival check-in to hotel to relax. Later in the evening drive to Har-Ki-Pauri, and take part in mass worshiping of river Goddess called Aarti at Har-Ki-Pauri. The region is particularly fascinating for the god-fearing and for the lovers of vibrant cultures; the region flanked by pilgrims and saintly people performing ritualistic offerings is quite a sight. The evening Aarti ceremony is a spectacular scene with lighted lamps and flowers floating in the river and the entire region reverberating holy mantras. Day 4: Haridwar- Mussoorie.</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> Haridwar - Mussoorie
								</p>
								<p class="aj">Drive to Mussoorie en-route visit Dehradun and enjoy the views of beauteous Doon valley and Siwalik ranges of Himalaya. Also visit Mussoorie Jheel and Prakeshwar Mandir .On arrival transfer to hotel. In Evening visit Mall road Night stay in Mussoorie<br />
<br />
Today post breakfast proceed for Mussoorie en-route Dehradun. The gorgeous Doon Valley awaits you; draped in forests of pine and deodar trees the valley between Shiwaliks and front ranges of Himalaya look simply spectacular and the panorama is further enhanced with the presence of two holy rivers, River Ganga and River Yamuna. Blessed with heavenly beauty, embellished with cheerful ambiance and that salubrious climate the valley is dotted with a number of places of tourist interest<br />
<br />
A short drive from Haridwar will take you to the "Queen of Hill Stations"- Mussoorie. Swathed in clouds the beauty of this serene hilly town is eternal. While driving towards Mussoorie pay an en-route visit to Malsi Deer Park and explore the wildlife and natural exuberance at the hills of Northern India. The serenity in the surroundings and moisture in the air will refresh you enough for another exciting experience inter-woven in the itinerary and so you will be driven ahead where you will get to enjoy rope way ride. After an eventful day in the region retreat to the hotel in the evening and stay overnight. </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> Mussoorie
								</p>
								<p class="aj">Post breakfast drive to Malsi Deer Park, enjoy Mussoorie sightseeing and rope way ride. Afternoon visit George Everest House, Kempty Fall, Gun Hill, George Hill Everest, Company Garden, Mall Road etc. Evening at leisure and shopping.<br />
<br />
In the morning on this day set on sightseeing tour of the region and visit George Everest House; one can catch the picturesque panorama of Doon Valley on one side and the scenic views of Himalayan ranges on the other. Next explore Kempty Falls made by Kempty River, the region astounds with its enchanting beauty and pretty waterfalls. A rope way ride at Gun Hill will offer a panoramic view of Himalayas, Gangotri, Srikantha and a distant view of the entire Mussoorie town. Rest of the day will come with visits to Company Garden and shopping spree at Mall Road etc. Evening return to your 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> Mussoorie - Delhi
								</p>
								<p class="aj">Early morning drive to Delhi. Arrive at Delhi and transfer to airport/railway station for onward destination.</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.indiatourandvacations.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Lansdowne Hill Station 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="54305"/>
						</form>
						</div>
						
						";i:1;s:66:"Book Lansdowne Hill Station Tour - 5 Nights / 6 Days Tour Packages";i:2;s:158:"book lansdowne hill station tour - 5 nights / 6 days tour packages, valley tour packages, new delhi, mussoorie, haridwar, garhwal, pauri garhwal tour packages";i:3;s:199:"India Tour and Vacations offers Lansdowne Hill Station Tour - 5 Nights / 6 Days tour package, budget Valley tour packages for New Delhi, Mussoorie, Haridwar, Garhwal, Pauri Garhwal at exciting price.";i:4;s:453:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Mussoorie, Haridwar, Garhwal, Pauri Garhwal"        
		                 },
		      "description": "",
		      "name": "Lansdowne Hill Station Tour",
		      "telephone": "+91-9818529130"
		    }
		    </script>
			";i:5;N;}