a:6:{i:0;s:12486:"				<div class="h1"><h1>Marvelous Kerala - The God's Own Country Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.bluedolphintravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.bluedolphintravels.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Marvelous Kerala - The God's Own Country 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.bluedolphintravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Marvelous Kerala - The God's Own Country 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="96775"/>
						</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_15/428110/163851.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/428110/163851.jpg"  width="150" height="150"    alt="Marvelous Kerala - The God's Own Country Tour" title="Marvelous Kerala - The God's Own Country Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Hotel Accommodation.<br />
Welcome Drinks<br />
MEALS –Daily Breakfast & Dinner.<br />
To & fro Transfer from Airport Railway<br />
All Sightseeing by AC Cab (06 Days)<br />
Free use of all Hotel facilities<br />
All applicable taxes such Driver Bata, Toll charges, Parking charges, Permit etc.<br />
<br />
Please Note :-<br />
The Rates For Ex Bed & Transportation Are Nett & Non Commission able.<br />
The Above Hotels Are Subject To Availability.<br />
Station Current Service Tax Of 9% Extra Applicable.Airline/Railway Tickets 20 Days - 50% of Tour Cost.<br />
Entry & Monuments Fee Less than 10 Days. 100% of Tour Cost.<br />
Expenses like Laundry, Telephone, Drinks, tips, Portarage etc.<br />
Any Accident Insurance.<br />
Anything not mentioned in the inclusions.<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
								</p>
								<p class="aj">Welcome to Gods own Country! On arrival at Cochin Airport you will be met by our executive and transferred to Hotel it’ll be around 60 Mts.Drive. Rest of the day at complete leisure or you have an optionto take a sightseeing trip of Cochin like Chinese Fishing Nets, Dutch & Matancherry Palace, Marine Drive, Synagogue etc. Enjoy Dinner Overnight Stay at 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 2:</b> Cochin To Munnar (150 Kms.)
								</p>
								<p class="aj">Morning after breakfast drive to Munnar (150 Kms / 4 Hrs) enjoying the panoramic view of the green carpets Of tea plantations around the route on the way you can visit Cheeyapara Waterfalls. On arrival check in a Hotel & spend the rest of the day at leisure trekking around the estate. Stay overnight at your 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 3:</b> Munnar
								</p>
								<p class="aj">Morning sightseeing trip of Munnar including the Eravikulam National Park, the Mattupetty Dam also walk through the Old Munnar Town. Rest of the day at leisure and enjoy another overnight stay at your 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 4:</b> Munnar To Thekkady (120 Kms.)
								</p>
								<p class="aj">Morning after breakfast checks out from your Resort and proceeds to Periyar /Thekkady (120 Kms/3.5 Hrs.) and check in at the Hotel. After brief leisure go on a game viewing cruise on the Periyar Lake, located in middle of the wildlife sanctuary. Here you will be able to see a large variety of wildlife, which includes wild Elephants, Monkeys, Deer, Wild Boar and different species of birds, can also be spotted.Rest of the time for visiting Spice Market and such as.After Dinner overnight at 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 5:</b> Thekkady To Alleppey (170 Kms.)
								</p>
								<p class="aj">After breakfast proceed to Alleppey/Kumarakom (the backwaters) (170 Kms.) and check in to your Resort. Rest of the time for sightseeing like Kumarakom Bird sanctuary, local village life of Kumarakom. After Dinner Overnight stay in 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 6:</b> Departure
								</p>
								<p class="aj">Morning after breakfast at appropriate time you will be transferred to Cochin (100 KMS) airport or railway station for your onward journey back to your home destination. The Tour ends.</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">Exclusions :</p> <ul><li>Airline/Railway Tickets 20 Days - 50% of Tour Cost.</li><li>
Entry & Monuments Fee Less than 10 Days. 100% of Tour Cost.</li><li>
Expenses like Laundry, Telephone, Drinks, tips, Portarage etc.</li><li>
Any Accident Insurance.</li><li>
Anything not mentioned in the inclusions.</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. ~^#^~						
    	<p class="h dif xlarge b mb5px">Package Cost</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Destination</td>
				<td class="headHr p5px b">Nights</td>
				<td class="headHr p5px b">Standard</td>
				<td class="headHr p5px b">Deluxe</td>
			</tr>
			<tr>
				<td class="data p5px">Cochin</td>
				<td class="data p5px">01</td>
				<td class="data p5px">The Dunes Continental/Summit Suites</td>
				<td class="data p5px">The Dunes / Abaam</td>
			</tr>
			<tr>
				<td class="data p5px">Munnar</td>
				<td class="data p5px">02</td>
				<td class="data p5px">Whispering Meadows / Great Escapes</td>
				<td class="data p5px">Elysium Garden / Birds Valley</td>
			</tr>
			<tr>
				<td class="data p5px">Thekkady</td>
				<td class="data p5px">01</td>
				<td class="data p5px">SN International / Green Court</td>
				<td class="data p5px">Periyar Meadows / Tree Top</td>
			</tr>
			<tr>
				<td class="data p5px">Alleppey</td>
				<td class="data p5px">01</td>
				<td class="data p5px">Pagoda Resorts / Arcadia Regency</td>
				<td class="data p5px">Bonanza / Kalthil Lake Resort</td>
			</tr>
			<tr>
				<td class="data p5px"></td>
				<td class="data p5px">01 Couple with an Sedan Cab</td>
				<td class="data p5px">Rs.17,700/- Per Person</td>
				<td class="data p5px">Rs.19,900/- Per Person</td>
			</tr>
			<tr>
				<td class="data p5px"></td>
				<td class="data p5px">02 Couple with an Innova</td>
				<td class="data p5px">Rs.14,700/- Per Person</td>
				<td class="data p5px">Rs.16,400/- Per Person</td>
			</tr>
			<tr>
				<td class="data p5px">Rates</td>
				<td class="data p5px">03 Couple with an Innova</td>
				<td class="data p5px">Rs.13,250/- Per Person</td>
				<td class="data p5px">Rs.14,950/- Per Person</td>
			</tr>
			<tr>
				<td class="data p5px"></td>
				<td class="data p5px">04 Couple with a Tempo Traveler</td>
				<td class="data p5px">Rs.13,250/- Per Person</td>
				<td class="data p5px">Rs.14,950/- Per Person</td>
			</tr>
			<tr>
				<td class="data p5px"></td>
				<td class="data p5px">05 to 06 Couple with a TT</td>
				<td class="data p5px">Rs.12,700/- Per Person</td>
				<td class="data p5px">Rs.14,400/- Per Person</td>
			</tr>
			<tr>
				<td class="data p5px"></td>
				<td class="data p5px"></td>
				<td class="data p5px">Rs.5,850/- For 1 Ex. Bed</td>
				<td class="data p5px">Rs.7,450/- For 1 Ex. Bed</td>
			</tr>
			<tr>
				<td class="data p5px"></td>
				<td class="data p5px">AC Houseboat Supplementary</td>
				<td class="data p5px">Rs.4,000/- Per Couple</td>
				<td class="data p5px">Rs.3,550/- Per Couple</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bluedolphintravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Marvelous Kerala - The God's Own Country 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="96775"/>
						</form>
						</div>
						
						";i:1;s:84:"Book Marvelous Kerala - The God's Own Country Tour - 5 Nights / 6 Days Tour Packages";i:2;s:161:"book marvelous kerala - the god's own country tour - 5 nights / 6 days tour packages, hill station tour packages, kochi, thekkady, alleppey, munnar tour packages";i:3;s:198:"Blue Dolphin Travels offers Marvelous Kerala - The God's Own Country Tour - 5 Nights / 6 Days tour package, budget Hill Station tour packages for Kochi, Thekkady, Alleppey, Munnar at exciting price.";i:4;s:1149:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kochi, Thekkady, Alleppey, Munnar"        
		                 },
		      "description": "Hotel Accommodation.
Welcome Drinks
MEALS –Daily Breakfast & Dinner.
To & fro Transfer from Airport Railway
All Sightseeing by AC Cab (06 Days)
Free use of all Hotel facilities
All applicable taxes such Driver Bata, Toll charges, Parking charges, Permit etc.

Please Note :-
The Rates For Ex Bed & Transportation Are Nett & Non Commission able.
The Above Hotels Are Subject To Availability.
Station Current Service Tax Of 9% Extra Applicable.Airline/Railway Tickets 20 Days - 50% of Tour Cost.
Entry & Monuments Fee Less than 10 Days. 100% of Tour Cost.
Expenses like Laundry, Telephone, Drinks, tips, Portarage etc.
Any Accident Insurance.
Anything not mentioned in the inclusions.",
		      "name": "Marvelous Kerala - The God's Own Country Tour",
		      "telephone": "+91-9558888723"
		    }
		    </script>
			";i:5;N;}