a:6:{i:0;s:21297:"				<div class="h1"><h1>Jibhi & Tirthan Valley Weekend Trip 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>Jibhi & Tirthan Valley Weekend Trip 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">TIRTHANJIBHI</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						2 Nights / 3 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kullu</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 9500 Per Person						</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="Jibhi & Tirthan Valley Weekend Trip 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="110649"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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/182356.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/182356.jpg"  width="150" height="150"    alt="Jibhi water Fall" title="Jibhi water Fall" /></a></p></div></li>
																		<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/182357.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/182357.jpg"  width="150" height="150"    alt="Sareolsar Lake" title="Sareolsar Lake" /></a></p></div></li>
																		<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/182358.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/182358.jpg"  width="150" height="150"    alt="Tirthan Valley" title="Tirthan Valley" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Air fare/Train fare.<br />
Any transportation other then the provided sightseeing as per itinerary.<br />
Any meals other then specified in above package inclusion.<br />
Heater charges in hotel during winter season.<br />
Travel Insurance. <br />
Monuments entry fees/camera fees/Guide fees/entertainment fees.<br />
Expenses of personal nature such as telephone calls, laundry, liquor etc.<br />
Any other which is not specified in above package Inclusion.<br />
Any cost occurred due to snow fall / landslides or any other natural disasters shall be bear by client themselves.28-1031-12<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> Aut Arrival – Jibhi
								</p>
								<p class="aj">After a long 12 to 13 hour Journey from Delhi / Chandigarh, meet and greet our representative at Aut and transfer to Jibhi. Check in to your guest house, get freshen up and have breakfast. Take rest for couple of hours and Explore Jibhi water fall which is just 20 to 30 minutes walk away from your guest house. You can trek to water fall by your own. Return back to your guest house by evening.</p>					
									<p><b>Meals : </b> Dinner</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/292604/182356.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/182356.jpg"  width="150" height="150"    alt="Jibhi water Fall" title="Jibhi water Fall" /></a></p></div></li>
									</ul>
									</div>
									</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 - Shoja - Jalori Pass - Jibhi
								</p>
								<p class="aj">Today morning around leave you guest house around 09:00 am and drive to Jalori Pass. Jalori Pass, at an altitude 3120m is one of the steepest passes to drive in Himachal separating Kullu valley and Shimla Valley. Spend some time at the pass to explore beautiful mountains, take some pictures. You can also trek to Sareolsar Lake which is just 5 kms away from Jalroi pass at easy walk able distance. It will take you around one and half hour to reach to the lake. After that return back to your guest house in Jibhi.</p>					
									<p><b>Meals : </b> Breakfast & Dinner</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/292604/182357.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/182357.jpg"  width="150" height="150"    alt="Sareolsar Lake" title="Sareolsar Lake" /></a></p></div></li>
									</ul>
									</div>
									</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> Jibhi - Tirthan Valley Exploration day – Aut Drop
								</p>
								<p class="aj">Today morning after breakfast start your day around 12:00 am and drive to Tithan Valley. Hire a guide and walk in the Great Himalayan National Park (GHNP) to see waterfalls nearby. Spend some time at the fall and drive to Thirthan riverside point. Drive back to Aut by evening to board your bus back to Delhi. Bus arrival time would be between 07:30 to 08:00 pm. TOUR ENDS BUT SWEET MEMORIES ALWAYS REMAINS.....</p>					
									<p><b>Meals : </b> Breakfast</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/292604/182358.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/292604/182358.jpg"  width="150" height="150"    alt="Tirthan Valley" title="Tirthan Valley" /></a></p></div></li>
									</ul>
									</div>
									</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>2 Star Hotel</li>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																		<li>Private Guides</li>
																		<li>Bus Transfer</li>
																		<li>Stay Included</li>
																		<li>Veg Meals</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any Air fare/Train fare.</li><li>
Any transportation other then the provided sightseeing as per itinerary.</li><li>
Any meals other then specified in above package inclusion.</li><li>
Heater charges in hotel during winter season.</li><li>
Travel Insurance. </li><li>
Monuments entry fees/camera fees/Guide fees/entertainment fees.</li><li>
Expenses of personal nature such as telephone calls, laundry, liquor etc.</li><li>
Any other which is not specified in above package Inclusion.</li><li>
Any cost occurred due to snow fall / landslides or any other natural disasters shall be bear by client themselves.</li></ul><br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>Delhi / Chandigarh / Amritsar / Ambala<br /><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p>&nbsp;

<p><strong>TOUR BOOKING PROCEDURE </strong><br />
All tour details advertised in our website are operated by Himalayan Navigators, registered with Department of Tourism and Civil Aviation Govt. of Himachal Pradesh under the registration number<strong> -</strong> <strong><u>2-32/2013-MNL-TD-123.</u></strong><br />
<br />
<strong>All tours are sold subject to the following conditions: </strong>

<p>&nbsp;

<p><strong>HOW TO BOOK</strong><br />
To make enquiries about our tours you can contact us in several ways:

<p>To make a booking you must pay the relevant deposit and agree to our terms and conditions. The person making the booking (the &#39;lead name&#39;) must be 18 years old or over and possess the legal capacity and authority to make the booking.<br />
<br />
Whether you book alone or as a group, we will only deal with the lead name in all subsequent correspondence, including changes, amendments and cancellations. The lead name is responsible for ensuring the accuracy of the personal details or any other information supplied in respect of yourself and any other person travelling on the booking and for passing on any information regarding the booking or any changes made in relation thereto, to all persons travelling on such booking, including but not limited to information on schedule changes or copies of booking confirmations.

<p><strong>PAYMENT PROCEDURE</strong>

<p>You can make advance payment directly by deposit cash in favor of Himalayan Navigators or if you are an online banking user then you can pay by NEFT with ease.

<p><strong>Please make sure that you are certain about your travel dates and choice of Package making a booking with. This is especially important because if the dates and package type requested is available.</strong>

<p><strong>BOOKING CONFIRMATION </strong><br />
You will need to pay a deposit to us at the time of booking of at least <strong>40%</strong> of your selected tour arrangements in our Company Account given below. We will then invoice you for the remainder of the cost due before you tour, which you must pay not later than 7 days before your trip. If you do not pay the balance by the due date your booking will be cancelled and you will forfeit your deposit and any other relevant charges.

<p>If we accept your booking, we will issue a Confirmation Invoice and Vouchers. A contract will exist between us from the date we issue the Confirmation Invoice or if you book within 7 days of departure the contract will exist when we accept your deposit payment. When you receive the Confirmation Invoice please check the details carefully and inform us immediately if anything is incorrect. Names on travel documents must exactly match those in your passports or in other

<p><strong>PLEASE NOTE &ndash; </strong>Kindly call us or do mail us advance payment receipt / screen shot of payment made by you in favor of Himalayan Navigators and indicating your desired dates of travel&mdash;we cannot make a booking without specific dates. Once we confirm the payment made by you then after we will reserve booking in hotels / cabs / buses / other services and send you our tour booking voucher, hotel voucher and other necessary documents.

<p><strong>You are requested to keep your identity documents i.e. Indian voter ID card/Adhaar card/Driving License/any other with you while you traveling away from home. </strong>

<p><strong>AMENDMENTS / CANCELLATIONS</strong>

<p>In the event you are given the option to cancel or change a reservation, you will be charged a cancellation or change fee pursuant to the rules and restrictions applicable to the supplier providing the travel related product and/or services you selected.

<p>A minimum cancellation policy period, which may vary depending on the supplier of the travel related product and/or service you selected, may apply to your purchase. If you fail to comply with such minimum cancellation policy period, you will be subject to a charge or penalty of applicable rates, tax recovery charges and service fees. In the event you do not show for the first day (or night, as the case may be) of your reservation and intend to check-in at a subsequent date, you must notify Himalayan Navigators or its affiliates of the change no later than the date of the first day (or night, as the case may be) of the original reservation to prevent cancellation of your reservation. You agree to pay any cancellation or change fees that you may incur. Some suppliers do not allow changes to or cancellations of reservations, in which case you will receive no refund from Himalayan Navigators, its affiliates and/or their respective suppliers.

<p>If the Client is willing to amend or cancel his/her booking because of whatsoever reasons including death, accident, illness, or any other personal reasons including non-payment of the balance payment, the Company is liable to recover Cancellation charges from the Client. All cancellations are to be communicated in written and advance amount is non - refundable, besides the forfeiture of the deposit amount of the tour, a further charge will be levied as follows:-

<p>Himalayan Navigators realizes that most people who cancel their reservations do so out of necessity. Nevertheless, cancellations are costly to administer and involve dedicated staff time and communications costs. Therefore, all cancellations made before <strong>30 days</strong> of departure are subject to <strong>10% deduction</strong> of total tour cost. Cancellation made between <strong>29-22 days</strong> before departure are subject to <strong>30% deduction </strong>of total tour cost. Cancellation made between <strong>21-16 days</strong> before departure is subject to <strong>60% deduction</strong> of total tour cost. Cancellation made between <strong>15 -7 days</strong> before departure is subject to <strong>80% deduction</strong> of total tour cost.&nbsp; And cancellation made <strong>7 days</strong> before commencement of tour after booking are subject to a <strong>non-refundable of tour cost</strong>. We will also charge 10% of total cost in case of any cancellation as communicating fees.

<p>Cancellations are based on total tour cost. Please note, however, that reservations made after the final payment date are immediately subject to cancellation charges.

<p>Any amendment in the original booking has to be given to us in writing. All changes will be processed only after the receipt of the same by the Company. However, if any of the amendment requests results in cancellation of one or more services, then the Company is liable to recover cancellation charges as indicated above.


If you need to cancel your reservation, please send us a mail at&nbsp;and contact a Himalayan Navigators Customer Service Representative. To receive any refund, if applicable, that may be due will be processed within 35 days after our receipt of your written notice of cancellation.<br />
<br />
Traveler substitutions are considered reservation cancellations and are subject to cancellation fees. Please note that we do not make any refunds for any unused portion of your trip.

<p><strong>PREPONE AND POSTPONE</strong>

<ul>
	<li>For postpone/Prepone of tour packages are to be communicated in written and need to be inform us at least 7 days prior of tour date.</li>
	<li>10% of total tour cost will be charged extra for Prepone/postpone within 7 days to departure.</li>
</ul>

<p><strong>TOUR TEARMS &amp; CONDITIONS:</strong>

<p>1.&nbsp;&nbsp;&nbsp; If the base category room will be not available then supplement cost will be applicable for upper category rooms.

<p>2.&nbsp;&nbsp;&nbsp; All disputes are Subject of Manali Jurisdiction.

<p>3.&nbsp;&nbsp;&nbsp; Meal Plans: - <strong>EPAI</strong>: Room Only, <strong>CPAI</strong>: Room &amp; Breakfast, <strong>MAPAI</strong>: Room, Breakfast &amp; one major meal (Lunch/Dinner), <strong>APAI</strong>: Room &amp; All Meals.

<p>4.&nbsp;&nbsp;&nbsp; Facilities like use of heater at hotel rooms in Himachal Pradesh will be chargeable as per Hotel policies.

<p>5.&nbsp;&nbsp;&nbsp; Check in &amp; Check out Time will be 1200 noon, if client need room early then it will be as per availability at hotel.

<p>6.&nbsp;&nbsp;&nbsp; If the desired hotel is not available due to any reason; however Himalayan Navigators will reserve another similar category hotel with to its customer.

<p>7.&nbsp;&nbsp;&nbsp; All rates are Nett &amp; non commission able to you &amp; rates are subject to change, without any prior notice.

<p>8.&nbsp;&nbsp;&nbsp; AC in cab during hills would not be operated. Please be careful with your personal belongings.

<p>9.&nbsp;&nbsp;&nbsp; Cancellation of booking is subject to the rules &amp; regulation of the hotel &amp; our service charges are concerned by hand on such cancellation.

<p>10. Postponement of date will be treated as cancellation and will be subject to availability.

<p>11. No cancellation &amp; any refund will be made at any cost in case of bad weather or land slide or any destination and which is beyond the control of the agent/hotel.

<p>12. Entrance fees at any point shall be paid by customer directly.

<p>13. Major Sightseeing point Rohtang Pass is closed on Tuesday every week. Due to any inclement weather condition or heavy snow fall at Himachal, we are not liable for any kind of refund.

<p>14. We may reschedule the sightseeing days subject to weather conditions &amp; to ensure smooth execution of tours.

<p>15. Under Volvo tours pickup service are not included from Airport / Railway Station to Bus Point. Under Volvo tours pickup service are included from Volvo arrival point at Manali to your Hotel.

<p>16. &ldquo;Himalayan Navigators &ldquo; is registered with Department of Tourism and Civil Aviation Government of Himachal Pradesh, and will not be responsible for any loss or damage to person life or Any kind of issue faced during tour, its compulsory to intimate us during that time of tour only, so that it can be rectified. After the tour is complete, we are not liable for any kind of refund.												</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="Jibhi & Tirthan Valley Weekend Trip 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="110649"/>
						</form>
						</div>
						
						";i:1;s:79:"Book Jibhi & Tirthan Valley Weekend Trip Tour - 2 Nights / 3 Days Tour Packages";i:2;s:122:"book jibhi & tirthan valley weekend trip tour - 2 nights / 3 days tour packages, valley tour packages, kullu tour packages";i:3;s:174:"Book Jibhi & Tirthan Valley Weekend Trip Tour - 2 Nights / 3 Days tour packages from Himalayan Navigators - Get attractive 2 Nights / 3 Days Valley  tour packages for  Kullu.";i:4;s:969:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kullu"        
		                 },
		      "description": "Any Air fare/Train fare.
Any transportation other then the provided sightseeing as per itinerary.
Any meals other then specified in above package inclusion.
Heater charges in hotel during winter season.
Travel Insurance. 
Monuments entry fees/camera fees/Guide fees/entertainment fees.
Expenses of personal nature such as telephone calls, laundry, liquor etc.
Any other which is not specified in above package Inclusion.
Any cost occurred due to snow fall / landslides or any other natural disasters shall be bear by client themselves.28-1031-12",
		      "name": "Jibhi & Tirthan Valley Weekend Trip Tour",
		      "telephone": "91-8091208888"
		    }
		    </script>
			";i:5;N;}