a:6:{i:0;s:31652:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>North East Honeymoon Package</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.parjatakuttarbangla.co.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.parjatakuttarbangla.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> North East Honeymoon Package</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Gangtok, Darjeeling, Kalimpong, Siliguri</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.parjatakuttarbangla.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North East Honeymoon Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="189946"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_21/616316/298269.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_21/616316/298269.jpg"  width="150" height="100"    alt="North East Honeymoon Package" title="North East Honeymoon Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<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 in Siliguri -Transfer to Darjeeling-
										</p>
										<p class="aj">Arrive in Siliguri at New Jalpaiguri Railway Station (68 km) / Bagdogra Airport (69 km) / Tenzing Norgay Bus Stand (62 km), met our tour representative. He would help you in taking an assisted transfer to Darjeeling.<br />
<br />
Home to the World Heritage Train- the Darjeeling Himalayan Railway (DHR) or the toy train, Darjeeling is an enchanting hill station. Lying at a height of 7100 feet above the sea level, Darjeeling has aromatic lush tea estates, tranquility in abundance, breathtaking scenery, Buddhist monasteries, bustling streets and several striking views.<br />
<br />
After you arrive in Darjeeling, check- into the hotel. You can relax for a while. The evening is at leisure and you can spend it as per your own liking. Have a leisure walk up to the Mall or visit the local shopping centers to get your hands on some memorabilia. Over Night 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 2:</b> Darjeeling sightseeing
										</p>
										<p class="aj">Day 2 starts quite early. Get-up around 3:45 AM to drive towards Tiger Hill (11 km) to view sunrise over the Kanchendzonga Peak (subject to clear weather). One of the major attractions in Darjeeling, the route taking to you the hill, amid Oak forests, is an extremely refreshing one. It is advisable to start early top save yourself from traffic snarls up the hill. When the sun rises behind from the hill, it illuminates the Peak and looks like an orange-colored ball. Treat your eyes to the scenery and soak-in the tranquility.<br />
<br />
On your way back, visit Ghoom Monastery- also called Yiga Choeling monastery, it is one of Darjeeling’s oldest gompas. Belonging to the Yellow sect of Buddhism, the construction of this monastery started in 1850. The statue of Maitreya Buddha, Lord Buddha of the future is the main attraction here. Next attraction is the War memorial, lying in the well-maintained garden, bounded by Batasia Loop. The memorial is built in the memory of Gorkha martyrs who sacrificed their lives in the wars to save their country. You can also opt for a ride in the toy train on the loop, offering enchanting landscape views.<br />
<br />
Return to the hotel for breakfast and start the second leg of sightseeing including Padmaja Naidu Himalayann 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), Peace Pagoda<br />
<br />
Padmaja Naidu Himalayann Zoological Park- Known all around the globe, it is popular for its conservation breeding programs of Red Panda, Tibetan Wolf, Snow Leopards and other endangered animal species of the Eastern Himalaya. Take a walk in the sprawling Tea estates to soak-in the serenity and refreshing aroma. The sight of greenery spread all around looks quite soothing. The Cable car ride on Darjeeling Ropeway offers spectacular views Rangeet Valley. The white colored Peace-pagoda is a huge dome-like structure is another attraction here that has golden-colored Buddha statues in varied postures.<br />
<br />
Overnight stay in 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 3:</b> A day’s visit to Mirik (58 km- 1 hr 30 min)-
										</p>
										<p class="aj">The day after breakfast is for a day’s trip to Mirik. Perched at an elevation of 1494 m above the sea level, Mirik is an off-beat destination that is becoming a popular tourist destination, near Darjeeling. The drive from Darjeeling to Mirik has a few scenic spots from where you can stop for photo opportunity. With Sumendu Lake in its mid-point, beautiful Mirik town is blessed with verdant tea gardens, landscaped gardens, cardamom groves and the mighty Himalayas. Spend the day here, indulging in activities like boating in Sumendu Lake and horse riding to explore the place.<br />
