a:6:{i:0;s:13691:"				<div class="h1"><h1>Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.globetrotteronline.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.globetrotteronline.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package 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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Gangtok, Darjeeling, Kalimpong</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.globetrotteronline.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package 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="86234"/>
						</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/457498/151086.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457498/151086.jpg"  width="150" height="150"    alt="Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package Tour" title="Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package 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 Njp  Ixb  Siliguri - Darjeeling
								</p>
								<p class="aj">On Arrival At Njp / Ixb / Siliguri You Will Be Transferred - Darjeeling Which Is One Of The Most Magnificent Hill Resorts In The World. Evening Free - Explore This Hill Queen. 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 2:</b> Full Day Sight Seeing In Darjeeling
								</p>
								<p class="aj">Early Morning At 0400 Am Visit Tiger Hill Famous For Sunrise Over Mt. Kanchendzonga, On The Way Back Visit Ghoom Monastery, Batasia Loop And Back - Hotel. After Breakfast Visit Himalayan Mountaineering Institute, Pn Zoological Park (Closed On Thursday) Tenzing Rock, Tibetans Refuge Centre (Closed On Sunday), Tea Garden (Outer View), Ava Art Gallery And Japanese Temple. 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 3:</b> Darjeeling - Kalimpong
								</p>
								<p class="aj">After Breakfast Transfer - Kalimpong. Kalimpong Is A Pretty Hill Station, With Majestic Himalayas In The Background And Gently Rolling Hills Around. It Has A Relaxed And Unhurried Air About It. Kalimpong Lies Between Thethe Plains Of The Dooars And The Hills Of Of Darjeeling - Sikkim Himalayas.Kalimpong Is A Pleasant And Safe Place - Spend A Holiday. 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 4:</b> Kalimpong Sightseeing - Gangtok
								</p>
								<p class="aj">After Breakfast Visit Durpin Dara Monastry,Golf Club,Pine View Nursery,Kalimandir Or Dello,Hanuman Mandir, Durga Mandir,Mangal Dham,Pine View And Transfer - Gangtok, Its Strategic Location,A Strong Buddhist Presence And Heady Cultural Offerings Make The First City Of Sikkim - Gangtok, A Tempting Insight In- This Stimulating Land. Mt.Khanchendzonga, Orchid Nurseries, Great Shopping - 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> Gangtok - Lachung
								</p>
								<p class="aj">After Breakfast Pick Up At 10:00 A.M From Hotel At Gangtok & Transfer - Lachung (One Of The Most Beautiful And A Picturesque Village In The Area And Is Covered With Snow During The Winter Months), Altitude 8610 Ft). Enroute Visit Tashi View Point, Kabi Lunchuk( The Blood Brotherhood Treaty Signed Between The Bhutia Chief Khye Bhumsa And The Lepcha Chieftan Thkong Thek In The 13Th Century) Seven Sister Falls, Naga Falls, Mangan( North District Headquarters), Singik View Point, Chungthang.Lunch On The Way. Overnight Dinner & 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> Gurudongmar Lake and 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 - Next drive through the cold desert till Tibet / China back to Resort for Lunch – After lunch drive to Lachung - 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 7:</b> Sight Seeing at Yumthang
								</p>
								<p class="aj">Early morning breakfast – After  breakfast  drive towards  Yumthang situated at an elevation of nearly  11800 feet – 26 kilometers and 1 ½ hours drive - On the way back one  can 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 beauty - Return to Gangtok -  128 kilometers and is 5 - 6 hours drive - Evening free to roam around M G Road (Mall)  - Over Night 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 8:</b> Transfer to Pelling
								</p>
								<p class="aj">Morning breakfast and check out of the hotel to proceed to Pelling - A drive of nearly 130 kilometers – 3 ½ - 4 hours drive - Pelling is situated at an altitude of 2072 meters / 6800 feet - On a clear day guest can get a clear view of Himalayan range with snow capped mount Pandim, Kumbhakarna, Rathong, Khangchendzonga, Zopuno, Shimbho, Narsing, Sinolchu etc - It is one of the exotic settlement with varieties of Rhododendron, Orchids, historical sites, short trek routes and wildlife – Its botanical and zoological richness is inspiring and the scenic view from the top of the ridge across deep valley to the heights of Kanchendzonga ranges is something to be seen to be believed - Yuksom, Ravangla, Rinchenpong and Namchi are some of the tourist spot nearby – Check into hotel - Evening free to roam around the small settlement - Over Night stay at Pelling</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 9:</b> Pelling Local sightseeing
								</p>
								<p class="aj">After breakfast at hotel – Drive for Full Day Sight Seeing - The routes are forested and the botanical and zoological richness is inspiring. Places of visit are Rimbi water Falls, Rimbi Rock Garden, Kechopalri Lake, it is one of the holy Buddhist lake and it is believed that any wish in front of the lake comes true - Myth is that when a leaf falls on the placid clear water surface, it is picked by a bird and thus the water surface is always free of leaves, Kechopalri Monastery, Kanchenjunga water Falls, Pemayangtse Monastery, Rabdantse ruins, the scenic view from the top of the ruin to the mystic heights of Kanchendzonga ranges is something to be cherished – Back to hotel – Evening free to roam around the helipad or Shopping center - Over Night stay at Pelling</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 10:</b> departure
								</p>
								<p class="aj">Tour End With Sweet Memories .</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>
															</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. ~^#^~						
    	<p class="h dif xlarge b mb5px">Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package</p>
    	<div class="otherDetails aj">Selling Price (PP)<br>
1 Pax :-INR 54,000<br>
2 Pax :-INR 1,03,000<br>
4 Pax :-INR 2,05,999<br>
6 Pax :- INR 3,11,999<br>
Extra Adult :-INR 36,999<br>
Child with Bed :- INR 29,999<br>
Child Without Bed :- INR 25,000</div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.globetrotteronline.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package 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="86234"/>
						</form>
						</div>
						
						";i:1;s:118:"Book Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package Tour - 9 Nights / 10 Days Tour Packages";i:2;s:186:"book darjeeling - kalimpong - gangtok - lachung - pelling special tour package tour - 9 nights / 10 days tour packages, valley tour packages, gangtok, darjeeling, kalimpong tour packages";i:3;s:241:"Book Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package Tour - 9 Nights / 10 Days tour packages from Globe Trotter Holidays - Get attractive 9 Nights / 10 Days Valley  tour packages for  Gangtok, Darjeeling, Kalimpong.";i:4;s:480:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Kalimpong"        
		                 },
		      "description": "",
		      "name": "Darjeeling - Kalimpong - Gangtok - Lachung - Pelling Special Tour Package Tour",
		      "telephone": "+91-7030378080"
		    }
		    </script>
			";i:5;N;}