a:6:{i:0;s:12215:"				<div class="h1"><h1>Malaysia and Bali 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>Malaysia and Bali 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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kuala Lumpur, Bali, Ubud</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 and Bali 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="89455"/>
						</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/155183.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/466826/155183.jpg"  width="150" height="150"    alt="Malaysia and Bali Tour" title="Malaysia and Bali 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> Genting Highland
								</p>
								<p class="aj">Upon your arrival in Kuala Lumpur, meet our tour representative and get an assisted transfer to Genting Highland. It is basically an all-comprising resort development that consists of casinos, hotels and a theme park. You are free to enjoy the rest of the day at leisure, partaking in the activities of your interest. This hill resort is also known as Resorts World Genting and is counted as one of the most popular weekend getaway for the locals. The rooms of the hotels offer some most amazing views from the hilltop. Treat your eyes to the panoramic views of lush valleys and rainforest. The day is going to be fun-filled and thrilling. 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 2:</b> Genting Theme Park
								</p>
								<p class="aj">Day 2 after breakfast, is all set for having an exciting day at the Theme Park. Get ready for some amazing rides. The park has amusement tides and offers recreational activities to both kids and adults. Have an exciting day while riding swings, ferry wheels, roller coasters, ships, cars, and other interesting rides. Stumble through down water channels, binge on tasty food, partake in activities like archery, boating, go-karting and enjoy performances by mascots and clowns. In the evening, you are free to spend time at leisure. Visiting the casinos to try your luck can do be an interesting option. 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 3:</b> Genting Highland- Kuala Lumpur
								</p>
								<p class="aj">On the 3rd day, check out from the hotel after breakfast and leave for Kuala Lumpur. Stop over at Batu Cave en route. The cave has three main caverns. The Shrine of Hindu Deity Murugah is placed in a temple cave with 272 stairs. One cave is Museum cave which houses images and murals related to Hindu religion. Thereafter, continue to Kuala Lumpur. This bustling city is known for its high-rising skyscrapers, colonial buildings and lush greenery. Upon arrival, check in at a hotel. Stay overnight.</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> Kuala Lumpur
								</p>
								<p class="aj">After breakfast, depart for Kuala Lumpur City Tour. Today, you visit the Petronas Twin Towers or the Petronas Towers- high skyscrapers that are a mix of steel and glass and consist of gift shops, observation deck and sky bridge, OE jewellery Showroom- pick some amazing delicate pieces of jewellery from here, King's Palace or Istana Negara- the official residence of the Yang Di-Pertuan Agong or the Supreme Head, National Monument- a sculpture made in the remembrance of those who died during Malaysia's freedom struggle, National Museum- consists of both indoor and outdoor exhibition area that consists of artifcats etc depicting ancient, medieval and modern Malay culture (excluding entrance fee) and National Mosque- placed amidst 13 acres of well-manicured garden, this mosque was erected in old architecture style in 1965 and Sultan Abdul Samad Building- a Moorish-style architecture, the building complex houses a number of important offices. Explore and take pictures of these attractions. Stay overnight 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 5:</b> Kuala Lumpur- Bali
								</p>
								<p class="aj">Have breakfast and check out from the hotel. You get assisted transfer to the airport to catch a flight for Bali (Indonesia). And as your reach Bali, you check in at a hotel. Referred to as the 'Island of Gods', Bali is home to some mesmerizing natural sites, awesome beaches, vibrant culture, great food and more. Enjoy the day at leisure. 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 6:</b> Day trip to Batu Bulan, Batur and Ubud
								</p>
								<p class="aj">After early morning breakfast on the 6th day, you leave for Batu Bulan Village to enjoy Barong and Kris Dance. In the village, you visit the industry of batik and handicraft and witness the making of the fabrics. After this, visit Tampak Siring Temple, also known as holy water temple, it is a Hindu temple. Drive to Batur Mountain (Kintamani) afterwards and enjoy boating in the nearby lake. Mt. Batur is an active Volcano with a crater lake. In the afternoon, savor Indonesian buffet lunch amid beautiful landscape in Batur. Later, visit Ubud Traditional Art Market. Here you can buy Balinese artifacts and sarong for yourselves and your loved ones. In late evening, have dinner in local restaurant. Back to Bali and stay overnight in hotel room.</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> Day trip in Tanjung Benoa Beach, Alas Kedation and Tanah Lot Temple
								</p>
								<p class="aj">After breakfast on day 7, you are picked up from the hotel at 10 am for visiting Tanjung Benoa Beach. Here, you can enjoy banana boat ride, Jet Ski, parasailing, glass bottom boat ride, diving and others water sports. Partake in various kinds of adventure activities and enjoy the thrill In the afternoon, you have lunch in a local restaurant. Then head to Alas Kedation (This is a forest that has inhabited friendly monkeys) and Tanah Lot Temple (Situated on a rocky islet, this pagoda style temple is the most photographed place of Bali). In late evening, have dinner in a local restaurant. Back to Bali and 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 8:</b> Tour ends
								</p>
								<p class="aj">In the morning, after breakfast, you have free time for shopping and other activities around your hotel. the street markets of Bali some amazing stuff like wooden and metal handicrafts, antiques, clothes, Silver jewellery and more. if you are brand conscious, Bali also has branded showrooms. You get timely transfer to the airport to catch the flight for your onward journey. (Please note that hotel's checkout time is 12:00 Pm.).</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="Malaysia and Bali 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="89455"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Malaysia and Bali Tour - 7 Nights / 8 Days Tour Packages";i:2;s:134:"book malaysia and bali tour - 7 nights / 8 days tour packages, beach and islands tour packages, kuala lumpur, bali, ubud tour packages";i:3;s:164:"Nomadic Steps offers Malaysia and Bali Tour - 7 Nights / 8 Days tour package, budget Beach and Islands tour packages for Kuala Lumpur, Bali, Ubud at exciting price.";i:4;s:418:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kuala Lumpur, Bali, Ubud"        
		                 },
		      "description": "",
		      "name": "Malaysia and Bali Tour",
		      "telephone": "+91-9469261146"
		    }
		    </script>
			";i:5;N;}