a:6:{i:0;s:9364:"				<div class="h1"><h1>The Picturesque Sikkim Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.softprotravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.softprotravels.co.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>The Picturesque 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Gangtok, Bagdogra</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.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Picturesque 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="98041"/>
						</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_17/484941/165832.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484941/165832.jpg"  width="150" height="150"    alt="The Picturesque Sikkim Tour" title="The Picturesque 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> Arrive NJP / Bagdogra – Gangtok (About 125 km/04 hr drive)
								</p>
								<p class="aj">Our representative will meet you at NJP railway station or IXB airport and then we will drive to the capital city of Sikkim, Gangtok. Gangtok is located at an altitude of 1650 m from the sea level on the eastern Himalayan ranges. Upon reaching, transfer to the hotel. Spend rest of the day free at leisure to acclimatize the weather. Overnight stay at 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 2:</b> Gangtok (Trip to Tsonmgo Lake + Baba Mandir)
								</p>
								<p class="aj">Get up early and drive to Tsongmo Lake (12400 ft), which is located 40 km from Gangtok. Tsongmo is about 1 km long and 15 m deep sacred lake. Later, we will pay a visit to Baba Harbhajan Singh Temple, which is 16 km away from the lake.<br />
Return to Gangtok by afternoon. For the rest of the day you are free to enjoy your own activities. Overnight stay at 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 –Lachung (About 117 km/06 hr drive)
								</p>
								<p class="aj">Post breakfast, drive to Lachung (altitude 8610 ft & 117 km). En-route the hilly roads, lush green mountains and bubbling brooks will greet you. Further, we will halt for some time at Singhik View Point (subject to weather condition). It is 55 km from Gangtok and 04 km further of Mangan. The view point offers breathtaking vistas of Khangchendzonga and Siniolchu. From here you can admire the beauty of the lush green hills with the beautiful sound of the Teesta River flowing below it. We will also visit the Seven Sisters Waterfalls & Naga Waterfalls.<br />
<br />
Transfer to a hotel on reaching Lachung. Acclimatize to the weather, followed by an 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> Lachung –Yumthang Excursion (30 km & 11,800 ft)
								</p>
								<p class="aj">This day is dedicated to Yumthang Valley excursion. Popularly known as the Valley of Flowers, it is also a grazing pasture where villagers take their cattle during summers. (The Valley remains closed between December to March, due to heavy snow fall).<br />
<br />
As you enter the valley, you will we come across to a breathtaking view. Yumthang is a flat grassy valley with a rivulet flowing through it. Further, lofty mountains covered with trees and vegetation on both sides add a charm to the beauty of the valley. Herein you will be greeted by a variety of flowers, especially the Himalayan Yellow Poppy that are only find in the high regions.<br />
<br />
Return to Lachung for overnight stay. On the way back we will also visit the Hot Sulphur Spring. Upon arrival, check in to a hotel. Spend rest of the day at leisure, followed by an 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> Lachung- Gangtok (About 117km/06 Hr drive)
								</p>
								<p class="aj">Drive back to Gangtok in the morning. En-route we will visit the mighty Bhim Nala (Fall) and Twin Falls. On reaching, transfer to the hotel. Spend rest of the day at leisure. Overnight stay 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 6:</b> Gangtok – NJP – Bagdogra, (About 125 km / 04 hrs drive)
								</p>
								<p class="aj">After breakfast, we will transfer you to NJP/ Bagdogra for your onward destination.<br />
<br />
Tour and Services ends</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. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Picturesque 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="98041"/>
						</form>
						</div>
						
						";i:1;s:66:"Book The Picturesque Sikkim Tour - 5 Nights / 6 Days Tour Packages";i:2;s:121:"book the picturesque sikkim tour - 5 nights / 6 days tour packages, valley tour packages, gangtok, bagdogra tour packages";i:3;s:159:"Softpro Tour & Travel offers The Picturesque Sikkim Tour - 5 Nights / 6 Days tour package, budget Valley tour packages for Gangtok, Bagdogra at exciting price.";i:4;s:416:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Bagdogra"        
		                 },
		      "description": "",
		      "name": "The Picturesque Sikkim Tour",
		      "telephone": "+91-7896768942"
		    }
		    </script>
			";i:5;N;}