a:6:{i:0;s:31820:"				<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="h1"><h1>Sri Lanka Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.bellwortt.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.bellwortt.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Sri Lanka Tour</p> 
										<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_18/536386/257402.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/536386/257402.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536386/257402.jpg"  alt="Sri Lanka Tour" title="Sri Lanka Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
												
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">Sri Lanka Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						4 Nights / 5 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Colombo, Kandy, Nuwara Eliya, Bentota</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px"><i class="fa fa-inr"></i> 25000						</p>
						<p class="xxsmall alpha50">Per Person</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bellwortt.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Sri Lanka Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="170568"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
												<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">Begin the New Phase of Your Life Amidst Beautiful Expanses of Sri Lanka with this 4 Nights, 5 Days Sri Lanka Honeymoon Package. Head to the Most Romantic Destinations of this Island Nation – Kandy, Nuwara Eliya, Bentota, and Colombo for a Memorable Sri Lankan Honeymoon. a Host of Wildlife Sanctuaries, Tea Estates, Historical Structures, Spectacular Scenery, and Exciting Watersports Make Your First Ever Trip of Togetherness Truly Remarkable.<br />
<br />
your Sri Lanka Honeymoon Itinerary Commences with Arrival At Sri Lanka International Airport, Followed By a Transfer to Kandy.  Enjoy the Leisure Day in Kandy Just as You Desire. Explore Myriad Sightseeing Attractions as per Your Kandy Honeymoon Package. On the Second Day, You Will Be Visiting Nuwara Eliya, the Mesmeric City Wrapped By Lovely Hills, Presenting a Dream-like Destination for Newlyweds like You. Delight in the Unparalleled Scenic Attractions like Strawberry Gardens, Ramboda Waterfalls, and Gregory Lake During Your Holiday Together. Up Next is a Beach Destination – Bentota, Where You Can Indulge in Exciting Watersports, Followed By a Pleasurable City Tour. Visit the Turtle Hatchery and Watch How Turtle Hatchlings are Cared For.<br />
<br />
finally, Your Sri Lanka Honeymoon Package from India Will Take You to Colombo, the Capital City of the Island Country. Soak in Its Happening Spirit, Laced with An Aura of Serenity. Make the Most of Your Romantic Honeymoon Package in Sri Lanka By Visiting Places like Viharamahadevi Park, Galle Face Green, and National Museum. You Can also Seek Blessings for a Beautiful Marital Life At Various Religious Places in Colombo. What Makes Your Honeymoon Packages Commendable is the Fact that Every Package is Coupled with Comfortable Transfers, Soothing Stays, and Delish Meals. So, Book a Package Today for a Blissful Honeymoon Trip.<br />
<br />
to Get An Idea of What to Include in Your Package and How Your Vacation Be Like, We Recommend You to Go Through the Below Detailed Itinerary Plan of Our Sri Lanka Honeymoon Package and Set Your Preferred Choices of Attractions and Activities that Come Under Your Budget. Connect with Us, and We Will Be Happy to Guide You and Create a Customised Package Exclusively for You.Airfare<br />
<br />
Personal expenses<br />
<br />
Anything not mentioned in inclusions</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Kandy: a Lovely Vacation Begins										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Sri Lanka Welcomes You with Open Arms for a Blissful Sri Lanka Honeymoon Package<br />
<br />
your Arrival At Sri Lanka Airport in Colombo is Greeted By An Agent’s Representative, Who Will Escort You to the Hotel in Kandy. Your Journey to Kandy Starts with a Visit to the Pinnawela Elephant Orphanage that Lies En Route. Watch Orphaned, Abandoned and Injured Elephants Being Taken Care Of. You Can also Accompany These Giants to a River in Proximity, Where They Bathe and Play.<br />
<br />
now, Proceed to Kandy – the Second Largest Sri Lankan City, Celebrated for Its Pristine Natural Charm. Also, It is the Last Capital of Ancient Sri Lanka and among the Seven Unesco World Heritage Sites of the Country.<br />
<br />
once You Reach Kandy, Register Yourself At the Hotel Reception and Unwind. Once Refreshed, Set Off for a Pleasurable City Tour, to Enjoy Your Kandy Honeymoon Package. Visit Attractions such as the Royal Botanical Gardens, Dalada Maligawa Museum, and the Aromatic Tea Gardens. Walk Through the Udawattakele Forest Reserve. Once a Pleasure Garden of the Kandy Kings, the Forest Reserve is Now a Wildlife Sanctuary. You Can also Spot Several Buddhist Meditation Hermitages Here. Enjoy a Leisurely Stroll Hand in Hand At the Serene and Beautiful Kandy Lake. Temple of the Tooth Relic and Bahiravokanda Vihara Buddha Statue are other Attractions that You Can Visit Today. After a Pleasurable Sightseeing Day, Come Back to the Hotel for a Restful Night.<br />
<br />
distance from Colombo to Kandy: 133 Km<br />
<br />
travel Time: 3 Hours, 30 Minutes (approx.)															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Nuwara Eliya: a Visit to Ethereal Expanses										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Proceed to the Country’s ‘little England’ as per this Honeymoon Package in Sri Lanka<br />
<br />
kickstart Your Day with a Nutritious Breakfast and Check Out from the Hotel. Today, You Will Be Taken to the Destination of Living Painting – Nuwara Eliya. Its Mighty Mountains and Landscape Dotted with Beautiful Valleys, Gushing Waterfalls, and Aromatic Tea Plantations Make It a Breathtaking City. En Route, Stop By At the Famous Ramboda Falls Which Will Add a Tinge of Romance to Your Road Journey.<br />
<br />
once You Reach Nuwara Eliya, Sri Lanka Honeymoon Itinerary Takes You to the Tea Factory Where You Get to Enjoy a Refreshing Tea with Your Partner. this is Followed By Visits to Attractions like Gregory Lake, Strawberry Gardens, the Golf Course, Hakgala Botanical Garden, and Nuwara Eliya Gardens. Visiting such Lovely Places with Your Soulmate Brings You Closer and Enhances Your Honeymooning Delight. When the Sun Sets, Head to Seetha Eliya Temple to Seek Blessings for Your Marital Life. Now, Check-in to the Hotel Where You are Transferred. Refresh and Hop On to Your Cozy Bed for a Soothing Sleep.<br />
<br />
tip: Take the Much-popular Train Ride from Nuwara Eliya to Ella<br />
<br />
distance from Kandy to Nuwara Eliya: Approx 76 Km (approx)<br />
<br />
travel Time: Approx 2.5 Hours (approx)			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Bentota: Transfer to the City of Golden Beaches										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Beach Delight Beckons You to Bentota as per this Sri Lanka 5 Days Itinerary<br />
<br />
wake Up to a Healthy Morning Meal and Checkout from the Hotel. Today, You Will Be Taken to Bentota- a Resort Town, Dotted with Everything that Fascinates Love Birds like You. Once You Reach Bentota, Check-in to the Hotel and Wash Out the Journey Fatigue.<br />
<br />
now, Head to One of the Beautiful Beaches to Soak in the Sun and have Some Splashing Fun in the Water. if You Love Adventure, Take Up Some Water Sports Together such as Windsurfing, Wakeboarding, Snorkeling, Wave Surfing, Sea Diving, Water Skiing, Banana Ride, and Jet-skiing.<br />
<br />
once You have Enjoyed Water Fun to the Fullest, Set Off On a City Tour as per this Sri Lankan Honeymoon. Delight in a Romantic Boat Ride Along the Madhu River and Cross Several Mangroves Rich Islets. Stopover At the Turtle Hatchery, Where Turtle Hatchlings are Cared for and Released Into the Sea When They Turn 2-4 Days Old. After a Happening Day, Come Back to the Hotel and Snuggle the Night Away.<br />
<br />
optional: Water Sports (charges Extra)<br />
<br />
distance from Kandy to Bentota: Approx 178.5 Km (approx)<br />
<br />
travel Time: Approx 3.5 Hours			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> Colombo: the Capital City of Sri Lanka Welcomes You										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												The Penultimate Day of Your Sri Lanka Honeymoon Itinerary Takes You to Colombo<br />
<br />
a Lovely Breakfast Marks the Beginning of Your Day, Followed By a Check-out Process. Now, You Will Be Taken to Colombo for An Intriguing Bout of Sightseeing. On Arrival in Colombo, Complete Registration Formalities At the Hotel Reception, Check in and Unwind for a While. Later in the Day, Be Prepared to Explore Its Myriad Edifices that Exude Various Architectural Styles such as British, Portuguese, Dutch, Hindu, Islamic, Buddhist, Indian, and Contemporary.<br />
<br />
in Addition to These Structures, Visit Attractions like National Museum, Old Parliament Building, Independence Square, and Twin World Trade Center Towers. other Unmissable Places Include Viharamahadevi Park, Galle Face Green, Fort District, and Various Religious Places.<br />
<br />
once this Fascinating Sightseeing Tour of Your Sri Lanka Honeymoon Package from India Completes, You Can Buy Home Souvenirs as Mementos of Your Love Trip. You Can Enjoy Shopping At House of Fashion, Noritake, Majestic City, and Odel. After such a Wonderful Day, Come Back to the Hotel for a Refreshing Sleep.<br />
<br />
distance from Bentota to Colombo: 87 Km (approx )<br />
<br />
travel Time: Approx 1 Hour, 40 Minutes (approx )			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 5											
											:</b> Colombo: Farewell Greetings from Colombo										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Kiss Your Honeymoon Package Sri Lanka Goodbye<br />
<br />
enjoy a Hearty Breakfast Together and Checkout from the Hotel as Your Sri Lanka Honeymoon Trip Culminates Today. Go Shopping if You have Missed Buying Gifts for Any of Your Loved Ones. Get Transferred to Colombo International Airport and Board Your Flight Back Home.			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																				<li>Airport transfers</li><li>
Assistance at the Airport</li><li>
Double sharing Accommodation</li><li>
Breakfast</li><li>
Sightseeing & city tour</li><li>
Transfers on private basis in an A/C vehicle English speaking chauffeur guideAll related government taxes</li><li>
Free Mobile SIM card on arrival5%Discount voucher for shopping at ODEL</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Airfare</li><li>
Personal expenses</li><li>
Anything not mentioned in inclusions</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>						
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>* 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.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bellwortt.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Sri Lanka 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="170568"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-deurali.htm" title="Packages in Deurali">Deurali</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-kathmandu.htm" title="Packages in Kathmandu">Kathmandu</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-pokhara.htm" title="Packages in Pokhara">Pokhara</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-ghorepani.htm" title="Packages in Ghorepani">Ghorepani</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-thekkady.htm" title="Packages in Thekkady">Thekkady</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-kandy.htm" title="Packages in Kandy">Kandy</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-melbourne.htm" title="Packages in Melbourne">Melbourne</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-phuket.htm" title="Packages in Phuket">Phuket</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-bangkok.htm" title="Packages in Bangkok">Bangkok</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-cairns.htm" title="Packages in Cairns">Cairns</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-dalhousie.htm" title="Packages in Dalhousie">Dalhousie</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-udaipur.htm" title="Packages in Udaipur">Udaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-kuala-lumpur.htm" title="Packages in Kuala Lumpur">Kuala Lumpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-bentota.htm" title="Packages in Bentota">Bentota</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-chandigarh-city.htm" title="Packages in Chandigarh City">Chandigarh City</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-jaisalmer.htm" title="Packages in Jaisalmer">Jaisalmer</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-nuwara-eliya.htm" title="Packages in Nuwara Eliya">Nuwara Eliya</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-bali.htm" title="Packages in Bali">Bali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-corbett.htm" title="Packages in Corbett">Corbett</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-bikaner.htm" title="Packages in Bikaner">Bikaner</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-queensland.htm" title="Packages in Queensland">Queensland</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/river-rafting-holidays-catid.htm" title="River Rafting Packages">River Rafting</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/cruise-holidays-catid.htm" title="Cruise Packages">Cruise</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.bellwortt.in/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/golden-triangle-holidays-catid.htm" title="Golden Triangle Packages">Golden Triangle</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/mountain-climbing-holidays-catid.htm" title="Mountain Climbing Packages">Mountain Climbing</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.bellwortt.in/climbing-holidays-catid.htm" title="Climbing Packages">Climbing</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:53:"Book Sri Lanka Tour - 4 Nights / 5 Days Tour Packages";i:2;s:139:"book sri lanka tour - 4 nights / 5 days tour packages, beach and islands tour packages, colombo, kandy, nuwara eliya, bentota tour packages";i:3;s:179:"Bellwortt International offers Sri Lanka Tour - 4 Nights / 5 Days tour package, budget Beach and Islands tour packages for Colombo, Kandy, Nuwara Eliya, Bentota at exciting price.";i:4;s:2704:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Colombo, Kandy, Nuwara Eliya, Bentota"        
		                 },
		      "description": "Begin the New Phase of Your Life Amidst Beautiful Expanses of Sri Lanka with this 4 Nights, 5 Days Sri Lanka Honeymoon Package. Head to the Most Romantic Destinations of this Island Nation – Kandy, Nuwara Eliya, Bentota, and Colombo for a Memorable Sri Lankan Honeymoon. a Host of Wildlife Sanctuaries, Tea Estates, Historical Structures, Spectacular Scenery, and Exciting Watersports Make Your First Ever Trip of Togetherness Truly Remarkable.

