a:6:{i:0;s:10762:"				<div class="h1"><h1>Singapore with Langkawi Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.nomadicsteps.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.nomadicsteps.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Singapore with Langkawi 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kuala Lumpur, Singapore</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.nomadicsteps.co.in/enquiry-form-10003.htm">
						<input type="hidden" name="subject" value="Singapore with Langkawi 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="89487"/>
						</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/466826/155224.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/466826/155224.jpg"  width="150" height="150"    alt="Singapore with Langkawi Tour" title="Singapore with Langkawi 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> Arrival in Singapore
								</p>
								<p class="aj">On arrival at the Singapore airport, get an assisted transfer to the hotel. Complete the check-in formalities. The day is at leisure. In the evening, get ready for Night Safari tour. Hop onto a tram and get all set for a 40-minute thrilling ride through the wilderness to enjoy a rendezvous with varied exotic animals. During the ride, as the tram moves from Himalayan foothills to the wild Equatorial Africa setting, a live commentary goes on giving details about the animals as they appear. The world's first nocturnal zoo offers sightings of tapirs, deer, lions, tiger, rhinos, civets, binturongs, owl and so on. Another highlight is the Creatures of the Night Show, a 20-minute animal documentary.<br />
<br />
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> Singapore
								</p>
								<p class="aj">On day 2, sumptuous breakfast at the hotel is followed by half-day city tour of Singapore. Some of the popular attractions of Singapore that you visit today include Suntec City- located in Marina Center, this mall offers exciting retail therapy with brands from all across; Fountain of Wealth- finding its place in the Guinness Book of Records way back in 1998, it is the world's largest fountain; Orchard Road- a 2 km long street with high-luxury brands and entertainment options, Little India- a street that serves everything like its straight from India; and Chinatown- another wonderful shopping and entertainment street. Later, have a photo opportunity at the Merlion statue- the symbol of Singapore. The rest of the day is free.<br />
<br />
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 3:</b> Singapore
								</p>
								<p class="aj">After breakfast, the morning is free. Afternoon is scheduled for Sentosa Twilight Tour including admission, one-way cable car ride, Luge & Sky ride, S.E.A aquarium, Wings of time, and Butterfly Park & Insect Kingdom. Sentosa is an island resort that is an amalgamation of high-end hotels, pristine beaches, tropical resorts entertainment, Nature Park food, activities, heritage center shopping and much more, all set in a lush environment.<br />
<br />
Overnight stay in Singapore.</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> Singapore
								</p>
								<p class="aj">After breakfast, the day is scheduled for a visit to the Universal Studio, one of the best attractions in Singapore. The day includes pick from the hotel to the Universal Studio at Resort World Sentosa and the return drop. Asia's first Hollywood movie theme park for people of all ages, it has several thrilling rides and other exciting attractions like shows, based on popular television series and chartbuster movies. Some of the prime attractions here include Shrek 4-D Adventure, Ultimate 3D Battle, Jurassic Park Rapids Adventures, Madagascar ride, Revenge of the Mummy, Battlestar Galactica: HUMAN vs. CYLON dueling Coasters, and so on. The park is divided into the following theme sections- Hollywood, Ancient Egypt, SCI-FI city, New York, Far Far Away, Madagascar, New York and Lost World.<br />
<br />
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 5:</b> Singapore - Langkawi
								</p>
								<p class="aj">On the 5th day of the tour, have breakfast and get transferred to the airport to board a flight to Langkawi, Malaysia. As you reach the Langkawi Airport, get an assisted to the hotel to complete the check-in formalities. The day is at leisure and scheduled for relaxing. Known as the Jewel of Kedah, the breathtaking Langkawi Island is an archipelago of pristine 104 islands in the Andaman Sea. These islands are located 30 km off the mainland coast of northwestern Malaysia. If you wish, you can explore the nearby attractions on your own.<br />
<br />
Stay overnight in Langkawi.</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> Langkawi
								</p>
								<p class="aj">Breakfast is followed by Langkawi Island Tour including the very popular Pulau Singa Besar, also known as Big Lion Island. This is a beautiful island with white-sand beaches, enveloped by hillocks. This site offers sightings of eagles, flying as close as 6 feet above you. The main attraction here is the wildlife sanctuary. This island is ideal for swimming, picnicking, and jungle-trekking.<br />
<br />
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 7:</b> Departure
								</p>
								<p class="aj">After breakfast, the day is at leisure. Later, get on-time transfer to the airport to board a flight for your onward destination.</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.nomadicsteps.co.in/enquiry-form-10003.htm">
						<input type="hidden" name="subject" value="Singapore with Langkawi 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="89487"/>
						</form>
						</div>
						
						";i:1;s:67:"Book Singapore with Langkawi Tour - 6 Nights / 7 Days Tour Packages";i:2;s:139:"book singapore with langkawi tour - 6 nights / 7 days tour packages, beach and islands tour packages, kuala lumpur, singapore tour packages";i:3;s:184:"Book Singapore with Langkawi Tour - 6 Nights / 7 Days tour packages from Nomadic Steps - Get attractive 6 Nights / 7 Days Beach and Islands  tour packages for  Kuala Lumpur, Singapore.";i:4;s:423:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kuala Lumpur, Singapore"        
		                 },
		      "description": "",
		      "name": "Singapore with Langkawi Tour",
		      "telephone": "+91-9469261146"
		    }
		    </script>
			";i:5;N;}