a:6:{i:0;s:36329:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Himalayan Bliss Honeymoon Package</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.maamanashatourtravels.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.maamanashatourtravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Himalayan Bliss 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-->				
									<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/154338.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/154338.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/154338.jpg"  alt="Himalayan Bliss Honeymoon Package" title="Himalayan Bliss Honeymoon Package" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
												
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">Himalayan Bliss Honeymoon Package</p>
					
											<p class="mb5px"><b>Duration :</b> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Gangtok, Darjeeling</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himalayan Bliss Honeymoon Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="88790"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
													<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Arrival and Transfer to Darjeeling										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												As soon as you reach, New Jalpaiguri Railway Station (70.3 km) / Bagdogra Airport (65.3 km) / Tenzing Norgay Bus Stand (61.9 km), our representative will meet and assist while you take a transfer.

Resting in the foothills of the Himalayas, Darjeeling is a tantalizing hill-town, which magnetizes tourists from all over the world. The destination is renowned for World Heritage Train, which has been affirmed a World Heritage Site by UNESCO. Take pleasure in the spectacular sights of the Himalayas, pay respects at alluring monasteries and experience natural charm at its best. Darjeeling is the ultimate destination if you wish to spend some private time away from the bustling noises of cities.

After arriving to Darjeeling, check-in to the guesthouse. After sundown, walk around the mall or the local market place. Stay overnight at the hotel.															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Darjeeling Local Sight Seeing (Half Day)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Kickstart the day early and head towards the Tiger Hill. Situated at a distance of 11 km from Darjeeling, Tiger Hill is popular as it offers enchanting views of the Kanchenjunga peaks. Get mesmerized a sunrise like never before. As the sun rays fall on the peaks, you get to witness a flawless view.

The loftiest point of Darjeeling, Tiger Hill is a grand location if you desire to chum around with your partner amid serenity. The spot is also regarded ideal for ventures like trekking and hiking. After enjoying a mesmerizing sunrise, depart for Darjeeling. While returning, visit attractions like Ghoom Monastery, Batasia Loop and War Memorial. 

Pay obeisance to Maitreya Buddha at Ghoom Monastery. Also recognized as Yogachoeling Gompa, Ghoom Monastery is built in a place called Ghoom in Darjeeling. The Gompa was erected back in the year 1875 and it houses a number of bells, ornate thanka scrolls and drums.

War Memorial stands in the Batasia Loop Garden. The memorial was built to commemorate the Gorkha soldiers who were martyred during wars and operations post independence.

Batasia Loop is a notable tourist destination in Darjeeling. It is the location from where the popular toy train of Darjeeling passes in a loop like pattern. Also, the place offers mesmerizing views of the Himalayas. Enjoy some time close to natural world with your beloved and take back some great reminiscences.

Shortly after arriving back to the hotel, savor your morning supper and then depart for sightseeing. Your half-day sightseeing trip includes visit to Padmaja Naidu Zoological Park, Himalayan Mountaineering Institute (Closed on Thursday), Ropeway, Tensing and Gombu Rock, Tibetan Refugee Self Help Center (Closed on Sunday), Tea Estate, Natural History Museum (Sunday Closed) and Peace Pagoda.

Commence with a visit to Peace Pagoda. Peace Pagoda was positioned to unite people of all castes and creeds. It aims to extend harmony and success in the humankind. The Pagoda displays four diverse avatars of Buddha, including that of Maitreya Buddha.

Don’t miss visiting tea plantations when in Darjeeling. Take a stroll through the tea plantations and get to find out about the entire tea processing.

Cable car is another key visitor’s attraction of Darjeeling. Enjoy fabulous views of snow-capped peaks, thick woods and verdant meadows from the cable car ride. Relish some special moments with your other half.

Later, return to the hotel. Evening is at leisure for strolling around the mall or Chowk Bazaar. 

Have a cozy night stay in the hotel.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Excursion to Mirik (Full Day)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Shortly after munching your breakfast, leave for your full day jaunt to Mirik. En-route, enjoy the ensnaring sights and capture some of them on camera.

Set at an altitude of 1,495 m, Mirik is a destination well-known for its scenic prettiness. The location of the place is unblemished, and if you wish, you can unwind and rejuvenate away from the crowded cities. Covered by pine forests, Mirik attracts nature lovers across worldwide.

Sumendu Lake is the star-studded highlight of Mirik. This tranquil lake is well-known for its tea gardens, cardamom groves and orchards. Take a stroll by the lake and relish the fantastic views of the Himalayas with your spouse. Enjoy activities like boating and horse riding.

While returning to Darjeeling, embark a jaunt to the popular Pashupati Market and shop for some imported items like clothes and cosmetics. After sundown, go for a stroll around the guesthouse or local market area. Retire for the night at Darjeeling.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> Transfer to Gangtok										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												This morning, munch your breakfast and then leave for your subsequent destination, Gangtok.

Around 97 km from Darjeeling, Gangtok is the capital of the state Sikkim and a renowned tourist destination. Revered monasteries, enchanting gardens, pleasing weather, this destination has all what you require for a flawless vacay with your betrothed. The multi-hued ambience of the place is so pretty that it makes you come back again and again. Gangtok is also known as the abode of monasteries because it houses multiple monasteries like Enchey Monastery, Rumtek Monastery and Do- Drul Chorten. The location is a haven for adventure buffs as it offers a number of activities like trekking and hiking.

On reaching, check-in to the guesthouse. Go for a long walk around M G Road (Mall) and enjoy the soothing weather of the place. Relax overnight at Gangtok.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 5											
											:</b> Gangtok Local Sight Seeing (Full Day)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Savor a lip-smacking breakfast and then depart for your Gangtok city jaunt. This city trip covers chief destinations of Gangtok. Catch a glimpse of  attractions like Enchey Monastery, Ganesh Tok, Directorate of Handicrafts & Handloom, Research Institute of Tibetology, Rumtek Monastery, Do Drul Chorten (Stupa), Flower Show, Hanuman Tok, Tashi View Point and Banjhakri Falls.

Directorate of Handicrafts & Handloom is a government-commissioned which deserves a visit from every art admirer. The place conserves traditional arts and handicrafts of Sikkim. Here you can shop for items like carved wooden handicrafts, woven blankets, shawls and more.

One of the venerated places of worship in Gangtok, Enchey Monastery was established back in the year 1909. It is said that the location of the monastery was sanctified by Lama Drupthob Karpo, who was a maven in a tantric art of Buddhism. Also, it is assumed that protecting deities- Khangchendzonga and Yabdean dwell in the monastery. The monastery also offers mesmerizing views of Mount Kanchenjunga.

Do- drul Chorten Stupa is one of the biggest Stupas in Sikkim state. The structural design of the stupa is so convoluted and mesmerizing, that it promises to leave every visitor awe-struck. One can find holy texts and many other pious objects inside the stupa.

Banjhakri Falls is a key place of concern in Gangtok. The attraction is noted for its scenic prettiness and deserves a visit from all tourists traveling to Gangtok. Stairwells and tantalizing sculptures enhance the charm of the place and make it more captivating.

After sightseeing at all these attractions, return to the guesthouse. After sundown, visit the mall or the local shopping center of Gangtok. Experience the nightlife of Gangtok with a visit to any of its popular taverns.

Retire for the night at Gangtok.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 6											
											:</b> Excursion to Tsomgo Lake & Baba Mandir (Full Day)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Soon after savoring your breakfast, leave for daytime excursion to Baba Mandir and Tsomgo Lake.

Set at a distance of around 39 km from Gangtok, Tsomgo Lake is a sacred lake which is revered by Sikkimese. The exquisiteness of the lake lies in its picturesque and tranquil milieu. There is a small shrine dedicated to Lord Shiva built on the lake side. Tsomgo Lake is an abode to Brahmini ducks and distinguished migratory birds. The scenic location of the lake makes it perfect for chumming around with your beloved.

Baba Mandir is a sacred shrine, dedicated to Indian Army Soldier, Harbhajan Singh who was martyred near Nathula Pass. It is said that after his demise, he appeared in the dreams of many soldiers and told them to build a shrine to commemorate him. Also, it is assumed that Harbhajan Singh is still ‘on-duty’ and he visits every night, puts on his uniform and goes for his rounds. Baba Harbhajan Singh is revered as a sage to safeguard the lives of the soldiers posted on the borders. People believe that the shrine of Harbhajan Singh has spiritual vibes and they visit from all over to get blessed by the soldier.

There is also an option of visiting Nathula Pass. After this hectic excursion, head back to Gangtok. Visit M G Road (Mall) or local shopping center in the evening. Loosen up yourself for an overnight stay in Gangtok.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 7											
											:</b> Departure – Gangtok to Siliguri										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Shortly after munching the morning feast, leave for Siliguri / New Jalpaiguri Railway Station (119 km) / Bagdogra Airport (126 km) / Tenzing Norgay Bus Stand (113 km). On arrival, bid adieu for your onward journey.			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<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 
* 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">Accommodation</p>
						</div>				
		
				    	<table class="mb15px bdrall bdreee w100 p5px15px formTable">
						<tr class="headVr b">
						<td class="p5px10px">City</td>
						<td class="p5px10px">Hotel Name</td>
						<td class="p5px10px">Star Rating</td>
						</tr>
												</tbody>
						</table>
						</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. 
* Retention Amount varies as per the number of days left before your package start date.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himalayan Bliss 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="88790"/>
						</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.maamanashatourtravels.com/packages-in-guwahati.htm" title="Packages in Guwahati">Guwahati</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-shillong.htm" title="Packages in Shillong">Shillong</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-kathmandu.htm" title="Packages in Kathmandu">Kathmandu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-cherrapunji.htm" title="Packages in Cherrapunji">Cherrapunji</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-thimphu.htm" title="Packages in Thimphu">Thimphu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-punakha.htm" title="Packages in Punakha">Punakha</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-nagarkot.htm" title="Packages in Nagarkot">Nagarkot</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-jalpaiguri.htm" title="Packages in Jalpaiguri">Jalpaiguri</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-bhaktapur.htm" title="Packages in Bhaktapur">Bhaktapur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-paro.htm" title="Packages in Paro">Paro</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-jorhat.htm" title="Packages in Jorhat">Jorhat</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maamanashatourtravels.com/packages-in-kaziranga.htm" title="Packages in Kaziranga">Kaziranga</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></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.maamanashatourtravels.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maamanashatourtravels.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</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</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.maamanashatourtravels.com/tour-packages/gangtok-pelling-darjeeling-tour07-nights08-days.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/152447.jpg"  alt="Gangtok Pelling Darjeeling Tour 07 Nights / 08 Days" title="Gangtok Pelling Darjeeling Tour 07 Nights / 08 Days"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/gangtok-pelling-darjeeling-tour07-nights08-days.htm" title="Gangtok Pelling Darjeeling Tour 07 Nights / 08 Days"><h3>Gangtok Pelling Darjeeling Tour 07 Nights ..</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_87354" id="pkg_87354" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/gangtok-pelling-darjeeling-tour07-nights08-days.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Gangtok Pelling Darjeeling Tour 07 Nights / 08 Days - 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="87354"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/gangtok-and-pelling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/152428.jpg"  alt="Gangtok and Pelling Tour" title="Gangtok and Pelling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/gangtok-and-pelling-tour.htm" title="Gangtok and Pelling Tour"><h3>Gangtok And 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> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok</p>
															<div class="mt10px small">
							<form name="pkg_87341" id="pkg_87341" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/gangtok-and-pelling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Gangtok and 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="87341"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/beautiful-darjeeling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/151005.jpg"  alt="Beautiful Darjeeling Tour" title="Beautiful Darjeeling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/beautiful-darjeeling-tour.htm" title="Beautiful Darjeeling Tour"><h3>Beautiful Darjeeling 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> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_86160" id="pkg_86160" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/beautiful-darjeeling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Beautiful Darjeeling 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="86160"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/weekendin-darjeeling-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/152426.jpg"  alt="Weekend in Darjeeling Tour" title="Weekend in Darjeeling Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/weekendin-darjeeling-tour.htm" title="Weekend in Darjeeling Tour"><h3>Weekend In Darjeeling 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> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Darjeeling</p>
															<div class="mt10px small">
							<form name="pkg_87340" id="pkg_87340" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/weekendin-darjeeling-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Weekend in Darjeeling 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="87340"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/mesmerizing-darjeeling-gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/151004.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.maamanashatourtravels.com/tour-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_86159" id="pkg_86159" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-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="86159"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.maamanashatourtravels.com/tour-packages/gangtok-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/449124/152436.jpg"  alt="Gangtok Tour" title="Gangtok Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.maamanashatourtravels.com/tour-packages/gangtok-tour.htm" title="Gangtok Tour"><h3>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> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Gangtok</p>
															<div class="mt10px small">
							<form name="pkg_87346" id="pkg_87346" method="post" action="http://www.maamanashatourtravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.maamanashatourtravels.com/tour-packages/gangtok-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="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="87346"/>
							</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:72:"Book Himalayan Bliss Honeymoon Package - 6 Nights / 7 Days Tour Packages";i:2;s:137:"book himalayan bliss honeymoon package - 6 nights / 7 days tour packages, lakes & rivers tour packages, gangtok, darjeeling tour packages";i:3;s:180:"Maa Manasha Tour & Travels offers Himalayan Bliss Honeymoon Package - 6 Nights / 7 Days tour package, budget Lakes & Rivers tour packages for Gangtok, Darjeeling at exciting price.";i:4;s:424:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Gangtok, Darjeeling"        
		                 },
		      "description": "",
		      "name": "Himalayan Bliss Honeymoon Package",
		      "telephone": "+91-9002570751"
		    }
		    </script>
			";i:5;N;}