a:6:{i:0;s:35868:"						<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">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-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-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-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;}