a:6:{i:0;s:34639:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Darjeeling - Lachung - Gangtok Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.mangaldeeptravels.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.mangaldeeptravels.in/travel-packages.htm" title="Travel Packages">Travel Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Darjeeling - Lachung - Gangtok 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-->				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					
											<p class="mb5px"><b>Duration :</b> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Gangtok, Darjeeling, Lachung</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Lachung - Gangtok Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="50831"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/99911.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_11/326833/99911.jpg"  height="150"  width="150"    alt="Darjeeling - Lachung - Gangtok Tour" title="Darjeeling - Lachung - Gangtok Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="headHr">
					            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
					            </div>
					            
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 1:</b> Arrival and transfer to Darjeeling
										</p>
										<p class="aj">As you arrive at New Jalpaiguri Railway Station (68 km from Darjeeling) / Bagdogra Airport (69 km) / Tenzing Norgay Bus Stand (62 km), meet our tour representative who helps you with an assisted transfer to Darjeeling.<br />
<br />
Perched at an altitude of 7100 m above the sea level, Darjeeling offers stunning views of lush tea gardens and the mighty Himalayas. This hill town is also home to the UNESCO World Heritage Site of the Darjeeling Himalayan Railway, fondly referred to as the toy train. The place boasts of an extremely serene surrounding.<br />
<br />
On reaching Darjeeling, complete the check-in formalities at the hotel. Relax for some time. Later on, the evening is at leisure. You are free to take a stroll at the Mall road or indulge in shopping at the popular shopping centers. Stay overnight.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 2:</b> Darjeeling Sightseeing
										</p>
										<p class="aj">The second day starts very early. Get- up around 3:45 AM for a short trip to Tiger Hill to enjoy a memorable sunrise view (subject to clear weather), 11 km away. On your way back, visit the other attractions including Ghoom Monastry, War Memorial and Batasia Loop. Later, back to the hotel for breakfast. Post breakfast, continue with sightseeing including Padmaja Naidu Zoological Park, Himalayan Mountaineering Institute (Closed on Thursday), Ropeway, Tibetan Refugee Self Help Center (Closed on Sunday), Tea Estate, Natural History Museum (Sunday Closed) and Peace Pagoda.<br />
<br />
Those visiting Darjeeling must not miss sunrise views from Tiger hill over the Kanchendzonga Peak. When the first rays of the rising sun sheds light on the Peak, the view looks extremely beautiful. The hill is amidst lush greenery of thick oak forests, forming a beautiful sight for the on-looker. The morning sun looks like an orange-colored ball that rises from behind the hills.<br />
<br />
Peace Pagoda, opened in November 1992, is an important attraction here and is placed on the slopes of Jalaphar hill. This sacred site showcases the 4 avatars of Lord Buddha. The tallest free-standing structure in the town, this pagoda has 2 lion models on the either sides of the wall on the lower level. The huge Buddha statues are golden in color and are carved in the walls. As you climb the stairs and reach the top, enjoy nice views of the surroundings. Take Parikrama around the huge dome-like structure and spot Buddha statues in various postures.<br />
<br />
Enjoy wonderful views of the verdant tea plantations and snow-covered peaks while aboard the Cable Ride that takes you to the beautiful Rangit Valley from Darjeeling. Take a walk in the lush tea gardens of Darjeeling while the fresh aroma fills your nostrils.<br />
<br />
Placed inside the well-maintained garden at Batasia Loop, the Gorkha War Memorial is a tribute to the Gorkha soldiers who sacrificed their lives in battles. Batasia Loop also offers toy train ride that passes around the loop and offers a 360 degree view of the landscape from a high point. The evening is free. Stay overnight.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 3:</b> Darjeeling - Gangtok (sightseeing) (96.5 km- 2 hrs 30 minutes)
										</p>
										<p class="aj">Today, get an assisted transfer to Gangtok, the capital city of Sikkim state. Placed at an elevation of 1600 meters above the sea level, Gangtok is known for its monasteries, abundant scenic beauty and a pleasant climate. One of the most popular destinations in north-east India, Gangtok has a number of viewpoints to treat enjoy mesmerizing views of the landscape. The hill town boasts of housing several varieties of butterflies, Orchids and Rhododendron. As you reach, check-into the hotel. Later, leave for sightseeing. Visit the popular tourist attractions of Gangtok including Directorate of Handicrafts & Handloom, Research Institute of Tibetology, Do Drul Chorten (Stupa), Enchey Monastery, White Hall and Flower Show.<br />
<br />
Possibly Sikkim’s biggest stupa, Do Drul Chorten was built on a hillock in 1945 by Late Truslshi Rimpoche, the head of Nyingma sect of Tibetan Buddhism. The golden -colored dome is the most striking feature of this structure. 2 huge statues of Guru Rinpoche (Guru Padmasambhava) look stunning. In the complex, one can spot lamas doing their prayers.<br />
<br />
Enchey Monastery, founded way back in the year 1909, is a splendid place of worship. As the monastery is perched on a hill, it offers a nice view of Mt Kanchenjunga. Popular for its Chinese—Pagoda like design, the gompa’s inside walls are decorated with images of deities. Lord Buddha and Guru Padmasambhava are worshipped here. The complex also has a monastery.<br />
<br />
There is a permanent flower show at Flower Exhibition Center situated near Ride Park and White Hall. Entry fee is INR 10 per head and children below 5 years are free. The exhibition area is a small green house with various kinds of colorful flowers like orchids, roses, gerberas, carnations, celosia etc, on display (according to season). Do not miss clicking photographs here.<br />
<br />
If time permits, you can visit the Mall road in the evening. Stay overnight in Gangtok.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 4:</b> Gangtok- Lachung (103 km- 2 hrs 50 minutes)
										</p>
										<p class="aj">After morning breakfast on day 4, we move towards north Sikkim region. Check-out from Gangtok at around10:00 AM and begin driving for Lachung. Located at an altitude of 9600 feet above the sea level, Lachung is a beautiful village amidst lush peaks, that form an enchanting view for the tourists. Cascading waterfalls, snow-covered mountains, dazzling streams and a pleasant climate allure travelers from all around. Apricot, apple and peach orchards are an added bonus. Blankets and woven rugs are what you should get your hands on.<br />
<br />
On the way, halt at a few wonderful places Tashi Viewpoint- for enjoying mesmerizing views of the landscape, Kabi Lungstok- a popular historical town that also has Buddhist monastery, Naga Waterfalls- click some photographs at this fall. Later continue to Chungthang to visit the meeting point of Lachen Chu and Lachung Chu and finally at the Twin Waterfalls and Bhim Nala Waterfalls for some memorable moments. Savor lunch at Namok (at your own cost).<br />
<br />
Evening arrival at Lachung. Complete the check-in formalities at the hotel. Relax for a while. Dinner and overnight stay.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 5:</b> short trip to Yumthang (26 km- 45 minutes)
										</p>
										<p class="aj">Post breakfast, get all set for a day’s trip to the beautiful Yumthang valley, lying at an altitude of 11, 800 feet above the sea level. En-route you come across a popular hot spring, known for having water with medicinal properties, which can cure skin diseases. Later, continue to Yumthang. Popularly known as ‘Valley of Flowers’, this valley looks very beautiful during spring, when colorful flowers like Alpine, Primulae, Rhododendrons and more are in full blooming mode. During winters, the valley is covered with a sheet of white snow. Enjoy the amazing weather and treat your eyes to the beautiful views.<br />
<br />
In the afternoon, back to Lachung for sightseeing. The list of attractions of Lachung includes Lachung Monastery, Cottage Industry and Waterfalls. Thereafter, you can enjoy a walk around the nearby villages.<br />
<br />
The oldest Buddhist monastery of Sikkim, Lachung Gompa is placed at an elevation of 2750 m above the sea level. The monastery is the base for mountaineering activities and Green Lake trekking in Sikkim. Belonging to Nyingmapa sect of Mahayana Buddhism, it has the statue of or Guru Rinpochi. It was originally constructed in 1806 and then renovated in 1969. The huge prayer wheel on the entry gate is eye-catching.<br />
<br />
Dinner and overnight stay.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 6:</b> Lachung - Gangtok (103 km- 2 hrs 50 minutes)
										</p>
										<p class="aj">After having breakfast, leave for Gangtok. On the way stop at Singhik and Mangan view points, just a few kilometers away from each other. If the weather is clear, these viewpoints offer some of the most amazing views of various peaks in the Himalayan range including Mount Kabru, Mount Kanchenjunga, Mount Pandim, Mount Simvo, Mount Jopuno and Mount Siniolchu. Do not miss the opportunity to click photographs of the beautiful scenery here. After spending some memorable time here, continue to Gangtok. While in your car, treat your eyes to the beauty of tall trees, colorful flowers and snow-capped peaks.<br />
<br />
Afternoon arrival in Gangtok. Check-in at the hotel. Relax for some time. The evening is free for you to indulge in the activities of your interest. You can take a walk at the bustling mall road or can partake in shopping. M G Marg, Lal Bazaar and old market are some of the best places to shop in Gangtok. Thangkas, Tibetan handicrafts, woolen clothes are some of the best buys here.<br />
<br />
Stay overnight.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 7:</b> Full day excursion to Tsomgo Lake and Baba Mandir
										</p>
										<p class="aj">After morning breakfast, leave for a day’s trip to Tsomgo Lake and Baba Mandir.<br />
<br />
Around 38 km away, Tsomgo Lake (12,400 feet) or Changu Lake is a glacial lake that receives its waters from the snow- covered mountains encircling it. The sight is extremely beautiful and is a favorite haunt of Brahmin ducks and other migratory birds. As it is an important tourist attraction, you can find some shops selling knick-knacks and Yak cheese. You can also opt for yak rides to explore the breathtaking scenery. Admire the scenic views and do visit Lord Shiva temple, on the banks of the Lake.<br />
<br />
Thereafter, start moving towards Baba Harbhajan Singh Memorial War temple, around 20 km from here. Placed near Jelep Pass, the temple lies at an elevation of 13000 feet. This shrine is dedicated to a soldier Harbhajan Singh of the 23rd Punjab Regiment, who sacrificed his life in the Indo-China was of 1962. It is said that after his death in the war, the soldier came in the dreams of one of his friends and asked him to construct a memorial for him. For the same reason, the Indian Army built this memorial in the remembrance of the sacrifice of this soldier. After some time, this war memorial turned into a shrine. Built in 1983, the temple is in the bunker of this martyr and consists of his pictures, dresses and other personal belongings. There is a small wishing pond nearby where you can throw a coin to make a wish.<br />
<br />
The evening is at leisure. Overnight in Gangtok (Visit to Tsomgo Lake is subject to weather conditions.)</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 8:</b> Gangtok to Siliguri for departure New Jalpaiguri Railway Station (119 km) / Bagdogra Airport (126 km
										</p>
										<p class="aj">On the last day, have breakfast. After completing the check-out formalities get an assisted transfer to New Jalpaiguri Railway Station / Bagdogra Airport / Tenzing Norgay Bus Stand for your onward journey.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount * Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount. * Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Lachung - Gangtok 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="50831"/>
						</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.mangaldeeptravels.in/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(46)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(45)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-jalpaiguri.htm" title="Packages in Jalpaiguri">Jalpaiguri</a> <b class="alpha50 bn small">(23)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-kalimpong.htm" title="Packages in Kalimpong">Kalimpong</a> <b class="alpha50 bn small">(18)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-pelling.htm" title="Packages in Pelling">Pelling</a> <b class="alpha50 bn small">(12)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-lachung.htm" title="Packages in Lachung">Lachung</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-siliguri.htm" title="Packages in Siliguri">Siliguri</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-bagdogra.htm" title="Packages in Bagdogra">Bagdogra</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-alipurduar.htm" title="Packages in Alipurduar">Alipurduar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.mangaldeeptravels.in/packages-in-yumthang.htm" title="Packages in Yumthang">Yumthang</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.mangaldeeptravels.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(72)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.mangaldeeptravels.in/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(4)</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, Lachung</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.mangaldeeptravels.in/tour-packages/short-escapeto-gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/98660.jpg"  height="100"  width="100"    alt="Short Escape to Gangtok Tour" title="Short Escape to Gangtok Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/short-escapeto-gangtok-tour.htm" title="Short Escape to Gangtok Tour"><h3>Short Escape To 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_50404" id="pkg_50404" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/short-escapeto-gangtok-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Short Escape to 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="50404"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/darjeeling-pelling-gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/99914.jpg"  height="100"  width="100"    alt="Darjeeling - Pelling - Gangtok Tour" title="Darjeeling - Pelling - Gangtok Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/darjeeling-pelling-gangtok-tour.htm" title="Darjeeling - Pelling - Gangtok Tour"><h3>Darjeeling - Pelling - 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> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Pelling</p>
															<div class="mt10px small">
							<form name="pkg_50833" id="pkg_50833" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/darjeeling-pelling-gangtok-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Darjeeling - Pelling - 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="50833"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/darjeeling7-days-tour1.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/120139.jpg"  height="100"  width="100"    alt="Darjeeling 7 days Tour" title="Darjeeling 7 days Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/darjeeling7-days-tour1.htm" title="Darjeeling 7 days Tour"><h3>Darjeeling 7 Days 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> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_64949" id="pkg_64949" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/darjeeling7-days-tour1.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Darjeeling 7 days 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="64949"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/darjeeling-gangtok-pelling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/188826.jpg"  height="100"  width="100"    alt="Darjeeling Gangtok Pelling Tour" title="Darjeeling Gangtok Pelling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/darjeeling-gangtok-pelling-tour.htm" title="Darjeeling Gangtok Pelling Tour"><h3>Darjeeling Gangtok 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> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Pelling</p>
															<div class="mt10px small">
							<form name="pkg_115879" id="pkg_115879" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/darjeeling-gangtok-pelling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Darjeeling Gangtok 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="115879"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/north-sikkim-tour-winter-special.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/98664.jpg"  height="100"  width="100"    alt="North Sikkim Tour (Winter Special)" title="North Sikkim Tour (Winter Special)"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/north-sikkim-tour-winter-special.htm" title="North Sikkim Tour (Winter Special)"><h3>North Sikkim Tour (winter Special)</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> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, North Sikkim</p>
															<div class="mt10px small">
							<form name="pkg_50408" id="pkg_50408" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/north-sikkim-tour-winter-special.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="North Sikkim Tour (Winter Special) - 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="50408"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.mangaldeeptravels.in/tour-packages/kalimpong-gangtok-darjeeling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_11/326833/99916.jpg"  height="100"  width="100"    alt="Kalimpong - Gangtok - Darjeeling Tour" title="Kalimpong - Gangtok - Darjeeling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.mangaldeeptravels.in/tour-packages/kalimpong-gangtok-darjeeling-tour.htm" title="Kalimpong - Gangtok - Darjeeling Tour"><h3>Kalimpong - Gangtok - 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> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Kalimpong, Mirik</p>
															<div class="mt10px small">
							<form name="pkg_50835" id="pkg_50835" method="post" action="http://www.mangaldeeptravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.mangaldeeptravels.in/tour-packages/kalimpong-gangtok-darjeeling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Kalimpong - Gangtok - 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="50835"/>
							</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:74:"Book Darjeeling - Lachung - Gangtok Tour - 7 Nights / 8 Days Tour Packages";i:2;s:148:"book darjeeling - lachung - gangtok tour - 7 nights / 8 days tour packages, lakes & rivers tour packages, gangtok, darjeeling, lachung tour packages";i:3;s:183:"Mangaldeep Travels offers Darjeeling - Lachung - Gangtok Tour - 7 Nights / 8 Days tour package, budget Lakes & Rivers tour packages for Gangtok, Darjeeling, Lachung at exciting price.";i:4;s:435:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Lachung"        
		                 },
		      "description": "",
		      "name": "Darjeeling - Lachung - Gangtok Tour",
		      "telephone": "+91-9933873291"
		    }
		    </script>
			";i:5;N;}