a:6:{i:0;s:30646:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Shimla Heritage Walk (1 Day) Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.indiatoursntrails.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.indiatoursntrails.com/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Shimla Heritage Walk (1 Day) Tour</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_16/450512/271103.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_16/450512/271103.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_16/450512/271103.jpg"  alt="Shimla Heritage Walk (1 Day) Tour" title="Shimla Heritage Walk (1 Day) Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
												
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">Shimla Heritage Walk (1 Day) Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						1 Day 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Shimla</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.indiatoursntrails.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Shimla Heritage Walk (1 Day) Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="179672"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">Shimla was built on top of a total of seven different hills namely: Inverarm Hill, Observatory Hill, Prospect Hill, Summer Hill, Bantony Hill, Elysium Hill and Jakhoo Hill. The highest point in Shimla is the Jakhoo hill, which is at a height of 2,454 metres (8,051 ft). Being the summer capital of British India, Shimla has some of the finest architectural heritage bestowed to it, and of course add to it the various splendors of nature, forests, waterfalls and glades.<br />
Our walk begins in the morning from The Christ church on the ridge and gradually progresses westwards, first towards The Gaiety Theatre and after the scandal point towards Bantony hill whose top is adorned by the Bantony castle built in 1880, while its lower slope houses the Catholic church. A little further ahead are the Grand hotel and the Kali Bari temple. Our walk continues past more architectural heritage structures like the unique railway board building, Gorton castle as we reach Inverarm hill which houses the State museum and a little ahead is the Observatory hill with the Viceregal Lodge, which housed the Viceroy in British times and now is established as The Indian institute of Advanced studies. Our first half of the walk finishes here.Enjoy some tea and snacks at Viceregal lodge café and thereafter continue your walk through a thickly forested path to Summerhill which houses the Himachal University. We board our vehicle here and driving through meandering roads head for the Prospect hill, adorned with the temple of Kamna Devi on the top. After spending a while indulging in some Photography we board the vehicles again, and driving through Boileauganj, Cart road we make a dash for Annadale and visit the Army museum. Backtrack on the same road we drive through Victory tunnel and past Elesium hill which has The Auckland house school we reach Sanjauli from we drive uphill to Jakhoo hill which has a Hanuman temple dedicated to it at the top. From here we will descend, walking back to the ridge. Our walk finishes here.<br />
<br />
Distance Walking 7kms, Vehicle 30kms</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Shimla										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Shimla Was Built On Top of a Total of Seven Different Hills Namely: Inverarm Hill, Observatory Hill, Prospect Hill, Summer Hill, Bantony Hill, Elysium Hill and Jakhoo Hill. The Highest Point in Shimla is the Jakhoo Hill, Which is At a Height of 2,454 Metres (8,051 Ft). Being the Summer Capital of British India, Shimla Has Some of the Finest Architectural Heritage Bestowed to It, and of Course Add to It the Various Splendors of Nature, Forests, Waterfalls and Glades.<br />
Our Walk Begins in the Morning from the Christ Church On the Ridge and Gradually Progresses Westwards, First Towards the Gaiety Theatre and After the Scandal Point Towards Bantony Hill Whose Top is Adorned By the Bantony Castle Built in 1880, While Its Lower Slope Houses the Catholic Church. A Little Further Ahead are the Grand Hotel and the Kali Bari Temple. Our Walk Continues Past More Architectural Heritage Structures like the Unique Railway Board Building, Gorton Castle as We Reach Inverarm Hill Which Houses the State Museum and a Little Ahead is the Observatory Hill with the Viceregal Lodge, Which Housed the Viceroy in British Times and Now is Established as the Indian Institute of Advanced Studies. Our First Half of the Walk Finishes Here.enjoy Some Tea and Snacks At Viceregal Lodge Café and Thereafter Continue Your Walk Through a Thickly Forested Path to Summerhill Which Houses the Himachal University. We Board Our Vehicle Here and Driving Through Meandering Roads Head for the Prospect Hill, Adorned with the Temple of Kamna Devi On the Top. After Spending a While Indulging in Some Photography We Board the Vehicles Again, and Driving Through Boileauganj, Cart Road We Make a Dash for Annadale and Visit the Army Museum. Backtrack On the Same Road We Drive Through Victory Tunnel and Past Elesium Hill Which Has the Auckland House School We Reach Sanjauli from We Drive Uphill to Jakhoo Hill Which Has a Hanuman Temple Dedicated to It At the Top. From Here We Will Descend, Walking Back to the Ridge. Our Walk Finishes Here.<br />
<br />
Distance Walking 7kms, Vehicle 30kms															
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>MAP (Room + Breakfast + Lunch/Dinner)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>						
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>* 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.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.indiatoursntrails.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Shimla Heritage Walk (1 Day) 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="179672"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-dharamshala.htm" title="Packages in Dharamshala">Dharamshala</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-solan.htm" title="Packages in Solan">Solan</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-jammu.htm" title="Packages in Jammu">Jammu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-parwanoo.htm" title="Packages in Parwanoo">Parwanoo</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-amritsar.htm" title="Packages in Amritsar">Amritsar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-kullu.htm" title="Packages in Kullu">Kullu</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/packages-in-palampur.htm" title="Packages in Palampur">Palampur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.indiatoursntrails.com/packages-in-kalka.htm" title="Packages in Kalka">Kalka</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.indiatoursntrails.com/packages-in-ambala.htm" title="Packages in Ambala">Ambala</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.indiatoursntrails.com/packages-in-chandigarh-city.htm" title="Packages in Chandigarh City">Chandigarh City</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.indiatoursntrails.com/packages-in-barbil.htm" title="Packages in Barbil">Barbil</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.indiatoursntrails.com/packages-in-manikaran.htm" title="Packages in Manikaran">Manikaran</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/river-rafting-holidays-catid.htm" title="River Rafting Packages">River Rafting</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/cycling-holidays-catid.htm" title="Cycling Packages">Cycling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.indiatoursntrails.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Shimla</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.indiatoursntrails.com/tour-packages/shimla-manali-mandi-dharamshala-dalhausie-pathankot-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_16/450512/271189.jpg"  alt="Shimla, Manali,Mandi,Dharamshala,Dalhausie, Pathankot Package" title="Shimla, Manali,Mandi,Dharamshala,Dalhausie, Pathankot Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.indiatoursntrails.com/tour-packages/shimla-manali-mandi-dharamshala-dalhausie-pathankot-package.htm" title="Shimla, Manali,Mandi,Dharamshala,Dalhausie, Pathankot Package"><h3>Shimla, Manali,mandi,dharamshala,dalhausie..</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								10 Nights / 11 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Kullu, Manali, Palampur, Shimla, Solan, ..</p>
															<div class="mt10px small">
							<form name="pkg_179687" id="pkg_179687" method="post" action="http://www.indiatoursntrails.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.indiatoursntrails.com/tour-packages/shimla-manali-mandi-dharamshala-dalhausie-pathankot-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Shimla, Manali,Mandi,Dharamshala,Dalhausie, Pathankot Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="179687"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.indiatoursntrails.com/tour-packages/ambala-chandigarh-shimla-rewalsar-manali-manikaran-chandigarh-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_16/450512/271170.jpg"  alt="Ambala/Chandigarh - Shimla - Rewalsar - Manali - Manikaran Tour" title="Ambala/Chandigarh - Shimla - Rewalsar - Manali - Manikaran Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.indiatoursntrails.com/tour-packages/ambala-chandigarh-shimla-rewalsar-manali-manikaran-chandigarh-tour.htm" title="Ambala/Chandigarh - Shimla - Rewalsar - Manali - Manikaran Tour"><h3>Ambala/chandigarh - Shimla - Rewalsar - Ma..</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Chandigarh City, Ambala, Manali, Manikar..</p>
															<div class="mt10px small">
							<form name="pkg_179684" id="pkg_179684" method="post" action="http://www.indiatoursntrails.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.indiatoursntrails.com/tour-packages/ambala-chandigarh-shimla-rewalsar-manali-manikaran-chandigarh-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Ambala/Chandigarh - Shimla - Rewalsar - Manali - Manikaran Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="179684"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.indiatoursntrails.com/tour-packages/shimla-manali-kalka-chandigarh-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_16/450512/271176.jpg"  alt="Shimla Manali Kalka/chandigarh  Package" title="Shimla Manali Kalka/chandigarh  Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.indiatoursntrails.com/tour-packages/shimla-manali-kalka-chandigarh-package.htm" title="Shimla Manali Kalka/chandigarh  Package"><h3>Shimla Manali Kalka/chandigarh  Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Manali, Shimla, Kalka, Barbil</p>
															<div class="mt10px small">
							<form name="pkg_179685" id="pkg_179685" method="post" action="http://www.indiatoursntrails.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.indiatoursntrails.com/tour-packages/shimla-manali-kalka-chandigarh-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Shimla Manali Kalka/chandigarh  Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="179685"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.indiatoursntrails.com/tour-packages/the-shali-tibba-hike-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_16/450512/271116.jpg"  alt="The Shali Tibba Hike Tour" title="The Shali Tibba Hike Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.indiatoursntrails.com/tour-packages/the-shali-tibba-hike-tour.htm" title="The Shali Tibba Hike Tour"><h3>The Shali Tibba Hike Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Shimla, Solan, Parwanoo, Dharamshala, Ja..</p>
															<div class="mt10px small">
							<form name="pkg_179674" id="pkg_179674" method="post" action="http://www.indiatoursntrails.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.indiatoursntrails.com/tour-packages/the-shali-tibba-hike-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="The Shali Tibba Hike Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="179674"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.indiatoursntrails.com/tour-packages/the-retreat-hike-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_16/450512/271124.jpg"  alt="The Retreat Hike Tour" title="The Retreat Hike Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.indiatoursntrails.com/tour-packages/the-retreat-hike-tour.htm" title="The Retreat Hike Tour"><h3>The Retreat Hike Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								1 Day 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Shimla</p>
															<div class="mt10px small">
							<form name="pkg_179677" id="pkg_179677" method="post" action="http://www.indiatoursntrails.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.indiatoursntrails.com/tour-packages/the-retreat-hike-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="The Retreat Hike Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="179677"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.indiatoursntrails.com/tour-packages/the-anandpur-sadhupul-cycling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_16/450512/271164.jpeg"  alt="The Anandpur Sadhupul Cycling Tour" title="The Anandpur Sadhupul Cycling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.indiatoursntrails.com/tour-packages/the-anandpur-sadhupul-cycling-tour.htm" title="The Anandpur Sadhupul Cycling Tour"><h3>The Anandpur Sadhupul Cycling Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								1 Day 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Shimla</p>
															<div class="mt10px small">
							<form name="pkg_179683" id="pkg_179683" method="post" action="http://www.indiatoursntrails.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.indiatoursntrails.com/tour-packages/the-anandpur-sadhupul-cycling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="The Anandpur Sadhupul Cycling Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="179683"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:61:"Book Shimla Heritage Walk (1 Day) Tour - 1 Days Tour Packages";i:2;s:111:"book shimla heritage walk (1 day) tour - 1 days tour packages, hill station tour packages, shimla tour packages";i:3;s:148:"India Tours-n-trails offers Shimla Heritage Walk (1 Day) Tour - 1 Days tour package, budget Hill Station tour packages for Shimla at exciting price.";i:4;s:2471:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Shimla"        
		                 },
		      "description": "Shimla was built on top of a total of seven different hills namely: Inverarm Hill, Observatory Hill, Prospect Hill, Summer Hill, Bantony Hill, Elysium Hill and Jakhoo Hill. The highest point in Shimla is the Jakhoo hill, which is at a height of 2,454 metres (8,051 ft). Being the summer capital of British India, Shimla has some of the finest architectural heritage bestowed to it, and of course add to it the various splendors of nature, forests, waterfalls and glades.
