a:6:{i:0;s:10209:"				<div class="h1"><h1>Magical Kerala Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.fourstoursandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.fourstoursandtravels.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Magical 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, Thekkady, Alleppey, 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.fourstoursandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Magical 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="84224"/>
						</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/460853/148652.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/460853/148652.jpg"  width="150" height="150"    alt="Magical Kerala Tour" title="Magical Kerala Tour" /></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
								</p>
								<p class="aj">Cochin, the confluence point of the alluring Arabian Sea and the Silent Backwater, will be your host for the day. With your arrival in this pictorial port-city, you will be warmly greeted by our representatives. Hereafter, you will be checked-in into a hotel, where you can unwind, relax and get freshened up.<br />
<br />
Though a metropolis, Cochin still holds strong to its roots and cultures. To witness and enjoy the many different facets of Cochin, you will be taken to a cultural show in the evening, where you can enjoy Kathakali dance performance by local artists. Post this lively and vibrant show, you will be guided back to the hotel for your overnight stay.</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">Today morning, after having breakfast, you will be checked-out from the hotel and driven towards the hill station of Munnar. Cossetted by lush greeneries, guarded by captivating hills and mountains, and fringed with never-ending tea plantations, Munnar is also known as the ‘Nature Lover’s Paradise’ and will surely hold you captive throughout your stay. Arriving in this hilly retreat, you will be checked-in into a hotel or a resort; overnight stay in the hotel/resort..</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> Thekkady
								</p>
								<p class="aj">Today, you will be introduced with the enchanting beauty of Munnar! Following your breakfast at the hotel/resort, you will be embarking on a full day excursion and sightseeing around this gorgeous hill station. During the day, you will be taken to tourist spots like Matuppetty, Echo Point, Gundala Lake, Photo Point and Rajamalai National Park followed by several other destinations.<br />
<br />
The day also includes a visit to spice plantations, Tata Tea Museum, Blossom Hydel Park, Headworks Dam, Elephant Arrival Spot and Pothamedu View Point from where you can enjoy amazing sunset views. With the completion of all these visits, you will be guided back to the hotel; for your overnight stay.</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> Thekkady
								</p>
								<p class="aj">Waking up in the morning, enjoy a delicious breakfast while adoring the pristine beauty of Munnar! Post this, pack your bags as you will be checked-out from the hotel/resort followed by a drive to Thekkady, the home to Periyar National Park.<br />
<br />
Arriving in Thekkady, you will be checked-in into a hotel/resort; settle down in your new abode and get ready to discover the alluring charm and appeal of this picturesque tourist town. Post this, you will be taken for a guided tribal tour to a nearby village, plantation tours and finally for an evening boat ride to Periyar National Park. After returning to hotel, you can spend the evening at leisure or can opt for local shopping in Thekkady; overnight stay at the hotel/resort.</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
								</p>
								<p class="aj">Your Kerala holidays will never get complete without a visit to its silent backwaters! Today, after having breakfast at the Thekkady hotel/resort, you will be driven towards Alleppey or the ‘Backwater Capital of Kerala. Known for its enchanting backwaters, snake boat races, gurgling canals, lush greeneries and much more, Alleppey is also known as ‘Alappuzha’ or the ‘Venice of the East’.<br />
<br />
Arriving in this backwater destination, you will be checked-in into an exciting houseboat. Get freshened up and utilise the heart-warming facilities and amenities within your stay. Post this, cruise through the backwater, discover the swaying beauty of the narrow canals, verdant paddy fields, coconut lagoons and coir villages; overnight stay will be in 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 6:</b> Departure
								</p>
								<p class="aj">With today’s breakfast within the houseboat, you will reach the final point of your amazing Kerala tour! Post breakfast, you will be checked-out from the houseboat and driven back to Cochin. Arriving at Cochin International Airport, wish adieu to the salubrious locales and the magical backwaters of Kerala.</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.fourstoursandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Magical 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="84224"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Magical Kerala Tour - 5 Nights / 6 Days Tour Packages";i:2;s:135:"book magical kerala tour - 5 nights / 6 days tour packages, hill station tour packages, kochi, thekkady, alleppey, munnar tour packages";i:3;s:189:"Book Magical Kerala Tour - 5 Nights / 6 Days tour packages from Four S Tours & Travels - Get attractive 5 Nights / 6 Days Hill Station  tour packages for  Kochi, Thekkady, Alleppey, Munnar.";i:4;s:424:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kochi, Thekkady, Alleppey, Munnar"        
		                 },
		      "description": "",
		      "name": "Magical Kerala Tour",
		      "telephone": "+91-8089895191"
		    }
		    </script>
			";i:5;N;}