a:6:{i:0;s:10446:"				<div class="h1"><h1>Short Escape to Gangtok Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.hifiholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.hifiholidays.com/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Short Escape to Gangtok 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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Gangtok</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.hifiholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Short Escape to Gangtok 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="107419"/>
						</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_14/411823/178134.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/411823/178134.jpg"  width="150" height="150"    alt="Short Escape to Gangtok Tour" title="Short Escape to Gangtok 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 at Gangtok
								</p>
								<p class="aj">On your arrival at Bagdogra airport/ Jalpaiguri railway station/ Tenzing Norgay bus stand, meet our tour representative and get transferred to Gangtok.<br />
<br />
Popular as the ‘land of monasteries’, Gangtok is an important tourist destination to visit in India. Being the capital town of Sikkim, around 60km away, Gangtok has all what a traveler looks for a perfect holiday. It is a beautiful town with varieties in Rhododendron, orchids and butterflies. The town is best-know for its tranquil and aesthetic ambience.<br />
<br />
With its breathtaking attractions, the place allures travelers from all parts of India and across the globe. Check-in at a pre-booked 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 2:</b> Gangtok Sightseeing
								</p>
								<p class="aj">Today, have breakfast and leave for sightseeing tour to Gangtok. Some of the important places of interest we take you to are- Directorate of Handicrafts and Handlooms Emporium, Research Institute of Tibetology, Do Drul Chorten (stupa), Enchey monastery, White hall, Flower Show, Ganesh Tok, Hanuman Tok, Tashi View point and Banjhakri falls.<br />
<br />
Directorate of handicrafts and handlooms Emporium is one among the best places to shop in the state of Sikkim. The center has a wide collection of beautiful thangka paintings, wooden masks, traditional hats and caps, stuffed dolls, embroidered products, carpets, handlooms and cane and bamboo work. The center is also a training center for those who want to learn about handicraft.<br />
<br />
Other attractions-Do Drul Chorten, a magnificent stupa put up by the head of the Nyingma order of Tibetan Buddhist, Trullshi Rinpoche. It is the biggest stupa in Sikkim and is home to a complete set of Dorjee Phurba, Kangyur relics (holy books) and other religious objects. There are 108 prayer wheels around the stupa, which are turned to read the mantra ‘Om Mane Padmane Hum’ engraved on it.<br />
<br />
Surrounded by tall pine trees all around, Enchey Monastery is believed to be constructed on a land blessed by Lama Druptob Karpo (a tantric master). The monastery is highly revered and inside the monastery you can see some shells that are considered auspicious Buddhist symbols. Listed among the most important temples to visit in Sikkim is Ganesh Tok, at an altitude up to 6500 ft. The main deity presiding inside the temple is of Lord Ganesha. The temple is not only visited to seek blessings, but also to enjoy the surrounding and the scenic views from the hill top. In-addition, if it is a clear day then you can also have a fascinating view of Kanchenjunga (the third highest peak).<br />
<br />
Adore the spectacular views of Kanchenjunga (on a clear day) and rising sun from Tashi view point. In case, if you want to have an unforgettable experience of these notable peaks and gorgeous surrounding, then you need to head here before 5am.<br />
<br />
Later, in the evening either you can relax or stroll around the local bazaars of the place. Some of the important that you should definitely buy during your trip to Gangtok are handicrafts, locally made artifacts, shimmering jewelries, Tibetan carpets, alpine cheese, black cardamom, Sikkim tea and other traditional outfits.</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> Tsomgo Lake and Baba Mandir (full day)
								</p>
								<p class="aj">On third day of your short escape to Gangtok tour, have breakfast and get ready for short trip to Tsomgo Lake and Baba Mandir. Settled at an altitude up to 12, 400ft, Tsomgo Lake is one of the popular tourist spots in Sikkim. Locals here claim that in earlier times, the color of the lake was studied by Lamas in order to predict the future. The water of the lake derives from melting of snow from mountains. Usually, the lake is covered with snow for most of the year. To enjoy the serenity, indulge in Yak ride or mule ride along the lake.<br />
<br />
Another attraction, Baba Mandir is an important shrine, built in the memory of Baba Harbhajan Singh (a soldier); the holy place is now maintained by Indian army. The temple is located at a height up to 1300 ft and is just few kilometers away from Tsomgo Lake.<br />
<br />
Rest of the evening is free to roam around MG mall road or local shopping complex. Overnight stay in the hotel.<br />
<br />
In case of landslides or any other reason if Tsomgo Lake is closed then an alternate sightseeing is provided.</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> Departure
								</p>
								<p class="aj">On fourth and last day of Short escape Gangtok tour, have breakfast and check-out form the hotel and straight away travel to Siliguri. Further, drive to Jalpaiguri railway station/Bagdogra airport/Tenzing Norgay bus stand, for your onward destination.</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.hifiholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Short Escape to Gangtok 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="107419"/>
						</form>
						</div>
						
						";i:1;s:67:"Book Short Escape to Gangtok Tour - 3 Nights / 4 Days Tour Packages";i:2;s:118:"book short escape to gangtok tour - 3 nights / 4 days tour packages, hill station tour packages, gangtok tour packages";i:3;s:163:"Hifi Tour & Travel  Holidays offers Short Escape to Gangtok Tour - 3 Nights / 4 Days tour package, budget Hill Station tour packages for Gangtok at exciting price.";i:4;s:407:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok"        
		                 },
		      "description": "",
		      "name": "Short Escape to Gangtok Tour",
		      "telephone": "+91-9890797744"
		    }
		    </script>
			";i:5;N;}