a:6:{i:0;s:12714:"				<div class="h1"><h1>Shimla - Manali Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.geetcompany.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.geetcompany.com/holiday-tour-packages.htm" title="Holiday Tour Packages">Holiday Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Shimla - Manali Tour</p>
				<br />
				
									<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>
					
					<table class="w100 formTable imgWidth">
					<tr>
					
											<td class="p10px vat imgWidth150 w150px">
						<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_1/22362/22504.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/22504.jpg"  width="150" height="150"    alt="Shimla - Manali Tour" title="Shimla - Manali 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_1/22362/22506.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/22362/22506.jpg"  width="150" height="150"    alt="Shimla - Manali Tour" title="Shimla - Manali Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Duration :</b> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Manali, Shimla</p>
												<p><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.geetcompany.com/travel-inquiry.htm">
						<input type="hidden" name="subject" value="Shimla - Manali Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="5283"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
										<br />
					
					<div class="packageTabs myTabs horizontal mc"><!--MY TABS STARTS-->
					<ul class="fo lsn m0px p0px">
					
											<li id="tab2"><a href="#data2">Itinerary</a></li>
												<li id="tab4"><a href="#data4">Tour Detail</a></li>
												<li id="tab5"><a href="#data5">Rate Card</a></li>
												<li id="tab6"><a href="#data6">Terms &amp; Conditions</a></li>
											</ul>
					
					
											<div class="ic bdr" id="data2"><!--DATA2 START-->
						<br />
						<ul class="lsn m0px p0px">
									<li>
									<p class="b mb5px">Day 1: Shimla
									</p>
									<div class="data p10px">On arrival at Shimla / Railway Station you will be met, assisted and drive to Hotel Shimla. Overnight Stay at Hotel.<br />
<br />
The British Empire may have ceased to exit, but its echo lingers on in Shimla (2205m). As the Summer Capital of the British in India, Shimla was the country's focus for the better part of every year and now, is the state capital of Himachal Pradesh. Today, it has well developed facilities, easy accessibility and numerous attractions making it one of India's most popular hill destinations. Situated in the lower ranges of the Himalayan Mountains, it is surrounded by pine Deodar, oak and rhododendron forests. Towards the north lie the snow-covered high-ranges, while the valleys breathe whispering streams and swaying fields. Within the town are host of splendid colonial edifices, quaint cottages and charming walks. Shimla offers a variety of shopping, sport and entertainment activities.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Shimla - Kufri - Shimla
									</p>
									<div class="data p10px">This day after breakfast proceed for in and around sightseeing of Shimla, visit Kufri, India's one of the best holiday paradise Kufri in Shimla is beautifully tucked on an altitude of 2,622 meter. The place is a tourist hot spot for its awesome scenic and sports activities. Evening free to stroll in the famous shopping place of Shimla town - "The Mall & The Ridge". This large open space in the heart of town presents excellent views of the mountain ranges. Shimla's landmarks - the neo- gothic structure of Christ Church and the neo - Tudor library building - are worth seeing. Overnight stay at hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Shimla Local
									</p>
									<div class="data p10px">Check-in to the Hotel, Afternoon half day city tour visiting "Indian Institute Of Advance Studies". At 1983m, this magnificent English renaissance structure was the former Vice regal Lodge. Its lawns and woodland are added attractions Evening free to stroll in the famous shopping place of Shimla town - "The Mall & The Ridge". This large open space in the heart of town presents excellent views of the mountain ranges. Shimla's landmarks - the neo - gothic structure of Christ Church and the neo - Tudor library building - are worth seeing. Overnight stay at hotel in Shimla.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Shimla - Manali - Via Manikaran And Kullu Valley
									</p>
									<div class="data p10px">After breakfast leave for Manali, on the way sight-seeing like Sunder nagar lake, Pandoh dam, Vaishno Devi Temple, Kullu, Manikaran and overnight stay at hotel in Manali.<br />
<br />
About Manali<br />
One day, Varvasvata, the seventh incarnation of Manu found a tiny fish in his bathing water. The fish told him to look after it with devotion as one day it would do him a great service. The seventh Manu cared for the fish till the day it grew so huge that he released it into the sea. Before departing, the fish warned Manu of an impending deluge when the entire world would be submerged and bade him to build a sea worthy ark. When the flood came, Varvasvata and seven sages were towed to safety by Matsya, the fish which is regarded as first avatar of Lord Vishnu. As the water subsided the seventh Manu's ark came to the rest on a hill side and the place was named Manali (2050 m) after him.<br />
As the flood slowly dried, here arose a place of breath- taking natural beauty which was only appropriate at Manali that life began again. Today this legendary cradle of all human kind is a prime holiday destination. There are high mountains surrounded by snow and deep boulder strewn gorges. There are thick forests full of cool breeze and bird songs. There are fields of wild flowers, small picturesque hamlets and fruit laden orchards.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Manali - Rohtang Pass (Up to snow line)
									</p>
									<div class="data p10px">Manali to snow point (Rohtang Pass) and on the way back from snow point visit Solang Valley and overnight stay at Hotel.<br />
<br />
Rohtang Pass<br />
On the road to Keylong is the Nehru Kund (6km) which is a clear water spring scenic spot named after the Late Pt. Jawaharlal Nehru. Kothi (12km) is a picturesque village and has a thrilling view of the deep gorge through which the Beas swiftly races. The beautiful Rahalla falls (16km) are at at altitude of 2500m. A crucial link on the old trade route and still the gateway to trans Himalayan Lahaul, the Rohtang Pass is at height of 3978 m.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Manali Local
									</p>
									<div class="data p10px">After breakfast, proceed towards local sightseeing of Manali "Hidimba Temple" Built in 1553 with a superbly crafted four tiered pagoda roof, it is famous for its exquisitely carved doorway. "Club House" - The Club House with its comprehensive facilities that include a roller skating rink, an auditorium, billiards rooms, a library, a bar and restaurant makes wonderful outing for the day. Tibetan Monastery, Van Vihar, and "Vasisht", Well known for its hot springs. There are old temples dedicated to the sage Vashisth and to Lord Rama. Overnight stay at hotel in Manali.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 7: Manali - Nagar
									</p>
									<div class="data p10px">After breakfast leave for Naggar and back to Manali and Check into Hotel and night stay.<br />
<br />
About Naggar<br />
Naggar, a lovely village set on the hill surrounded by forest, was the capital of Kullu in the 16th century and the monuments in the region are witness to its glorious past. Nicholas Roerich Gallery. He was an artist, writer, photographer, archeologist, explorer and mystic. Inside the museum, one can see the beds library , writing tables, toiletries and samovars of the Roerich family.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 8: Manali - Chandigarh
									</p>
									<div class="data p10px">After breakfast, Check-out from hotel. Drive to Delhi and Drop at Railway station/Airport to catch onwards train/flight.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
						Remarks:<br />
<br />
The rates are subjects to change without any prior notice.<br />
Accommodation in the itinerary at the mentioned hotels or the similar hotels.<br />
The confirmation is subjects to availability.Any monument entry fees / camera fees.<br />
3.09% Service Tax.<br />
Any meal, which is not mentioned above.<br />
Any guide charges.<br />
Any air / train fare.							<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Hotel</li>
																				<li>Transport</li>
																	</ul>
							<br />
														<p class="b mb5px dif">Exclusions :</p> <ul><li>Any monument entry fees / camera fees.</li><li>
3.09% Service Tax.</li><li>
Any meal, which is not mentioned above.</li><li>
Any guide charges.</li><li>
Any air / train fare.</li></ul><br />
													<!--DATA4 EMD--></div>
							
						<div class="ic bdr" id="data5"><!--DATA5 START-->
						<br />
						
    	<p class="h dif xlarge b mb5px">Rate Card</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Package Category</td>
				<td class="headHr p5px b">Shimla Hotel</td>
				<td class="headHr p5px b">Manali Hotel</td>
				<td class="headHr p5px b">Total Cost</td>
			</tr>
			<tr>
				<td class="headVr p5px">Budget 2* Base</td>
				<td class="data p5px">Himani Hotel / Eve The Mall</td>
				<td class="data p5px">Century Manali</td>
				<td class="data p5px">39900</td>
			</tr>
			<tr>
				<td class="headVr p5px">Deluxe 3* Base</td>
				<td class="data p5px">Hotel Silverine</td>
				<td class="data p5px">Apple Hotel and Resort</td>
				<td class="data p5px">45700</td>
			</tr>
			<tr>
				<td class="headVr p5px">Super Deluxe 3*</td>
				<td class="data p5px">Bridge View Regency</td>
				<td class="data p5px">Royal Regency</td>
				<td class="data p5px">51600</td>
			</tr>
			<tr>
				<td class="headVr p5px">Luxury 3* Half</td>
				<td class="data p5px">Landmark Hotel / Kufri Holiday Resort / Torrentium Resort</td>
				<td class="data p5px">Shingar Regency / Manali Heights / Snow Valley / Royal Grand</td>
				<td class="data p5px">63600</td>
			</tr>
		</table></div><br>						<!--DATA5 EMD--></div>
												<div class="ic bdr" id="data6"><!--DATA6 START-->
						<br />
						* 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. ~^#^~						<!--DATA6 EMD--></div>
											
					<!--MY TABS END--></div>
					";i:1;s:59:"Book Shimla - Manali Tour - 7 Nights / 8 Days Tour Packages";i:2;s:111:"book shimla - manali tour - 7 nights / 8 days tour packages, valley tour packages, manali, shimla tour packages";i:3;s:142:"Geet & Company offers Shimla - Manali Tour - 7 Nights / 8 Days tour package, budget Valley tour packages for Manali, Shimla at exciting price.";i:4;s:744:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Manali, Shimla"        
		                 },
		      "description": "Remarks:

The rates are subjects to change without any prior notice.
Accommodation in the itinerary at the mentioned hotels or the similar hotels.
The confirmation is subjects to availability.Any monument entry fees / camera fees.
3.09% Service Tax.
Any meal, which is not mentioned above.
Any guide charges.
Any air / train fare.",
		      "name": "Shimla - Manali Tour",
		      "telephone": "+91-9896771268"
		    }
		    </script>
			";i:5;N;}