a:6:{i:0;s:12104:"				<div class="h1"><h1>Alpine North Sikkim 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>Alpine North Sikkim 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Gangtok, Lachung, Lachen, 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="Alpine North Sikkim 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="75753"/>
						</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/134783.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/451899/134783.jpg"  width="150" height="150"    alt="Alpine North Sikkim Tour" title="Alpine North Sikkim 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> Gangtok
								</p>
								<p class="aj">On your arrival in New Jalpaiguri Railway Station (NJP) / Tenzing Norgay Bus Stand (Junction) / Bagdogra Airport (IXB), meet our tour representative who further transfers you to Gangtok. As you reach, check in at our hotel and relax.<br />
<br />
Gangtok, the capital of Sikkim state is perched at an elevation of 1,650 m. The town is an important Buddhist pilgrimage spot, especially because of Enchey Monastery which was built in 1840. Trekkers, shopaholics, nature-lovers, bird-enthusiasts and people with similar interests find Gangtok a very interesting place. The sight of world’s third highest peak, Kanchenjunga, is enjoyed from Gangtok. Gangtok is blessed with abundance of greenery and an expansive biodiversity. Vivacious ethnicity of the town is yet another attribute it takes pride in.<br />
<br />
In the evening, you are free to take a stroll in MG Road (Mall Road) or other local markets of the area.</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> Tsomgo Lake and Baba Mandir
								</p>
								<p class="aj">Have your breakfast and take a drive to two popular attractions of Gangtok, Tsomgo Lake and Baba Mandir.<br />
<br />
Tsomgo Lake or Changu Lake is an emerald delight nestled at an elevation of 3780 meters. This glacial lake is in close proximity with Indo-China border and Nathu La Pass. It is believed that monks used to study the color of the lake as it helped them in prophecy. During the months of May and August, myriad of flowers bloom in the area like rhododendrons and yellow poppies. Serenity of the locale is something that allures trekkers and other offbeat travelers.<br />
<br />
Baba Mandir is a temple that’s one-of-its-kind. It does not promote any religion, but inspires people and devotees to live a selfless life like Baba Harbhajan. He was an Indian Army soldier who sacrificed his life near the shrine in 1967. There are several stories that tell about his spiritual powers. One such story is that Baba Harbhajan could predict the attack and warn his teams three days prior the actual attack by the enemy.<br />
<br />
In the evening, you are free to explore M.G Road (Mall Road) or other local markets of the area. Overnight stay in the hotel.</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> Gangtok- Lachen (107 km- 3 hours)
								</p>
								<p class="aj">In the morning get transferred to Lachen. Halt at Chungthang for lunch and continue your journey. On reaching Lachen, check in at your hotel and relax.<br />
<br />
Lachen is settled at an elevation of 2750 meters, amid humungous hill range. The town is the starting point of Green Lake Trek circuit. Lachen’s Thangu Festival (Yak race) is one of its greatest highlights, along with Chopta Valley and Kanchenjunga National Park. Lachen is home to a sprawling biodiversity which make it pleasing.<br />
<br />
You can go for a heritage walk around Lepcha Village. Stay overnight in hotel.</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> Lachen- Gurudongmar Lake- Lachung (3 hour- 66 km and 113 km- 4 hour, respectively)
								</p>
								<p class="aj">After breakfast, check out from your hotel and proceed to Lachung and stopover at Gurudongmar Lake.<br />
<br />
Gurudongmar Lake is perched at an elevation of 17100 feet and is counted as one of the highest lakes of the world. This lake is just five kilometers away from the source of Teesta River (Tso Lhama Lake). Even the India-Tibet is in close proximity from the lake. Beside its splendid beauty, Gurudongmar Lake is considered holy by the followers of Buddhism and Hinduism. Its name has been derived from Guru Padmasambhava.<br />
<br />
Lachung, at an altitude of 9600 ft, has been regarded as “Most Picturesque Village of Sikkim” by Joseph Dalton, a British explorer, in his book The Himalayan Journal. Monastery, apple orchard and river streams are some of its striking feature. Rhododendrons and shrubs are scattered profusely around the area adding to the charm.<br />
<br />
In the evening, visit Lachung Monastery. This is the last Buddhist Monastery of India before Indo-China border. Mask dance of Lachung Monaster is very famous in North-East India.<br />
<br />
Overnight stay in hotel.</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> Yumthang Valley sightseeing
								</p>
								<p class="aj">Have your breakfast and proceed to Yumthang Valley. On your way, halt near a popular hot-spring that is known for having medicinal properties for skin diseases and problems.<br />
<br />
Yumthang is located near Lachung Chu. In spring, it gets dotted with mélange of colorful flowers like rhododendrons, primulae and other alpine flowers. While with the arrival of winters thick sheet of snow covers the vicinity.<br />
<br />
In the evening you are free to explore Lachung. Have your dinner in the hotel and 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 6:</b> Lachung- Gangtok (3 hours- 107 km)
								</p>
								<p class="aj">Have your breakfast and get ready to get transferred to Gangtok. The view of Himalayan mountain range and Kanchenjunga Peak is visible throughout the route, on a clear day. If you are a photographer, this could be an unmissable opportunity for you. Check in at your hotel on reaching.<br />
<br />
In the evening you are free to take a leisure stroll in M.G Road (Mall Road) or other local markets.<br />
<br />
Stay overnight in hotel.</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> Transfer to New Jalpaiguri Railway Station (NJP) / Tenzing Norgay Bus Stand (Junction) / Bagdogra Ai
								</p>
								<p class="aj">Have your breakfast and check out from your hotel. You get an assisted transfer to New Jalpaiguri Railway Station (NJP) / Tenzing Norgay Bus Stand (Junction) / Bagdogra Airport (IXB). Continue 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>Transfers</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="Alpine North Sikkim 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="75753"/>
						</form>
						</div>
						
						";i:1;s:63:"Book Alpine North Sikkim Tour - 6 Nights / 7 Days Tour Packages";i:2;s:139:"book alpine north sikkim tour - 6 nights / 7 days tour packages, valley tour packages, gangtok, lachung, lachen, north sikkim tour packages";i:3;s:180:"Kunzong Tours and Travel offers Alpine North Sikkim Tour - 6 Nights / 7 Days tour package, budget Valley tour packages for Gangtok, Lachung, Lachen, North Sikkim at exciting price.";i:4;s:434:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Lachung, Lachen, North Sikkim"        
		                 },
		      "description": "",
		      "name": "Alpine North Sikkim Tour",
		      "telephone": "+91-9593716601"
		    }
		    </script>
			";i:5;N;}