a:6:{i:0;s:11006:"				<div class="h1"><h1>Best of Kerala with Treehouse Stay</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.globetrotteronline.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.globetrotteronline.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Best of Kerala with Treehouse Stay</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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kochi, Kovalam, Alleppey, Trivandrum, Munnar</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.globetrotteronline.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of Kerala with Treehouse Stay - 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="91922"/>
						</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_16/457498/158061.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457498/158061.jpg"  width="150" height="150"    alt="Best of Kerala with Treehouse Stay" title="Best of Kerala with Treehouse Stay" /></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> Arrival in Cochin
								</p>
								<p class="aj">On your arrival at the Cochin Airport/ Railway Station, meet our tour representative helps you in getting transferred to the hotel. Complete the check-in formalities and settle in your room. Lunch is followed by travelling across the Cochin Harbor to arrive at Fort Cochin, where you enjoy the sightseeing tour. Visit the region's prime attractions like St. Francis Church- the oldest European church in India that was constructed way back in the 1503; Dutch Palace- also known as Mattancherry Palace, this Portuguese palace is known for its murals, portraits and exhibits of Rulers of Kochi, and Jewish Synagogue or Paradesi Synagogue- the oldest active synagogue in the Commonwealth of Nations, it is one of those synagogues that are used even today etc. The evening is scheduled for special Kathakali dance performance.<br />
<br />
Stay overnight in Cochin.</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> Cochin - Munnar
								</p>
								<p class="aj">After breakfast on the 2nd day, begin driving towards Munnar, probably the most popular hill town in Kerala. This journey is going to be a treat for your eyes including the lovely views of lofty Cardamom hills and lush aromatic tea plantations. As you reach Munnar, check-in at a Tree house resort. An exciting form of accommodation, a tree house is built on a platform of a tree trunk or on branches of one or more matured trees, above the ground level. Such accommodation are equipped with all the modern amenities. The rest of the day at leisure. Enjoy your stay amid greenery. You can also explore the surroundings at your own pace.<br />
<br />
Overnight stay in 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">The day is scheduled for the sightseeing tour of beautiful and lush Munnar. Visit Mattupetty Dam- a storage concrete gravity dam built on a Lake, it is surrounded by peaceful ambiance, Shola ranges, lush forests and lofty hills; Old Munnar Town- dotted with a number of attractions and viewpoints, it shows a different side of the hill town; Town Market- a bustling market selling anything and everything; Eravikulam National Park- placed along the Western Ghats, it is home to the largest population of the endangered Nilgiri Tahr and Indo-Swiss dairy farm- popular for cattle farming, spread in a lush land of 191 hectares, it houses over 400 high -quality cattle, including cows and breeding bulls.<br />
<br />
Overnight stay in a tree house.</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 - Alleppey (By Houseboat)
								</p>
								<p class="aj">After breakfast on day 4, start your road journey to the hub backwaters in Kerala- Alleppey, which is now known as Alappuzha. On reaching, check-into a Kettuvallam, or a houseboat that is well-equipped with all the modern facilities and amenities. This delightful backwater cruise is going to be an overnight journey. There are a number popular backwater routes that offer delightful views, serene ambiance, visit to popular sights, paddy fields and much more.<br />
<br />
Overnight on-board the houseboat.</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 - Kovalam
								</p>
								<p class="aj">Today have your breakfast. Disembark from the houseboat and hit the road to Kovalam. Upon arrival, check into a beach resort. A stunning, serene beach town near Thiruvananthapuram, Kovalam offers peaceful holidays. It is best known as crescent-shaped beach that comprises of three beaches- Hawa beach, Lighthouse beach and Samudra beach. You can explore this wonderful place on your own.<br />
<br />
Stay overnight in Kovalam.</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> Kovalam
								</p>
								<p class="aj">On the morning of day 6, opt for sightseeing in and around Kovalam including attractions like the very popular Padmanabha Swamy temple- mix of Kerala and Dravidian styles of architecture, it is dedicated to Lord Vishnu, Veli Tourist Village- a wonderful spot for picnic and boating, it also has a Children's park and a floating café; the Museum Complex- equally popular amid adults and children, Science & Technology Museum- founded by the Govt. in 1984, it is a study cum recreation center; Shangmugham Beach- one of the popular beaches of Kerala; it is dotted with a few attractions and Akkulam boat club to enjoy boating and other recreational activities. Back to Kovalam.<br />
<br />
Stay overnight.</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> Departure
								</p>
								<p class="aj">Get on-time transfer to the Trivandrum airport/railway station to board flight/train 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>
															</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.globetrotteronline.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of Kerala with Treehouse Stay - 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="91922"/>
						</form>
						</div>
						
						";i:1;s:73:"Book Best of Kerala with Treehouse Stay - 6 Nights / 7 Days Tour Packages";i:2;s:166:"book best of kerala with treehouse stay - 6 nights / 7 days tour packages, beach and islands tour packages, kochi, kovalam, alleppey, trivandrum, munnar tour packages";i:3;s:220:"Book Best of Kerala with Treehouse Stay - 6 Nights / 7 Days tour packages from Globe Trotter Holidays - Get attractive 6 Nights / 7 Days Beach and Islands  tour packages for  Kochi, Kovalam, Alleppey, Trivandrum, Munnar.";i:4;s:450:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kochi, Kovalam, Alleppey, Trivandrum, Munnar"        
		                 },
		      "description": "",
		      "name": "Best of Kerala with Treehouse Stay",
		      "telephone": "+91-7030378080"
		    }
		    </script>
			";i:5;N;}