<br />
In the evening, back to Darjeeling. On your way back, taka a stoppage at Pashupati Market (on the India-Nepal Border). You can get your hands on antiques, souvenirs, foreign goods and other knick-knacks.<br />
<br />
in Darjeeling, the evening is free for visiting the Mall Road or the Local market area.<br />
<br />
Overnight in 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 4:</b> Darjeeling- Kalimpong (49 km- 1 hr 40 min) (Sightseeing)-
										</p>
										<p class="aj">Start your day with an early morning breakfast. Check-out formalities, followed by transfer from Darjeeling to Kalimpong. Placed at the foothills of the Himalayas, the lush destination of Kalimpong is located at an altitude of 1250 meters above the sea level.<br />
<br />
Offering a relaxed ambiance for a peaceful retreat, Kalimpong boasts of some of the most striking views of the Himalayan peaks. This bustling town has colonial-style architecture and Buddhist monasteries. The serenity spread all around the place attracts the tourists from all around. On arrival, complete the check-in formalities at the hotel.<br />
<br />
Leave the hotel room to begin sightseeing in Kalimpong including the popular attractions such as Forest Museum (Closed On Thursday), Deolo Hill, Hanuman Mandir- a Hindu temple with a huge statue of Lord Hanuman that is near Durga temple, Dr Graham Homes, Durpin Monastery, Mangal Dham- another beautiful tranquil temple complex in Kalimpong that has temples of Lord Krishna and Guru Mangal Das Ji, Pine View Nurseries (Cactus Only)<br />
<br />
Located on Durpin hill (1372 m), Durpin Gompa boasts of being the largest monastery of Kalimpong, formally known as Zangtok Pelri Phodang. Dalai Lama, in the year 1976, had consecrated this monastery. The Gompa is 5 km southwards of the town. When inside the monastery, do not miss the attractive religious murals. From the monastery’s terrace, enjoy nice views of Khangchendzonga. Started in 1900, by Dr JA Graham- a Scottish missionary, Dr Graham Homes is a school and an orphanage that co-educates children of the workers in tea-estates. The school structure is Scottish in architecture and the premise has a museum too. Once you get on the top of Deolo Hill, treat your eyes to the mesmerizing views of the Kanchenjunga, the world’s third highest mountain and the town. There is a well-maintained park too. Pony rides are offered for kids.<br />
<br />
Stay overnight in Kalimpong.</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> Kalimpong- Gangtok (73.5 km- 2 hrs)-
										</p>
										<p class="aj">Today, have your breakfast and begin driving towards Gangtok, the capital city of the north-eastern state of Sikkim.<br />
<br />
Located at an elevation of 1600 meters above the sea level, the beautiful and peaceful hill town of Gangtok, is known to be one of the most popular tourist destinations of North-eastern region of the country. Its Buddhist monasteries, abundant lush scenery and pleasant climate allure honeymooners from all around. Hold hands in hands and admire the enchanting scenery of the town. Gangtok also houses a vast variety of butterflies, and colorful flowers like Orchids and Rhododendron.<br />
<br />
On arrival, complete the check-in formalities at the hotel. Now you can rest for a while. The evening is at leisure. If you want, you can visit the very popular M G Road (Mall) to indulge in shopping and collecting memorabilia. Get your hands on woolen clothes, Thangka paintings, handicrafts and more. 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 sightseeing-
										</p>
										<p class="aj">The sixth day of the itinerary is for visiting the popular attractions of Gangtok, after morning breakfast Visit to Directorate of Handicrafts & Handloom, Research Institute of Tibetology, Do Drul Chorten (Stupa), Enchey Monastery, White Hall, Flower Show, Ganesh Tok- a temple dedicated to Lord Ganesha, placed on a small hill on the Gangtok-Nathula Road, Hanuman Tok, Tashi View Point, Banjhakri Falls, one of the finest falls close to Gangtok, place amidst a lush green well-maintained Shamanistic- themed park.<br />
