a:6:{i:0;s:8924:"				<div class="h1"><h1>Kerala Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.natureviewtours.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.natureviewtours.co.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Kerala 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kochi, Munnar</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 13500 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.natureviewtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kerala 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="116334"/>
						</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_17/495762/196859.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/495762/196859.jpg"  width="150" height="150"    alt="Kerala Tour" title="Kerala Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Flight Details:<br />
11th march 2018 16th march 2018<br />
Mum Cochin (Indigo) Cochin Mum (Indigo)<br />
00.20 07.25 am 16.00 18.05 pm<br />
Fare:10,500/-approx Fare:9,500/-approx<br />
Above flight rates are For 4 person<br />
<br />
Accommodation On Twin Sharing Basis.<br />
Meal Plan Will Be On Cp (room + Breakfast).<br />
One night candle light dinner and flower bed decoration at Munnar.<br />
Meal Plan Will Be On Ap in all houseboats (room + Breakfast+Lunch+Dinner).<br />
All Transfers And Sightseeing By Ac Vehicle As Per The Itinerary From 08.00 Am To 07.00 Pm.<br />
All Toll, Parking Fee, Driver Bata & Fuel Cost.<br />
Above Rate Is Inclusive Of Service Tax 5%.<br />
Pick Up At And Drop At COCHIN.Meals Not Mentioned In The Itinerary.<br />
Entry Fees To Monuments And Palaces.<br />
Anything Not Mentioned In The Inclusions.<br />
Porterage At Hotels And Airports, Tips, Insurance, Laundry, Liquors, Wine, Etc.<br />
All Items Of Personal Nature.<br />
Any Cost Arising Due To Natural Calamities Like Landslides, Roadblocks, Etc.<br />
Any Increase In Taxes Or Fuel Leading To An Increase In Surface Transport.<br />
Ayurveda Charges.<br />
Only Non Ac Rooms Are Provided In Munnar And Thekkady As They Are Hill Stations.<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>
												</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Meals Not Mentioned In The Itinerary.</li><li>
Entry Fees To Monuments And Palaces.</li><li>
Anything Not Mentioned In The Inclusions.</li><li>
Porterage At Hotels And Airports, Tips, Insurance, Laundry, Liquors, Wine, Etc.</li><li>
All Items Of Personal Nature.</li><li>
Any Cost Arising Due To Natural Calamities Like Landslides, Roadblocks, Etc.</li><li>
Any Increase In Taxes Or Fuel Leading To An Increase In Surface Transport.</li><li>
Ayurveda Charges.</li><li>
Only Non Ac Rooms Are Provided In Munnar And Thekkady As They Are Hill Stations.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>The Above Itinerary Is Suggested Tour Plan. The Company Is Responsible For Only Those Services Which Are Charged From The Guest. All Other Services Which Are Not Paid By The Guest To The Company Are Suggested Services And Company Is Nowhere Bound To Provide That Service Or Pay The Cost For The Same.</li>
	<li>Check In And Checkout Timing Of The Hotel Will Be According To The Timing Of The Respective Hotels.</li>
	<li>Company Is Not Responsible For Compensating Any Loss Or Additional Cost Incurred By The Guest While Taking The Tour.</li>
	<li>Company Is Not Responsible, Nor Liable For Any Damage, Loss Or Injury Caused To Any Passenger While Taking The Tour.</li>
	<li>Any Claim Related To The Package Must Be Brought To The Notice Of The Company Within A Week.</li>
	<li>If The Company Is Unable To Provide Accommodations At The Booked Hotels Due To Natural Or Unavoidable Circumstances That Interrupt The Expected Course Of Events, The Clients Will Be Provided With Equivalent Or Higher Category Accommodations.</li>
</ul>

<p><strong>Notes:</strong>

<ul>
	<li>The Eravikulam National Park Will Be Closed To Visitors For Two Months From 2Nd February To 1St April 2015 During The Calving Season Of Nilgiri Tahr. The Objective Of The Closure Is To Facilitate Safe Calving And To Minimise Disturbances To The New Born Lambs Of Nilgiri Tahr. Soliciting Sincere Cooperation From All.</li>
</ul>

<p><strong>Hotel Checkin &amp; Checkout Policy</strong>

<ul>
	<li>Please Carry A Valid Identity Proof (Passport, Driver&#39;S License Pan Card Etc.) As They Are Required During Check In.</li>
	<li>You Are Requested To Provide The Hard Copies Of The Hotel Vouchers At The Time Of Check In</li>
	<li>Checkin Time Is 12:00/14:00 Hours And The Checkout Time Is 10:00/12:00 Hours.</li>
	<li>Early Arrival And Late Departure Are Subject To Availability Of Rooms.</li>
</ul>

<p>&nbsp;<br />
<strong>Reservation Policy:</strong>

<ul>
	<li>Confirmation Of The Packages Is Subject To Receipt Of 100% Payment I.E..., 75 % Of The Payment As Advance &amp; Balance Before 15 Days To The Departure.</li>
</ul>

<p><strong>Cancellation Policy:</strong>

<ul>
	<li>Cancellation Within 30 Days Prior To The Departure Date Of The Tour Packages / Hotel Booking / Transportation: No Retention Charge.</li>
	<li>Cancellation Within 15 Days Prior To The Departure Date Of The Tour Packages / Hotel Booking / Transportation :50 % Retention</li>
	<li>Cancellation Within 10 Days Prior To The Departure Date Of The Tour Packages / Hotel Booking / Transportation Or Non Utilization Of The Same : 100 % Retention.</li>
	<li>There Will Be No Retention Charges For Hotel Bookings/Transportation If Cancellation Is Done Within 40 Days Prior To Departure Of Guests. After That 100% Retention . This Cancellation Policy Will Be Applicable Only During Diwali And Christmas Periods For The Groups.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.natureviewtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kerala 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="116334"/>
						</form>
						</div>
						
						";i:1;s:50:"Book Kerala Tour - 5 Nights / 6 Days Tour Packages";i:2;s:107:"book kerala tour - 5 nights / 6 days tour packages, hill station tour packages, kochi, munnar tour packages";i:3;s:165:"Book Kerala Tour - 5 Nights / 6 Days tour packages from Nature View Tours & Travel - Get attractive 5 Nights / 6 Days Hill Station  tour packages for  Kochi, Munnar.";i:4;s:1525:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kochi, Munnar"        
		                 },
		      "description": "Flight Details:
11th march 2018 16th march 2018
Mum Cochin (Indigo) Cochin Mum (Indigo)
00.20 07.25 am 16.00 18.05 pm
Fare:10,500/-approx Fare:9,500/-approx
Above flight rates are For 4 person

Accommodation On Twin Sharing Basis.
Meal Plan Will Be On Cp (room + Breakfast).
One night candle light dinner and flower bed decoration at Munnar.
Meal Plan Will Be On Ap in all houseboats (room + Breakfast+Lunch+Dinner).
All Transfers And Sightseeing By Ac Vehicle As Per The Itinerary From 08.00 Am To 07.00 Pm.
All Toll, Parking Fee, Driver Bata & Fuel Cost.
Above Rate Is Inclusive Of Service Tax 5%.
Pick Up At And Drop At COCHIN.Meals Not Mentioned In The Itinerary.
Entry Fees To Monuments And Palaces.
Anything Not Mentioned In The Inclusions.
Porterage At Hotels And Airports, Tips, Insurance, Laundry, Liquors, Wine, Etc.
All Items Of Personal Nature.
Any Cost Arising Due To Natural Calamities Like Landslides, Roadblocks, Etc.
Any Increase In Taxes Or Fuel Leading To An Increase In Surface Transport.
Ayurveda Charges.
Only Non Ac Rooms Are Provided In Munnar And Thekkady As They Are Hill Stations.",
		      "name": "Kerala Tour",
		      "telephone": "+91-9324904946"
		    }
		    </script>
			";i:5;N;}