a:6:{i:0;s:17740:"				<div class="h1"><h1>North East Delight with Lachung Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.onyourmarkstravel.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.onyourmarkstravel.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</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.onyourmarkstravel.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="95148"/>
						</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/465683/161858.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/465683/161858.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.onyourmarkstravel.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="95148"/>
						</form>
						</div>
						
						";i:1;s:75:"Book North East Delight with Lachung Tour - 7 Nights / 8 Days Tour Packages";i:2;s:138:"book north east delight with lachung tour - 7 nights / 8 days tour packages, hill station tour packages, gangtok, darjeeling tour packages";i:3;s:172:"OnyourmarksTravel offers North East Delight with Lachung Tour - 7 Nights / 8 Days tour package, budget Hill Station tour packages for Gangtok, Darjeeling at exciting price.";i:4;s:427:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling"        
		                 },
		      "description": "",
		      "name": "North East Delight with Lachung Tour",
		      "telephone": "+91-8334014211"
		    }
		    </script>
			";i:5;N;}