a:6:{i:0;s:14643:"				<div class="h1"><h1>Best of Sri Lanka with Ramayana Trail Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.northerntourandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.northerntourandtravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Best of Sri Lanka with Ramayana Trail 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">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Colombo, Kandy, Nuwara Eliya, Kalutara</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.northerntourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of Sri Lanka with Ramayana Trail 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="54858"/>
						</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_12/334611/105694.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/334611/105694.jpg"  width="150" height="150"    alt="Best of Sri Lanka with Ramayana Trail Tour" title="Best of Sri Lanka with Ramayana Trail 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> Airport - Pinnawala - Kandy
								</p>
								<p class="aj">Meet and assist on arrival at the airport by our Travels representative and transfer to Kandy.<br />
<br />
En route visit the Pinnawala Elephant Orphanage.<br />
<br />
Pinnawala Elephant Orphanage<br />
<br />
As you enter the 25 acre coconut property, witness baby elephants being bottle fed or moving around freely causing absolutely no harm to anyone. It is rightly a sincere sight to observe how these gentle giants - orphaned and sometimes three-legged - are taken care of since 1975 at Pinnawala Elephant Orphanage. Up to date, over 20 calves have been born here, and it is surprising to hear that some of its inmates have even seen their grand children during the past few decades. Watch as they feed at 9:15 am, 1:15 pm and 5:00 pm and take a river bath twice a day at 10:00 am and 2:00 pm respectively for an experience that could never be felt anywhere else on earth.<br />
<br />
Thereafter proceed to Kandy.<br />
<br />
Cultural Show<br />
<br />
Fine tune your evening by stepping to the beat of traditional and drumming amplified by a cultural how enhancing the rich and vibrant culture of the Wonder of Asia, Sri Lanka.<br />
<br />
Kandy<br />
<br />
Last ruled by King Sri Wickrama Rajasinghe - before it was brought under the British rule in 1815, Kandy - the World Heritage Site & last royal capital of Sri Lankan kings - crafts an array of culture, history and heritage in the minds of visitors across the globe. Experience an ancient Kandyan legacy engraved around its crown jewel, the temple of the sacred tooth relic of Lord Buddha. A stroll across this small lakeside town - cradled among the misty hills - will feature the Kandy City Centre - bundled with latest and world class brands, bazaar, an arts & crafts centre, as well as a gem museum & lapidary. Walk in color as you glide through fresh fruits and vegetables in the Kandy market.<br />
<br />
Overnight stay at Earl's Regency</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> Kandy - Tea Plantation - Nuwara Eliya - Kandapola
								</p>
								<p class="aj">After breakfast at Earl's Regency proceed to Kandapola via Nuwara Eliya. Optional visit to the Peradeniya Royal Botanical Gardens.<br />
<br />
Peradeniya Royal Botanical Gardens<br />
<br />
The Royal Botanical Gardens of Peradeniya covers approximately 147 acres and attracts over 2 million visitors annually. It is home to over 4,000 species of plants including some of the most beautiful orchids you will ever see. The origins of these magnificent gardens date back to the time of King Wickramabahu the 3rd in 1371. Besides the plethora of plants, the famous Avenue of Palms and the Cannonball Tree planted by King George the 5th of the United Kingdom are key highlights. Thereafter proceed to Kandapola via Nuwara Eliya. En route visit a tea factory and the Hanuman temple in Ramboda.<br />
<br />
Tea factory and plantation<br />
<br />
Sri Lanka, Tea and Tourism are words which cannot be separated. Take a tour to the cold & misty hills that take pride of an ultimate tea tour, covering lush green blankets of tea plantations. Or just step into a tea factory processing the prestigious brand of Ceylon Tea, to observe a rich tradition kept alive up to date. As you observe the hissing and swishing of machines, inhaling the heavenly scent arising from these facilities, make sure to end your day in style over a perfectly blended cup of pure Ceylon Tea.<br />
<br />
Hanuman Temple<br />
<br />
On these hills of Ramboda where Hanuman was searching for Sitadevi, Chinmaya mission of Sri Lanka built a temple with Hanuman as the presiding deity. On every full moon day special pooja's are conducted and witnessed by thousands of devotees. This temple is called Sri Baktha Hanuman temple. The image of Lord Hanuman here is 16 feet.<br />
<br />
Transfer from Tea Plantation to Nuwara Eliya<br />
<br />
Overnight stay at the Heritance Tea Factory</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> Kandapola - Kalutara
								</p>
								<p class="aj">After breakfast at Heritance Tea Factory proceed to Ahungalla.<br />
<br />
En route do a city tour of Nuwara Eliya including a visit to the Seeta Amman temple and Hakgala Botanical Garden – The pleasure Garden of Ravana.<br />
<br />
Nuwara Eliya<br />
<br />
Misty steep roads, twisting through lush green blankets of tea bushes in a cool climate, remind visitors that they are within the range of the renowned British colonial retreat, Nuwara Eliya. Augmented by an English countryside atmosphere, the city of light - once governed by English & Scottish planters - is still studded with colonial bungalows, hedgerows & one of the finest 18-hole golf courses in the world. A hike through the green grass and red-brick walls should present breathtaking views of a buzzing countryside hamlet. Drive through green valleys of the hill country pierced by endless waterfalls and dotted by tea pluckers draped in bright-colored saris. Or rent a bike for a gentle ride along the banks splashed by the waters of Lake Gregory.<br />
<br />
Seetha Amman Temple<br />
<br />
The stream that runs from the hill, catered to the needs of Sitadevi during her stay at Ashoka Vatika. She is said to have bathed in this stream. Now there is temple for Lord Rama, Sitadevi, Luxshmana, and Hanuman by the side of this stream. It is interesting to note that foot prints akin to Lord Hanuman's are found by this river and some are of small size and some are of large size, which tells us of the immense powers of hanuman transforming himself into any size.<br />
<br />
Hakgala Botanical Gardens<br />
<br />
The pleasure garden of Ravana - in the Ramayana epic - Hakgala, today shouts out to all lovers of flowers. It's all warm jackets and gloves that come to play at Hakgala due to its cool temperate climate. Listen to the bells clinging uphill from God Hanuman Temple which proves valid evidence of the epic tale or Rama & Sita. Whether it is the warm April or the cold December, overall Hakgala truly is a bliss for all ages with an extensive variety of roses, orchids and spices.<br />
<br />
There after transfer to Kalutara<br />
<br />
Overnight stay at Turyaa Kalutara</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> Kalutara - Kosgoda - Colombo
								</p>
								<p class="aj">Breakfast at Turyaa Kalutara<br />
<br />
Proceed to Turtle Hatchery in Kosgoda<br />
<br />
Turtle Hatchery<br />
<br />
Both locals and international volunteers battling it out for ''Sea Turtles' Sake'' is a common sight at Kosgoda. This vibrant tourist destination sitting calm along the Southern coast of Sri Lanka - apart from its traditional industries of fisheries and cinnamon cultivation - was later recognized by the Wildlife Protection Society who studded the region with a Sea Turtle Conservation Project which operates on a formidable scale today. Indirectly, this has become a watering hole of flipper & shell enthusiasts.<br />
<br />
Transfer to Colombo<br />
<br />
Overnight stay at Hilton Colombo</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> Colombo - Airport
								</p>
								<p class="aj">Colombo - Airport<br />
<br />
Colombo<br />
<br />
The throbbing metropolis, Colombo - located in the West - is not only the country's commercial capital, but also the turbine that impels above 50% of the national GDP flanking Colombo's fancy urban development effort. Drive along the clean streets edging the crystal white Race Course - horse racing hub in 1893 & World War II airstrip - furnished today with lavish clothing, food & tea boutiques. Meanwhile, ride to Pettah & tune into the Floating Market - an offbeat shopping experience - or feel the buzz surrounding the upcoming inspiration, the Colombo Port City - an offshore city - featuring parks, commercial complexes & even an F1 track. Head along Bauddhaloka Mawatha towards 'Arcade' facing the Independence Square. Every designer boutique, top-notch cuisine outlet and even the 'walk-over fish tank', have revamped this colonial masterpiece into one of the trendiest shopping and hangout zones in Sri Lanka. Have a chilled beer at the Dutch Hospital while gazing through fancy windows showcasing best fashion, jewelry & handicraft brands. Smell the scent of incense while listening to the chiming bells of Gangarama temple. Or, jazz up to Colombo's night life spiced by night clubs & casinos that borderline its bustle. If you're lucky, head into an exhibition at the Bandaranaike Memorial International Conference Hall (BMICH) before swaying your head to an opera or play at Nelum Pokuna that should just drive your day into perfection.<br />
<br />
Thereafter proceed to the airport to connect to the departure flight.</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>
												</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.northerntourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of Sri Lanka with Ramayana Trail 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="54858"/>
						</form>
						</div>
						
						";i:1;s:81:"Book Best of Sri Lanka with Ramayana Trail Tour - 4 Nights / 5 Days Tour Packages";i:2;s:168:"book best of sri lanka with ramayana trail tour - 4 nights / 5 days tour packages, forts and palaces tour packages, colombo, kandy, nuwara eliya, kalutara tour packages";i:3;s:214:"A.G Northern Tour and Travels offers Best of Sri Lanka with Ramayana Trail Tour - 4 Nights / 5 Days tour package, budget Forts and Palaces tour packages for Colombo, Kandy, Nuwara Eliya, Kalutara at exciting price.";i:4;s:452:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Colombo, Kandy, Nuwara Eliya, Kalutara"        
		                 },
		      "description": "",
		      "name": "Best of Sri Lanka with Ramayana Trail Tour",
		      "telephone": "+91-9086002323"
		    }
		    </script>
			";i:5;N;}