a:6:{i:0;s:11583:"				<div class="h1"><h1>Kerala Family Holiday Package</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>Kerala Family Holiday 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">Duration </td>
						<td class="p5px pl0px vat">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kumarakom, Kovalam, 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="Kerala Family Holiday 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="84227"/>
						</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/148655.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/460853/148655.jpg"  width="150" height="150"    alt="Kerala Family Holiday Package" title="Kerala Family Holiday Package" /></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">Get set for the unlimited fun and excitement in God’s Own Country with your family members as you arrive in Cochin. As you arrive, our friendly tour guides will receive you at the airport and drive you to Munnar. A picturesque hill station in Kerala, your arrival in Munnar will be greeted with your checking-in into a hotel or a resort, where you can spend the day at leisure following 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">Your family’s first morning in Kerala will get adorned with the enchanting beauty of Munnar’s magnificent hills and mountains. Completing breakfast, embark on a full-day sightseeing tour with your family and witness the captivating beauty of the hill station..<br />
<br />
Visit tourist spots and places like Echo Point, Gundala Lake, Photo Point, Elephant Arrival Spot, Cinema Shooting Point, Mattuppetty, and Jungle Honey Bee Nest on the first half of the day. The second half of the day, you can visit Eravikulam National Park,Anaimudi Peak, Tata Tea Museum, Blossom Hydel Park, Headworks Dam, Spice Plantation, and Pothamedu. Come evening, you will be dropped at your hotel/resort 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 3:</b> Thekkady
								</p>
								<p class="aj">After an amazing sightseeing tour, today, you will be driven to Thekkady or the abode of the Periyar National Park. A drive of around 3 hours will take you to this gorgeous wildlife abode, where you will be checked-in into a hotel followed by a boat ride along the Periyar Lake. This ride will get you introduced with the enchanting beauty of Thekkady’s pristine nature and wilderness! By evening, you will be dropped at 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">Today, you can take a full-day sightseeing tour around Thekkady and discover its alluring charm and appeal. Following your family’s early morning breakfast, you will be taken for a boat cruise in the Periyar Lake, where you can spot an array of wildlife species like elephants, wild boars, deer, a number of exotic birds and several others.</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
								</p>
								<p class="aj">Returning from this boat excursion, you can opt for visits to some of the tribal villages around Thekkady and explore their local life and culture. By evening, the entire family will be driven back to the hotel; overnight stay will be at the hotel.</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
								</p>
								<p class="aj">This morning, after having breakfast with your family, it will be time for you to visit Alleppey or the ‘Backwater Capital’ of Kerala. Completing the short drive to this gorgeous backwater destination, your arrival in Alleppey will be followed by your checking-in into an exotic houseboat.<br />
<br />
Settle down, relax and get freshened up within the boat, and embrace the charm of the day with a backwater cruise. Cruise the narrow canals, enjoy the opulent beauty of the coconut lagoons and visit some of the coir villages in Alleppey. By evening, as the houseboat anchors down, you can feast on the tranquillity of the evening and spend overnight 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 7:</b> Kovalam
								</p>
								<p class="aj">Today, your Kerala family holiday will take the entire family to Kovalam! One of the most gorgeous beach destinations in God’s Own Country, this is the place where you can play with the warm sands and enjoy the alluring waves of the mighty Arabian Sea!<br />
<br />
Arriving in Kovalam, visit the Kovalam Beach and enjoy activities like sunbathing, swimming, herbal body massages and several others. Cultural programmes and catamaran cruise will follow your day, and with the advent of the evening, you will be checked-in into a beach resort 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 8:</b> Kanyakumari
								</p>
								<p class="aj">Following yourtoday’s breakfast, your Kerala family holiday package will come to an end. Today, you will be dropped at Trivandrum Airport, and with your drop, the tour will come to an end.<br />
<br />
Arriving in Kanyakumari, you can take a boat ride to the Vivekananda Rock Memorial, where Swami Vivekananda used to meditate in the past. On completion of this ride, you will be driven back to the Kovalam beach resort 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 9:</b> Departure
								</p>
								<p class="aj">Following yourtoday’s breakfast, your Kerala family holiday package will come to an end. Today, you will be dropped at Trivandrum Airport, and with your drop, the tour will come to an end.</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="Kerala Family Holiday 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="84227"/>
						</form>
						</div>
						
						";i:1;s:68:"Book Kerala Family Holiday Package - 8 Nights / 9 Days Tour Packages";i:2;s:158:"book kerala family holiday package - 8 nights / 9 days tour packages, hill station tour packages, kumarakom, kovalam, thekkady, alleppey, munnar tour packages";i:3;s:197:"Four S Tours & Travels offers Kerala Family Holiday Package - 8 Nights / 9 Days tour package, budget Hill Station tour packages for Kumarakom, Kovalam, Thekkady, Alleppey, Munnar at exciting price.";i:4;s:447:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kumarakom, Kovalam, Thekkady, Alleppey, Munnar"        
		                 },
		      "description": "",
		      "name": "Kerala Family Holiday Package",
		      "telephone": "+91-8089895191"
		    }
		    </script>
			";i:5;N;}