a:6:{i:0;s:17771:"				<div class="h1"><h1>North East Delight with Lachung Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.kunzongtourandtravel.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.kunzongtourandtravel.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>North East Delight with Lachung Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Gangtok, Darjeeling, Lachung, North Sikkim</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.kunzongtourandtravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North East Delight with Lachung 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="75827"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_16/451899/134861.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/451899/134861.jpg"  width="150" height="150"    alt="North East Delight with Lachung Tour" title="North East Delight with Lachung Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
											<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> 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 />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Sightseeing</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. 
* Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.kunzongtourandtravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North East Delight with Lachung 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="75827"/>
						</form>
						</div>
						
						";i:1;s:75:"Book North East Delight with Lachung Tour - 7 Nights / 8 Days Tour Packages";i:2;s:155:"book north east delight with lachung tour - 7 nights / 8 days tour packages, valley tour packages, gangtok, darjeeling, lachung, north sikkim tour packages";i:3;s:211:"Book North East Delight with Lachung Tour - 7 Nights / 8 Days tour packages from Kunzong Tours and Travel - Get attractive 7 Nights / 8 Days Valley  tour packages for  Gangtok, Darjeeling, Lachung, North Sikkim.";i:4;s:450:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Lachung, North Sikkim"        
		                 },
		      "description": "",
		      "name": "North East Delight with Lachung Tour",
		      "telephone": "+91-9593716601"
		    }
		    </script>
			";i:5;N;}