a:6:{i:0;s:37641:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Gangtok Kalimpong Darjeeling Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.maamanashatourtravels.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.maamanashatourtravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Gangtok Kalimpong Darjeeling Tour</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/154393.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/154393.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/154393.jpg"  alt="Gangtok Kalimpong Darjeeling Tour" title="Gangtok Kalimpong Darjeeling Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
												
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">Gangtok Kalimpong Darjeeling Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Gangtok, Darjeeling, Kalimpong</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gangtok Kalimpong Darjeeling Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="88841"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
													<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> New Jalpaiguri Station/ Bagdogra Airport- Gangtok (2 hours)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												On your arrival in New Jalpaiguri Station/ Bagdogra Airport, meet our tour representative who escorts you to your hotel in Gangtok. Check in at your hotel and relax. Rest of the day is to be spent at leisure.<br />
<br />
Gangtok is the capital and the largest town of Sikkim state, situated at an altitude of 1650 meters above sea level. Arose as a significant Buddhist pilgrimage center, Gangtok today has also emerged a preferred destination for trekkers, nature-lovers, shoppers and culture-vultures. The city is the centre for Tibetan Buddhist Culture and Learning. You can spot many monasteries, centers of Tibetology and other religious educational institutes here.<br />
<br />
Overnight stay in the hotel.															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Gangtok										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Have your breakfast and proceed for Gangtok sightseeing. Attractions to be visited today are Directorate of Handicrafts and Handlooms, Rumtek Monastery, Chorten, Botanical Garden, Research Institute of Tibetology and View Point.<br />
<br />
Directorate of Handicrafts and Handlooms showcases incredible work of art by local artisans. Thanka paintings, handlooms, carpets, cane and bamboo works, wooden carved and painted items, wooden masks, multi-craft items, traditional hats and caps, embroidered products and stuffed dolls are some of the artworks presented here for sale. Directorate of Handicrafts and Handlooms is a major attraction of Gangtok.<br />
<br />
Rumtek Monastery or Dharmchakra Centre is an important Buddhist religious spot and the largest monastery of Sikkim state. It was built in mid 18th century and served as a seat for Karma Kargyu lineage. By 1959, the monastery fell into ruins and but was rebuilt by Karmapa. Maroon and gold hues are generously added to the monastery, which is a Tibetan insignia.<br />
<br />
Chorten or Do Drul Chorten is an eye-catching stupa built in 1945, by Trulshik Rinpoche. The sacred spot also has 108 prayer wheels or Mani Lhakor, Chorten Lakahang and statues of Guru Rinpoche (Guru Padmasambhava). Pilgrims from different regions around the world visit this stupa to offer homage.<br />
<br />
Jawaharlal Nehru Botanical Garden is thick green locale, located near Rumtek Monastery. The garden consists of more than 50 varieties of tree species and a wide range of flowering plants too. For even more refreshing experience, take a stroll in the oak forest. Different orchids are grown in the huge greenhouse inside the garden. For children, there is a recreational area where they can enjoy merry-go-round, see-saw and other swings.<br />
<br />
Namgyal Institute of Tibetology is where you can find a peace of mind. The foundation of the building was laid in 1957 by 14th Dalai Lama and was inaugurated in 1959 by Pandit Jawaharlal Nehru, the then prime minister of India. Different projects are being worked on in the research institute like the one which seeks to record social history of about 60 monasteries of Sikkim. A visit to this institute gets the person to grab more knowledge about Tibet and Buddhism.<br />
<br />
Tashi View Point is a popular site of the Gangtok, from where you can get a splendid view of Kanchenjunga Peak (highest peak of Indian and third highest peak of the world) and the surrounding. Snow-clad peaks and clouds entwine to invent a hail-worthy aura. To spot peaks changing colors head to the peak before 5 am. You have to climb up the hill through steep flight of stairs to reach the semi-circular platform made for viewing.<br />
<br />
Overnight stay in hotel room.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Gangtok- Tsomgo Lake- Gangtok (40 km one side)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After sumptuous breakfast in the hotel room you prepare for an excursion to Tsomgo Lake that makes people believe that nature can do wonders. This is a glacial lake perched at an elevation of 3780 meters. Indo-China Border is just a few kilometers away from here and so is Nathu La Pass. Trekkers consider this a treasure, as only nature surrounds it and no chaos of human inhabitation, just humungous hills, brahminy ducks, red pandas and other adorable species. A temple dedicated to Lord Shiva is also located on the lakeside. Tsomgo Lake literally means “source of lake” in local dialect (Bhutia). If you are visiting this spot during May and August, you can come across a mélange of colorful flowers, like rhododendrons, blue and yellow poppies.<br />
<br />
Return to your hotel room by evening and spend the rest of time at leisure. Stay overnight in the hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> Gangtok- Kalimpong (73 km- 1 ½ hour)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Enjoy your breakfast and set for a drive to Kalimpong. Check in at your hotel room and relax till you leave for Kalimpong sightseeing, which includes Pine View Nurseries, Dr. Graham’s Homes School, Hanuman Mandir, Durpin Monastery, Deolo Hill and Mangaldham.<br />
<br />
Kalimpong is a town in West Bengal state, situated at an altitude of 1250 meters. The town is an important trade center of botany, more than 80 percent of India’s gladioli and other orchids are produced here. The town is home to Nepalis, Lepchas and other ethnic groups and migrants. Kalimpong acts as a center for Buddhism, its monastery Zang Dhok Palri Phodang houses Tibetan Buddhist scriptures that are rare. However the town is small, but a myriad of opportunities and sites please travelers to make a visit.<br />
<br />
Pine View Nursery provides a feast to the vision through its huge collection of cactus and flowering plants. The plants have been brought from north, south and central regions of America. Hanuman Temple is perched at the top of a hill, reachable through a flight of stairs. A Durga Temple is also located here; both the temples are popular and are revered by locals. Deolo Hill is an 8-acre rich grassland with manicured orchids, overlooking a spectacular view of Durpin Hil, Kalimpong town, rivulets, rivers and the largest peak of India, Kanchenjunga.<br />
<br />
Durpin Monastery or Zang Dog Palri Monastery is a significant Buddhist monastery of the town and was constructed in 1972 by Honable Dudjum Rimponche. Mangal Dham is a temple complex dedicated to Lord Krishna, built in remembrance of Guruji Mangal Dasji.<br />
<br />
Overnight stay in hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 5											
											:</b> Kalimpong- Darjeeling (48 km- 1 hour 40 minutes)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast check out from the hotel and drive to Darjeeling. The route to Kalimpong and Darjeeling is immensely enchanting and unforgettable. On arriving Darjeeling, check in at your hotel and relax. In the evening step out to take a stroll in Mall road or in local markets. Overnight stay in hotel.<br />
<br />
Darjeeling is known worldwide for its tea-gardens. A splendid expanse of tea-garden is seen strewn all over the hills. The town is located at an elevation of 7100 feet above sea level. Darjeeling Himalayan Railway is also worth a special mention; even UNESCO has considered it a World Heritage Site. During the British Raj, Darjeeling served as a summer capital. Beauty and serenity of this town are indeed unexplainable, and could only be felt. British adorned the town with structures of their own styles and today these structures add more touch to the town’s magnificence.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 6											
											:</b> Darjeeling										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Early in the morning before sunset take a drive to Tiger Hill, at an altitude of 8000 feet. Tiger Hill lets you savor the sight of two of the highest peaks of the world, Mount Everest and Kanchenjunga. A peaceful view of the sunrise can be enjoyed from this point. The sun-rays first embrace the peaks of these two peaks and gradually spread throughout the panorama.<br />
<br />
When done with Tiger Hill, head to visit Ghoom Monastery, Peace Memorial and Batasia Loop.<br />
<br />
Ghoom Monastery is Tibetan Buddhism school, with a statue of Maitreya Buddha which is 15 feet high and catches the eye. The monastery was built in 1875 by Lama Sherab Gyatso. Images of Chenrezu and Chongapa (disciples of Buddha) are also placed in the monastery. Batasia Loop is a rich manicured garden where you can pay homage to the martyrs in War Memorial or spot Darjeeling Himalayan Train cooing and heading to its destination.<br />
<br />
After this, return to the hotel for breakfast. Refresh yourself and leave for second round of sightseeing which includes Peace Pagoda, Tensing Gumbo Rock, Tea Estate, Padmaja Naidu Zoological Park, Ropeway, Himalayan Mountaineering Institute (Closed on Thursday), Tibetan Refugee Self Help Center (Closed on Sunday), Natural History Museum (Sunday Closed).<br />
<br />
Peace Pagoda was built Nichidatsu Fujii in 1972, as a lesson of peace and spirituality. The monument stands up to its name and enables its visitors to attain tranquility and a connection with god. A lavish exposition of Tibetan culture is to be seen in Tibetan Refugee Self Help Center. Take a step closer to nature in Tea Estate, Padmaja Naidu Zoological Park and Natural History Museum. Adventure-seekers love to visit Himalayan Mountaineering Institute and Ropeway.<br />
<br />
Return to the hotel by late evening. Overnight stay in the hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 7											
											:</b> Darjeeling-Mirik- Darjeeling (62 km- 1 ½ hour: one side)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Have your breakfast and get ready for an excursion to Mirik. Drive past orange orchards, tea gardens, landscaped gardens, cardamom groves or stopover at scenic spots for photography or leisure.<br />
<br />
Mirik is perched at an elevation of 1495 meters above sea level. Almost everybody who visits Darjeeling makes it a point to not miss visiting Mirik too. Lakes, tea gardens, orchards and view points are few of the many things that attract huge number of tourists. Cruising aboard a shikara on Sumendu Lake is a soulful experience. Buddhist Meditation Center Bokar Monastery is recommended for peace-lovers and spiritual people. You may also take a stroll around orchids and tea gardens or just relax at different viewpoints and enjoy the sight.<br />
<br />
Return to Darjeeling by late evening and stay overnight in the hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 8											
											:</b> Darjeeling- Siliguri (1 ½ hour- 64 km)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Have your breakfast and check out from the hotel. You get a timely transfer for your onward journey to New Jalpaiguri Railway Station (NJP) / Bagdogra Airport (IXB) / Tenzing Norgay Bus Stand (Junction). The journey ends here.			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>						
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gangtok Kalimpong Darjeeling 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="88841"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-shillong.htm" title="Packages in Shillong">Shillong</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-guwahati.htm" title="Packages in Guwahati">Guwahati</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-thimphu.htm" title="Packages in Thimphu">Thimphu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-kathmandu.htm" title="Packages in Kathmandu">Kathmandu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-cherrapunji.htm" title="Packages in Cherrapunji">Cherrapunji</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-nagarkot.htm" title="Packages in Nagarkot">Nagarkot</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-jalpaiguri.htm" title="Packages in Jalpaiguri">Jalpaiguri</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-bhaktapur.htm" title="Packages in Bhaktapur">Bhaktapur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-paro.htm" title="Packages in Paro">Paro</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-jorhat.htm" title="Packages in Jorhat">Jorhat</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-kaziranga.htm" title="Packages in Kaziranga">Kaziranga</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-punakha.htm" title="Packages in Punakha">Punakha</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Gangtok, Darjeeling, Kalimpong</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/gangtok-pelling-darjeeling-tour07-nights08-days.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/152447.jpg"  alt="Gangtok Pelling Darjeeling Tour 07 Nights / 08 Days" title="Gangtok Pelling Darjeeling Tour 07 Nights / 08 Days"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/gangtok-pelling-darjeeling-tour07-nights08-days.htm" title="Gangtok Pelling Darjeeling Tour 07 Nights / 08 Days"><h3>Gangtok Pelling Darjeeling Tour 07 Nights ..</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Pelling</p>
															<div class="mt10px small">
							<form name="pkg_87354" id="pkg_87354" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/gangtok-pelling-darjeeling-tour07-nights08-days.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Gangtok Pelling Darjeeling Tour 07 Nights / 08 Days - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="87354"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/gangtok-and-pelling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/152428.jpg"  alt="Gangtok and Pelling Tour" title="Gangtok and Pelling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/gangtok-and-pelling-tour.htm" title="Gangtok and Pelling Tour"><h3>Gangtok And Pelling Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok</p>
															<div class="mt10px small">
							<form name="pkg_87341" id="pkg_87341" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/gangtok-and-pelling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Gangtok and Pelling Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="87341"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/beautiful-darjeeling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/151005.jpg"  alt="Beautiful Darjeeling Tour" title="Beautiful Darjeeling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/beautiful-darjeeling-tour.htm" title="Beautiful Darjeeling Tour"><h3>Beautiful Darjeeling Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_86160" id="pkg_86160" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/beautiful-darjeeling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Beautiful Darjeeling Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="86160"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/weekendin-darjeeling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/152426.jpg"  alt="Weekend in Darjeeling Tour" title="Weekend in Darjeeling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/weekendin-darjeeling-tour.htm" title="Weekend in Darjeeling Tour"><h3>Weekend In Darjeeling Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_87340" id="pkg_87340" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/weekendin-darjeeling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Weekend in Darjeeling Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="87340"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/mesmerizing-darjeeling-gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/151004.jpg"  alt="Mesmerizing Darjeeling Gangtok Tour" title="Mesmerizing Darjeeling Gangtok Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/mesmerizing-darjeeling-gangtok-tour.htm" title="Mesmerizing Darjeeling Gangtok Tour"><h3>Mesmerizing Darjeeling Gangtok Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_86159" id="pkg_86159" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/mesmerizing-darjeeling-gangtok-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Mesmerizing Darjeeling Gangtok Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="86159"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/152436.jpg"  alt="Gangtok Tour" title="Gangtok Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/gangtok-tour.htm" title="Gangtok Tour"><h3>Gangtok Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok</p>
															<div class="mt10px small">
							<form name="pkg_87346" id="pkg_87346" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/gangtok-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Gangtok Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="87346"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:72:"Book Gangtok Kalimpong Darjeeling Tour - 7 Nights / 8 Days Tour Packages";i:2;s:148:"book gangtok kalimpong darjeeling tour - 7 nights / 8 days tour packages, lakes & rivers tour packages, gangtok, darjeeling, kalimpong tour packages";i:3;s:191:"Maa Manasha Tour & Travels offers Gangtok Kalimpong Darjeeling Tour - 7 Nights / 8 Days tour package, budget Lakes & Rivers tour packages for Gangtok, Darjeeling, Kalimpong at exciting price.";i:4;s:435:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Kalimpong"        
		                 },
		      "description": "",
		      "name": "Gangtok Kalimpong Darjeeling Tour",
		      "telephone": "+91-9002570751"
		    }
		    </script>
			";i:5;N;}