a:6:{i:0;s:11865:"				<div class="h1"><h1>Gangtok - Lachung - Darjeeling - 7 Day Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travelzonetoursandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelzonetoursandtravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Gangtok - Lachung - Darjeeling - 7 Day 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, 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.travelzonetoursandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gangtok - Lachung - Darjeeling - 7 Day 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="100498"/>
						</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_12/332124/169001.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/332124/169001.jpg"  width="150" height="150"    alt="Gangtok - Lachung - Darjeeling - 7 Day Tour" title="Gangtok - Lachung - Darjeeling - 7 Day 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
								</p>
								<p class="aj">Our car driver will be there to receive you at New Jalpaiguri Railway Station (NJP) or Bagdogra Airport ( IXB ) -  You will be assisting for the transfer – Transfer to Gangtok – Nearly 120 Kilometers 4 hours drive - Gangtok – The capital of the 22nd State of India, Sikkim is one of the most beautiful hill station with varied options for tourist – It is known for the monastery, Orchids, High altitude Lake and butterflies – It has option for tourist of all ages – Check into Hotel –Evening free to roam around M G Road (Mall) or local Shopping center - Overnight stay at 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 2:</b> Transfer to Lachen from Gangtok
								</p>
								<p class="aj">Pick up from Gangtok – Drive 135 kilometers, 6 hours drive - En-route Seven Sisters Water Fall, Miyang Chu, Naga Water Fall, Taram Chu sightseeing -  Chungthang is 96 kilometers from Gangtok – Lunch at Chungthang – Lachen is 35 kilometers from Chungthang - Reach Lachen late afternoon / early evening -– It’s a valley surrounded by gigantic and humbling snow peak mountains and the starting point of Green Lake Trek – In fact the village cradled between stern, tall rock faces standing like guards – A hamlet with very few people – It almost like this town is hidden from the outside – Like a Shangri - La – Check into a hotel - Evening free to stroll and visit the Lepcha Village – Overnight stay at Hotel in Lachen.</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> Excursion to Gurudongmar Lake & Transfer to Lachung
								</p>
								<p class="aj">Early morning breakfast – Visit to Gurudongmar  Lake 55 kilometers, 2 Ѕ - 3 Ѕ hours drive - A valley at an altitude of 11, 800 feet through which Lachen Chu flows, generally covered with snow from December to April or even more is known as the Holy / Sacred Lake - The region is fully covered with Rhododendron forest with Chopta Valley and Thangu are the other places of interest - Back to hotel for lunch - After lunch proceed to Lachung – Nearly 50 kilometers and two hours’ drive – Check into hotel at Lachung - Evening free to visit Lachung Monastery - Overnight stay at Hotel at Lachung.</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> Sight Seeing at Yumthang  Night stay at Lachung (Z
								</p>
								<p class="aj">After breakfast drive towards Yumthang situated at an elevation of nearly 11800 feet - On the way you may visit the famous hot spring which is known for its curative properties of skin diseases - Yumthang is a valley near the river Lachung Chu surrounded by mountains where the tree line ends - In spring the valley erupts in riots of colors as Primulae, Rhododendrons and many other Alpine flowers in full bloom along with snow covered valley except in autumn - During winter Yumthang is somber with snow all around and the snow clad mountains adding to the eternal beauty –Return to 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> Transfer to Gangtok :
								</p>
								<p class="aj">After Breakfast transfer to Gangtok – Bhim Nala & Twin Water Fall sightseeing on the way – Drop to Gangtok<br />
Day 6 : Gangtok Local Sightseeing (Full  Day) Morning breakfast at hotel - Drive for visit to Enchey Monastery, Barthang waterfalls, Nam Nang view point, Ropeway, Flower Show, Directorate of Handicrafts & Handloom, Research Institute of Tibetology & Do Drul Chorten (Stupa).etc  - early morning City tour of Gangtok <br />
Day 7: Excursion to Tsomgo Lake, Baba Mandir  (Full Day)(NATHULLA OPTIONAL)   Morning breakfast at hotel – Excursion to Tsomgo Lake & Baba Mandir nearly 40 kms and 2 hours drive -Tsomgo Lake is situated at an elevation of 3753 m / 12310 ft - The Lake is oval shaped lake nearly 50 ft deep - Generally covered in snow for most of the year the year –home to the Brahmini ducks & many migratory birds – Nearby is the sacred Baba Mandir known to be a very holy site for all – Back to Gangtok <br />
 Day 8: Trf to Darjeeling  : Post breakfast  Transfer to Darjeeling - Nearly 110 kilometers 4 hours drive – At an height of 2123 meters / 70001 feet lies the land of breathtaking beauty, sloping tea gardens with spectacular views of the Mount Everest is the Queen of the hills – It is also home to the famous World Heritage train – The Darjeeling Himalayan Railway (DHR) – Drop at hotel- Overnight stay at Darjeeling.</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> Darjeeling
								</p>
								<p class="aj">Early morning at around 3:45 AM drive to 8000 feet / 2440 meters through primitive forests of oak, magnolia to Tiger Hill to view sunrise over Kanchenjunga Peak (subject  to clear weather) – On the way back visit Ghoom Monastery, Peace memorial & Batasia Loop – Back to hotel - After breakfast  half day city tour includes Padmaja Naidu Zoological Park, Himalayan Mountaineering Institute (Closed on Thursday), Ropeway, Tensing Gumpo Rock, Tibetan Refugee Self Help Center (Closed on Sunday), Tea Estate, Natural History Museum (Sunday Closed) etc – Back to hotel – Overnight stay at Darjeeling</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> Departure
								</p>
								<p class="aj">Morning breakfast at hotel - Transfer to New Jalpaiguri Railway Station (NJP) or Bagdogra Airport (IXB) - Nearly 80 kilometers 3 hours drive – Guest are advised to start early and not to rush - Forwarding 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.travelzonetoursandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gangtok - Lachung - Darjeeling - 7 Day 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="100498"/>
						</form>
						</div>
						
						";i:1;s:82:"Book Gangtok - Lachung - Darjeeling - 7 Day Tour - 6 Nights / 7 Days Tour Packages";i:2;s:139:"book gangtok - lachung - darjeeling - 7 day tour - 6 nights / 7 days tour packages, valley tour packages, gangtok, darjeeling tour packages";i:3;s:182:"Book Gangtok - Lachung - Darjeeling - 7 Day Tour - 6 Nights / 7 Days tour packages from Travel Zone - Get attractive 6 Nights / 7 Days Valley  tour packages for  Gangtok, Darjeeling.";i:4;s:434:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling"        
		                 },
		      "description": "",
		      "name": "Gangtok - Lachung - Darjeeling - 7 Day Tour",
		      "telephone": "+91-9932901938"
		    }
		    </script>
			";i:5;N;}