a:6:{i:0;s:26669:"				<div class="h1"><h1>Magnificent Himachal tour package</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>Magnificent Himachal tour package</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">
						10 Nights / 11 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Chandigarh City, Dalhousie, Khajjiar, Kufri, Kullu, Manali, Mandi, Shimla, Dharamshala, Amritsar</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="Magnificent Himachal tour 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="54697"/>
						</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_11/307359/105490.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_11/307359/105490.jpg"  height="150"  width="150"    alt="Magnificent Himachal tour package" title="Magnificent Himachal tour package" /></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 & Shimla to local Market Visit
								</p>
								<p class="aj">Pick up Chandigarh see Run Way Side Seen to move Shimla Hotel After Fresh Visit 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 seen the Shimla. All Local side seen , National Park Poney and Yak Ride and One can see the endless Himalayan One can finds mall Souvenirs 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 2:</b> Shimla to Kufri & Local Visit
								</p>
								<p class="aj">Morning After Breakfast Visit,. 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<br />
just 2 km away from Shimla. 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. Visit Local side Seen 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 Visit to Kullu to Mandi to Manali
								</p>
								<p class="aj">Morning After Breakfast Check Out Hotel see Run way Side Seen to Kullu According to ancient Hindu scriptures, the area was known as ‘Kulantapitha’ the end of the habitable world. Nestling within the high Himalayan ranges, the Kullu valley remained isolated from the rest of the world till very recently. The Hindu rulers of Kullu initially ruled over an area restricted to the upper Beas River valley, with their capital in the ancient village of Jagatsukh near Manali. The valley was a gateway to Lahaul and Ladakh andan important stop on the crucial trade route between central Asia and the Gangetic Plains down south. This made the area prosperous and by the 17th century AD, the kingdom had expanded its boundaries to Lahaul-Spiti in the north and the Sutlej River in the east. The capital of the kingdom was first shifted to Naggar, then to Sultanpur before finally settling at Kullu. Kullu grew into an important town when Raja Jagat Singh shifted the capital of the kingdom from Naggar in the mid-17th century. The idol of Lord Raghunathji (Lord Rama, an incarnation of Vishnu, one of the gods in the Hindu trinity), the presiding deity of this town, was brought from his mythical birthplace in Ayodhya by the king. Declared the district headquarters after independence, Kullu is now an important market town for the region, and a transit point for travellers going on to the more popular Manali, 40 kms north. Kullu is also the focal point for trekkers into the Parvati valley and the Pin valley & Then See Run Way Side Seen To Move to Mandi The present District Of Mandi was formed with the merger of two princely states Mandi and Suket on 15th April 1948, when the State of Himachal Pradesh came into existence. Ever since the formation of the district, it has not witnessed any changes in it's jurisdiction., Mandi local Market visit & Then See Run Way Side Seen to go 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 4:</b> Manali to Rohtang pass Visit
								</p>
								<p class="aj">Morning move to Rohtang pass, 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 herring boned ridges into the Lahaul valley. Rohtang pass and enjoy the hight, back Manali visit Manali local market, Free time for shopping or leisure activities. Enjoy get together with your travel companions in the evening.</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 Local side seen Visit & Local Market Visit
								</p>
								<p class="aj">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. 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. From temples to antiquity, to picturesque sight-seeing spots and adventure 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 6:</b> Manali to Manikaran To Dharamsala Local Market Visit
								</p>
								<p class="aj">Morning After Breakfast Check Out Hotel See run Way Side Seen To visit 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.[1] 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. After This Visit See Run Way Side Seen to Move Dharamshala, popularly known as the ‘Queen of the Hills’, is divided into lower and upper towns with a difference of 457m(1500ft.) between them. The mountains enfold 3 sides of the town and the valley stretches to the south. There is a beautiful resort of Dharamshala, which stands on the spur of the Dharamshala range. Visit Local market Visit 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 7:</b> Dharamsala to Naddi To Mc Leod Ganj 
								</p>
								<p class="aj">Morning After Breakfast See Run Way Side Seen To Move Naddi Naddi Local Visit After This Visit Mc Leod Ganj . 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. number of tibetan settlements with religious education and other rehabilitation centers mushroomed all over the Mc Leod Ganj. 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. Mc leod Ganj emerged as a major Buddhist centre.,After This Visit See Run Way Side Seen To Move Dalhousie. Dalhousie has been named after the British Governor - General of the l9th century,Lord Dalhousie. Surrounded by varied vegetation - pines, dodders, oaks and flower in.</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> Dharamsala To Dalhousie Local Market Visit & Local Side Seen Visit
								</p>
								<p class="aj">Early Morning After Breakfast Check Out Hotel See Run Way Side Seen To Move Dalhousie. Dalhousie has been named after the British Governor - General of the l9th century,Lord Dalhousie. Surrounded by varied vegetation - pines, dodders, oaks and flowering oaks and flowering rhododendronlakad bagar Gandhi chonk local market, Dalhousie Churche.<br />
<br />
St. Andrew's Church:<br />
St. Andrew's Church was built in the year 1903 at baloon by protestant Christians and commonly known as the Church of Scotland.<br />
<br />
St. Jonh's Church:<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<br />
at this place.<br />
<br />
Kala Top<br />
The wildlife reserves, provides shelter to various species of flora and fauna. Kala top is a pleasant getaway, only 5 km from Dalhousie, with a panoramic view and a forest rest house. Kala Top is situated at an altitude of 8000 ft and 10 km away from G.P.O jquare. It has a variety of wildlife such as Deer, Bears & Leopards. 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 9:</b> Dalhousie Local To Khajjiar
								</p>
								<p class="aj">Morning After Breakfast Visit Local<br />
Dainkund:<br />
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 Bara Pathar (4 km) There is a small temple amidst a thick forest. Kalatop(10 km) This wild life sanctuary is home to the 'ghoral' and Himalayan black bear After This Visit Move Khajjiar "Khajjiar is a forest glade of great beauty, 6400 feet above sea level". Khajjiar is often reffered to as "Gulmarg of Himachal Pradesh". The lush green meadows are surrounded by thick pine and cedar forests. Grazing herds of sheep, goats and other milch cattle present a prefect pastoral scenery. There is a small lake in the center of the saucer shaped meadow which has in it a floating island. Much of the lake has degenerated into slush because of heavy silting during rains. Still the landscape of Khajjiar is picturesque and a photographer's delight. A little away from the lake is the temple of Khajji Nag belonging to 12th C. AD. In the mandapa of the temple one can see the images of the Pandavas and the defeated Kaurvas hanging from the roof of the circumambulatory path. The sanctum of the temple has been beautifully carved from wood On 07-07-1992, Mr. Willy t. Blazer, Vice Counselor and Head of Chancery of Switzerland in India brought Khajjiar on the world tourism map by christening it "Mini Switzerlan". He also put a sign board of a yellow Swiss hiking footpath showing Khajjiar's distance from the Swiss capital Berne-6194 kms. Khajjiar is among the 160 locations in the world that bear topographical resemblance with Switzerland. The Counselor also took from Khajjiar a stone which will form part of a stone collage around the Swiss Parliament to remind the visitors of Khajjiar as Mini Switzerland of India.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 Amritsar & Wagah Border Visit
								</p>
								<p class="aj">Morning After Breakfast Check Out hotel Visit See Run Way Side Seen To Move Amritsar Evening Time Visit Wagah Border in Amritsar between Pakistan and India is the only road border between the two countries. It lies on the Grand Trunk Road between the cities of Amritsar, Punjab, India, and Lahore, Punjab, Pakistan. The border is located 22 km from Lahore and 28 km from Amritsar. Apart from its national significance it is visited with great patriotism and enthusiasm for the ceremony that happens every day before sunset. The highlight is lowering of the flags of the two countries simultaneously. The flags are folded and the ceremony ends with a gesture that involves a brusque handshake between soldiers from either side which is followed by the closing of the gates. The spectacle of the ceremony attracts many visitors from both sides of the border, as well as international tourists for its high energy and enthusiastic ceremonial practice. This checkpoint at Wagah Border in Amritsar draws plenty of global attention and affords a stage for Indian and Pakistani paramilitary<br />
forces to strut their tough stuff. Each sunset, there are noisy partisan crowds cheering on the BSF and the Rangers as they present arms with much stage managed, in-your-face ceremony, each side trying to outdo the other. On special occasions, liberals on both sides take out candle-lit processions.<br />
<br />
Golden Temple Night View. Amritsar is one of Punjab´s principal cities, dating back in history over 400 years. It is known more for the world famous Golden Temple, the seat of Sikh religion.Situated on the north-western border of India, the city is also gateway for the travelers on the overland route through Pakistan. The Wagah border, which is the check-post is about 29 kms away. Amritsar literally means "the pool of nectar", the name derived from a pool constructed at the sacred site in the 16th century, gifted by the Mughal Emperor Akbar to Guru Ramdas, the fourth preceptor of the Sikh faith. Under instructions from Guru Amar Das Sahib, this city was founded by Guru Ram Das Sahib in 1574, on the land bought by him for an amount of rupees 700 from the owners of the village Tung. (Earlier Guru Ram Das Sahib had begun building Santokhsar Sarovar, near erstwhile village of Sultanwind in 1564 {according to one source in 1570}. It could not be completed before 1588). In 1574, Guru Ram Das Sahib built his residence and moved to this place. At that time, it was known as<br />
Guru-Da-Chakk. (Later, it came to be known as Chakk Ram Das). Guru Ram Das Sahib began excavation of the Amritsar Sarovar (tank) in 1577. It was ready by 1581. This tank was renovated by Guru Arjun Sahib in<br />
1586. Since then this city is known as Amritsar (after the name of the Sarovar). The foundation of the Darbar Sahib had been laid by Guru Arjan Sahib on January 3, 1588. (Later, it was propagated that the foundation stone of Darbar Sahib was laid by Sain Mian Mir, a Muslim holy man. Sain Mian Mir was very friendly with Guru Sahib but the foundation of Darbar Sahib was laid by Guru Sahib himself). In 1590, Guru Arjan Sahib moved to village Wadali where Guru Hargobind Sahib was born on June 19, 1590. By 1601, the Darbar Sahib was fully ready. In 1603-04, the first volume of Guru Granth Sahib, the Sikh scriptures, was prepared in this city and was installed at Darbar Sahib on August 16, 1604.It is here that Akal Takht Sahib (Throne of the Almighty) was revealed by Guru Hargobind Sahib in 1609. Two flags representing temporal and spiritual authority (Sikh sovereignty) have been set up in front of Akal Takht Sahib. Here Guru Hargobind Sahib wore two swords of Miri and Piri (temporal and transcendental authority). The building of Akal Takht Sahib was twice demolished by Afghan armies and was very badly damaged by the Indian regime (in June 1984). The Indian government repaired in in September 1984. The Sikhs began demolishing it on January 26, 1986. The present structure has<br />
been constructed by five service-groups headed by Baba Thakar Singh of Bhindran-Mehta Jatha. On April 13, 1634, the Mogul army attacked Guru Hargobind Sahib here. From 1635 to 1698, Amritsar remained in the control of the Mina family (descendants of Pirthi Chand). During this period, on November 23, 1664, Guru Tegh Bahadur Sahib visited the town. In April 1698, Bhai Mani Singh was appointed as the caretaker of the shrines of Amritsar. Night Hotel</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> Amritsar Local To Drop Chandigarh
									</p>
									<p class="aj">Early Morning After Breakfast Visit "Jallianwala Bagh", is a public garden in Amritsar in the Punjab state of India, and houses a memorial of national importance, established in 1951 by the Government of India, to commemorate the massacre by British occupying forces of peaceful celebrators including unarmed women and children, on the occasion of the Punjabi New Year on April 13, 1919 in the Jallianwala Bagh Massacre. Colonial British Raj sources identified 379 fatalities and estimated about 1100 wounded.[1] Civil Surgeon Dr. Smith indicated that there were 1,526 casualties.[2] The true figures of fatalities are unknown, but are likely to be many times higher than the official figure of 379. The 6.5-acre (26,000 m2) garden site of the massacre is located in the vicinity of Golden Temple complex, the holiest shrine of Sikhism.The memorial is managed by the Jallianwala Bagh National Memorial Trust, which was established as per the Jallianwala Bagh National Memorial Act passed by the Government of India in 1951 Local Market Visit. to Seen Run Way Side Seen to drop Chandigarh</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="Magnificent Himachal tour 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="54697"/>
						</form>
						</div>
						
						";i:1;s:63:"Book Magnificent Himachal tour package - 111 Days Tour Packages";i:2;s:208:"book magnificent himachal tour package - 111 days tour packages, forts and palaces tour packages, chandigarh city, dalhousie, khajjiar, kufri, kullu, manali, mandi, shimla, dharamshala, amritsar tour packages";i:3;s:240:"MD Tour Travels offers Magnificent Himachal tour package - 111 Days tour package, budget Forts and Palaces tour packages for Chandigarh City, Dalhousie, Khajjiar, Kufri, Kullu, Manali, Mandi, Shimla, Dharamshala, Amritsar at exciting price.";i:4;s:501:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Chandigarh City, Dalhousie, Khajjiar, Kufri, Kullu, Manali, Mandi, Shimla, Dharamshala, Amritsar"        
		                 },
		      "description": "",
		      "name": "Magnificent Himachal tour package",
		      "telephone": "+91-9646469331"
		    }
		    </script>
			";i:5;N;}