a:6:{i:0;s:23104:"				<div class="h1"><h1>Himachal Honeymoon Special Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.northindiatravel.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.northindiatravel.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Himachal Honeymoon Special 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">
						14 Nights / 15 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Chandigarh, Chamba, Dalhousie, Khajjiar, Kufri, Kullu, Manali, Mandi, Manikaran, Shimla, Dharamshala, Amritsar, Mcleodganj</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.northindiatravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himachal Honeymoon Special 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="43257"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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_11/307359/85772.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_11/307359/85772.jpg"  width="150" height="150"    alt="Himachal Honeymoon Special Tour" title="Himachal Honeymoon Special Tour" /></a></p></div></li>
																		<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_11/307359/85769.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_11/307359/85769.jpg"  width="150" height="150"    alt="Himachal Honeymoon Special Tour" title="Himachal Honeymoon Special Tour" /></a></p></div></li>
																		<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_11/307359/85770.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_11/307359/85770.jpg"  width="150" height="150"    alt="Himachal Honeymoon Special Tour" title="Himachal Honeymoon Special Tour" /></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> Chandigarh to Shimla, Local market Visit
								</p>
								<p class="aj">Pick Up Chandigarh Railway Station see Run way side Seen To Move Shimla. Local market visit. Night Shimla.<br />
</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> Shimla to Kufri & Local temples Visit
								</p>
								<p class="aj">Morning After Breakfast See Run way Side Seen to Move kufri. Kufri is famous for its Himalayan Panorama from Kufri, explore the various places in and around Shimla. Lying just 24 km from Shimla Mall Road, Shilon Bagh houses outstanding resorts. From here you can access easily a fabulous tourist destination Kufri, situated at (2,633 meters in height) 16 km far from Shimla. The region is an epitome of serenity and tranquility that embraces the most pristine and breathtaking environs. The region is highly visited for its awe-inspiring beauty that is the love of every backpacker who wishes to rejoice amidst the most natural environs of Shimla. Apart from this, the region offers some of the finest accommodation facilities to travelers to make sure they enjoy the most empyrean luxury and comfort. Another tourist attraction Jakhu Hill is located just 2 km away from Shimla.<br />
<br />
Lying at a height of 8000 ft, Jakhu Hill has the highest peak of this hill station, offering an amusing view of Shimla and also the snow-clad Himalayas. The Jakhu Hill is also home to the famous Jakhu temple, which is located the hill comprises a large statue of Lord Hanuman that stands at an elevation of 2,455 m (8,000 feet) above sea level and is one of its kind to be situated at such great height. Dedicated to Lord Hanuman, The temple is one of the most pious places in Shimla that is visited by numerous travelers & Local side Seen. Visit. Night Shimla.</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 local Market & Local side seen Visit
								</p>
								<p class="aj">Shimla One of the most popular places to go to for shopping is at the Mall road in Shimla.This place is the shopping hub and commercial center of Shimla, local side seenthe Shimla. All Local side seen, National Park Poney and Yak Ride and One can see the endless Himalayan One can find smallSouvenirs and knick- knacks here along handicrafts and other artifacts that Shimla is famous for.You can buy the famous Himachali caps that are available in almost any Project, Pandoh dam local.The Ridge that lies along the famous Mall Road is the main venue of all the cultural activities in the town. Being the most popular shopping center in the city, Shimla Ridge links the most important commercial spots such as Lakkar Bazaar, The Mall, Scandal Point, Jakhoo Hill, among others. The Ridge is home to numerous Shimla's landmarks built in Neo-Gothic style that are a must for sightseeing in Shimla. The place is host to the famous Shimla Summer festival that goes on for 5 days and invites travelers from all corners of the world. The festival showcases different performances by local and national artists. Christ Church is the second oldest church in Northern India, Night Shimla.</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 to Kullu to Mandi to Manali
								</p>
								<p class="aj">Shimla local market visit. See Run way Side Seen to Kullu to Mandi, Mandi local Market visit & Then Move Manali, Manali is situated near the end of the valley on the National Highway leading to Leh. The landscape here is breath taking. One sees well-defined snow capped peaks, the Beas river with its clear water meanders through the town. On the other side are deodar and pine trees, tiny fields and fruit orchards. It is an excellent place for a holiday, a favorite resort for trekkers to Lahaul, Spiti, Bara Bhangal, and Zanskar ranges. Night Manali.</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 to Rohtangpass & Manali Local market Visit
								</p>
								<p class="aj">Morning move to Rotangpass, gateway to Lahaul-Spiti valley. It affords a wide panoramic view of the mountains. Here one sees the majesty of the mountains at its height and splendour. At the top of the pass the air seems to glitter against the snow as you look down over herringboned ridges into the Lahaul valley Rohtang pass - and enjoy the hight, back manali & Visit local market. Night Manali.</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 Local Side Seen Visit
								</p>
								<p class="aj">Morning see local manali like Hadimba temple, Manu temple,Vashisht Bath, Van Vihar,see run way side seen Manali is situated near the end of the valley on the National Highway leading to Leh. Thelandscape here is breath taking. One sees well-defined snow capped peaks, the Beas river with its clear water meanders through the town. On the other side are deodar and pine trees, tiny fields and fruit orchards. It is an excellent place for a holiday, a favorite resort for trekkers to Lahaul, Spiti, Bara Bhangal, and Zanskar ranges. From temples to antiquity, to picturesque sight-seeing spots and adventur activities, Manali is a popular resort for all seasons and for all travellers visit,see run way side seen Manali is situated near the end of the valley on the National Highway leading to Leh. The landscape here is breath taking. One sees well-defined snow capped peaks, the Beas river with its clear water meanders through the town. On the other side are deodar and pine trees, tiny fields and fruit orchards. It is an excellent place for a holiday, a favorite resort for trekkers to Lahaul, Spiti, Bara Bhangal (Kangra), and Zanskar ranges. From temples to antiquity, to picturesque sight-seeing spots and adventure activities, Manali is a popular resort for all seasons and for all travelers Explore the beautiful surrounding of Manali.Enjoy thrills of Water Rafting in Beas river (subject to operation). Free time for shopping or leisure activities. Enjoy get together with your travel companions in the evening. See local side seen and local market. Night Manali.</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 to Manikaran to Dharamshala
								</p>
								<p class="aj">Morning After Breakfast See run Way Side Seen To visit manikarn Manikaran, is famous for its hot springs. Thousands of people take a holy dip in hot waters here. The water is so hot that dal, rice & vegetables etc. can be cooked in it. It is also a well known pilgrimage place for both Hindus & Sikhs. Ramchandra and Shivaji temples besides a Gurudwara are there. According to an old legend, Manikaran is connected with Lord Shiva and his divine consort, Parvati, who lost her ear rings here, which gave birth to hot waters on the bank of Parvati river Manikaran is a pilgrimage centre for Hindus and Sikhs. The Hindus believe that Manu recreated human life in Manikaran after the flood, making it a sacred area. It has many temples and a gurudwara. There are temples of the Hindu deities Rama, Krishna, and Vishnu.[2] The area is well known for its hot springs[3] and its beautiful landscape. Night Dharamshala.</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> Dharamshala to Nadi to McleodganJ
								</p>
								<p class="aj">Morning After Breakfast check Out Hotel Visit Nadi After This.Visit - Mcleodganj :- The arrival of the Tibetan spiritual leader, the Dalai Lama, along with thousands of refugees to Dharamshala in 1959 made the life here more active. A number of tibetan settlements with religious education and other rehabilitation centres mushroomed all over the Mcleadganj. As Dharamshala became the headquarter of the Tibetan Government in exile, headed by Dalai Lama, it gained prominence all over the world and prominent personalities started arriving here. Mcleodganj emerged as a major Buddhist. Night Dharamshala.</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> Dharamshala to Dalhousie local Market
								</p>
								<p class="aj">Buddhist Dharamshala local see run way side seen to Move Dalhousie has been named after the British Governor - General of the l9th century, Lord Dalhousie. Surrounded by varied vegetation - pines, dodders, oaks and flowering rhododendron. Visit Dalhousie Local Market Visit. Night Dalhousie.</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 10:</b> Dalhousie to Chamba to Khajjiar
								</p>
								<p class="aj">Morning move Chamba TEMPLES IN CHAMBA : Lakshmi Narayan Temple, Chamba Lakshmi Narayan Temple, which is the main temple of Chamba town, was built by Raja Sahil Verma in the 10th century AD. Built in Shikhara style, the temple consists of Bimana i.e. Shikhara and Garbh Griha with a small antralya. Lakshmi Narayana Temple has a mandapa like structure also. The wooden chhattries, the shell roof, atop the temple were in response to the local climatic conditions as a protection against snowfall. MUSEUMS IN CHAMBA :- Bhuri Singh Museum, Chamba : A veritable storehouse of exquisite paintings of the famous Kangra and Basholi schools, as well as a mass of epigraphical material on the history of Chamba. Also housed in the museum are woodcarvings, ancient manuscripts and murals from Rang Mahal Chaugan, Chamba : This public promenade situated in the heart of the town is a grassy maidan less than one-kilometre in length and about seventy-five meters wide is a busy local trading centre for villagers from the surrounding hills. Each year Chaugan is the site for the 'Minjar' procession, a fair that lasts a week and comprise of large number of sports and cultural activities. Church of Scotland, Chamba The Presbyterian Church and Mission House of the Church of Scotland lie opposite the Museum. After This Visit khajjiar see runway side seen,run way side seen, go to Khajjiar (Indian ini Switzerland) Dalhousie surrounded by thick Deodar forest. Drive from Dalhousie to Khajjiar is awesome. and see all side seen. Night Dalhousie.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Dalhousie Local sightseeing to Amritsar
									</p>
									<p class="aj">Morning After Breakfast Visit Local sightseeing of Dalhousie includes visit to Panjipula, Subhash valley, Kalatop, St. Andrew's Church: St. Andrew's Church was built in the year 1903 at baloon by protestant Christians and commonly known as the Church of Scotland. St. Jonh's Church:<br />
<br />
The church is approximately 2 km from the main bus stand and it stands on the Gandhi chowk. Rev. John H. Pratt came to Dalhousie in 1863 and inspired the Christian community to build a permanent church building at this place.<br />
<br />
Dainkund: Dainkund is only 10 km. one can enjoy the beautiful view of the hills, with the rivers Ravi, Beas and chenab threading through the distance. A Devi Temple is also situated on the hill Baoli (1 km). It was at this enchaining spot surrounded by majestic trees, that Subhash Chandra Bose spent a lot of time in 1937, contemplating and mediating. After This See run way Side Seen to move Amritsar Visit Night View Golden Temple. Night Amritsar.</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 12:</b> Amritsar Local side Seen Visit
									</p>
									<p class="aj">Morning After Breakfast visit, Golden Temple, Durgiyana Mandir, Local Market, Jallianwala bagh, Evening time Bhaga Border visit. Night Amritsar.</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 13:</b> Amritsar Local market to Chandigarh
									</p>
									<p class="aj">Morning After Breakfast visit Local market Chandigarh & Sukhna Lake in Chandigarh, India is a reservoir at the foothills of the Himalayas, the Shivalik hills. This 3 km* rainfed lake was created in 1958 by damming the Sukhna Choe, a seasonal stream coming down from the Shivalik Hills. Originally the seasonal flow entered the lake directly causing heavy siltation. To check the inflow of silt, 25.42 km² of land was acquired in the catchment area and put under vegetation. In 1974, the Choe was diverted and made to bypass the lake completely, the lake being fed by three siltation pots, minimising the entry of silt into the lake itself. Night Chandigarh.</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 14:</b> Chandigarh Local side Seen Visit
									</p>
									<p class="aj">Garden was established in 1967 under the guidance of Chandigarh's first Chief Commissioner late Dr M S Randhawa. The largest Rose Garden in Asia, it is spread over an area of 27 acres and has more than 17,000 plants representing some 1,600 varieties of roses as well as several fountains. Alongwith the roses emphasis was also given on the trees of medicinal value and some unique specimen trees to enhance the beauty of the garden. The medicinal trees planted here are bel, bahera, harar, camphor and yellow gulmohar. This garden is the venue of the annual Festival of Gardens, an event listed on the national calendar of fairs and festivals. This is one of the main cultural events of the city and draws thousands of visitors. It was started in 1966. Rock Garden of Chandigarh is a sculpture garden in Chandigarh, India also known as Nek Chand's Rock Gardenafter its founder Nek Chand, a government official who started the garden secretly in his spare time in 1957. Today it is spread over an area of 40 acres (160,000 m*). It is completely built of industrial and home waste and thrown-away items. The garden is most famous for its sculptures made from recycled cerami Waterfall and path at Rock Garden, Chandigarh. It is near Sukhna Lake. It consists of man-made interlinked waterfalls and many other sculptures that have been made of scrap and other kinds of wastes (bottles, glasses, bangles, tiles, ceramic pots, sinks, electrical waste, etc.) which are placed in walled paths Night Chandigarh.</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 15:</b> Chandigarh Local Market to Drop Chandigarh
									</p>
									<p class="aj">Morning After breakfast Visit 17 Sector Market & shopping See Local Visit. After This Drop Chandigarh Station.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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.northindiatravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himachal Honeymoon Special 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="43257"/>
						</form>
						</div>
						
						";i:1;s:72:"Book Himachal Honeymoon Special Tour - 14 Nights / 15 Days Tour Packages";i:2;s:240:"book himachal honeymoon special tour - 14 nights / 15 days tour packages, lakes & rivers tour packages, chandigarh, chamba, dalhousie, khajjiar, kufri, kullu, manali, mandi, manikaran, shimla, dharamshala, amritsar, mcleodganj tour packages";i:3;s:289:"Book Himachal Honeymoon Special Tour - 14 Nights / 15 Days tour packages from MD Tour Travels - Get attractive 14 Nights / 15 Days Lakes & Rivers  tour packages for  Chandigarh, Chamba, Dalhousie, Khajjiar, Kufri, Kullu, Manali, Mandi, Manikaran, Shimla, Dharamshala, Amritsar, Mcleodganj.";i:4;s:525:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Chandigarh, Chamba, Dalhousie, Khajjiar, Kufri, Kullu, Manali, Mandi, Manikaran, Shimla, Dharamshala, Amritsar, Mcleodganj"        
		                 },
		      "description": "",
		      "name": "Himachal Honeymoon Special Tour",
		      "telephone": "+91-9646469331"
		    }
		    </script>
			";i:5;N;}