a:7:{i:0;s:9351:"				<div class="h1"><h1>Himachal Honeymoon Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="https://www.heavensgroup.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="https://www.heavensgroup.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Himachal Honeymoon Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Shimla, Kullu, Manali, Kufri, Solang Valley, Rohtang Pass, Lodi Gardens, India Gate</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.heavensgroup.co.in/travel-inquiry.htm">
						<input type="hidden" name="subject" value="Himachal Honeymoon Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="43819"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/278544/86811.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278544/86811.jpg"  height="150"  width="150"    alt="Himachal Honeymoon Tour" title="Himachal Honeymoon Tour" loading="lazy"></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
											<div class="headHr">
			            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
			            </div>
			            
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 1:</b> Delhi - Arrival
								</p>
								<p class="aj">Shortly after your arrival at Delhi Airport, you’ll be assisted in your transfer by a representative who escorts you to the hotel. Soon after you check in, later in the day, get on with a local jaunt to New Delhi and Old Delhi. The attractions in Delhi you must watch out for are Chatta Chowk, Jama Masjid, Lahore Gate, Moti Masjid and Rajghat. As you head for New Delhi, the must-see places are Rastrapati Bhavan, Lakshmi Narayan Temple, Lodi Gardens, India Gate and Jantar Mantar. You can keep evening for leisure shopping and later get back to the hotel for dinner and night stay.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 2:</b> Delhi - Shimla
								</p>
								<p class="aj">Drive down to Shimla, soon after savoring breakfast, which is also called the "Queen of Hill Stations". Check into a hotel reserved, and shortly after arriving, spend the rest of the day at leisure. Stroll around the local open market or simply take delight in the romantic backdrop of the imposing Himalayas. You stay at the hotel 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 3:</b> Shimla
								</p>
								<p class="aj">As you finish munching your breakfast, you go ahead and take a voyage to Shimla exploring the preeminent tourist spots. The sought-after ones to touch upon are Mall Road, Jakhoo Hill, Chadwick Falls, Himachal State Museum, Summer Hill and Prospect Hill. In the noontime, you can make your way to Kufri Valley for an exciting expedition. Return to your guesthouse for dinner and night stay.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 4:</b> Shimla - Kullu - Manali
								</p>
								<p class="aj">After your morning supper you ensue to Manali and visit Kullu Valley on your way. Take a glance at the lush fields and the orchards of apple, cherry and plum. Kullu Valley is often regarded as the Dwelling of God and is crammed with picturesque locales. The town is also noted for Dusshera Festival. After exploring Kullu, move on to Manali and check into a guesthouse as you arrive for an overnight stay.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 5:</b> Manali
								</p>
								<p class="aj">On this day, you continue the jaunt to Manali. After a delicious breakfast, walk around the places like Hidimba Devi Temple, Kothi, Solang Valley, Rahalla Falls, Nehru Kund, Rohtang Pass, Arjuna Gufa, and Bhrighu Lake. Return to the resort after sundown for your night stay and dinner.</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> Manali - Manikaran - Manali
								</p>
								<p class="aj">With the daybreak, you are taken on a one-day expedition to Manikaran that has the hottest Sulphur Spring in the world. This is a devout spot for Sikhs and Hindus. You may take a dip in the healing, mineral-rich waters of the spring and devour the Langar, a charitable meal organized by the Gurudwara committee. Get back to your hotel for dinner in the evening and count the sheep comfortably.</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> Manali - Delhi
								</p>
								<p class="aj">The final day entails a 12-hour journey by road to Delhi, from where you can catch the flight back home or your next stopover. The trip marks the end of the vacation tour and features halts at planned tourist hotspots.</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount * Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. * Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.heavensgroup.co.in/travel-inquiry.htm">
						<input type="hidden" name="subject" value="Himachal Honeymoon Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="43819"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Himachal Honeymoon Tour - 6 Nights / 7 Days Tour Packages";i:2;s:211:"book himachal honeymoon tour - 6 nights / 7 days tour packages, hill stations & valleys tour packages, new delhi, shimla, kullu, manali, kufri, solang valley, rohtang pass, lodi gardens, india gate tour packages";i:3;s:256:"Book Himachal Honeymoon Tour - 6 Nights / 7 Days tour packages from Heavens Group - Get attractive 6 Nights / 7 Days Hill Stations & Valleys  tour packages for  New Delhi, Shimla, Kullu, Manali, Kufri, Solang Valley, Rohtang Pass, Lodi Gardens, India Gate.";i:4;s:475:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Shimla, Kullu, Manali, Kufri, Solang Valley, Rohtang Pass, Lodi Gardens, India Gate"        
		                 },
		      "description": "",
		      "name": "Himachal Honeymoon Tour",
		      "telephone": "+91-9034015552"
		    }
		    </script>
			";i:5;N;i:6;N;}