a:6:{i:0;s:10737:"				<div class="h1"><h1>Super Singapore Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.highspiritadventures.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.highspiritadventures.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Super 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">
						5 Nights / 6 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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Super 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="114490"/>
						</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_15/445618/186988.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/445618/186988.jpg"  width="150" height="150"    alt="Super Singapore Tour" title="Super 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> Arrival
								</p>
								<p class="aj">Singapore known as Merlion city lures visitors from all over the globe. Arrive at Singapore Airport, our tour representative will arrange your transfer to the hotel in Singapore. Check-in to the hotel and enjoy the lavish comforts. The day is free for leisure. Indulge in the hotel amenities or explore yourself. Singapore is one of the most developed countries of Asia; rubbing its shoulders with all the first-world countries of west. This Little Red Dot, as it is often called is becoming more notable, owing to its exotic beaches, enormous entertainment options, cleanliness and its spectacular cityscape. Overnight stay in hotel.<br />
<br />
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> Singapore- Night Safari Tour
								</p>
								<p class="aj">Start your day with a hearty breakfast in hotel. The day is free for leisure. Evening is planned to spend in the wilderness of world's first nocturnal zoo. Get ready for the exhilarating Singapore Night Safari. Start with the 40-minute tram journey of wild animal encounters. One train ride covers discovery from the Himalayan foothills to wild Equatorial Africa. Enjoy the educational live commentary. Get a chance to come up-close with lions, tigers, tapirs, deer and more. Another spectacular show is the Creatures of the Night Show. Set in a forest clearing the 20-minute animal presentation introduces you to nocturnal animals, from the elusive owl to nimble binturongs to intuitive civets. Learn about the wilderness of various parts of the world. The spookiness of the zoo at night makes the ride all the more fun. 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 3:</b> Singapore - Sentosa Island Hotel
								</p>
								<p class="aj">Enjoy a delicious breakfast and get ready for a wonderful day ahead that mainly highlights a sightseeing tour of Singapore. It would be a half day city tour that will let you explore the prominent attractions like Suntec City, Fountain of Wealth, Merlion Photo Stop, Raffles Landing, Orchard Road, Chinatown and Little India.<br />
<br />
In the evening, guests would be heading towards the world's largest observation wheel, known as the Singapore Flyer. The wheel is known for offering a spectacular bird's eye of the whole Singapore city. It is designed 165 m above the ground, in a capsule like structure that offers amazing views of the historical landmarks like the Empress Palace, Singapore River, Merlion Park and Raffles Place.<br />
<br />
Post this visit, return to the comforts of your hotel for an 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 4:</b> Sentosa hotel- Universal Studios
								</p>
								<p class="aj">Start your day with an appetizing breakfast in the hotel. Post meal get ready for another beautiful day of the tour. Check out from the hotel. Our tour representative will get you transferred to your pre-booked hotel at Sentosa Island. Sentosa Island is brimming with millions of entertainment options. Not only kids but families enjoy a day of ultimate fun.<br />
<br />
Today's Twilight Tour of Sentosa Island includes one-way cable car ride, S.E.A Aquarium (Amazing oceanarium that flaunts the marine life at its best), Merlion Tower (The biggest Merlion you can find in Singapore) and Wings of Time (Mesmerizing light show). Then, head to A Slice of Paradise; a themed island, heritage center and nature park offering breathtaking view and myriad of activity including Sky Ride, Luge Ride, Insect Kingdom & Butterfly Park. Get mesmerized by the profusion of delights. Overnight stay in Sentosa Island.</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- City tour with Singapore Flyer
								</p>
								<p class="aj">Post breakfast, guests would be embarked on a tour of one of the major highlights of Singapore; Universal Studios. Flaunting a tagline of 'Go beyond the screen and ride the movies', the Universal Studios is a real treat for entertainment lovers of all age. It is actually a theme park with Transformers the Ride: The ultimate 3D battle, Revenge of the Mummy, Jurassic Park Rapids Adventurer, Battlestar Galactica: Human vs Cyclon, Shrek 4D Adventure and Madagascar: A Crate Adventure, among its prized processions. After spending a fun filled morning and afternoon at the Universal Studios, call it a day and return to your hotel.<br />
<br />
Overnight stay in Sentosa Island.</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> Departure
								</p>
								<p class="aj">This brings the end of our wonderful Singapore tour. Post breakfast you would be transferred to the International airport for your onward journey back home.</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>
																		<li>Sightseeing</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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Super 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="114490"/>
						</form>
						</div>
						
						";i:1;s:59:"Book Super Singapore Tour - 5 Nights / 6 Days Tour Packages";i:2;s:117:"book super singapore tour - 5 nights / 6 days tour packages, beach and islands tour packages, singapore tour packages";i:3;s:156:"High Spirit Adventures offers Super Singapore Tour - 5 Nights / 6 Days tour package, budget Beach and Islands tour packages for Singapore at exciting price.";i:4;s:401:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Singapore"        
		                 },
		      "description": "",
		      "name": "Super Singapore Tour",
		      "telephone": "+91-8629029169"
		    }
		    </script>
			";i:5;N;}