a:6:{i:0;s:12151:"				<div class="h1"><h1>Honeymoon Tours Himachal</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.journeyasia.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.journeyasia.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Honeymoon Tours Himachal</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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Shimla, Dharamshala, Haridwar, Rishikesh, Kangra</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </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="http://www.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Honeymoon Tours Himachal - 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="107877"/>
						</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_1/7828/178774.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/7828/178774.jpg"  width="150" height="150"    alt="Honeymoon Tours Himachal" title="Honeymoon Tours Himachal" /></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
								</p>
								<p class="aj">Welcome to Delhi. <br />
Transfer to hotel for 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 2:</b> Delhi
								</p>
								<p class="aj">Early morning sightseeing tour of Old and New Delhi.<br />
Delhi - The capital of India, Delhi has been centre of political turmoil since 13th century. The day includes a visit to the Yogmaya Temple, the temple complex of Laxmi Narayan, the famous Chattarpur Temple and the Bahai Temple, also known as the Lotus Temple. Raj Ghat in Delhi, the cremation site of Mahatama Gandhi, Father Of India, is much like a sacred temple to every patriotic Indian heart too. Enjoy a bit of astrological predictions and findings in the evening at Old Delhi, after which you are free to do shopping and relax. Ride a cycle rickshaw through the crowded streets of the markets of Chandni Chowk Bazaar to Jama Masjid, the largest mosque in India in Old Delhi. In New Delhi, you can visit Dilli Haat, best place to look at Indian handicrafts and drive over the Rajpath, the site for Republic Day Parade of India to India Gate, a tribute to the martyrs who sacrificed their lives for their nation. You can see the President's House from outside and visit the 16th century Humayun's Tomb, Safdarjung's Tomb and Qutub Minar.<br />
Overnight stay at hotel.</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> Dharmasala
								</p>
								<p class="aj">Drive to Dharamsala, the land of Dalai Lama.<br />
Dharamsala - The gateway to the Kangra valley, Dharamsala has some delightful treks. The home to the exiled Tibetan government and their spiritual and political leader Dalai Lama, it is a desirable hill resort of Himachal Pradesh. Besides the panoramic views of Dhauladhar range above and the Kangra valley below, it is a famed education and religious center of Tibetan Buddhism. With number of monasteries and nunneries in the McLeod Ganj region, it offers deep insight into the Tibetan art, craft and culture. You can venture rock climbing here too.<br />
Sightseeing tour of the city and optional excursion to Dal Lake.</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> Kangra Valley
								</p>
								<p class="aj">Sightseeing tour of Dharamsala and Kangra Valley.<br />
Overnight stay at hotel</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> Shimla
								</p>
								<p class="aj">Drive to Shimla, the summer capital of India.<br />
Transfer to hotel for 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 6:</b> Shimla
								</p>
								<p class="aj">Sightseeing and nature walk tour of the city including the Mall, Christ Church, Narkanda and Kufri.<br />
Shimla - The mountain resort named after the goddess Shyamala Devi was once the summer capital of British India. It is situated at an altitude of 2159 m above sea level. With a picture perfect beauteous surroundings, it is also a place for adventure sports such as river rafting, angling for trout trekking and rock climbing and recreational activities such as camping and golfing. There are beautiful churches in Shimla such as Christ church and St. Michael's Cathedral. Besides, there are Jakhu temple close to the highest point of the Shimla ridge and the Mall for shopping.<br />
Overnight stay at hotel.</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> Rishikesh
								</p>
								<p class="aj">Drive to Rishikesh. Transfer to hotel for overnight stay. <br />
Visit to Lakshmana Jhula. Rest of the day free to explore the city.<br />
Rishikesh - 24 km from Haridwar, Rishikesh makes a wonderful entry point to the four major Hindu pilgrimage centres - Badrinath, Kedarnath, Gangotri and Yamunotri. It is also known as 'Yoga Capital of the World' and has a number of yoga and meditation centers to boast of. It has also been increasingly attracting the attention of adventure tourists from all over the world because of the exciting opportunities of trekking and white water rafting. You will visit various Ashrams, temples and yoga and meditation centers during the day and you can even talk to the holy saints who could enlighten you about the subtle points of Hindu philosophy. In the evening, witness the evening aarti at Triveni Ghat (bank) of River Ganges and meet the legendary saint Sri Godavari Giri Ji Maharaj</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> Haridwar
								</p>
								<p class="aj">Excursion to Haridwar. <br />
Watch 7 PM 'aarti' of river Ganges. Sightseeing tour of the city.<br />
Haridwar - An ancient Hindu pilgrimage site at the foothills of Himalayas, Haridwar is one of the venues of the famous Kumbha Mela, which is held here once in every twelve years besides the Ardh Kumbh Mela, held every six years. Besides the innumerable temples of Haridwar, there are five main bathing spots here that are considered sacred and are prime locations for those who visit here for religious purposes. They are Gangadwara, Kankhal, Nila Parvata, Bilwa Theertha and Kusavarta. Hari-ki-Pairi distorted to Har-ki-Pauri. The last one is however the main ghat at Haridwar, which is believed to have a footprint of Lord Vishnu himself on a stone in a wall.<br />
Overnight stay at Rishikesh.</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 9:</b> Delhi
								</p>
								<p class="aj">Drive back to Delhi.<br />
Transfer to airport for flight to onward destination.<br />
fter breakfast, flight to Delhi. In Delhi, transfer to airport for flight to onward destination</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>
																		<li>Sightseeing</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="http://www.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Honeymoon Tours Himachal - 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="107877"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Honeymoon Tours Himachal - 8 Nights / 9 Days Tour Packages";i:2;s:162:"book honeymoon tours himachal - 8 nights / 9 days tour packages, valley tour packages, new delhi, shimla, dharamshala, haridwar, rishikesh, kangra tour packages";i:3;s:191:"Journey Asia offers Honeymoon Tours Himachal - 8 Nights / 9 Days tour package, budget Valley tour packages for New Delhi, Shimla, Dharamshala, Haridwar, Rishikesh, Kangra at exciting price.";i:4;s:457:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Shimla, Dharamshala, Haridwar, Rishikesh, Kangra"        
		                 },
		      "description": "",
		      "name": "Honeymoon Tours Himachal",
		      "telephone": "+91-9910078863"
		    }
		    </script>
			";i:5;N;}