a:6:{i:0;s:13304:"				<div class="h1"><h1>Colorful Kerala  8D/7N</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sanskrutivacations.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sanskrutivacations.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Colorful Kerala  8D/7N</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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kovalam, Thekkady, Alleppey, Kanyakumari, Munnar</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 28800 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Colorful Kerala  8D/7N - 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="82791"/>
						</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_14/393874/146709.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/393874/146709.jpg"  width="150" height="150"    alt="Colorful Kerala  8D/7N" title="Colorful Kerala  8D/7N" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Accommodation on twin Sharing Basis. <br />
Meal Plan (as per mentioned above).<br />
Exclusive A/c vehicle for transfers & sightseeing.  <br />
All permit fees & hotel taxes (as per itinerary).<br />
Rates are valid for INDIAN NATIONALS onlyAir Fare / Train fare. <br />
Personal Expenses such as Laundry, telephone calls, tips & gratuity, mineral water, soft & hard drinks, porterage.<br />
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary. <br />
Entrance Fees & Guide charges. <br />
Any cost arising due to natural calamities like, road blockage, political disturbances (strikes), etc (to be borne by the client, which is directly payable on the spot).<br />
Any increase in taxes or fuel price, leading to increase in cost on surface transportation & land arrangements, which may come into effect prior to departure. <br />
Service Tax. <br />
Insurance. <br />
Anything which is not included in the inclusion.<br />
Note:The package cost is valid for min.4 pax travelling together in Standard properties<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 & Drive from Cochin to Munnar (120 km/approx. 4.5 hours)
								</p>
								<p class="aj">Meet our representative upon arrival in Cochin and drive to Munnar - derived its name from the confluence of the three rivers around which the town grew. Today, it offers beautiful vistas, cardamom and spice plantations, aromatic oil factories, sights of several endangered species and the purple-blue of the Neelakurinji flowers that bloom every 12 years. Upon arrival, check-in at the hotel and spend evening at leisure. Overnight stay 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 2:</b> Sightseeing in Munnar
								</p>
								<p class="aj">Explore Eravikulam National Park, home to various elusive and endangered species. It is a great place to enjoy trekking and offers mind-blowing views of the tea plantations. Later, proceed towards Tea Museum (closed on Monday), which gives an insight to the history of tea plantations of this region. Later visit Mattupetty Dam, Eco Point and Flower Garden. Return to the hotel for dinner and 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> Munnar – Thekkady (90 kms / approx. 2.5 hours)
								</p>
								<p class="aj">After breakfast, drive to Thekkady (Periyar) and on arrival check-in at the hotel. Enjoy a full day sightseeing tour of Periyar. Set high in the ranges of the Western Ghats in Kerala, is the Periyar National Park and Tiger Reserve. Periyar wildlife sanctuary has a picturesque lake at the heart of the sanctuary. Herds of playful wild elephants have made Periyar Lake their favorite haunt for frolicking in the water. They can be witnessed bathing and swimming here. Enjoy a boat ride on the lake to view the wildlife at close quarters. Other inhabitants of Periyar include the leopard, wild dog, barking deer, mouse deer, Nilgiri langur, bonnet macaque, sambhar, porcupines, squirrels, gaur (Indian bison), wild boar and sloth bear. Later, take a spice plantation tour. The aroma and pleasant ambiance of the spice and tea plantations of Periyar are fascinating. Spices found in Thekkady include pepper, clove, cardamom, nutmeg, ginger, turmeric, vanilla and curry leaves. In evening, watch traditional Kalari show. (Optional) - You can also enjoy an elephant ride in Periyar. Return to the hotel for 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> Drive from Thekkady - Alleppey (140 kms / approx. 4 hours)
								</p>
								<p class="aj">Proceed to Alleppey by road after breakfast. After arrival, check-in at the houseboat in backwaters of Kerala. Alleppey is a charming emerald peninsula jutting into the picturesque Vembanad Lake dotted with innumerable traditional country rafts, boats and canoes. The fresh water of the lake flows into the mainland, making a labyrinth of lagoons, canals and waterways. Spend the rest of the day cruising through beautiful backwaters. Overnight at the Alleppey 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 – Kumarakom (33 kms / approx. 1 hour)
								</p>
								<p class="aj">After breakfast, check-out and proceed to Kumarakom - a charming emerald peninsula jutting into the picturesque Vembanad Lake dotted with innumerable traditional country rafts, boats and canoes. The fresh water of the lake flows into the mainland, making a labyrinth of lagoons, canals and waterways. Enjoy a sunset cruise in vembanad Lake (On direct payments). Overnight at the backwater 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> Drive from Kumarakom – Kovalam (180 kms / approx. 4.5 hours)
								</p>
								<p class="aj">After breakfast, drive towards south of Kerala, Kovalam- located close to the state capital Trivandrum, it is internationally famed for its palm-fringed beaches and rejuvenating centers. This coastal town initially came to notice with the construction of Halcyon Castle by the last Maharani of Travancore - Sethu Lakshmi Bayi. With the arrival of hippies in 1970s, the place gained recognition as a tourist destination and is today renowned for its 17 km-long coastline, which is formed by three beautiful beaches - Lighthouse, Hawah and Samudra. Upon arrival, check-in at hotel and spend rest of the day at leisure. 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 7:</b> Excursion to Kanyakumari, with Trivandrum sightseeing
								</p>
								<p class="aj">After breakfast, take excursion trip to Kanyakumari – visit the Vivekananda Memorial, Gandhi Museum and southernmost point. While returning, also cover Napier Museum, Art Gallery and Padmanabhaswamy Temple. Return to Kovalam for 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> Departure from Trivandrum
								</p>
								<p class="aj">After breakfast, you will be transferred to Trivandrum airport for return flight back home.</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>Air Fare / Train fare. </li><li>
Personal Expenses such as Laundry, telephone calls, tips & gratuity, mineral water, soft & hard drinks, porterage.</li><li>
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary. </li><li>
Entrance Fees & Guide charges. </li><li>
Any cost arising due to natural calamities like, road blockage, political disturbances (strikes), etc (to be borne by the client, which is directly payable on the spot).</li><li>
Any increase in taxes or fuel price, leading to increase in cost on surface transportation & land arrangements, which may come into effect prior to departure. </li><li>
Service Tax. </li><li>
Insurance. </li><li>
Anything which is not included in the inclusion.</li><li>
Note:The package cost is valid for min.4 pax travelling together in Standard properties</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.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Colorful Kerala  8D/7N - 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="82791"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Colorful Kerala  8D/7N - 7 Nights / 8 Days Tour Packages";i:2;s:153:"book colorful kerala  8d/7n - 7 nights / 8 days tour packages, hill station tour packages, kovalam, thekkady, alleppey, kanyakumari, munnar tour packages";i:3;s:204:"Book Colorful Kerala  8D/7N - 7 Nights / 8 Days tour packages from Sanskruti Vacations - Get attractive 7 Nights / 8 Days Hill Station  tour packages for  Kovalam, Thekkady, Alleppey, Kanyakumari, Munnar.";i:4;s:1426:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kovalam, Thekkady, Alleppey, Kanyakumari, Munnar"        
		                 },
		      "description": "Accommodation on twin Sharing Basis. 
Meal Plan (as per mentioned above).
Exclusive A/c vehicle for transfers & sightseeing.  
All permit fees & hotel taxes (as per itinerary).
Rates are valid for INDIAN NATIONALS onlyAir Fare / Train fare. 
Personal Expenses such as Laundry, telephone calls, tips & gratuity, mineral water, soft & hard drinks, porterage.
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary. 
Entrance Fees & Guide charges. 
Any cost arising due to natural calamities like, road blockage, political disturbances (strikes), etc (to be borne by the client, which is directly payable on the spot).
Any increase in taxes or fuel price, leading to increase in cost on surface transportation & land arrangements, which may come into effect prior to departure. 
Service Tax. 
Insurance. 
Anything which is not included in the inclusion.
Note:The package cost is valid for min.4 pax travelling together in Standard properties",
		      "name": "Colorful Kerala  8D/7N",
		      "telephone": "+91-9769880881"
		    }
		    </script>
			";i:5;N;}