<br />
One of Sikkim’s most renowned temples, Hanuman Tok is dedicated to Lord Hanuman. The temple complex is well taken care of by the Indian Army. As the temple is placed on high altitudes, the complex offers wonderful opportunities for photography as the views of the peaks are stunning from here.<br />
<br />
Probably the biggest stupa of Sikkim, Do Drul Chorten is located on a hill. This sacred spot was built in the year 1945 by Late Truslshi Rimpoche, the head of Nyingma sect of Tibetan Buddhism. The golden-colored dome is the highlight of the structure. You can spot lamas engrossed in their prayers.<br />
<br />
Founded in the year 1909, Enchey Monastery is one of the Gangtok’s most popular Gompas. Placed on a hill, the monastery offers exciting views of Mt Kanchenjunga. The structure of the monastery is inspired from a Chinese Pagoda and the images of deities adorn the inner walls. Spot the statues of Guru Rinpoche and Lord Buddha, who are worshipped here.<br />
<br />
If you are a nature lover, do visit the permanent flower show held at the Flower Exhibition Center, another popular attraction. The floral exhibition site is near Ride Park and White Hall, and is a place where you must not miss clicking photographs. This exhibition area has a green house effect and consists of a vast variety of floral species such as celosia, gerberas, roses, orchids and more.<br />
<br />
During the night hours, you can visit the discotheques in Gangtok. 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 7:</b> Day’s trip to Tsomgo Lake and Baba Mandir-
										</p>
										<p class="aj">Day 7 of the tour is for visiting the nearby attractions of Gangtok. The day is scheduled for excursion to Tsomgo Lake and Baba Mandir. Have your breakfast and leave for your trip.<br />
