a:6:{i:0;s:12751:"				<div class="h1"><h1>Kerala Honeymoon Holidays (06 Nights / 07 Days)</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.chaturveditravels.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Kerala Honeymoon Holidays (06 Nights / 07 Days)</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">CTT07/KERELA PACKAGE</td>
						</tr>
												<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">Kottayam, Munnar</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 18500 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="Kerala Honeymoon Holidays (06 Nights / 07 Days) - 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="27756"/>
						</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/56078.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/229281/56078.jpg"  width="150" height="150"    alt="kerala honeymoon" title="kerala honeymoon" /></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 />
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 (130 KMS - 04 Hours drive)
								</p>
								<p class="aj">Arrival at Kochi (Cochin) meet and assistance at the Airport by our representative, Proceed to Munnar enjoying the scenic beauty & the marvelous waterfalls, high mountains with the low flying clouds passing by. <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 check in to the hotel and rest of the day free at lesuire. 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 2:</b> Munnar
								</p>
								<p class="aj">After breakfast Proceed to Mattupetty Lake and dam, this is a very beautiful picnic spot. You could enjoyboating in the lake and dam and View Mountains and landscapes from afar. Onwards move to Eco point and then to Kundala dam, Topstation offering beautiful view of Munnar valley below later Return back to the hotel and rest of the day free at lesuire. 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
								</p>
								<p class="aj">After breakfast Proceed to Sightseeing Rajamalai - Highly populated of the endangered Nilagiri Tahr lives in the Eravikulam national park, Luckom Waterfalls, Tea Museum. Return back to the hotel and rest of the day free at lesuire. 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 4:</b> Munnar - Thekkady / Periyar (110 KMS - 04 Hours drive)
								</p>
								<p class="aj">Morning after breakfast check out from hotel and proceed to Thekkady. Covering Sightseeing Devikulam View, Lock Heart Gap View, Anayirangal Dam, Spice Plantation Visits (extra Cost).<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 check in at hotel. Later Sightseeing in Periyar Wildlife Sanctuary. Return back to the hotel and rest of the day free at lesuire. 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 5:</b> Thekkady - Alleppey House Boat (160 KMS - 04 Hours drive)
								</p>
								<p class="aj">Morning after breakfast check out from hotel and Proceed to the Vembanand Lake. <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 />
Arrival and check in to the House Boat. Explore the fascinating beauty of the backwaters. Cruise through the backwaters. Overnight at 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 6:</b> Alleppey - Kumarakom
								</p>
								<p class="aj">After breakfast check out from Houseboat and drive to Kumarakom, <br />
Kumarakom is a cluster of little islands on the Vembanad Lake, and is part of the Kuttanad region. The bird sanctuary here, which is spread across 14 acres is a favourite haunt of migratory birds and an ornithologist's paradise. Egrets, darters, herons, teals, waterfowls, cuckoo, wild duck and migratory birds like the Siberian Stork visit here in flocks and are a fascinate the visitors.<br />
On arrival check in to the hotel later Visit to Kumarakom Bird Sanctuary. Evening at Leisure. Overnight Stay at Kumarakom.<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 7:</b> Kumarakom - Cochin Drop (90 KMS)
								</p>
								<p class="aj">After breakfast check out from Hotel and drive to Cochin Airport / Railway Station for onward journey.</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="Kerala Honeymoon Holidays (06 Nights / 07 Days) - 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="27756"/>
						</form>
						</div>
						
						";i:1;s:86:"Book Kerala Honeymoon Holidays (06 Nights / 07 Days) - 6 Nights / 7 Days Tour Packages";i:2;s:148:"book kerala honeymoon holidays (06 nights / 07 days) - 6 nights / 7 days tour packages, lakes & rivers tour packages, kottayam, munnar tour packages";i:3;s:193:"Chaturvedi Travels and Tours offers Kerala Honeymoon Holidays (06 Nights / 07 Days) - 6 Nights / 7 Days tour package, budget Lakes & Rivers tour packages for Kottayam, Munnar at exciting price.";i:4;s:1459:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kottayam, 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": "Kerala Honeymoon Holidays (06 Nights / 07 Days)",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}