a:6:{i:0;s:13229:"				<div class="h1"><h1>Singapore & Malaysia Combo 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 & Malaysia Combo 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 & Malaysia Combo 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="89442"/>
						</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/155171.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/466826/155171.jpg"  width="150" height="150"    alt="Singapore & Malaysia Combo Tour" title="Singapore & Malaysia Combo 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> Singapore - Adventure Cove Water Park with S.E.A Aquarium
								</p>
								<p class="aj">The Singapore and Malaysia Tour starts with your arrival at the Singapore Airport. Enjoy the warm welcome to the Lion City. A tour representative shall be present to attend you and transfer to the hotel in Singapore. Relax and get fresh.<br />
<br />
Later in the day proceed to the Adventure Cove Water Park. The adventure park and its enthralling rides gives you an adrenaline rush. Zoom through thrilling waterslides such as South East Asia's first hydro magnetic coaster. The Blu water Bay wave pool is ideal for lots of fun. There rea rides where you can grab a tube and journey down Adventure River. There are almost 14 themed zones including a tropical jungle garden. A cavern in the park is inhabited by the mysterious sea creatures. In the adventure zone one can enjoy the mesmerizing experience to snorkel over a colorful coral reef with 20,000 friendly fishes.<br />
<br />
The S.E.A Aquarium is one of the world's largest aquarium. Here visitors can immerse yourself in the magic of life underwater. The aquarium is a supersize window to the ocean. Visit more than 800 species of marine animals. The aquarium is home to magnificent manta rays, enormous goliath groupers, Napoleon wrasse and other gentle giants of the sea. Around 200 sharks also inhabit the cerulean depths.<br />
<br />
Recover from the magical allure of the marine world. The evening is at your leisure. The vivacious nightlife of Singapore awaits to be explored. The Clarke Quay is the place to be. The charming diversity makes sure that every visitors is left spellbound. 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 2:</b> Singapore - Sands Sky Park and Sentosa Island Tour
								</p>
								<p class="aj">Begin the day with a refreshing breakfast at Sands Sky Park at the Marine Bay. Snuggled in the heart of the city, here is a moment worth cherishing a lifetime. The views are spectacular and you will be surely charmed.<br />
<br />
After a hearty breakfast, proceed to the Butterfly Park & Insect Kingdom. Surrounded by verdant tropical foliage, the park showcases the spectacular beauties of Mother Nature. With a great variety of fluttering butterflies and exotic insects, this tamed wilderness is a sure delight to all visitors. There is a golden opportunity to enjoy a truly unique outdoor experience. Activities offered in the lush kingdom is suitable for all ages. Discover ecosystems and species only found in Singapore or Southeast Asia. Next, board the Sky ride and grasp the fantastic panoramic scenery of the city skyline and beautiful coastline.<br />
<br />
There's no better way to complete a marvelous day at Sentosa than to take in a spectacular night show set outdoors against the backdrop of an open sea. Wings of Time is an international famed musical and laser light show. Witness an awe-inspiring display of water, laser and fire effects, set to majestic music and a landscape of breathtaking views. The show narrates a tale of friendship and courage. The poignant music will linger with you long time after you leave the dreamlike island. Return to the hotel for 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 3:</b> Singapore - Universal Studios Tour
								</p>
								<p class="aj">Start the day with a hearty breakfast. After your delicious start, head to the universal studios. In the Universal Studio Tour, go beyond the screen. The real thrill lies in exploring the nuances of the movie making. There are numerous thrilling ride the Movies at Universal Studios Singapore at Resort World Sentosa. Experience innovative rides, shows, and attractions based on your favorite blockbuster films and television series. These include Transformers The Ride: The Ultimate 3D Battle, Shrek 4-D Adventure, Revenge of the Mummy, Madagascar: A Crate Adventure Jurassic Park Rapids Adventures, Battlestar Galactica: HUMAN vs. CYLON™ dueling Coasters, and many more.<br />
<br />
Recover from the mesmerizing world of movies with an overnight stay in your hotel 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> Arrival in Kuala Lumpur - Night tour with KL Tower Ticket
								</p>
								<p class="aj">Pack your bags and enjoy a delicious breakfast in your hotel. After you meal, you will be transferred to Kuala Lumpur. The magical capital of Malaysia awaits with a warm welcome. From the Coach station board your coach to Kuala Lumpur. On arrival avail transfer to the hotel in Kuala Lumpur. Check-in and enjoy the lavish comforts of your room and the hotel.<br />
<br />
Kuala Lumpur is the Asian cyber city. The Malaysian capital has a treasure of historic temples and mosques co-existing with state-of-the-art towers and shopping malls. In the evening proceed for the Kuala Lumpur night tour with KL Tower ticket. The views form the PETRONAS towers is simple beyond words can describe.<br />
<br />
Return to hotel for overnight stay in Kuala Lumpur.</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> Kuala Lumpur - Full Day Genting Theme Park
								</p>
								<p class="aj">After an appetizing breakfast at the hotel, proceed for full day Genting Highlands tour. The Genting highlands are breathtaking. Amidst the natural beauty in the fresh mountain airs about 6,000 feet above sea level, it is Malaysia's luxury holiday resort and a World-Class City of Entertainment. The spectacular vacation spot is surrounded by one of the oldest tropical jungles in the world. Enjoy the numerous indoor amusement rides, casino, cinemas, restaurants and shopping malls. You will not wish to return. The charming allures shall capture your hearts. Overnight stay in Kuala Lumpur 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 6:</b> Kuala Lumpur - Half Day Country side & Batu Caves Tour
								</p>
								<p class="aj">Start the day with an early morning breakfast. Next, proceed to Half Day country side & Batu Caves Tour. This sightseeing tour starts with a visit to the Malaysian Batik Cottage. Here watch how fine Batik garments are made. Next visit to the world's only Royal Selangor Pewter factory. Pewter products are well known worldwide. Here you can buy some rare bargains at the world re-known departmental store. Next highlight of the day is the most exciting stopover, The Batu Caves. The towering limestone outcropping is located just 13 kilometers north of Kuala Lumpur. These caves house numerous Hindu shrines. The intriguing Batu Caves is one of the must visit famous landmark in Kuala Lumpur. Witness the marvel of nature. Return to 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 7:</b> Depart Kuala Lumpur
								</p>
								<p class="aj">Begin the day with a delicious breakfast in the hotel. Your time is at your leisure, until our representative takes you to the airport. You will have all arrangements for a comfortable journey back home. Return home with cherished memories of Singapore and Malaysia.</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 & Malaysia Combo 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="89442"/>
						</form>
						</div>
						
						";i:1;s:70:"Book Singapore & Malaysia Combo Tour - 6 Nights / 7 Days Tour Packages";i:2;s:142:"book singapore & malaysia combo tour - 6 nights / 7 days tour packages, beach and islands tour packages, kuala lumpur, singapore tour packages";i:3;s:187:"Book Singapore & Malaysia Combo 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:426:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kuala Lumpur, Singapore"        
		                 },
		      "description": "",
		      "name": "Singapore & Malaysia Combo Tour",
		      "telephone": "+91-9469261146"
		    }
		    </script>
			";i:5;N;}