a:7:{i:0;s:67699:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Himalayan Treasures Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.hetshreetransitworld.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.hetshreetransitworld.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> Himalayan Treasures Tour</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<section id="middle" class="propDtls ttwBtmFtSpace">
				<div class="wrap thinFormat " id="bodyFormatNT">
								
				<div class="row1 dt columns23"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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>
				
					<div class="data mb15px mt15px p10px"> 
	 				<div class="fo dt w100"> 	 				
	 											<div class="dtc vat ttw-detail pr20px pr">
							<div class="headVr bdr0">
							<ul class="lsn gallery-slide" >
																	<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/473250/281494.jpg"><div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_16/473250/281494.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/473250/281494.jpg"  height="150"  width="150"    alt="Himalayan Treasures Tour" title="Himalayan Treasures Tour" ></div></a></div></div></li>
																	</ul>
														</div>
							</div>
												<div class="dtc pt7px ttwDtlsCont">
					<div class="adrsDtls">
											<div class="xxlarge fw6 mb7px lh13em">Himalayan Treasures Tour</div>
											<div class="ShareDropdown">		
					<div class="copyLinkPopup">Link Copied</div>	  
					<span class="data"><i class="fa fa-share-alt xxlarge vam"></i></span>
					<ul class="shareList data bdr0">
					<li><a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://www.hetshreetransitworld.in/tour-packages/himalayan-treasures-tour.htm" class="facebook" title="Facebook"><i class="fa fa-facebook-official"></i></a></li> 
					<li><a target="_blank" href="https://www.instagram.com/?url=https://www.hetshreetransitworld.in/tour-packages/himalayan-treasures-tour.htm" class="instagram" title="Instagram"><i class="fa fa-instagram"></i></a></li>
					<li><a target="_blank" href="https://wa.me/?text=https://www.hetshreetransitworld.in/tour-packages/himalayan-treasures-tour.htm" class="whatsapp" title="Whatsapp"><i class="fa fa fa-whatsapp"></i></a></li>  
					<li><a target="_blank" href="https://twitter.com/intent/tweet?text=Himalayan Treasures Tour&url=https://www.hetshreetransitworld.in/tour-packages/himalayan-treasures-tour.htm" class="twitter" title="Twitter"><img src="https://catalog.wlimg.com/mobile/social-networking-img/1002.svg" alt="Twitter" style="width:22px;height:22px;vertical-align:middle;margin-right:6px;"></a></li> 
					<li><a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.hetshreetransitworld.in/tour-packages/himalayan-treasures-tour.htm&title=Himalayan Treasures Tour" class="linkedin" title="Linkedin"><i class="fa fa-linkedin-square"></i></a></li>
					<li><a target="_blank" href="https://pinterest.com/pin/create/button/?url=https://www.hetshreetransitworld.in/tour-packages/himalayan-treasures-tour.htm&description=Himalayan Treasures Tour" class="pinterest" title="Pinterest"><i class="fa fa-pinterest-square"></i></a></li>
					<li><a href="javascript:;" title="Copy Link" class="copy" onclick="copyURL()"><i class="fa fa-clone"></i></a></li>
					</ul>
					</div>
					</div>
					<script>
					$(document).ready(function(){
					$('.ShareDropdown span').click(function(){
					 $('.ShareDropdown').toggleClass("active");
					}); 
					});
					</script>
					<script>
					  function copyURL() {
					    const url = window.location.href;
						const textarea = document.createElement("textarea");
						textarea.value = url;
						textarea.style.position = "fixed";
						document.body.appendChild(textarea);
						textarea.focus();
						textarea.select();
				
						try {
						  document.execCommand("copy");
						//  alert("URL copied (fallback)!");
						  $(".copyLinkPopup").show();		 
				          setTimeout(function(){$(".copyLinkPopup").hide();}, 2000);
					      $('.ShareDropdown').removeClass("active");
						  
						} catch (err) {
						  console.error("Fallback copy failed:", err);
						}
				
						document.body.removeChild(textarea);
					  }
					</script>
											<p class="mb5px"><b>Duration :</b> 
						8 Nights / 9 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Darjeeling, Kalimpong, Gangtok, Lachung, Enchey Monastery</p>
												<p class="mb5px"><b>Tour Activities :</b> Hill Stations & Valleys</p>
												<div class="fo mt20px mb20px ac xxlarge">
          				<p class="xxlarge b dif mb2px">
						<i class="fa fa-inr"></i> 38295						</p>
						<p class="xxsmall alpha50">Per Person</p>
          				</div>
											<div class="ac">
					<form class="inquiry-form" name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.hetshreetransitworld.in/enquiry-form-10028.htm">
					<input type="hidden" name="subject" value="Himalayan Treasures Tour - Tour Package"/>
					<input type="hidden" name="allocate_type" value="tour"/>							
					<input type="hidden" name="pkg_slno" value="183897"/>
					</form>
					<a href="javascript:;" class="submit-inquiry button p10px20px c5px ts0 xlarge dib fw6">Inquire Now for Best Deals</a>
					
										</div>
					<br />
										</div>
	   				</div>
					</div>
											<div class="mt7px dif small mb15px">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
														<section id="s1">
								<div class="data mt20px mb20px m_p25px lh2em">      
								<div class="xxlarge mb10px">
												   					<h2 class="fw7">Darjeeling, Kalimpong and Gangtok Tour Overview</h2>
				   													</div>
								<p class="large">					
								Highlights of the tour<br />
The topography of this little Himalayan State - Sikkim, a modern day Shangri-La, still uncorrupted by the onrush of civilization, is irresistible. Unwind in settings which are truly spectacular. Here, the snow capped peaks of the mighty Himalayas look upon quaint hilltop monasteries nestled in lush vegetation and silvery-blue rivers slicing through the valleys below. Visitors are left enchanted by the magical hill stations of Darjeeling in West Bengal and Kalimpong, and Pelling in the north-eastern reaches of the country. Choose this holiday package and unwind in the spectacular settings of Kalimpong, Gangtok, Lachung, and Darjeeling..	   <br />
Important Notes<br />
1.Check-in time at Hotel will be 14:00 hrs and Check out time will be 11:00 hrs. All the bookings are non-transferable & all in-house hotel rules will be effective during your stay. As imposed by the Government Valid photo ID for all members staying at the hotel is mandatory.<br />
2.For an Extra Person Sharing the Room and Child with Extra Bed, almost all the hotels of this area provide MATTRESS and ROLL OVERS as a supplement to Extra Bed.<br />
3.In this area almost all the hotels do not have lifts, so you will have to climb stairs to reach the rooms. In case you have problems with blood pressure, breathing, heart, and knees or if you cannot climb higher floors, we will request you to report this problem immediately so that we are careful in assigning Hotels which will be more convenient than the ones quoted/reserved for you.<br />
4.In a hilly area scarcity of water and electricity is a natural phenomenon. Everybody buys water for their day-to-day needs and have learnt to live even without electricity. In case of Load Shedding, kindly bear with such situation. To overcome the water crisis certain hotels have fixed schedule for supplying hot & cold water. We sincerely regret the inconvenience.<br />
5.Hotels have a system of providing room heater on request that requires extra payment. This payment is not included in the cost and you will have to settle it directly with the hotels before check-out. The charge varies from INR 150.00 to INR 200.00 per room per night.<br />
6.The vehicle used will not be at disposal and will be exclusively used for the group as per the itinerary only (on point to point basis). It will change sector wise.<br />
7.As the area is backward and due to unwritten syndicate rules your vehicle and drivers will change for every transfer & sightseeing. These drivers come from remote places and are not educated in tourism etiquette. Kindly request the guest to be soft-spoken and gentle with their drivers.<br />
8.Often in the past, guests have been misguided by such drivers. We would like to request you to confirm whatever they say with your File Handling Executive (FHE).<br />
9.As the vehicles and drivers change always we will request you to be very careful with your personal belongings. Once left in the vehicle there is almost nil or little chance of getting them back.<br />
10.Certain sightseeing areas are totally controlled by the syndicate and we do not have any say over such services. We will request you to bear with such uncalculated situations. Their FHE will guide you on such services e.g. Tshangu Lake, Nathula, packages to North Sikkim etc. Especially while using such services you will have to be gentle in dealing with the drivers due to lack of their exposure to the tourism industry and practices they sometimes tend to get annoyed and may misbehave.<br />
11.Since Nathula is a restricted area and gets sealed, without any notice, for security reasons. In such cases your tour will only be till Tshangu Lake and there will be no refund for unutilized services.<br />
12.Due to shortage in space for parking, please be informed that you will have to be ready on time and wait in the lobby. Due to uncalculated situations the vehicle reporting may get delayed. We will request you to bear with us and as soon as the vehicle arrives you will have to get in within a few seconds, before the policeman blows his whistle.<br />
13.Due to vehicle-parking difficulty in the whole area, most of the areas are restricted to entry of vehicle and specific time is allotted for entries. Kindly follow the time strictly as given to you. In case of delays the vehicle will have to leave the hotel area without you and get parked in a parking area. In such a case, you will have to be transferred in a Maruti Van FOR WHICH THE COST WILL HAVE TO BE BORNE BY YOU AND WILL HAVE TO BE COLLECTED DIRECTLY FROM YOU.<br />
14.Due to specified time for entry, many times your connecting destination vehicle may not be allowed to enter the town / hotel area. Under such circumstances you will be transferred from the stand to the hotel in Maruti Vans for which the driver of your connecting vehicle will make the payment.<br />
15.The area is backward but rich in Nature and the facilities available cannot be matched to those available in the Plains and other developed destinations. We strongly regret this constraint of the area.<br />
16.Please note that our Executive will hold a placard as advised by you, just outside the only exit gate of Bagdogra Airport.<br />
17.In case you are arriving at NJP Railway station which has 03 entry and exit gates, please be informed that you will meet our Office Executive at the old exit gate (which happens to be the main gate that houses the Army Counter) holding a placard in your name / or as advised by you.<br />
18.Sikkim and Darjeeling are hilly areas and change in weather is a regular feature. It is advisable to carry light layers of clothing always. During winter it is advisable to carry heavy woolens.<br />
19.Landslide is a common occurrence in hilly areas. EXPENSES INCURRED FOR DIVERSION, DUE TO THIS OR ANY OTHER REASONS WILL BE COLLECTED DIRECTLY AS PER ACTUAL EXPENDITURE INCURRED.<br />
20.Kindly be informed that we make contingency plans so that the sightseeing points do not fall on a closing day. In case, due to some inevitable situation if the sightseeing falls on a closing day, it will have to be left out and cannot be carried forward to the next day. If you want to take the left out part of the tour on the next day, you will have to pay extra against the vehicle charges as advised by the File Handling Executive (FHE).<br />
21.People with heart, blood pressure, and knee problems and those having children below 05 years of age should avoid going to Nathula, Gurudongmar & Yumosomdong (Zero Point) as it could be of high risk and medical facility is also very poor.<br />
22.High Mountain sightseeing such as Tshangu Lake, Yumthang Excursion, Gurudongmar Excursion has to start early in the morning so that you can return early. This is designed for your security as in the afternoon the weather gets cloudy and foggy throughout the year.<br />
23.Due to non-availability of night life the whole area goes to bed early and wakes up early. We request you to go to bed on time so that next day you can start your tour early.<br />
24.People availing the services to Nathula, Tshangu Lake, and North Sikkim (Lachung, Yumthang Excursion, Yumosomdong (Zero Point), Katau, Lachen, Chopta Valley & Gurudongmar Excursion) are requested to bring along with them : a) 04 passport size photographs of each member travelling whether Adult or Children with their name written behind each photograph. B) Original photo ID proof of each member travelling whether Adult or Child. C) A list mentioning the Name, Age and Gender of all travelling familywise. Also note that in case of more than one family travelling together, please segregate the photographs and the photo copies of the Photo IDs, familywise in separate envelopes. The smaller envelope holding the details familywise will have to be put together into a bigger envelope for all families and then sealed with UD Number written on top. For North Sikkim it should be a separate envelope and for Tshangu Lake it should be a separate envelope. After reaching Gangtok, this document has to be handed over at the hotel counter and the information on doing so has to be passed over the telephone to the FHE.<br />
All rates and rooms are subject to availability at time of confirmation.<br />
Mandatory Surcharge of Rs. 750.00 per person applicable between 01st May to 10th June 2019								</p>
								</div>
								</section>
																<section id="s2" class="mt15px">
								<div class="data mb20px m_p25px">
		  						<div class="fw7 xxlarge">
		  										   					<h2 class="fw7">Darjeeling, Kalimpong and Gangtok Tour Itinerary</h2>
				   							  						</div>
					            <div class="tour-details-view mt22px">
					            
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 1</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px on"><a href="javascript:;" class="clickable db"><h3>Njp Rly Station / Ixb Airport - Darjeeling (75 Kms / 3 Hrs)</h3>
										<span class="fr pr10px"><i class="fa fa-angle-up"></i></span></a>
										</div>
										<div class="pro-detail mb15px ">Meet & Greet On Arrival At Njp Railway Station / Ixb Airport & Transfer to Darjeeling (6,950 Ft.). On Arrival Check-in to Hotel & Rest of the Day At Leisure. Overnight Stay At Darjeeling.
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 2</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Darjeeling Sightseeing</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">In the Early in the Morning (at About 4:00 Am), You Will Be Taken to Tiger Hill (8,400 Ft.) to Watch the Spectacular Sunrise Over Mt. Khangchendzongha (28,208 Ft. Worlds 3rd Highest Peak). On Your Way Back Visit Ghoom Monastery and Batasia Loop. After Breakfast, Visit Himalayan Mountaineering Institute, P.n. Zoological Park (thursday Closed), Tenzing Rock, Tibetan Refugee Self-help Centre (sunday Closed), Tea Garden (outer View), Ropeway and Japanese Temple. You May Spend the Evening At Leisure or Go Shopping. Overnight Stay in Darjeeling.<br />
meals:breakfast
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 3</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Darjeeling - Kalimpong (57 kms / 2.5 hrs) Sightseeing</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After breakfast transfer to Kalimpong (3,950 ft.). On arrival check-in to your hotel. In the afternoon, enjoy a half-day tour of Kalimpong; visiting Mangal Dham, Deolo Hill, Dr. Grahams Home, Golf Garden, Durpin Dara Hills and Pine View Nursery. Overnight stay in Kalimpong.<br />
Meals:Breakfast
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 4</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Kalimpong - Gangtok (75 kms / 3 hrs) Local Sightseeing</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After breakfast, transfer to Gangtok (5,500 ft.). On arrival check-in to your hotel. In the afternoon proceed for a city tour. Visit Flower show, Cottage Industry and Handicraft Centre, Institute of Tibetology, Dro-dul Chorten, Enchey Monastery and Banjakhri Falls (maximum 3-4 hours). Overnight stay in Gangtok.<br />
Meals:Breakfast
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 5</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Excursion to Tsomgo Lake & Baba Mandir</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After breakfast set out on an excursion to Tsomgo Lake (12,400 ft.) & Baba Mandir (13,200 ft.) which is 55 kms one-way from Gangtok city. Overnight stay in Gangtok (in case of landslides or any other such reason, if Tsomgo Lake is closed we will provide alternate sightseeing.<br />
Meals:Breakfast
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 6</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Gangtok - Lachung (103 kms / 6 hrs)</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After Breakfast Check Out from Hotel with Limited Luggage and Proceed to Lachung (8,700 Ft.), North Sikkim. On the Way Take a Break At Some Beautiful Spots such as Naga Waterfall, the Confluence of Lachen Chu (river) and Lachung Chu (river) At Chungthang and Bhim Nala Waterfall. On Arrival At Lachung Check-in to Your Hotel. Dinner and Overnight Stay At Lachung.<br />
meals:breakfast and Dinner
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 7</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Lachung - Yumthang Valley Excursion</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After breakfast proceed to Yumthang Valley (12,000 ft., known as the Valley of Flowers). On the way back, visit Hot Spring considered to have medicinal properties. Return to the resort. Overnight stay in Lachung.<br />
Meals:Breakfast and Dinner
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 8</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Lachung - Gangtok (103 kms / 6 hrs)</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After breakfast proceed to Gangtok (5,500 ft.). On the way, if the weather is clear you may get to see mighty Khangchendzonga from Singhik view point. On arrival at Gangtok check-in to your hotel. You may spend the rest of the evening at leisure. Overnight stay in Gangtok.<br />
Meals:Breakfast
										</div> 
										</div>  
			 							</div>
										<div class="iti-box large">
		   								<div class="dayIni dif lh15em">Day 9</div>
		   								<div class="iti-dtls lh18em"> 
   										<div class="sub-title large fw6 db bdrB bdreee pb7px mb10px "><a href="javascript:;" class="clickable db"><h3>Gangtok - NJP Rly Station / IXB Airport (120 kms / 5 hrs)</h3>
										<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a>
										</div>
										<div class="pro-detail mb15px dn">After breakfast, check-out from hotel. Take the departure transfer to NJP Railway Station / IXB Airport.<br />
Meals:Breakfast
										</div> 
										</div>  
			 							</div>								</div>
								</div>
								<script>
								jQuery('.fancybox').fancybox();
								  jQuery(document).ready(function() {
								  jQuery('[data-fancybox]').fancybox({
								  thumbs : {
								  autoStart : true,
								  axis      : 'x'
								  }
								  });
								});
								</script>
								<script>
								jQuery(document).ready(function() {
								//jQuery('.pro-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);
									  if($this.hasClass('on')){
										$this.removeClass('on');
										$this.next().slideUp();          	
									  } else {
										jQuery(".sub-title").removeClass('on');
										jQuery('.pro-detail').slideUp();
										$this.addClass('on');
										$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>
								</section>
															<div class="xxlarge mt10px mb10px dib">
										   					<h2 class="fw7">More Details about Darjeeling, Kalimpong and Gangtok Tour</h2>
			   												</div>
															<section id="s3">
								<div class="data mb20px m_p25px large">
								<div class="mb7px"> 
								<p class="fw7 xxlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>MAP (Room + Breakfast + Lunch/Dinner)</li>
																						<li>Hotel</li>
																						<li>Sightseeing</li>
																				<li>Accommodation for 08 nights / 09 days on twin / double sharing basis.</li><li>
Daily Fixed menu / Buffet breakfast. (All meals at Lachung)</li><li>
Exclusive Non AC vehicle for transfers and sightseeing as per itinerary only (point to point basis).</li><li>
All current applicable hotel taxes.</li>
																	</ul>
								</div>
								</section> 
																<section id="s4">
								<div class="data mb20px m_p25px large">
								<div class="mb7px"> 
								<p class="fw7 xxlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Airfare / Train fare.</li><li>
Personal expenses such as laundry, telephone calls, tips, liquor, boating and joy rides.</li><li>
Any other item not specified in 'Cost Includes'.</li><li>
Additional sightseeing or usage of vehicle not mentioned in the itinerary.</li><li>
Guide and Entrance Fees.</li><li>
Any cost arising due to natural calamities like landslides, roadblocks, etc is to be borne by the clients directly on the spot.</li><li>
Any increase in the hotel tariffs, fuel prices or taxes, which may come into effect prior to departure, will lead to an increase in the tour price. Any difference in the price will be payable by the client.</li><li>
GST as per the current rate (5%)</li></ul>
								</div>
								</section>
																<section id="s5">
								<div class="data mb20px m_p25px large">          
								<div class="mb7px"> 
								<p class="fw7 xxlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Prices are based on a minimum of 2 adults traveling together.</li><li>
Prices are based on Standard Rooms.</li><li>
Surcharge is applicable on a passenger traveling alone.</li><li>
'Child Rate' applies on children between the ages of 2 to 12 years.</li><li>
Prices for foreign nationals are available on request.</li><li>
These rates are not applicable during any Meetings, Incentives, Conferences, Trade Fairs and High Season.</li><li>
All bookings and confirmations are subject to availability.</li><li>
Amendment charges and cancellation charges will be applicable as per our terms & conditions.</li><li>
Any increase in the hotel tariffs, fuel prices or taxes, which may come into effect prior to departure, will lead to an increase in the tour price. Any difference in the price will be payable by the client.</li><li>
There will be no refund on any unused services.</li><li>
The hotel names mentioned are indicative. In case of non-availability of rooms, you will be accommodated in an alternate hotel of a similar category.</li><li>
Rates are subject to change without prior notice.</li><li>
All our booking terms & conditions will apply.</li></ul>					
								</div>
								</section>
														<section id="s6">
						<div class="data mb20px m_p25px large res_table">            
						<div class="mb7px"> 
						<p class="fw7 xxlarge mb10px dib">Price &amp; Rates</p>
						</div>				
				        <table class="mb15px bdrall bdreee w100 p10px20px formTable">
				        	<tr class="headVr b">
			                	<th class="p15px al">No of pax</th>
			                    <th class="p15px al">Age Limit</th>
			                    <th class="p15px al">Price per pax (Rs)</th>
			                </tr>

															<tr>
				            	<td class="p15px"><span class="fw6 tblTitle">No of pax </span> Adult</td>
				                <td class="p15px"><span class="fw6 tblTitle">Age Limit </span> Above 12 years</td>
				                <td class="p15px"><span class="fw6 tblTitle">Price per pax (Rs) </span> 
			                				                		<b class="webrupee">INR</b>
			                					                	<b>38295</b> <small>/
			
			                		Adult			
			                	( With Tax )			
			                		
			                	</small></td>
				            	</tr>
				            					         </table>
						</div>
						</section>
					 							<section id="s7">
						<div class="data mb20px m_p25px large">             
						<div class="mb7px"> 
						<p class="fw7 xxlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
* Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
						</section>
												<section id="s8">
						<div class="data mb20px m_p25px large">            
						<div class="mb7px"> 
						<p class="fw7 xxlarge mb10px dib">Packages by Theme</p>
						</div>
													<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.hetshreetransitworld.in/romantic-holidays-catid.htm" title="Romantic Tour Packages">Romantic Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.hetshreetransitworld.in/adventure-holidays-catid.htm" title="Adventure Tour Packages">Adventure Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.hetshreetransitworld.in/hill-station-holidays-catid.htm" title="Hill Stations & Valleys Tour Packages">Hill Stations & Valleys Tours</a></span>
														<span class="dib p5px10px c2px bdr bdree mr7px mb7px "><a  href="https://www.hetshreetransitworld.in/beach-islands-holidays-catid.htm" title="Beaches and Islands Tour Packages">Beaches and Islands Tours</a></span>
													</div>
						</section>
												
						<div class="ac mb10px">
						<form class="inquiry-form" name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.hetshreetransitworld.in/enquiry-form-10028.htm">
						<input type="hidden" name="subject" value="Himalayan Treasures Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>							
						<input type="hidden" name="pkg_slno" value="183897"/>
						</form>
						<a href="javascript:;" class="submit-inquiry button p10px20px w150px fw6 large dib ttu ts0">Book Your Tour</a>
						</div>
											<div id="myModal" class="modal fade dn pf" role="dialog" style="z-index:9999;left:0;top:0%;width:100%;height:100%;background-color:rgba(0,0,0,0.6);overflow-x: hidden; overflow-y: auto;">
					    <!-- Modal content-->
					    <div style="max-width:380px;margin-top: 50px;min-height:400px;" class="modal-content data m0a p10px pr">
					      <div class="modal-header">
					        <a style="right:25px;top:25px;" class="pa b xxxlarge" data-dismiss="modal"><span class="xlarge">&times;</span></a>	        
					      </div>
					      <div class="modal-body">
					        <p>Loading...</p>
					      </div>
					      <div class="modal-footer">
					        
					      </div>
					    </div>
					</div>
					<script type="text/javascript">
						jQuery(document).ready(function(){
							jQuery(document).on("click", ".submit-inquiry" , function(e){e.stopPropagation()
								var form = jQuery(this).parent().find(".inquiry-form");
								if(form.length){
									jQuery.ajax({
										url: form.attr("action"),
										type: form.attr("method"),
										data:form.serialize(),
										crossDomain:true,
										success:function(res){
											jQuery("#myModal .modal-body").html(res);
										}
									});
								}
							});
							jQuery(document).on("click", "[data-dismiss=modal]", function(){
								jQuery("#myModal .modal-body").html("<p>Loading...</p>");
								jQuery("#myModal").hide();
							});
							jQuery(document).on("submit", "form[name=static_form]", function(e){				
								e.preventDefault();
								var isValidForm =static_inq_form_validate(jQuery(this).attr("form-id"));
								if(isValidForm == undefined){
									var form = jQuery(this);
									if(form.length){
										jQuery.ajax({
											url: form.attr("action"),
											type: form.attr("method"),
											data:form.serialize(),
											crossDomain:true,
											beforeSend:function(){
												jQuery("#myModal .modal-footer").html("");
											},
											success:function(res){
												jQuery("#myModal .modal-body").html(res);
												setTimeout(function(){
													jQuery("#myModal", document).hide();
													jQuery("#myModal .modal-body").html("<p>Loading...</p>");
													},2000)
											}
										});
									}
								}
							});
							var modal = jQuery("#myModal", document);
				
							jQuery(document).on("click", ".submit-inquiry" , function(){
							    modal.show();
							});
				
							window.onclick = function(event) {
							    if (jQuery(event.target) == modal) {
							        modal.css("display","none");
							    }
							}
						});
					</script>
									</div>
									<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
					<div class="column_Box mc rghtFix">
					<div class="tcl bullet data divider enqForm stickyForm">
					<div class="h h2 ac xxlarge theme2 p10px" style="color:#fff;"><b class="plusMinus"></b>
					Fill Enquiry Form Below
					</div>
					<div class="showHide_rp mt7px p10px">
					<form name="package_form" method="post" action="//catalog.tourtravelworld.com/catalog-enquiry.php" onsubmit="return static_inq_form_validate(10029);">
					<div class="fo">
					<div class="mb15px">
					<input type="text" name="dynFrm_contact_person" id="dynFrm_contact_person_10029" placeholder="Your Full Name" />
					<span class="red small"></span>
					</div>
					<div class="fl w100 mb15px">
					<textarea name="dynFrm_details_2" id="dynFrm_details_2_10029">I am interested in Himalayan Treasures Tour. Please get in contact with me.</textarea>
					<span class="fl red small"></span>
					</div>
					<div class="fl w100 mb15px df-dt">
					<div class="df-dtc w50 pr5px dateOpt pr"><input type="text" name="dynFrm_arrival_date" id="dynFrm_arrival_date_10029" class="dynFrm_arrival_date" style="padding-left:30px;" placeholder=" Departure Date" /><span class="fl red small"></span></div>
					<div class="df-dtc pl5px"><input type="text" name="dynFrm_duration" id="dynFrm_duration_10029" placeholder="Number of Days" /><span class="fl red small"></span></div>
					</div>  
					<div class="mb15px">
					<input type="text" name="dynFrm_email_id" id="dynFrm_email_id_10029" placeholder="Email" />
					<span class="red small"></span>
					</div> 
					<div class="mb20px fl w100">
					<div class="w60px pr fl ofh">
					<div id="isdpackCode" class="isdCode pr0px">+91</div>
					<select class="contSelect" name="dynFrm_country" id="dynFrm_country" onChange="document.getElementById('phone_package_isd').value=this.value.substr(3, 4); document.getElementById('isdpackCode').innerHTML=this.value.substr(3, 4);">
					
											
						<option value="AF^+93" >Afghanistan +93</option>
					
												
						<option value="CF^+236" >African Republic +236</option>
					
												
						<option value="AL^+355" >Albania +355</option>
					
												
						<option value="DZ^+213" >Algeria +213</option>
					
												
						<option value="AS^+0" >American Samoa +0</option>
					
												
						<option value="AD^+376" >Andorra +376</option>
					
												
						<option value="AO^+244" >Angola +244</option>
					
												
						<option value="AI^+264" >Anguilla +264</option>
					
												
						<option value="AG^+268" >Antigua and Barbuda +268</option>
					
												
						<option value="AR^+54" >Argentina +54</option>
					
												
						<option value="AM^+374" >Armenia +374</option>
					
												
						<option value="AW^+297" >Aruba +297</option>
					
												
						<option value="AU^+61" >Australia +61</option>
					
												
						<option value="AT^+43" >Austria +43</option>
					
												
						<option value="AZ^+994" >Azerbaijan +994</option>
					
												
						<option value="BS^+242" >Bahamas +242</option>
					
												
						<option value="BH^+973" >Bahrain +973</option>
					
												
						<option value="BD^+880" >Bangladesh +880</option>
					
												
						<option value="BB^+246" >Barbados +246</option>
					
												
						<option value="BY^+375" >Belarus +375</option>
					
												
						<option value="BE^+32" >Belgium +32</option>
					
												
						<option value="BZ^+501" >Belize +501</option>
					
												
						<option value="BJ^+229" >Benin +229</option>
					
												
						<option value="BM^+441" >Bermuda +441</option>
					
												
						<option value="BT^+975" >Bhutan +975</option>
					
												
						<option value="BO^+591" >Bolivia +591</option>
					
												
						<option value="BA^+387" >Bosnia and Herzegovina +387</option>
					
												
						<option value="BW^+267" >Botswana +267</option>
					
												
						<option value="BV^+47" >Bouvet +47</option>
					
												
						<option value="BR^+55" >Brazil +55</option>
					
												
						<option value="BN^+673" >Brunei +673</option>
					
												
						<option value="BG^+359" >Bulgaria +359</option>
					
												
						<option value="BF^+226" >Burkina +226</option>
					
												
						<option value="BF^+0" >Burkina Faso +0</option>
					
												
						<option value="BI^+257" >Burundi +257</option>
					
												
						<option value="KH^+855" >Cambodia +855</option>
					
												
						<option value="CM^+237" >Cameroon +237</option>
					
												
						<option value="CA^+1" >Canada +1</option>
					
												
						<option value="CV^+238" >Cape Verde +238</option>
					
												
						<option value="KY^+345" >Cayman Islands +345</option>
					
												
						<option value="236^+236" >Central African Republic +236</option>
					
												
						<option value="TD^+235" >Chad +235</option>
					
												
						<option value="IO^+246" >Chagos +246</option>
					
												
						<option value="CL^+56" >Chile +56</option>
					
												
						<option value="CN^+86" >China +86</option>
					
												
						<option value="CX^+61" >Christmas Island +61</option>
					
												
						<option value="CC^+61" >Cocos +61</option>
					
												
						<option value="CO^+57" >Colombia +57</option>
					
												
						<option value="KM^+269" >Comoros +269</option>
					
												
						<option value="CG^+242" >Congo +242</option>
					
												
						<option value="CK^+682" >Cook Islands +682</option>
					
												
						<option value="RCI^+506" >Costa Rica +506</option>
					
												
						<option value="HR^+385" >Croatia +385</option>
					
												
						<option value="CY^+357" >Cyprus +357</option>
					
												
						<option value="CZ^+420" >Czech Republic +420</option>
					
												
						<option value="DK^+45" >Denmark +45</option>
					
												
						<option value="DJ^+253" >Djibouti +253</option>
					
												
						<option value="DM^+767" >Dominica +767</option>
					
												
						<option value="DO^+809" >Dominican Republic +809</option>
					
												
						<option value="TP^+670" >East Timor +670</option>
					
												
						<option value="EC^+593" >Ecuador +593</option>
					
												
						<option value="EG^+20" >Egypt +20</option>
					
												
						<option value="SV^+503" >El Salvador +503</option>
					
												
						<option value="GQ^+0" >Equatorial Guinea +0</option>
					
												
						<option value="ER^+291" >Eritrea +291</option>
					
												
						<option value="EE^+372" >Estonia +372</option>
					
												
						<option value="ET^+251" >Ethiopia +251</option>
					
												
						<option value="FO^+298" >Faroe +298</option>
					
												
						<option value="FM^+691" >Federated States of Micronesia +691</option>
					
												
						<option value="FJ^+679" >Fiji +679</option>
					
												
						<option value="FI^+358" >Finland +358</option>
					
												
						<option value="FR^+33" >France +33</option>
					
												
						<option value="FX^+590" >France, Metropolitan +590</option>
					
												
						<option value="GF^+594" >French Guiana +594</option>
					
												
						<option value="FP^+689" >French Polynesia +689</option>
					
												
						<option value="TF^+590" >French Southern Territories +590</option>
					
												
						<option value="GA^+241" >Gabon +241</option>
					
												
						<option value="GM^+220" >Gambia +220</option>
					
												
						<option value="GE^+995" >Georgia +995</option>
					
												
						<option value="DE^+49" >Germany +49</option>
					
												
						<option value="GH^+233" >Ghana +233</option>
					
												
						<option value="GI^+350" >Gibraltar +350</option>
					
												
						<option value="GR^+30" >Greece +30</option>
					
												
						<option value="GL^+299" >Greenland +299</option>
					
												
						<option value="GD^+809" >Grenada +809</option>
					
												
						<option value="Gre^+473" >Grenada +473</option>
					
												
						<option value="GP^+590" >Guadeloupe +590</option>
					
												
						<option value="GU^+1" >Guam +1</option>
					
												
						<option value="GT^+502" >Guatemala +502</option>
					
												
						<option value="GN^+224" >Guinea +224</option>
					
												
						<option value="GW^+245" >Guinea-bissau +245</option>
					
												
						<option value="GY^+592" >Guyana +592</option>
					
												
						<option value="HT^+509" >Haiti +509</option>
					
												
						<option value="HM^+61" >Heard and Mc Donald Islands +61</option>
					
												
						<option value="HN^+504" >Honduras +504</option>
					
												
						<option value="HU^+36" >Hungary +36</option>
					
												
						<option value="IS^+354" >Iceland +354</option>
					
												
						<option value="IN^+91"  selected="selected" >India +91</option>
					
												
						<option value="ID^+62" >Indonesia +62</option>
					
												
						<option value="IQ^+964" >Iraq +964</option>
					
												
						<option value="IE^+353" >Ireland +353</option>
					
												
						<option value="Isi^Isiolo" >Isiolo Isiolo</option>
					
												
						<option value="IL^+972" >Israel +972</option>
					
												
						<option value="IT^+39" >Italy +39</option>
					
												
						<option value="CI^+225" >Ivory Coast +225</option>
					
												
						<option value="JM^+876" >Jamaica +876</option>
					
												
						<option value="JP^+81" >Japan +81</option>
					
												
						<option value="JO^+962" >Jordan +962</option>
					
												
						<option value="KZ^+7" >Kazakhstan +7</option>
					
												
						<option value="KE^+254" >Kenya +254</option>
					
												
						<option value="KI^+686" >Kiribati +686</option>
					
												
						<option value="KW^+965" >Kuwait +965</option>
					
												
						<option value="KG^+996" >Kyrgyzstan +996</option>
					
												
						<option value="LA^+856" >Lao People's Democratic Republic +856</option>
					
												
						<option value="LA^+856" >Laos +856</option>
					
												
						<option value="LV^+371" >Latvia +371</option>
					
												
						<option value="LB^+961" >Lebanon +961</option>
					
												
						<option value="LS^+266" >Lesotho +266</option>
					
												
						<option value="LR^+231" >Liberia +231</option>
					
												
						<option value="LY^+218" >Libya +218</option>
					
												
						<option value="LI^+423" >Liechtenstein +423</option>
					
												
						<option value="LT^+370" >Lithuania +370</option>
					
												
						<option value="LU^+352" >Luxembourg +352</option>
					
												
						<option value="MO^+853" >Macau +853</option>
					
												
						<option value="MK^+389" >Macedonia +389</option>
					
												
						<option value="MG^+261" >Madagascar +261</option>
					
												
						<option value="MW^+265" >Malawi +265</option>
					
												
						<option value="MY^+60" >Malaysia +60</option>
					
												
						<option value="MV^+960" >Maldives +960</option>
					
												
						<option value="ML^+223" >Mali +223</option>
					
												
						<option value="MT^+356" >Malta +356</option>
					
												
						<option value="FK^+500" >Malvinas +500</option>
					
												
						<option value="MH^+692" >Marshall Islands +692</option>
					
												
						<option value="MQ^+596" >Martinique +596</option>
					
												
						<option value="MR^+222" >Mauritania +222</option>
					
												
						<option value="MU^+230" >Mauritius +230</option>
					
												
						<option value="YT^+269" >Mayotte +269</option>
					
												
						<option value="MX^+52" >Mexico +52</option>
					
												
						<option value="MD^+0" >Moldova +0</option>
					
												
						<option value="MD^+373" >Moldova (Republic of Moldova) +373</option>
					
												
						<option value="MC^+377" >Monaco +377</option>
					
												
						<option value="MN^+976" >Mongolia +976</option>
					
												
						<option value="ME^+381" >Montenegro +381</option>
					
												
						<option value="MS^+664" >Montserrat +664</option>
					
												
						<option value="MA^+212" >Morocco +212</option>
					
												
						<option value="MZ^+258" >Mozambique +258</option>
					
												
						<option value="MM^+95" >Myanmar +95</option>
					
												
						<option value="NA^+264" >Namibia +264</option>
					
												
						<option value="NR^+674" >Nauru +674</option>
					
												
						<option value="NP^+977" >Nepal +977</option>
					
												
						<option value="NL^+31" >Netherlands +31</option>
					
												
						<option value="AN^+599" >Netherlands Antilles +599</option>
					
												
						<option value="NC^+687" >New Caledonia +687</option>
					
												
						<option value="PG^+675" >New Guinea +675</option>
					
												
						<option value="NZ^+64" >New Zealand +64</option>
					
												
						<option value="NI^+505" >Nicaragua +505</option>
					
												
						<option value="NE^+227" >Niger +227</option>
					
												
						<option value="NG^+234" >Nigeria +234</option>
					
												
						<option value="NU^+683" >Niue +683</option>
					
												
						<option value="NF^+672" >Norfolk Island +672</option>
					
												
						<option value="MP^+670" >Northern Mariana Islands +670</option>
					
												
						<option value="NO^+47" >Norway +47</option>
					
												
						<option value="OM^+968" >Oman +968</option>
					
												
						<option value="PK^+92" >Pakistan +92</option>
					
												
						<option value="PW^+680" >Palau +680</option>
					
												
						<option value="PA^+507" >Panama +507</option>
					
												
						<option value="PG^+0" >Papua New Guinea +0</option>
					
												
						<option value="PY^+595" >Paraguay +595</option>
					
												
						<option value="PE^+51" >Peru +51</option>
					
												
						<option value="PH^+63" >Philippines +63</option>
					
												
						<option value="PN^+872" >Pitcairn +872</option>
					
												
						<option value="PL^+48" >Poland +48</option>
					
												
						<option value="PF^+689" >Polynesia +689</option>
					
												
						<option value="PT^+351" >Portugal +351</option>
					
												
						<option value="PR^+1-787" >Puerto Rico +1-787</option>
					
												
						<option value="QA^+974" >Qatar +974</option>
					
												
						<option value="RE^+262" >Reunion +262</option>
					
												
						<option value="RO^+40" >Romania +40</option>
					
												
						<option value="RU^+7" >Russia +7</option>
					
												
						<option value="RW^+250" >Rwanda +250</option>
					
												
						<option value="KN^+869" >Saint Kitts and Nevis +869</option>
					
												
						<option value="LC^+758" >Saint Lucia +758</option>
					
												
						<option value="VC^+784" >Saint Vincent and the Grenadines +784</option>
					
												
						<option value="WS^+685" >Samoa +685</option>
					
												
						<option value="SM^+378" >San Marino +378</option>
					
												
						<option value="ST^+239" >Sao Tome And Principe +239</option>
					
												
						<option value="SA^+966" >Saudi Arabia +966</option>
					
												
						<option value="SN^+221" >Senegal +221</option>
					
												
						<option value="RS^+381" >Serbia +381</option>
					
												
						<option value="SC^+248" >Seychelles +248</option>
					
												
						<option value="SL^+232" >Sierra Leone +232</option>
					
												
						<option value="SG^+65" >Singapore +65</option>
					
												
						<option value="SK^+421" >Slovakia +421</option>
					
												
						<option value="SI^+386" >Slovenia +386</option>
					
												
						<option value="SB^+677" >Solomon Islands +677</option>
					
												
						<option value="SO^+252" >Somalia +252</option>
					
												
						<option value="ZA^+27" >South Africa +27</option>
					
												
						<option value="GS^+44" >South Georgia and the South Sandwich Islands +44</option>
					
												
						<option value="KR^+82" >South Korea +82</option>
					
												
						<option value="ES^+34" >Spain +34</option>
					
												
						<option value="LK^+94" >Sri Lanka +94</option>
					
												
						<option value="SH^+290" >St. Helena +290</option>
					
												
						<option value="PM^+508" >St. Pierre and Miquelon +508</option>
					
												
						<option value="SD^+249" >Sudan +249</option>
					
												
						<option value="SR^+597" >Suriname +597</option>
					
												
						<option value="SJ^+47" >Svalbard and Jan Mayen Islands +47</option>
					
												
						<option value="SZ^+268" >Swaziland +268</option>
					
												
						<option value="SE^+46" >Sweden +46</option>
					
												
						<option value="CH^+41" >Switzerland +41</option>
					
												
						<option value="TW^+886" >Taiwan +886</option>
					
												
						<option value="TJ^+7" >Tajikistan +7</option>
					
												
						<option value="TZ^+255" >Tanzania +255</option>
					
												
						<option value="TH^+66" >Thailand +66</option>
					
												
						<option value="TG^+228" >Togo +228</option>
					
												
						<option value="TK^+64" >Tokelau +64</option>
					
												
						<option value="TO^+676" >Tonga +676</option>
					
												
						<option value="TT^+868" >Trinidad and Tobago +868</option>
					
												
						<option value="TN^+216" >Tunisia +216</option>
					
												
						<option value="TR^+90" >Turkey +90</option>
					
												
						<option value="TM^+993" >Turkmenistan +993</option>
					
												
						<option value="TC^+649" >Turks and Caicos Islands +649</option>
					
												
						<option value="TV^+688" >Tuvalu +688</option>
					
												
						<option value="AE^+971" >UAE +971</option>
					
												
						<option value="UG^+256" >Uganda +256</option>
					
												
						<option value="UA^+380" >Ukraine +380</option>
					
												
						<option value="UK^+44" >United Kingdom +44</option>
					
												
						<option value="UM^+1" >United States Minor Outlying Islands +1</option>
					
												
						<option value="UY^+598" >Uruguay +598</option>
					
												
						<option value="US^+1" >USA +1</option>
					
												
						<option value="UZ^+998" >Uzbekistan +998</option>
					
												
						<option value="VU^+678" >Vanuatu +678</option>
					
												
						<option value="VA^+0" >Vatican City +0</option>
					
												
						<option value="VA^+39" >Vatican City State (Holy See) +39</option>
					
												
						<option value="VE^+58" >Venezuela +58</option>
					
												
						<option value="VN^+84" >Vietnam +84</option>
					
												
						<option value="VG^+1" >Virgin Islands (British) +1</option>
					
												
						<option value="VI^+1" >Virgin Islands (U.S.) +1</option>
					
												
						<option value="WF^+681" >Wallis and Futuna Islands +681</option>
					
												
						<option value="EH^+212" >Western Sahara +212</option>
					
												
						<option value="YE^+967" >Yemen +967</option>
					
												
						<option value="YU^+381" >Yugoslavia +381</option>
					
												
						<option value="ZR^+243" >Zaire +243</option>
					
												
						<option value="ZM^+260" >Zambia +260</option>
					
												
						<option value="ZW^+263" >Zimbabwe +263</option>
					
											</select>
					</div>									
					<input type="text" name="dynFrm_phone" id="dynFrm_phone_10029" class="fl" style="width:calc(100% - 62px);" placeholder="Mobile No" />
					<span class="fl red small"></span>
					</div>					
										
					<div class="mb5px ac">
					<input type="submit" name="submit" value="Send Enquiry" class="dib theme1 p12px bdr fw6">
					<input type="hidden" name="phone_isd" id="phone_package_isd" value="+91">
					<input type="hidden" name="subject" value="Himalayan Treasures Tour - Tour Package"/>
					<input type="hidden" name="allocate_type" value="tour"/>
					<input type="hidden" name="pkg_slno" value="183897"/>
					<input type="hidden" name="current_url" value="https://www.hetshreetransitworld.in/tour-packages/himalayan-treasures-tour.htm">
				  	<input type="hidden" name="web_address" value="https://www.hetshreetransitworld.in">
				  	<input type="hidden" name="inq_thanks_msg" value="Thank you for inquiry.<br /><br />We have received your request. Our Sales Team will soon get in touch with you.<br /><br /><br />">
					<input type="hidden" name="inq_thanks_title" value="Enquiry">
				  	<input type="hidden" name="redirected_url" value="https://www.hetshreetransitworld.in/thanks.htm">
					<input type="hidden" name="catalog_mi" value="473250">
				  	<input type="hidden" name="id" value="static_form">
				  	<input type="hidden" name="form_id" value="10029">
					</form>
					</div>
					</div>					
					</div>
					</div>
					<style>
					.ui-datepicker-trigger {
						vertical-align : middle;
					}
					</style>
					<script>
					jQuery('.dynFrm_arrival_date').datepicker({minDate: 0,
					buttonImage: '//catalog.wlimg.com/jquery-date-picker/calbtn.gif',
					buttonText: 'Click to view calendar',
				    buttonImageOnly: true,
				    showOn: 'button',
				    changeMonth: true,
				    changeYear: true,
				    onClose: function(dateText, inst) {
				        var endDateTextBox = jQuery('.dynFrm_departure_date');
				        if (endDateTextBox.val() != '') {
				            var testStartDate = new Date(dateText);
				            var testEndDate = new Date(endDateTextBox.val());
				            if (testStartDate > testEndDate)
				                endDateTextBox.val(dateText);
				        }
				    }, 
					    onSelect: function (selectedDateTime){
					        var start = jQuery(this).datepicker('getDate');
					        jQuery('.dynFrm_departure_date').datepicker('option', 'minDate', new Date(start.getTime()));
					        jQuery('#dynFrm_departure_date').datepicker('option', 'minDate', new Date(start.getTime()));
					    }    
					});
					jQuery('.dynFrm_departure_date').datepicker({
					minDate: 0,
					buttonImage: '//catalog.wlimg.com/jquery-date-picker/calbtn.gif',
					buttonText: 'Click to view calendar',
				    buttonImageOnly: true,
				    showOn: 'button',
				    changeMonth: true,
				    changeYear: true,
				    onClose: function(dateText, inst) {
				        var startDateTextBox = jQuery('.dynFrm_arrival_date');
				        if (startDateTextBox.val() != '') {
				            var testStartDate = new Date(startDateTextBox.val());
				            var testEndDate = new Date(dateText);
				            if (testStartDate > testEndDate)
				                startDateTextBox.val(dateText);
				        }
				    },
				    onSelect: function (selectedDateTime){
				        var end = jQuery(this).datepicker('getDate');
				        jQuery('.dynFrm_arrival_date').datepicker('option', 'maxDate', new Date(end.getTime()) );
				        jQuery('#dynFrm_arrival_date').datepicker('option', 'maxDate', new Date(end.getTime()) );
				    }
					});
					</script>
					<script>
					jQuery(document).ready(function(){
					var sticky = jQuery('.stickyForm').offset().top;
					jQuery(window).scroll(function(){      
					 if(jQuery(window).scrollTop() > sticky){
					  jQuery('.stickyForm').css('position','fixed');
					  jQuery('.stickyForm').css('top','75px'); 
					 }
					 else if (jQuery(window).scrollTop() <= sticky) {
					  jQuery('.stickyForm').css('position','');
					  jQuery('.stickyForm').css('top','');
					 }  
					if (jQuery('.stickyForm').offset().top + jQuery(".stickyForm").height() > jQuery(".rel-prop").offset().top) {
					  jQuery('.stickyForm').css('top',-(jQuery(".stickyForm").offset().top + jQuery(".stickyForm").height() - jQuery(".rel-prop").offset().top));
					}
					});
					});
					</script>
					<script>
					jQuery(document).ready(function(e){
					if (jQuery(window).width() < 992) {
					jQuery(".rghtFix .enqForm .h").on("click", function(){
					  jQuery(this).find('.plusMinus').toggleClass('act').parent().next('.showHide_rp').slideToggle('slow');
					});  
					jQuery(".rghtFix .enqForm .plusMinus").on("click", function(e){
					e.stopPropagation(); 
					});
					}
					});  
					</script>
					</div>
					</div>
									
				
				</div>
				
								<section class="pt20px pb20px absTour-Title rel-prop">
				<div class="wrap">
				<div class="fo">     	
				<div class="ac mb7px"><div><h2 class="hd_NT">Explore Tour Packages by Destination</h2></div></div>     	
				<div class="ic" id="1102_3-1">
				<div class="slider">
				<ul class="bxslider988">								
				
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-colombo.htm" title="Packages in Colombo" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/11245-classified.jpg"  height=""  width=""    alt="Colombo" title="Colombo" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-colombo.htm" title="Packages in Colombo">Colombo Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-kandy.htm" title="Packages in Kandy" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/11334-classified.jpg"  height=""  width=""    alt="Kandy" title="Kandy" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-kandy.htm" title="Packages in Kandy">Kandy Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-port-louis.htm" title="Packages in Port Louis" >
					<img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/473250/281507.jpg"  height=""  width=""    alt="Packages in Port Louis" title="Packages in Port Louis" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-port-louis.htm" title="Packages in Port Louis">Port Louis Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-kuala-lumpur.htm" title="Packages in Kuala Lumpur" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10638-classified.jpg"  height=""  width=""    alt="Kuala Lumpur" title="Kuala Lumpur" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-kuala-lumpur.htm" title="Packages in Kuala Lumpur">Kuala Lumpur Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-singapore-city.htm" title="Packages in Singapore" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/13035-classified.jpg"  height=""  width=""    alt="Singapore" title="Singapore" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-new-delhi.htm" title="Packages in New Delhi" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10009-classified.jpg"  height=""  width=""    alt="New Delhi" title="New Delhi" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-kathmandu.htm" title="Packages in Kathmandu" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/11246-classified.jpg"  height=""  width=""    alt="Kathmandu" title="Kathmandu" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-kathmandu.htm" title="Packages in Kathmandu">Kathmandu Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-bali.htm" title="Packages in Bali" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/11042-classified.jpg"  height=""  width=""    alt="Bali" title="Bali" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-bali.htm" title="Packages in Bali">Bali Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-dubai.htm" title="Packages in Dubai" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/11418-classified.jpg"  height=""  width=""    alt="Dubai" title="Dubai" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-dubai.htm" title="Packages in Dubai">Dubai Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-port-blair.htm" title="Packages in Port Blair" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10155-classified.jpg"  height=""  width=""    alt="Port Blair" title="Port Blair" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-venice.htm" title="Packages in Venice" >
					<img src="https://dynamic.tourtravelworld.com/zsc-header/10994-classified.jpg"  height=""  width=""    alt="Venice" title="Venice" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-venice.htm" title="Packages in Venice">Venice Tours</a></div>
					</div> 
					</li>
					
					<li>
					<div class="dib pr ofh lh0 c5px"><div class="imgFrame m0a dib w200px h200px"><div class="imgFrame picBg dtc ac vam lh0 w200px h200px">
					<a href="https://www.hetshreetransitworld.in/packages-in-wattens.htm" title="Packages in Wattens" >
					<img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/473250/281485.jpg"  height=""  width=""    alt="Packages in Wattens" title="Packages in Wattens" ></a>
					</div></div>
					<div class="h xlarge fw6 lh15em"><a href="https://www.hetshreetransitworld.in/packages-in-wattens.htm" title="Packages in Wattens">Wattens Tours</a></div>
					</div> 
					</li>
									</ul>
				</div>
				</div>
				 
						<script>
						$(document).ready(function(){			
						$('.bxslider988').bxSlider({
						mode:'horizontal',				
						slideWidth: 214,maxSlides: 10,slideMargin:12,auto: true, 
						autoDirection:'next',
						moveSlides: 1,
						pause:2000,
						pager:false,
						pagerType:'full',
						autoControls: false, 
						controls:true, 
						autoHover:true,				
						speed:1000
						});
						});
						</script>
										
				</div>
				</div>
				</section>
				
				</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:63:"Book Himalayan Treasures Tour - 8 Nights / 9 Days Tour Packages";i:2;s:175:"book himalayan treasures tour - 8 nights / 9 days tour packages, hill stations & valleys tour packages, darjeeling, kalimpong, gangtok, lachung, enchey monastery tour packages";i:3;s:230:"Hetshree Transit World Private Limited offers Himalayan Treasures Tour - 8 Nights / 9 Days tour package, budget Hill Stations & Valleys tour packages for Darjeeling, Kalimpong, Gangtok, Lachung, Enchey Monastery at exciting price.";i:4;s:8665:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Darjeeling, Kalimpong, Gangtok, Lachung, Enchey Monastery"        
		                 },
		      "description": "Highlights of the tour
The topography of this little Himalayan State - Sikkim, a modern day Shangri-La, still uncorrupted by the onrush of civilization, is irresistible. Unwind in settings which are truly spectacular. Here, the snow capped peaks of the mighty Himalayas look upon quaint hilltop monasteries nestled in lush vegetation and silvery-blue rivers slicing through the valleys below. Visitors are left enchanted by the magical hill stations of Darjeeling in West Bengal and Kalimpong, and Pelling in the north-eastern reaches of the country. Choose this holiday package and unwind in the spectacular settings of Kalimpong, Gangtok, Lachung, and Darjeeling..	   
Important Notes
1.Check-in time at Hotel will be 14:00 hrs and Check out time will be 11:00 hrs. All the bookings are non-transferable & all in-house hotel rules will be effective during your stay. As imposed by the Government Valid photo ID for all members staying at the hotel is mandatory.
2.For an Extra Person Sharing the Room and Child with Extra Bed, almost all the hotels of this area provide MATTRESS and ROLL OVERS as a supplement to Extra Bed.
3.In this area almost all the hotels do not have lifts, so you will have to climb stairs to reach the rooms. In case you have problems with blood pressure, breathing, heart, and knees or if you cannot climb higher floors, we will request you to report this problem immediately so that we are careful in assigning Hotels which will be more convenient than the ones quoted/reserved for you.
4.In a hilly area scarcity of water and electricity is a natural phenomenon. Everybody buys water for their day-to-day needs and have learnt to live even without electricity. In case of Load Shedding, kindly bear with such situation. To overcome the water crisis certain hotels have fixed schedule for supplying hot & cold water. We sincerely regret the inconvenience.
5.Hotels have a system of providing room heater on request that requires extra payment. This payment is not included in the cost and you will have to settle it directly with the hotels before check-out. The charge varies from INR 150.00 to INR 200.00 per room per night.
6.The vehicle used will not be at disposal and will be exclusively used for the group as per the itinerary only (on point to point basis). It will change sector wise.
7.As the area is backward and due to unwritten syndicate rules your vehicle and drivers will change for every transfer & sightseeing. These drivers come from remote places and are not educated in tourism etiquette. Kindly request the guest to be soft-spoken and gentle with their drivers.
8.Often in the past, guests have been misguided by such drivers. We would like to request you to confirm whatever they say with your File Handling Executive (FHE).
9.As the vehicles and drivers change always we will request you to be very careful with your personal belongings. Once left in the vehicle there is almost nil or little chance of getting them back.
10.Certain sightseeing areas are totally controlled by the syndicate and we do not have any say over such services. We will request you to bear with such uncalculated situations. Their FHE will guide you on such services e.g. Tshangu Lake, Nathula, packages to North Sikkim etc. Especially while using such services you will have to be gentle in dealing with the drivers due to lack of their exposure to the tourism industry and practices they sometimes tend to get annoyed and may misbehave.
11.Since Nathula is a restricted area and gets sealed, without any notice, for security reasons. In such cases your tour will only be till Tshangu Lake and there will be no refund for unutilized services.
12.Due to shortage in space for parking, please be informed that you will have to be ready on time and wait in the lobby. Due to uncalculated situations the vehicle reporting may get delayed. We will request you to bear with us and as soon as the vehicle arrives you will have to get in within a few seconds, before the policeman blows his whistle.
13.Due to vehicle-parking difficulty in the whole area, most of the areas are restricted to entry of vehicle and specific time is allotted for entries. Kindly follow the time strictly as given to you. In case of delays the vehicle will have to leave the hotel area without you and get parked in a parking area. In such a case, you will have to be transferred in a Maruti Van FOR WHICH THE COST WILL HAVE TO BE BORNE BY YOU AND WILL HAVE TO BE COLLECTED DIRECTLY FROM YOU.
14.Due to specified time for entry, many times your connecting destination vehicle may not be allowed to enter the town / hotel area. Under such circumstances you will be transferred from the stand to the hotel in Maruti Vans for which the driver of your connecting vehicle will make the payment.
15.The area is backward but rich in Nature and the facilities available cannot be matched to those available in the Plains and other developed destinations. We strongly regret this constraint of the area.
16.Please note that our Executive will hold a placard as advised by you, just outside the only exit gate of Bagdogra Airport.
17.In case you are arriving at NJP Railway station which has 03 entry and exit gates, please be informed that you will meet our Office Executive at the old exit gate (which happens to be the main gate that houses the Army Counter) holding a placard in your name / or as advised by you.
18.Sikkim and Darjeeling are hilly areas and change in weather is a regular feature. It is advisable to carry light layers of clothing always. During winter it is advisable to carry heavy woolens.
19.Landslide is a common occurrence in hilly areas. EXPENSES INCURRED FOR DIVERSION, DUE TO THIS OR ANY OTHER REASONS WILL BE COLLECTED DIRECTLY AS PER ACTUAL EXPENDITURE INCURRED.
20.Kindly be informed that we make contingency plans so that the sightseeing points do not fall on a closing day. In case, due to some inevitable situation if the sightseeing falls on a closing day, it will have to be left out and cannot be carried forward to the next day. If you want to take the left out part of the tour on the next day, you will have to pay extra against the vehicle charges as advised by the File Handling Executive (FHE).
21.People with heart, blood pressure, and knee problems and those having children below 05 years of age should avoid going to Nathula, Gurudongmar & Yumosomdong (Zero Point) as it could be of high risk and medical facility is also very poor.
22.High Mountain sightseeing such as Tshangu Lake, Yumthang Excursion, Gurudongmar Excursion has to start early in the morning so that you can return early. This is designed for your security as in the afternoon the weather gets cloudy and foggy throughout the year.
23.Due to non-availability of night life the whole area goes to bed early and wakes up early. We request you to go to bed on time so that next day you can start your tour early.
24.People availing the services to Nathula, Tshangu Lake, and North Sikkim (Lachung, Yumthang Excursion, Yumosomdong (Zero Point), Katau, Lachen, Chopta Valley & Gurudongmar Excursion) are requested to bring along with them : a) 04 passport size photographs of each member travelling whether Adult or Children with their name written behind each photograph. B) Original photo ID proof of each member travelling whether Adult or Child. C) A list mentioning the Name, Age and Gender of all travelling familywise. Also note that in case of more than one family travelling together, please segregate the photographs and the photo copies of the Photo IDs, familywise in separate envelopes. The smaller envelope holding the details familywise will have to be put together into a bigger envelope for all families and then sealed with UD Number written on top. For North Sikkim it should be a separate envelope and for Tshangu Lake it should be a separate envelope. After reaching Gangtok, this document has to be handed over at the hotel counter and the information on doing so has to be passed over the telephone to the FHE.
All rates and rooms are subject to availability at time of confirmation.
Mandatory Surcharge of Rs. 750.00 per person applicable between 01st May to 10th June 2019",
		      "name": "Himalayan Treasures Tour",
		      "telephone": "+91-8401525256"
		    }
		    </script>
			";i:5;N;i:6;s:73:"https://ttw.wlimg.com/package-images/photo-small/dir_16/473250/281494.jpg";}