a:6:{i:0;s:20042:"				<div class="h1"><h1>06 Days Sikkim Silk Route Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sunbirdjourney.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sunbirdjourney.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>06 Days Sikkim Silk Route 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">Reshikhola,</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 16500 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sunbirdjourney.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="06 Days Sikkim Silk Route 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="183583"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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_13/377396/280508.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280508.jpg"  width="150" height="84"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
																		<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_13/377396/280509.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280509.jpg"  width="150" height="110"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
																		<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_13/377396/280510.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280510.jpg"  width="150" height="150"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
																		<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_13/377396/280511.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280511.jpg"  width="150" height="150"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
																		<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_13/377396/280512.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280512.jpg"  width="150" height="150"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
																		<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_13/377396/280513.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280513.jpg"  width="150" height="150"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Accommodations with all meals, Sightseeing, Pick up & Drop, Permit<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> Bagdogra Airport or Njp Railway Station to Sillery Gaon/iccheygaon
								</p>
								<p class="aj">Arrival At Njp Railway Station/bagdogra Airport & Transfer to Sillery Gaon - Our Representative Will Be There to Receive the Guest At Njp Railway Station/bagdogra Airport - He Will Assist Guest for the Forwarding Journey to Sillery Gaon– Situated At An Altitude of 6000 Ft. It is Lovingly Called By the Locals as New Darjeeling. Sillery Gaon is a Village of Not More Than 24 Families and that Too in the Middle of a Jungle. this Place is Being Proclaimed as the New Darjeeling Because of Its Beautiful View of the Kanchendzonga. Its Serene Atmosphere is An Invitation to Run Away from the Hum and Din of the City. Rest of the Day is At Leisure. Overnight Stay At Sillery Gaon.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/377396/280509.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280509.jpg"  width="150" height="110"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
									</ul>
									</div>
									</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 Aritar
								</p>
								<p class="aj">Post Breakfast Aritar - Aritar in East Sikkim District of the Indian State of Sikkim is Known for Its Natural and Landscaped Beauty - Known for Lush Forest, Mountains and Rivers - the Aritar Lake Ghati-tso is a Nearby Attraction, Aritar Under Rongli Sub Division of East Sikkim is a Tiny Village Situated On the Himalayas. the Lampokhari Lake, Emerald Forests, the Sweeping Hills with Deep Gorge and Occasional Waterfalls, the Mountain Slopes Strewn with Terrace Farming and Overall the Panoramic View of the Mighty Khangchendzonga Range Cast An Indelible Imprint On the Mind of the Traveller Never to Be Effaced with the Passage of Time. Overnight Stay At Aritar.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/377396/280510.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280510.jpg"  width="150" height="150"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Transfer to Zuluk
								</p>
								<p class="aj">After Morning Breakfast Proceed to Zuluk. Before that all the Permit Proceedings have to Be Finished. Zuluk is a Relatively New Offbeat Destination of Sikkim and Has a Primitive Charm. the Emerald Forests, the Sweeping Hills with Deep Gorge and Occasional Waterfalls, the Mountain Slopes Strewn with Terrace Farming and Overall the Panoramic View of the Mighty Khangchendzonga Range Cast An Indelible Imprint On the Mind of the Traveller Never to Be Effaced with the Passage of Time. Zuluk or Duluk is Situated At An Altitude of 10, 000 Ft. of Sea Level and Has a Primitive Charm. Zuluk Perched On the Rugged Terrain of the Lower Himalayas in East Sikkim is a Hamlet Close to Indo-china Border. Zuluk is Located On the Famous Old-silk-route. Evening Free for Individual Activity and Leisure. Overnight Stay At Zuluk.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/377396/280511.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280511.jpg"  width="150" height="150"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Transfer to Nathang
								</p>
								<p class="aj">The Drive is Subjected to the Condition of Ice in Road / Weather, Etc. - Early Morning Breakfast – Zuluk - Lungthung - Nathang Valley – Kupup – the Drive Will Be to a Higher Altitude – One Has to Stop At Rongli for Permit and Documentation – Travel Onward to the Thambi View Point At 11000 Feet - Next is Lungthung At About 13000 Feet, Gnathang Valley, Tukla Valley 12500 Feet, Jepepla Pass View and Reach Kupup Lake - the Yak Golf Course is the Highest Golf Course in the World At 13025 Feet – Evening Free for Individual Activity and Leisure. Overnight Stay At Nathang.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/377396/280512.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280512.jpg"  width="150" height="150"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
									</ul>
									</div>
									</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 Reshikhola
								</p>
								<p class="aj">After Breakfast , start for Reshikhola . Reshikhola is a riverside destination just 37 km from Kalimpong and very near to Pedong. The little village of Reshikhola received its name from the Reshi River running along this small place. Over Night stay at Reshikhola.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/377396/280513.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/377396/280513.jpg"  width="150" height="150"    alt="06 Days Sikkim Silk Route Tour" title="06 Days Sikkim Silk Route Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Departure to Bagdogra/NJP/Siliguri
								</p>
								<p class="aj">Early morning breakfast - Next one has to drive to Bagdogra Airport IXB / New Jalpaiguri Railway Station NJP or Siliguri via Rangpo - The drive will be via Rangpo, Chitrey - On the way a stop at Coronation bridge for photography if time permits - Proceed on the way to Bagdogra Airport IXB / New Jalpaiguri Railway Station NJP - It will be a 4 to 5 hours by drive - 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>AP (Room + Breakfast + Lunch + Dinner)</li>
																		<li>Hotel</li>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Private Cab</li>
																		<li>Cab Transfer</li>
																		<li>Stay Included</li>
																		<li>Veg & Non Veg Meals</li>
																		<li>Pickup-Drop</li>
																<li>Permit</li>
													</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any airfare / train fare</li><li>
Room incidentals & Room Heater</li><li>
Forest Permit</li><li>
Tipping/gratuities to guide/driver.</li><li>
Any riding charges – boat ride/horse ride/pony ride/helicopter ticket etc.</li><li>
Beverages during meal time.</li><li>
All entrance fees where ever applicable.</li><li>
Camera & Video permits.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>20% 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.
Refund will be made within 15 working days from the date of receipt of the cancellation.~^#^~Terms & Conditions:
Hotel rooms are subject to availability.
The order of the itinerary is subject to change without prior notice (according to weather conditions, any Political Problems or other circumstances).
Amendments of services, Number of heads, dates or group size can have an impact on the quotation and have to be revised accordingly.
An additional mattress or a rollaway bed will be provided for the third person sharing the room. It may vary as per hotels. 
Child age 10 yrs and above treat as full adult
Air Fare subject to availability, Increase of Airfare, $ROE rate (currency conversion rate), VISA cost as per embassy rate can be change.
Departure & Arrival between 2300hrs and 0700hrs mid night surcharge will be apply.
Towards documents required for VISA kindly follow the details in following itinerary.
Towards International trip kindly follow our itinerary and be punctual during the tour.
If tour will be extend due to any emergency circumstances, extra cost will be borne by the Guest.
Any changes of Transportation during the tour, extra cost will be borne by the Guest.
For delay in arrival or departure Flight / Train / Bus timings Rs. 200/- extra would be applicable per hour.
Transportation service is point to point basis.
All traveler has to follow the day wise itinerary which will not change while traveling.
Kindly verify all the details with your coordinator before travel.
If any difficulty / technically problem during the tour kindly cooperate with us to recover the situation. 
Some sightseeing depends on Govt. permit, Each Guest should be carry their Govt. Identity Card (Original & Xerox both) with passport size photograph at the time of travel
100% payments must be made to SUNBIRD JOURNEY….before 15 days of Travel date.
 
Cancellation:
Towards Air ticket cancelation as per Airline’s charges + Rs. 200 per person / per sector for Domestic and Airline’s charges + Rs. 400 per person / per sector for International as a cancelation service charge will be applicable. No refund on Non-Refundable Ticket and No show Ticket.
Hotel / Accommodation will not change once we confirm the hotel
90% Cancelation charge will be applicable if cancel before 15 days from date of Journey
60% Cancelation charge will be applicable if cancel before 15 - 20 days from date of Journey
40% Cancelation charge will be applicable if cancel before 20 - 30 days from date of Journey
30% Cancelation charge will be applicable if cancel before 30 days and above from date of Journey
No refund is allowed if cancellation is made 15 days before Journey date.
No cancellation will be accepted over telephone.
For cancellation please produce the application letter with your original receipt by email or visit at office.

Booking Confirmation:
Towards booking send your confirmation mail as earliest.
Make the advance payment once you get the reconfirmation mail with Booking Form and total billing amount from SunBird.
Send the Duly signed Booking Form with ID proof of all Traveler (Aadhar Card / Passport / Voters card / Driving License)
 
Payment Policy:
100% Airfare (if any) + 60% cost of land service arrangement as an advance to be pay at the time of booking & balance 40% on receipt/vouchers of Confirmation. (100% payment as an advance if travel date within 05 days)
All payment must be made to SUNBIRD JOURNEY.
 
PAYMENT OPTIONS:
We accept (CHEQUE / NEFT / RTGS / Credit card / Debit card / Net Banking)
2.50% transaction convenience charge applicable towards payment through Net banking / Credit card / Debit card
No charge towards NEFT / RTGS / Cheque												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sunbirdjourney.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="06 Days Sikkim Silk Route 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="183583"/>
						</form>
						</div>
						
						";i:1;s:69:"Book 06 Days Sikkim Silk Route Tour - 5 Nights / 6 Days Tour Packages";i:2;s:121:"book 06 days sikkim silk route tour - 5 nights / 6 days tour packages, adventure tour packages, reshikhola, tour packages";i:3;s:168:"Book 06 Days Sikkim Silk Route Tour - 5 Nights / 6 Days tour packages from Sunbird Journey - Get attractive 5 Nights / 6 Days Adventure  tour packages for  Reshikhola,.";i:4;s:479:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Reshikhola,"        
		                 },
		      "description": "Accommodations with all meals, Sightseeing, Pick up & Drop, Permit",
		      "name": "06 Days Sikkim Silk Route Tour",
		      "telephone": "+91-9038012283"
		    }
		    </script>
			";i:5;N;}