a:6:{i:0;s:11909:"				<div class="h1"><h1>Hills And Backwater 4Night/5Days Kerela Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.chaturveditravels.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Hills And Backwater 4Night/5Days Kerela Package</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">Tour Code </td>
						<td class="p5px pl0px vat">CTT04/KERELA 4NIGHT/</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Periyar, Munnar</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 14900 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Hills And Backwater 4Night/5Days Kerela Package - 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="27755"/>
						</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_8/229281/56079.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/229281/56079.jpg"  width="150" height="150"    alt="backwater life" title="backwater life" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Airfare, Train fare, Overland Journey which is not mentioned in the Itinerary.<br />
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.<br />
Major Meals i.e. Lunch & Dinner.<br />
Any Medical/rescue evacuation due to mishaps.<br />
Optional Activities mentioned in the itinerary .<br />
Any other things that is not included in the “Package Cost Includes” Column.<b><b>Note:<br />
<br />
Any changes in Govt. taxes, Hotel Tariff, etc will be intimated before confirming the Package.<br />
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.<br />
Government Service tax @ 3.09 Extra .<br />
Every passenger is traveling on his own responsibility. The company will not be responsible for any loss of luggage or any accidents. We are not responsible for theft or damage to your luggage.<br />
Also note that Video & Audio systems are prohibited in commercial vehicles as per law and we do not guarantee for it always.<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> Cochin - Munnar (140kms/4hrs)
								</p>
								<p class="aj">On arrival at Cochin, our representative will meet you, and we take you to Munnar. Throughout the journey enjoy beautiful streams Rubber, Pepper cardamom, small waterfalls, and Tea plantations and thick forests. God has blessed his own country with incomparable beauty – to have everlasting memory of your honeymoon days in Kerala.<br />
Munnar is situated at the confluence of three mountain streams - Muthirapuzha, Nallathanni and Kundala, and perched about 1600 m above sea level, the hill station of Munnar once used to be the summer resort of the erstwhile British administration in south India. This hill station is marked by vast expanses of tea plantations, colonial bungalows, rivulets, waterfalls and cool weather. It is also an ideal destination for trekking and mountain biking.<br />
On arrival at Munnar check into Hote Rest of the day free at leisurel. Overnight stay at Munnar.<br />
</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> Munnar
								</p>
								<p class="aj">After breakfast we take you for a full day sightseeing trip of Munnar watch beautiful mist kissing romantic green meadows- mind-blowing hills sleeping under green carpet (Tea Gardens) visit - Mattupetty Lake & Dam, Echo Point, Kundale Lake, Blossom Garden, Rajamalai, Eravikulam Wildlife sanctuary & Tea Plantation. Sizzling air will guide you to your hotel room early to have your own world.Return back to the hotel Rest of the day free at leisure, Overnight stay at Munnar.</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> Munnar - Thekkady / Periyar (120kms/4hrs
								</p>
								<p class="aj">Morning after breakfast check out from hotel and drive to Thekkady through panoramic Western Ghat hills covered with spice plantations and occasional view of waterfalls and streams. <br />
Thekkady in India’s largest wildlife sanctuary is a dream destination for any tourist visiting India . The 120 years old 'Surki' dam built across Peryiar, Poorna in Vedic parlance, is a major tourist attraction. This sanctuary is spread over an area of 777 Sq.Kms, surrounded by an artificial lake over an area of 25 Sq.Kms. The Country's sole Tiger reserve, Thekkady, with its bountiful treasures of tropical flora and fauna is the ultimate reservoir of many an endangered species and a rich tribal culture. Thekkady is a pleasant heaven on earth for those who love nature in its wild manifestations.<br />
On arrival at Thekkady check into Hotel. Afternoon have the fanatically wonderful view of the calm crystal clear Periyar Lake, Whistles of birds and murmurings of wild animals will seduce your mind for romance Rest of the day free at leisure. Overnight stay at Thekkady.</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> Periyar - Houseboat Alleppey (145kms/4hrs)
								</p>
								<p class="aj">Morning after breakfast check out from hotel and transfer to Alleppey .<br />
Alleppey or Alappuzha is the Venice of the East; It is famous for its boat races, backwater holidays, beaches, marine products and coir industry. Alappuzha beach is a popular picnic spot. The pier, which extends into the sea here, is over 137 years old. Entertainment facilities at the Vijaya Beach Park add to the attraction of the beach. There is also an old lighthouse nearby which is greatly fascinating to visitors.<br />
On arrival check in at houseboat. Rest of the day at leisure on the House Boat. Sit back and relax while the boat cruises through the narrow serene backwater canals. Lunch, Evening Tea/Coffee with snacks, dinner and enjoy your evening on the sundeck away form polluted cities and maddening crowd. Overnight stay on House Boat.</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> Alleppey - Cochin (Departure- 100kms/2hrs)
								</p>
								<p class="aj">Morning at leisure on House Boat experience the pollution free air and after a good breakfast at 0900 Hrs check out from houseboat and we transfer you Cochin – airport / Railway station. With this, end of hills and Backwater tour with some beautiful memories.</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>Sightseeing</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any Airfare, Train fare, Overland Journey which is not mentioned in the Itinerary.</li><li>
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.</li><li>
Major Meals i.e. Lunch & Dinner.</li><li>
Any Medical/rescue evacuation due to mishaps.</li><li>
Optional Activities mentioned in the itinerary .</li><li>
Any other things that is not included in the “Package Cost Includes” Column.Note:</li><li>
Any changes in Govt. taxes, Hotel Tariff, etc will be intimated before confirming the Package.</li><li>
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.</li><li>
Government Service tax @ 3.09 Extra .</li><li>
Every passenger is traveling on his own responsibility. The company will not be responsible for any loss of luggage or any accidents. We are not responsible for theft or damage to your luggage.</li><li>
Also note that Video & Audio systems are prohibited in commercial vehicles as per law and we do not guarantee for it always.</li></ul><br />
												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Hills And Backwater 4Night/5Days Kerela Package - 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="27755"/>
						</form>
						</div>
						
						";i:1;s:86:"Book Hills And Backwater 4Night/5Days Kerela Package - 4 Nights / 5 Days Tour Packages";i:2;s:150:"book hills and backwater 4night/5days kerela package - 4 nights / 5 days tour packages, forts and palaces tour packages, periyar, munnar tour packages";i:3;s:195:"Chaturvedi Travels and Tours offers Hills And Backwater 4Night/5Days Kerela Package - 4 Nights / 5 Days tour package, budget Forts and Palaces tour packages for Periyar, Munnar at exciting price.";i:4;s:1465:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Periyar, Munnar"        
		                 },
		      "description": "Any Airfare, Train fare, Overland Journey which is not mentioned in the Itinerary.
Any personal nature items like Laundry, bar bills, table bills, camera fee, tips or any other item.
Major Meals i.e. Lunch & Dinner.
Any Medical/rescue evacuation due to mishaps.
Optional Activities mentioned in the itinerary .
Any other things that is not included in the “Package Cost Includes” Column.<b><b>Note:

Any changes in Govt. taxes, Hotel Tariff, etc will be intimated before confirming the Package.
Cost incidental to any change in the itinerary/ stay on account of flight cancellation due to bad weather, ill health, roadblocks and/or any factors beyond control.
Government Service tax @ 3.09 Extra .
Every passenger is traveling on his own responsibility. The company will not be responsible for any loss of luggage or any accidents. We are not responsible for theft or damage to your luggage.
Also note that Video & Audio systems are prohibited in commercial vehicles as per law and we do not guarantee for it always.",
		      "name": "Hills And Backwater 4Night/5Days Kerela Package",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}