a:6:{i:0;s:9898:"				<div class="h1"><h1>Malaysia with Langkawi</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>Malaysia with Langkawi</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, Langkawi, Genting Highland</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="Malaysia with Langkawi - 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="89439"/>
						</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/155175.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/466826/155175.jpg"  width="150" height="150"    alt="Malaysia with Langkawi" title="Malaysia with Langkawi" /></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> Langkawi
								</p>
								<p class="aj">On your arrival in Langkawi Airport meet our representative who takes you to your pre-booked hotel. Check in at the hotel and relax, the day is to be spent at leisure. Langkawi is an archipelago of 104 islands located off the western shore of Malaysia. It is often termed as The Jewel of Kedah. You can spend the rest of the time exploring nearby attractions. Overnight stay in 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> Langkawi Island Tour
								</p>
								<p class="aj">After breakfast leave for Langkawi Island Tour. Our attraction of the day is Pulau Singa Besar, also known as Big Lion Island. This white-sand haven is surrounded with hillocks and is a perfect spot to behold the sight of eagles flying as near as 6 feet above you. After a well spent day return overnight in 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> Langkawi
								</p>
								<p class="aj">Spend the day at your leisure. Rest in your luxury hotel room. Soak up the ambiance of the blissful islands on your own. Relax on the beaches. Walk through the peaceful villages. Taste the delicious gastronomy. The charming allures of the island grants cherished memories.</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> Langkawi- Kuala Lumpur
								</p>
								<p class="aj">Have breakfast and head to the airport to catch a flight to Kuala Lumpur. On your arrival our tour representative greets you and escorts you to your pre-booked hotel. Kuala Lumpur is one of the most important and populous cities of Malaysia. The city’s state-of-the-art facilities, sky-soaring infrastructure and rich heritage make it a famous tourist destination of the world. You are free to visit its malls, mosques, temples etc. However, city’s major highlights are scheduled in the upcoming phase of the tour. Stay overnight 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 5:</b> City tour of Kuala Lumpur
								</p>
								<p class="aj">Today, after breakfast you check-out from the hotel and proceed for Kuala Lumpur city tour. Starting from Karyaneka (a repository of Malaysian handicrafts, souvenirs, toys, jewelry, books and what not!), you head to the King’s Palace, passing other great attractions like Golden Triangle Area, Chinatown and Independent Square. Later, Jamek Mosque is to be visited; one of the oldest and most revered mosques of Malaysia. After this, head to National Monument which is dedicated to the brave warriors who sacrificed their lives in the wars. You will also visit Sultan Abdul Samad Building (an epitome of brilliant Moorish architecture dating back to 19th century), National Mosque, National Monument and Kuala Lumpur Railway Station. Overnight stay in 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 6:</b> Kuala Lumpur - Genting - Kuala Lumpur
								</p>
								<p class="aj">After breakfast, proceed to Genting Highland, an amusement park located at hill-top. On your way to Genting, stop at Batu caves for about 20 minutes. This is a limestone hill with caves & cave temples and an iconic statue of Lord Murugan. And as you reach Genting Highland you check in at a hotel. Now you have a wide variety of entertainment options to choose from, that too with a soulful backdrop. The tour also includes one-way cable car ride and a Genting Snow World Pass. Stay overnight in 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 7:</b> Tour Ends
								</p>
								<p class="aj">After breakfast you have the day to spend at leisure. On this day the tour concludes with lots of memories worth cherishing. You are assisted with a timely transfer to the airport where you catch a flight for your onward journey.</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>
															</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="Malaysia with Langkawi - 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="89439"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Malaysia with Langkawi - 6 Nights / 7 Days Tour Packages";i:2;s:149:"book malaysia with langkawi - 6 nights / 7 days tour packages, adventure sports tour packages, kuala lumpur, langkawi, genting highland tour packages";i:3;s:179:"Nomadic Steps offers Malaysia with Langkawi - 6 Nights / 7 Days tour package, budget Adventure Sports tour packages for Kuala Lumpur, Langkawi, Genting Highland at exciting price.";i:4;s:434:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kuala Lumpur, Langkawi, Genting Highland"        
		                 },
		      "description": "",
		      "name": "Malaysia with Langkawi",
		      "telephone": "+91-9469261146"
		    }
		    </script>
			";i:5;N;}