a:6:{i:0;s:13918:"				<div class="h1"><h1>Himachal Hills Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.arihanttours.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.arihanttours.in/india-tours.htm" title="India Tours">India Tours</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Himachal Hills 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Chandigarh City, Manali, Nalagarh, Shimla</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.arihanttours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himachal Hills 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="20777"/>
						</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_1/26194/38098.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/38098.jpg"  width="150" height="150"    alt="Himachal Hills Tour" title="Himachal Hills 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/26194/38097.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/38097.jpg"  width="150" height="150"    alt="Himachal Hills Tour" title="Himachal Hills 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/26194/38099.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/38099.jpg"  width="150" height="150"    alt="Himachal Hills Tour" title="Himachal Hills 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/26194/38100.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/38100.jpg"  width="150" height="150"    alt="Himachal Hills Tour" title="Himachal Hills 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/26194/38101.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/26194/38101.jpg"  width="150" height="150"    alt="Himachal Hills Tour" title="Himachal Hills Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					The Government Service Tax of 3.09% will be applicable on total bill<br />
Any Airfare, Insurance<br />
Expenses of personal nature like tips to waiters, drivers, laundry, alcoholic drinks, telephonic calls etc.<br />
Entry fees, camera fees to the monuments<br />
Any Loss / expenses incurred by unforeseen circumstances e.g. flight delays/cancellations, road blockage, vehicle breakdown strikes etc.<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">Commence your tour from Delhi and first visit the erstwhile summer capital of British, Shimla. At Shimla are escorted to a hotel first for overnight stay. Draped in forests of pine, oak and rhododendron this erstwhile summer capital of British Colonizer blossoms at an altitude of 2,205 m. Experience pleasant summers and snowy winters at the soothing environs of Shimla which is often referred as ?Queen of Hills?. The neo-gothic architecture mushrooming amidst emerald settings of Shimla adds a vintage appeal which charms all. Spend the day at leisure at your hotel.</p>					
									<p><b>Meals : </b> DINNER</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
								</p>
								<p class="aj">n the second day you will be driven towards numerous famous tourist spots of the region. Visit Jakhu Temple- a very well known temple situated at the top of the hill to seek blessings of the almighty. An hour long enthralling trek takes you to the renowned temple known for stunning vistas, presence of numerous monkeys and for being the place where as per legends, Lord Hanumana had rested. Later walk down to the bustling mall & indulge in shopping spree. Also explore the Ridge and the State Museum for a quick and interesting peep into the city?s history and culture. Later drive back to Shimla for overnight stay.</p>					
									<p><b>Meals : </b> BREAKFAST AND DINNER</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">fter breakfast drive to Manali, the renowned hill station of Himachal Pradesh. While domestic tourists visit Manali for honeymooning and the enchanting views of mountains the foreigners loves to indulge in adventure sports and for a laid back exploration of the surrounding villages and temples. Also it is from here that a significant number of trekkers set on their mountaineering escapades towards Ladakh, Karakoram Pass, Spiti, Leh and Keylong. Evening in the town will be free for shopping or leisure.</p>					
									<p><b>Meals : </b> BREAKFAST AND DINNER</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 
								</p>
								<p class="aj">On this day visit the 450 years old temple dedicated to Hadimba Devi, which has some excellent woodcarvings which includes its intricately carved wooden doors and a 24 meters tall wooden tower. Goddess Durga dominates most of the themes of the carvings inside the temple which is very captivating. Return to your hotel in the evening for overnight stay.</p>					
									<p><b>Meals : </b> BREAKFAST AND DINNER</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  (Snow Point)
								</p>
								<p class="aj">The day brings a fabulous trip to Snow Point in Manali from where travelers can enjoy looking at panoramic views of the lush meadows and snow-clad peaks around.</p>					
									<p><b>Meals : </b> BREAKFAST AND DINNER</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 - Nalagarh
								</p>
								<p class="aj">The day brings another exciting sojourn to Nalagarh in Solan district in Himachal. It was once the seat of princely state under the reign of British colonizers. The semi-hilly region is renowned for its blissful ambiance and lustrous greens. Check-in a hotel and enjoy a rejuvenating stay here.</p>					
									<p><b>Meals : </b> BREAKFAST AND DINNER</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> Nalagarh - Delhi
								</p>
								<p class="aj">he eventful journey comes to an end today when our representative will escort you back to Delhi. You will then commence your journey homewards with great memories to be cherished for life.</p>					
									<p><b>Meals : </b> BREAKFAST </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>Sightseeing</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>The Government Service Tax of 3.09% will be applicable on total bill</li><li>
Any Airfare, Insurance</li><li>
Expenses of personal nature like tips to waiters, drivers, laundry, alcoholic drinks, telephonic calls etc.</li><li>
Entry fees, camera fees to the monuments</li><li>
Any Loss / expenses incurred by unforeseen circumstances e.g. flight delays/cancellations, road blockage, vehicle breakdown strikes etc.</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>ANY TIME, WHENEVER YOU WANT TO GO<br />
												<p class="large b mb5px dif">Departure Cities with rates :</p>EX- DELHI<br /><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~Package valid only for Indian nationals.
Non-refundable booking fee of Rs.4000 required to confirm/ hold the booking.
Air tickets and hotels are subject to availability. It is mandatory for guests to present valid photo identification at the time of check-in.
The identification proofs accepted are Driving License, Voters Card, Passport, Ration Card. Without valid ID the guest will not be allowed to check in. Note-PAN Cards will not be accepted as a valid ID card.
All transfers and sightseeing are as per the Itinerary/package and in case of Air Conditioned vehicles, It will be switched off in the hills.
The inclusion of extra bed with a booking is facilitated with a folding cot or a mattress as an extra bed. Early check-in or late check-out is subject to availability and may be chargeable by the hotel. The standard check-in time is 1300hrs and the standard check-out time is 1000hrs.
Any kind of personal expenses (Laundry, room service etc.) or optional tours/ extra meals are not inclusive in the package cost.
The hotel reserves the right of admission. Accommodation can be denied to guests posing as a couple if suitable proof of identification is not presented at check-in. Arihant tours will not be responsible for any check-in denied by the hotel due to the aforesaid reason.
In case of non-availability of above mentioned hotels similar category hotel will be provided.
Arihant tours reserves the right to change/modify or terminate the offer any time at its own discretion and without any prior notice												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.arihanttours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himachal Hills 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="20777"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Himachal Hills Tour - 6 Nights / 7 Days Tour Packages";i:2;s:137:"book himachal hills tour - 6 nights / 7 days tour packages, valley tour packages, chandigarh city, manali, nalagarh, shimla tour packages";i:3;s:182:"Book Himachal Hills Tour - 6 Nights / 7 Days tour packages from Arihant Tours - Get attractive 6 Nights / 7 Days Valley  tour packages for  Chandigarh City, Manali, Nalagarh, Shimla.";i:4;s:813:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Chandigarh City, Manali, Nalagarh, Shimla"        
		                 },
		      "description": "The Government Service Tax of 3.09% will be applicable on total bill
Any Airfare, Insurance
Expenses of personal nature like tips to waiters, drivers, laundry, alcoholic drinks, telephonic calls etc.
Entry fees, camera fees to the monuments
Any Loss / expenses incurred by unforeseen circumstances e.g. flight delays/cancellations, road blockage, vehicle breakdown strikes etc.",
		      "name": "Himachal Hills Tour",
		      "telephone": "+91-9420566577"
		    }
		    </script>
			";i:5;N;}