Our walk begins in the morning from The Christ church on the ridge and gradually progresses westwards, first towards The Gaiety Theatre and after the scandal point towards Bantony hill whose top is adorned by the Bantony castle built in 1880, while its lower slope houses the Catholic church. A little further ahead are the Grand hotel and the Kali Bari temple. Our walk continues past more architectural heritage structures like the unique railway board building, Gorton castle as we reach Inverarm hill which houses the State museum and a little ahead is the Observatory hill with the Viceregal Lodge, which housed the Viceroy in British times and now is established as The Indian institute of Advanced studies. Our first half of the walk finishes here.Enjoy some tea and snacks at Viceregal lodge café and thereafter continue your walk through a thickly forested path to Summerhill which houses the Himachal University. We board our vehicle here and driving through meandering roads head for the Prospect hill, adorned with the temple of Kamna Devi on the top. After spending a while indulging in some Photography we board the vehicles again, and driving through Boileauganj, Cart road we make a dash for Annadale and visit the Army museum. Backtrack on the same road we drive through Victory tunnel and past Elesium hill which has The Auckland house school we reach Sanjauli from we drive uphill to Jakhoo hill which has a Hanuman temple dedicated to it at the top. From here we will descend, walking back to the ridge. Our walk finishes here.

Distance Walking 7kms, Vehicle 30kms",
		      "name": "Shimla Heritage Walk (1 Day) Tour",
		      "telephone": "+91-9817016580"
		    }
		    </script>
			";i:5;N;}