a:6:{i:0;s:14389:"				<div class="h1"><h1>Himachal Relax Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.jachintravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.jachintravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Himachal Relax 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">
						13 Nights / 14 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Dalhousie, Manali, Shimla, Dharamshala</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.jachintravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himachal Relax 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="25360"/>
						</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/296660/49707.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/296660/49707.jpg"  width="150" height="150"    alt="Himachal Relax Tour" title="Himachal Relax 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> Arrive Delhi
								</p>
								<p class="aj">Meet and greet at the airport and transfer to hotel. Overnight stay at 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> Delhi
								</p>
								<p class="aj">Morning breakfast followed by combined city tour of old and New Delhi visiting mughal monuments like the Red Fort, Jama Masjid, Rajghat- the place where Mahatam Gandhi was cremated, Humayun Tomb and drive pass to British landmark such as India Gate, president house and govt. Secretariat. Also visit 12th century Minaret- Qutab minar graceful and well sculptured and stands 75 meters, Lotus Temple. Overnight stay at 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 3:</b> Delhi - Shimla (370 Kms.)
								</p>
								<p class="aj">Morning breakfast at hotel and drive to Shimla state capital of Himachal Pradesh, today it has well developed facilities, easy accessibility and numerous attractions make it India's most poular hill resort. Placed in lower ranges of Himalaya mountain, it is surrounded by pine, deodar, Oak and Rhododendron forests. towrds north lie te 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. Upon arrival check in at hotel. Overnight at 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 4:</b> Shimla
								</p>
								<p class="aj">Morning breakfast at hotel and followed by city tour of Shimla visiting Jaku hills this town 's highest peak and vantage point for Shimla's famous views and summit crowned with temple dedicated to Lord Hanuman its offers the an excellant view of the city and surrounding scenic hills and valleys, Glen, the pleasant picnic spot, this is densely wooded glen is by the side of snow- fed hubbling stream, The ridge,the large open Bazzar, State musuem houses a collection of himachal Pradesh's rich heritage and Indian institute of advanced study, the magnificent English renaissance structure was the former Viceregal Lodge. Overnight at 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 5:</b> Shimla - Kufri - Chail
								</p>
								<p class="aj">Morning breakfast at hotel and followed by exursion to Kufri and Chail. Kufri is famous for its wide views and ski slopes. An enjoyable walk leads up to the Mahasu peak, Near Kufri lies a Wild Flower hall, It is pictureque place famous for a fine view of the city and snowclad far off Mountain peaks. And also visit Chail Nestling in the shelter of virgin forests which cover many untoddole hills , Chail is a tiny resort in shivalik region. Visit Cricket ground built in 1893, after leveling the top of hill, this stands at 2444m and is the highest cricket pitch and polo ground in the world return back Shimla for 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> Shimla/Manali (280 Kms.)
								</p>
								<p class="aj">Morning breakfast at hotel and drive to Manali. Enroute visit Kullu town and valley known as abode of the gods and goddesses. This idyllic pastrol valley is also known as the orchard of India. A picturesque and tranquil heaven. Thereafter continue your drive to Manali. Manali is so fascinating in its beauty lies in snowcapped steep pinnacles cascading streams, pine and cedar woods with its rich hiking and trekking possibilties. Manali, the "Queen of the Hill Resorts" upon arrival checks in at hotel. Overnight at 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 7:</b> Manali
								</p>
								<p class="aj">Morning after breakfast city tour of Manali visiting Hadimba Devi temple built in 1553 and with superbly crafted four tiered pagoda root, its famous for its exquisitely carved doorway, Manu temple, Monasteries etc. Afternoon at leisure. Overnight at 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 8:</b> Manali - Rohtang Pass - Manali ( 65kms one way)
								</p>
								<p class="aj">After breakfast at hotel and full day excursion to Solang valley and Rohtang Pass. Manali is gateway to Rohtang Pass beyond which lies the twin valleys of Lahaul and spiti, steeped in aweinspring barred splendour. Evening return back to Manali. Overnight at 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 9:</b> Manali - Dharamshala (210 kms)
								</p>
								<p class="aj">Morning after breakfast drive to Dharamshala. It consists of two distinct parts. They both vary in altitude and temprature. It lies on at an altitiude of 1,800 metres and majestic Dhauladhar in the back. On arrival check in at hotel. Rest of the day at leisure. Overnight at 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 10:</b> Dharamshala
								</p>
								<p class="aj">Morning breakfast at hotel and explore the uppper part consists McLeod ganj, Forsyth ganj and the cantonment, Dharamshala is one of the best places for studies and research in tibetan Buddhism art and culture. visit Monasteries and Stupas. Overnight at 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> Dharamshala - Dalhousie (143 Kms.)
									</p>
									<p class="aj">Morning after breakfast drive to Dalhousie another pleasant hill resort, which rightly been called "The Health Farm of India".upon arrival check in at hotel. Afternoon gilmpse the scenic charms quiet atmosphere, bracingenvirons, Pleasant walks. Of the town. its commands a panoramic view of the plains below in the south and the majestic snow-clad peaks in the north. Overnight at 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 12:</b> Dalhousie - Chamba - Khajjair
									</p>
									<p class="aj">Morning after breakfast excursion to Chamba & Khajjair. Chamba situated at an altitude of 926 mts. is perched like a little fortress on an over hanging flat mountain shelfand famed Chamba valley of Milk and honey, of gurgling sreams, inresting temples etc. Overnight at 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 13:</b> Dalhousie - Chandigarh
									</p>
									<p class="aj">Morning breakfast at hotel and drive to Chandigarh. Upon arrival check in at hotel. Rest of the day at leisure. overnight at 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 14:</b> Chandigarh - Delhi Departure
									</p>
									<p class="aj">Morning breakfast at hotel followed by city tour of chandigarh visiting Rock garden, Rose garden etc. and later drive back to Delhi. Upon arrival in Delhi directly transfer to airport to board return flight.</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>
															</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.jachintravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Himachal Relax 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="25360"/>
						</form>
						</div>
						
						";i:1;s:60:"Book Himachal Relax Tour - 13 Nights / 14 Days Tour Packages";i:2;s:147:"book himachal relax tour - 13 nights / 14 days tour packages, valley tour packages, new delhi, dalhousie, manali, shimla, dharamshala tour packages";i:3;s:178:"JACHIN TRAVELS offers Himachal Relax Tour - 13 Nights / 14 Days tour package, budget Valley tour packages for New Delhi, Dalhousie, Manali, Shimla, Dharamshala at exciting price.";i:4;s:440:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Dalhousie, Manali, Shimla, Dharamshala"        
		                 },
		      "description": "",
		      "name": "Himachal Relax Tour",
		      "telephone": "+91-8527093369"
		    }
		    </script>
			";i:5;N;}