<br />
Tsomgo Lake or Changu Lake, lying at an elevation of 12,400 feet above the sea level is a glacial lake, which is 37 km away from Gangtok. This stunning attraction, it is frequently visited by Brahmin ducks and other colorful migratory birds. This oval-shaped lake is 50 feet deep and is covered with snow all round the year. Let your kids can yak rides; there are shops near the lake selling Yak cheese. On the banks of the Lake, there is a temple also, dedicate to Lord Shiva temple. Capture the beautiful scenery through your camera.<br />
<br />
After exploring the Lake site, continue towards the next attraction of the day Baba Harbhajan Singh Memorial War temple, around 20 km from here. Originally a war memorial, built in the memory of soldier Harbhajan Singh of the 23rd Punjab Regiment, who sacrificed his life in the Indo-China was of year 1962, it slowly turned into a temple. It was constructed in 1983 by the Indian Army after the deceased soldier appeared in the dream of his soldier friend. This temple made inside the bunker of the soldier and consists of his personal belongings like photographs. There is a wishing pond near the temple. Throw a coin in the pond and make a wish.<br />
<br />
In the evening, return to Gangtok. If time permits, you can visit the Mall Road or simply relax in your room. (Note- If there is landslide or we are not able to take you to Tsomgo Lake, there will be an alternate sightseeing).</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> Gangtok to Siliguri for departure– Siliguri / New Jalpaiguri Railway Station (119) / Bagdogra Airp
										</p>
										<p class="aj">Your 8 day North East honeymoon package ends today. Pack your bags and post breakfast, get on-time transfer to Siliguri -New Jalpaiguri Railway Station / Bagdogra Airport / Tenzing Norgay Bus Stand for your onward journey.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Some Advance Percentage of total booking amount</li><li>
Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Upon cancellation, refund will be made after deducting the Retention Amount.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.parjatakuttarbangla.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="North East Honeymoon Package - 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="189946"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.parjatakuttarbangla.co.in/gangtok-tour-packages.htm" title="Gangtok Tour Packages">Gangtok</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.parjatakuttarbangla.co.in/darjeeling-tour-packages.htm" title="Darjeeling Tour Packages">Darjeeling</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.parjatakuttarbangla.co.in/kalimpong-tour-packages.htm" title="Kalimpong Tour Packages">Kalimpong</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.parjatakuttarbangla.co.in/pelling-tour-packages.htm" title="Pelling Tour Packages">Pelling</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.parjatakuttarbangla.co.in/kolkata-tour-packages.htm" title="Kolkata Tour Packages">Kolkata</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.parjatakuttarbangla.co.in/siliguri-tour-packages.htm" title="Siliguri Tour Packages">Siliguri</a> <b class="alpha50 bn small">(1)</b></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.parjatakuttarbangla.co.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.parjatakuttarbangla.co.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(3)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Gangtok, Darjeeling, Kalimpong, Siliguri</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.parjatakuttarbangla.co.in/holiday-packages/kolkata-darjeeling-gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/616316/298272.jpg"  alt="Kolkata Darjeeling Gangtok Tour" title="Kolkata Darjeeling Gangtok Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.parjatakuttarbangla.co.in/holiday-packages/kolkata-darjeeling-gangtok-tour.htm" title="Kolkata Darjeeling Gangtok Tour"><h3>Kolkata Darjeeling Gangtok Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Kolkata</p>
															<div class="mt10px small">
							<form name="pkg_189949" id="pkg_189949" method="post" action="http://www.parjatakuttarbangla.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.parjatakuttarbangla.co.in/holiday-packages/kolkata-darjeeling-gangtok-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Kolkata Darjeeling Gangtok Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="189949"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.parjatakuttarbangla.co.in/holiday-packages/north-east-delight-with-pelling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/616316/298270.jpg"  alt="North East Delight with Pelling Tour" title="North East Delight with Pelling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.parjatakuttarbangla.co.in/holiday-packages/north-east-delight-with-pelling-tour.htm" title="North East Delight with Pelling Tour"><h3>North East Delight With Pelling Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Kalimpong, Pelling</p>
															<div class="mt10px small">
							<form name="pkg_189947" id="pkg_189947" method="post" action="http://www.parjatakuttarbangla.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.parjatakuttarbangla.co.in/holiday-packages/north-east-delight-with-pelling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="North East Delight with Pelling Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="189947"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.parjatakuttarbangla.co.in/holiday-packages/blissful-sikkim-darjeeling-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/616316/298271.jpg"  alt="Blissful Sikkim Darjeeling Package" title="Blissful Sikkim Darjeeling Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.parjatakuttarbangla.co.in/holiday-packages/blissful-sikkim-darjeeling-package.htm" title="Blissful Sikkim Darjeeling Package"><h3>Blissful Sikkim Darjeeling Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling, Pelling</p>
															<div class="mt10px small">
							<form name="pkg_189948" id="pkg_189948" method="post" action="http://www.parjatakuttarbangla.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.parjatakuttarbangla.co.in/holiday-packages/blissful-sikkim-darjeeling-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Blissful Sikkim Darjeeling Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="189948"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.parjatakuttarbangla.co.in/holiday-packages/darjeeling-gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/616316/298268.jpg"  alt="Darjeeling Gangtok Tour" title="Darjeeling Gangtok Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.parjatakuttarbangla.co.in/holiday-packages/darjeeling-gangtok-tour.htm" title="Darjeeling Gangtok Tour"><h3>Darjeeling Gangtok Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_189945" id="pkg_189945" method="post" action="http://www.parjatakuttarbangla.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.parjatakuttarbangla.co.in/holiday-packages/darjeeling-gangtok-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Darjeeling Gangtok Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="189945"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.parjatakuttarbangla.co.in/holiday-packages/mesmerizing-darjeeling-gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_21/616316/298267.jpg"  alt="Mesmerizing Darjeeling Gangtok Tour" title="Mesmerizing Darjeeling Gangtok Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.parjatakuttarbangla.co.in/holiday-packages/mesmerizing-darjeeling-gangtok-tour.htm" title="Mesmerizing Darjeeling Gangtok Tour"><h3>Mesmerizing Darjeeling Gangtok Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok, Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_189944" id="pkg_189944" method="post" action="http://www.parjatakuttarbangla.co.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.parjatakuttarbangla.co.in/holiday-packages/mesmerizing-darjeeling-gangtok-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Mesmerizing Darjeeling Gangtok Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="189944"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:67:"Book North East Honeymoon Package - 7 Nights / 8 Days Tour Packages";i:2;s:151:"book north east honeymoon package - 7 nights / 8 days tour packages, hill station tour packages, gangtok, darjeeling, kalimpong, siliguri tour packages";i:3;s:203:"Book North East Honeymoon Package - 7 Nights / 8 Days tour packages from Parjatak Uttarbangla - Get attractive 7 Nights / 8 Days Hill Station  tour packages for  Gangtok, Darjeeling, Kalimpong, Siliguri.";i:4;s:440:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling, Kalimpong, Siliguri"        
		                 },
		      "description": "",
		      "name": "North East Honeymoon Package",
		      "telephone": "+91-8900542354"
		    }
		    </script>
			";i:5;N;}