a:6:{i:0;s:10226:"				<div class="h1"><h1>Shimla - Sarahan - Kaza Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.tanishhimachaltours.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.tanishhimachaltours.com/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Shimla - Sarahan - Kaza 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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Sarahan, Shimla, Chitkul, Kaza</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.tanishhimachaltours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Shimla - Sarahan - Kaza 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="171598"/>
						</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_15/438757/258541.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/438757/258541.jpg"  width="150" height="90"    alt="Shimla - Sarahan - Kaza Tour" title="Shimla - Sarahan - Kaza Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Meal plan : Lunch and Dinner<br />
NON VEG MEAL<br />
<br />
Cabs : Non-AC <br />
<br />
Airfare <br />
<br />
Others : Other Exclusions (*Car at disposal <br />
<br />
All kind of personal expenses such as tips, laundry, telephone bills and beverages. <br />
<br />
It also does not include any meals unless and otherwise specifically mentioned..<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">After Arrival At Delhi Start Moving Towards Shimla .overnight Stay At 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 SARAHAN
								</p>
								<p class="aj">Kufri and Narkanda Sight scene.Overnight stay at Sarahan.</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> SARAHAN TO SANGLA TO CHITKUL
								</p>
								<p class="aj">Sight Scene of Sangla and Sarahan.overnight Stay At Chitkul</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> CHITKUL TO NAKO
								</p>
								<p class="aj">Sight scene of Chitkul and on th way.Overnight stay at Nako.</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> NAKO TO TABO TO MUD
								</p>
								<p class="aj">Sight scene of Nako and Tabo Overnight stay at Mud Village..</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> MUD TO KAZA
								</p>
								<p class="aj">Sight scene of Mud Village ,Dhankaar overnight stay at Kaza.</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> Kaza Ki Kibber-komic-hikkim-langza
								</p>
								<p class="aj">Sight Scene of Ki Kibber,Komic ,Hikkim and Langza Overnight Stay At Kaza.</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>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																<li>Dinner,Breakfast</li><li>
Accomodation at all places</li><li>
DRIVER CUM GUIDE FROM SHIMLA TO MANALI</li>
													</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Meal plan : Lunch and Dinner</li><li>
NON VEG MEAL</li><li>
Cabs : Non-AC </li><li>
Airfare </li><li>
Others : Other Exclusions (*Car at disposal </li><li>
All kind of personal expenses such as tips, laundry, telephone bills and beverages. </li><li>
It also does not include any meals unless and otherwise specifically mentioned..</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p>Terms &amp; Condition<br />
1. The rates are subjects to change without any prior notice. -Accommodation in the itinerary at the mentioned hotels&nbsp; or the similar hotels . 2. The confirmation is subjects to availability. -Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad Weather, ill health, strike, roadblocks and/or any factors beyond control. -It is a suggestion for you that please book this offer as soon as possible because we are not holding any booking and it is totally depend on the availability of rooms and flight.<br />
3. From the booking date till 30 days prior to the departure date, 30 % of the package cost is chargeable.<br />
4. From 30 days to 15 days prior to the departure date, 50 % of the package cost is chargeable.<br />
5. From 15 days to 7 days prior to departure date, 75 % of the package cost is chargeable.<br />
6. For cancellations made within 5 days prior to the departure date, 100% of the package cost is chargeable.<br />
7. No refund will be made for any unused accommodation, missed meals, transportation segments, sightseeing tours or any other service due to Bad weather, ill health, Strike, Road Blocks or any other factor beyond our Control. Such unused items are neither refundable nor exchangeable. - Room allocation is done by the hotel&nbsp; depending upon availability at the time of check-in. the category of room as specified on your confirmation voucher.<br />
8. No refund shall be claimed, if the services &amp; amenities of hotel were not up to your expectations, it will be considered on case to case basis.<br />
9. Room Heater charges will be extra charged as per hotel&nbsp; rates in every hotel.<br />
10. Meal plan will be veg in every hotel.( Non veg will be included on travellers request ).<br />
11. Rohtang Pass Permit and sighscene will be provided as per govt. Terms and conditions.<br />
12. Below 5 Years child will be complementry.More&nbsp;then 5 yrs Child will be charged as adults cost.<br />
13. All payments of package cost should be cleared before Last day check out of the tour.

<p>&nbsp;												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.tanishhimachaltours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Shimla - Sarahan - Kaza 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="171598"/>
						</form>
						</div>
						
						";i:1;s:68:"Book Shimla - Sarahan - Kaza Tour - 9 Nights / 10 Days Tour Packages";i:2;s:153:"book shimla - sarahan - kaza tour - 9 nights / 10 days tour packages, hill station tour packages, new delhi, sarahan, shimla, chitkul, kaza tour packages";i:3;s:207:"Book Shimla - Sarahan - Kaza Tour - 9 Nights / 10 Days tour packages from Tanish Himachal Tours - Get attractive 9 Nights / 10 Days Hill Station  tour packages for  New Delhi, Sarahan, Shimla, Chitkul, Kaza.";i:4;s:733:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Sarahan, Shimla, Chitkul, Kaza"        
		                 },
		      "description": "Meal plan : Lunch and Dinner
NON VEG MEAL

Cabs : Non-AC 

Airfare 

Others : Other Exclusions (*Car at disposal 

All kind of personal expenses such as tips, laundry, telephone bills and beverages. 

It also does not include any meals unless and otherwise specifically mentioned..",
		      "name": "Shimla - Sarahan - Kaza Tour",
		      "telephone": "+91-9736035555"
		    }
		    </script>
			";i:5;N;}