a:6:{i:0;s:10202:"				<div class="h1"><h1>Raghupur Fort Trek Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.himalayannavigators.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Raghupur Fort Trek 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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Kullu</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.himalayannavigators.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Raghupur Fort Trek 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="23346"/>
						</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_10/292604/44799.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/44799.jpg"  width="150" height="150"    alt="Raghupur Fort Trek Tour" title="Raghupur Fort Trek Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					This Is An Experience That Is Sure To Refresh And Revitalize You. Is A Little Village, Which Is Just  11 Kms From Jalori Pass 3223M, Which Links Sojha Jibhi Shimla To Kullu District. With The Advent Of Summer, The Whole Drive Wears A Festive Look With Blue Iris In Full Bloom, Gently Forcing The Mind To Outline The Plan To The Next Visit. While The Drive To The Jibhi Is A Pleasure In Itself, The Numerous Walks And Treks In The Surrounding Forests And Meadows Are A Special Feature Of The Area. Jibhi & Shoja Boasts Dense Forests Of Deodar Rich In Wild Life I.E. Deer (Black & Brown), Barking Deer, Musk Deer, Leopard, Jungle Hog And Monal (The State Bird Of Himachal).<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 - Jibhi
								</p>
								<p class="aj">Fly into Bhuntar/ Chandigarh. Drive for 2/ 8 hrs to Jibhi/Shojha. Acclimatization walk to Jibhi village in the afternoon.</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> Jibhi - Raghupur Fort - Sojha - Jibhi 15 Kms Drive. 5 Kms Trek/ 3-4 Hrs
								</p>
								<p class="aj">We hike to Raghupur Fort Meadows that overlook the Tirthan Valley in Kullu district in the West and Shimla district in the East. Drive to Jalori pass and walk in the open for about hundred meters towards Satluj valley before it heads straight into the forest on a well-de ned trail. Half a kilometer later, a short steep climb takes one to a small meadow that o ers a photo-op. A short rest and o you go into the Oaks and Rhododendrons forest slowly climbing up and then shifting gear for a nal steep climb of 15 to 20 minutes. Here the tree line nishes and we move into a lush green meadow. A little up and we are rewarded with a 360 degrees view of The Himalayas, Dhauladhar and Kinnaur ranges, all of them in one sweeping glance. Keep strolling and in a while we end up at the dilapidated Raghupur Fort. The local people believe that an erstwhile king of Mandi province got this fort constructed hundred of years ago. Theories abound as to why this fort was constructed on a ridge where scarcity of water was a perennial issue. One of them will have us believe that this retreat was made in case the king had to retreat in to the mountains in case his kingdom was attacked by the enemy forces from the plains. Yet another popular belief is that the fort was constructed for the pleasure of the king away from the prying eyes of his family and subjects. Whatever the truth, the King could not have chosen a better location. One look and you would not want to go back. All around you are swathes of lush green meadows that gently descend into the oak and blue r forests. The meadows also happen to be the favorite ground of local shepherds. It is a sight to behold with hundreds of sheep and goats munching around with not a worry in the world, with at least couple of shepherd dogs in attendance. Early mornings and late evenings provide an excellent photo opportunity. Hike back to Jalori pass and onto a waterfall. Picnic lunch by the fall in the afternoon. A short rest and hike back to JIBHI.</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> Sojha - Serolser Lake - Sojha - 10 Kms Drive.12 Kms Hike/ 5-6 Hrs
								</p>
								<p class="aj">Himachal Pradesh, with most of it lying in the lap of Himalayas, has an abundance of lakes. One such lake is in Tirthan valley (Kullu District) located 18 kms from Jibhi. A drive to Jalori pass will take 30 - 40 minutes from the Jibhi. From there a well-de ned trail takes one to the Lake. Few hundred meters on the trail and then you get in to the Oak forest. The sun rays ltering through the tree cover, the blue of the sky through the foliage, the up and down of the trail, an occasional sight of a bird, a clearing showing the huge green vistas cascading down to the Sutluj valley, all of this and more will keep you an enchanting company all the way to the lake. The lake makes up in crystal clear clarity what it lacks in size. The local belief is that no one has ever found a leaf oating in the lake though leafy trees surround the lake itself. Nearby is a small temple beyond which the meadows start. A couple of teashops regularly come up between April-October. They have also some local sweets and savories- worth trying. During summer a lot of Gujjars come with their bu aloes and cows to these pastures. An average person may take about one and a half to two hours to cover the 6 km trail from Jalori pass to the lake. An early start will get you back to the retreat for the hot lunch. For people who would like to spend more time with the chirping birds, we will be too happy to provide you with a lunch hamper for you to enjoy an al fresco lunch on the banks of the lake.</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> Jibhi - Delhi
								</p>
								<p class="aj">Drive to Bhuntar airport OR board your Volvo from Aut for your journey back to Delhi.</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>
												</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.himalayannavigators.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Raghupur Fort Trek 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="23346"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Raghupur Fort Trek Tour - 3 Nights / 4 Days Tour Packages";i:2;s:127:"book raghupur fort trek tour - 3 nights / 4 days tour packages, forts and palaces tour packages, new delhi, kullu tour packages";i:3;s:179:"Book Raghupur Fort Trek Tour - 3 Nights / 4 Days tour packages from Himalayan Navigators - Get attractive 3 Nights / 4 Days Forts and Palaces  tour packages for  New Delhi, Kullu.";i:4;s:1082:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Kullu"        
		                 },
		      "description": "This Is An Experience That Is Sure To Refresh And Revitalize You. Is A Little Village, Which Is Just  11 Kms From Jalori Pass 3223M, Which Links Sojha Jibhi Shimla To Kullu District. With The Advent Of Summer, The Whole Drive Wears A Festive Look With Blue Iris In Full Bloom, Gently Forcing The Mind To Outline The Plan To The Next Visit. While The Drive To The Jibhi Is A Pleasure In Itself, The Numerous Walks And Treks In The Surrounding Forests And Meadows Are A Special Feature Of The Area. Jibhi & Shoja Boasts Dense Forests Of Deodar Rich In Wild Life I.E. Deer (Black & Brown), Barking Deer, Musk Deer, Leopard, Jungle Hog And Monal (The State Bird Of Himachal).",
		      "name": "Raghupur Fort Trek Tour",
		      "telephone": "+91-8091208888"
		    }
		    </script>
			";i:5;N;}