a:7:{i:0;s:9239:"				<div class="h1"><h1>Shimla Manali Tour (Family Special)</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>Shimla Manali Tour (Family Special)</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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Shimla, Kufri, Manali, Kufri, Solang Valley, Rohtang Pass</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="Shimla Manali Tour (Family Special) - 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="45215"/>
						</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/89405.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/278544/89405.jpg"  height="150"  width="150"    alt="Shimla Manali Tour (Family Special)" title="Shimla Manali Tour (Family Special)" 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 - Shimla
								</p>
								<p class="aj">Once you reach the Delhi Airport / Railway Station, an  representative offers an assisted transfer your first destination Shimla, by road. Fondly referred to as the ‘Queen of Hills’, Shimla is a very popular hill town of Himachal Pradesh. As you reach, check-in at the hotel. After settling into the rooms, the day is at your own discretion. Spend the day in doing the activities of your interest. Dinner and overnight stay at the 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 2:</b> Shimla - Kufri - Shimla
								</p>
								<p class="aj">Post breakfast, day 2 is scheduled for an excursion to Kufri, a must-visit place. Placed at an altitude of 2290 m above the sea level, Kufri is blessed with tranquility, scenery and is dotted with tourist attractions like Mahasu Peak, Chini Bunglow, Indira Tourist Park etc. When back in Shimla, visit the Vice Regal Lodge- once the summer residence of various British viceroys, it boasts of an interesting English Renaissance architecture. Thereafter in the evening, enjoy a leisure walk on the Mall Road. Delicious dinner and 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 3:</b> Shimla - Manali
								</p>
								<p class="aj">After breakfast on the 3rd day, get transferred by road to Manali. Placed at an altitude of 2050 m above the sea level, Manali is a very popular hill station that is flocked by tourists every year in crazy numbers. On reaching, check-in at the hotel. Get some rest. The evening is at leisure. Take a walk on main market road of Manali. Enjoy the bustling tourist activity, taste the local renditions, enjoy the cool breeze and more. Dinner and 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 4:</b> Manali Sightseeing 
								</p>
								<p class="aj">Today, get all set for visiting the prime attractions of Manali. Visit Hadimba Devi Temple- an ancient temple around 450 years old that is dedicated to Hadimba Devi wide of one of the Pandava brothers Bhim, Jagatsukh- a small village that houses old Shikara-style temples and Vashisht Kund- hot water sulphur springs. Later in the day explore the Tibetan Monastery and the handicraft centre. Take a walk upto the old Vashisht village. Back to the hotel for dinner. Stay 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 5:</b> Manali - Rohtang Pass - Manali
								</p>
								<p class="aj">The day is scheduled for enjoying the sights and experiences at Solang Valley and Rohtang Pass. Solang Valley falls on the way to Rohtang Pass and is around 14 km from Manali. Along with its beautiful scenery, the place also offers adventure opportunities like zorbing and para-gliding. The next visit of the day is to Rohtang Pass, covered with snow all round the year, lying at an elevation 3978 m, it is open from June to October. Enjoy playing with snow here. The day would be filled fun activities and various mesmerizing sights. Return to the hotel for dinner and 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> Manali - Delhi
								</p>
								<p class="aj">Today is the last day of the tour. Relish an early morning breakfast. Complete the check-out formalities. Begin your drive back to New Delhi. Get an assisted transfer to the Delhi railway station / Airport for your onward journey.</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="Shimla Manali Tour (Family Special) - 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="45215"/>
						</form>
						</div>
						
						";i:1;s:74:"Book Shimla Manali Tour (Family Special) - 5 Nights / 6 Days Tour Packages";i:2;s:188:"book shimla manali tour (family special) - 5 nights / 6 days tour packages, lakes & rivers tour packages, new delhi, shimla, kufri, manali, kufri, solang valley, rohtang pass tour packages";i:3;s:218:"Heavens Group offers Shimla Manali Tour (Family Special) - 5 Nights / 6 Days tour package, budget Lakes & Rivers tour packages for New Delhi, Shimla, Kufri, Manali, Kufri, Solang Valley, Rohtang Pass at exciting price.";i:4;s:461:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Shimla, Kufri, Manali, Kufri, Solang Valley, Rohtang Pass"        
		                 },
		      "description": "",
		      "name": "Shimla Manali Tour (Family Special)",
		      "telephone": "+91-9034015552"
		    }
		    </script>
			";i:5;N;i:6;N;}