your Sri Lanka Honeymoon Itinerary Commences with Arrival At Sri Lanka International Airport, Followed By a Transfer to Kandy.  Enjoy the Leisure Day in Kandy Just as You Desire. Explore Myriad Sightseeing Attractions as per Your Kandy Honeymoon Package. On the Second Day, You Will Be Visiting Nuwara Eliya, the Mesmeric City Wrapped By Lovely Hills, Presenting a Dream-like Destination for Newlyweds like You. Delight in the Unparalleled Scenic Attractions like Strawberry Gardens, Ramboda Waterfalls, and Gregory Lake During Your Holiday Together. Up Next is a Beach Destination – Bentota, Where You Can Indulge in Exciting Watersports, Followed By a Pleasurable City Tour. Visit the Turtle Hatchery and Watch How Turtle Hatchlings are Cared For.

finally, Your Sri Lanka Honeymoon Package from India Will Take You to Colombo, the Capital City of the Island Country. Soak in Its Happening Spirit, Laced with An Aura of Serenity. Make the Most of Your Romantic Honeymoon Package in Sri Lanka By Visiting Places like Viharamahadevi Park, Galle Face Green, and National Museum. You Can also Seek Blessings for a Beautiful Marital Life At Various Religious Places in Colombo. What Makes Your Honeymoon Packages Commendable is the Fact that Every Package is Coupled with Comfortable Transfers, Soothing Stays, and Delish Meals. So, Book a Package Today for a Blissful Honeymoon Trip.

to Get An Idea of What to Include in Your Package and How Your Vacation Be Like, We Recommend You to Go Through the Below Detailed Itinerary Plan of Our Sri Lanka Honeymoon Package and Set Your Preferred Choices of Attractions and Activities that Come Under Your Budget. Connect with Us, and We Will Be Happy to Guide You and Create a Customised Package Exclusively for You.Airfare

Personal expenses

Anything not mentioned in inclusions",
		      "name": "Sri Lanka Tour",
		      "telephone": "+91-9599453303"
		    }
		    </script>
			";i:5;N;}