a:6:{i:0;s:10707:"				<div class="h1"><h1>Sizzling Singapore Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sabiotravelandtradelinks.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sabiotravelandtradelinks.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Sizzling Singapore 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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">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.sabiotravelandtradelinks.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Sizzling Singapore 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="90750"/>
						</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_13/385924/156676.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/385924/156676.jpg"  width="150" height="150"    alt="Sizzling Singapore Tour" title="Sizzling Singapore 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> Enjoy Night Safari Adventure
								</p>
								<p class="aj">Get transferred with a comfortable vehicle between Singapore Airport and your Singapore hotel.<br />
Duration:-<br />
Approximately 30 minutes (each way) based on the location of your hotel and traffic conditions<br />
Enjoy Night Safari Adventure Journey into a Singaporean rainforest where darkness comes to life at Night Safari. Specialty lighting allows you to see exotic flora and nocturnal fauna after sunset at this unique forested wildlife park.<br />
Details:-<br />
Night Safari is home to over 1,000 animals comprising over 100 species in a 100-acre (40-hectare) jungle within the Selecta Preserve, serving as a dramatic backdrop for the prowl. This incredible park affords a rare all-ages opportunity to experience a night time wildlife trek through the jungle. Unlike night time zoo visits or nocturnal houses, Night Safari was created to be seen only under the cover of darkness giving you the opportunity to encounter the fascinating habits of a variety of the world's nocturnal species.<br />
8 ecological habitats were recreated showcasing flying lemurs, fishing cats, golden jackals, and the rare one-horned rhinoceros to name a few. Discover them all, and hop aboard a 45-minute tram ride travelling through the night surrounded by an evening symphony of owls, bats, frogs, crickets, and countless other creatures. Then hit the walking trails that traverse the different environments including the Leopard Trail and the Forest Giants Trail. There's plenty of time to take in all the animals' intriguing nocturnal rituals as you and your guide travel on a memorable Night Safari.</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> Enjoy Half Day City Tour & Sentosa Island
								</p>
								<p class="aj">Acquaint yourself with Singapore's historical sites, modern icons, and bustling city centre during this half-day highlights tour.<br />
Details:-<br />
Start your tour with a contrast of the old and new passing through the historical colonial district, the area where Singapore's founder, Sir Thomas Raffles first came ashore. Then it's on to the futuristic Esplanade complex. Set along the waterfront, this is the hub of the city's arts and nightlife scene. Along the way, your guide points out the site of the iconic "Merlion" statue, a mythical creature, half-fish, half-lion, that guards Marina Bay.<br />
At the modern Suntec City complex, stand in the shadow of tall skyscrapers encircling the world's largest fountain, the "Fountain of Wealth" - designed to bring good fortune to the area. Take in the ornate architecture and adornment at one of Singapore's oldest temples, Thian Hock Keng Temple. Two temples in one complex, the main is dedicated to the Taoist goddess of the sea, while the second is dedicated to the bodhisattva of mercy.<br />
Trek through the sights, sounds, and smells of Little India and Chinatown, both of which retain an old-Singapore flyer reminiscent of the immigrants who formed these enclaves in the early 1800s. Then journey to Mount Faber where a bird's-eye view of the Central Business District and offshore islands awaits atop its 340-foot (104-meter) summit.<br />
Your final stop is the popular and impressive Singapore Botanic Gardens. A 156-acre (63-hectare) city oasis of unique flora and fauna home to three lakes, shady "Palm Valley", and Saraca Stream-lined by tropical plants as it wends through the gardens. A beautiful way to end tour in Singapore.<br />
Enjoy Half Day Sentosa Tour<br />
Spend an afternoon discovering the sights and attractions of Singapore's resort island, Sentosa. Your day includes a scenic cable car ride, museum, and "oceanarium" visit, topped off by a Las Vegas-style beach show.<br />
Details:-<br />
Soaring 200-feet (60-m) high, a cable car gently lifts you over the sea and scenery from Mount Faber to Singapore's resort island, Sentosa.<br />
Next stop is Asia's largest tropical fish "oceanarium," Underwater World. A favorite for all ages, this modern attraction brings you face to face with over 2,500 living creatures of the sea. Be mesmerized by a dazzling world of colorful corals and spectacular species as you glide along the 275-foot (83-m) moving "travelator."<br />
For the grand finale, challenge yourself with a fun-filled luge ride with a choice between a leisurely cruise or race down the 688 metre Dragon trail or 628 metre Jungle trail. End your journey with a scenic Skyride showing you a bird's eye view of Sentosa Island, Singapore city Skyline and South China Sea.</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">Only here can you experience cutting-edge rides, shows, and attractions based on your favourite blockbuster films and television series, including Sesame Street Spaghetti Space Chase.<br />
Transformers The Ride: The Ultimate 3D Battle, Shrek 4-D Adventure, Jurassic Park Rapids Adventure, and more.</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> Departure
								</p>
								<p class="aj">Get transferred with a comfortable vehicle between your Singapore hotel and Singapore Airport.</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.sabiotravelandtradelinks.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Sizzling Singapore 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="90750"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Sizzling Singapore Tour - 3 Nights / 4 Days Tour Packages";i:2;s:111:"book sizzling singapore tour - 3 nights / 4 days tour packages, heritage tour packages, singapore tour packages";i:3;s:156:"Sabio Travel and Trade Links offers Sizzling Singapore Tour - 3 Nights / 4 Days tour package, budget Heritage tour packages for Singapore at exciting price.";i:4;s:404:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Singapore"        
		                 },
		      "description": "",
		      "name": "Sizzling Singapore Tour",
		      "telephone": "+91-9849352166"
		    }
		    </script>
			";i:5;N;}