a:6:{i:0;s:9660:"				<div class="h1"><h1>Singapore 3Nights / 4Days 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>Singapore 3Nights / 4Days 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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore 3Nights / 4Days 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="74657"/>
						</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/133253.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/445618/133253.jpg"  width="150" height="150"    alt="Singapore 3Nights / 4Days Tour" title="Singapore 3Nights / 4Days Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					4.5% Govt service tax<br />
Singapore Night Safari Tour<br />
City Tour of Singapore<br />
Sentosa Sunset Tour Standard<br />
Airport Transfers are on Private Basis<br />
Singapore Visa<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 & welcome
								</p>
								<p class="aj">Singapore Night Safari Tour<br />
<br />
Pick up from the hotel (18:00 Hrs) and Pick up from Night Safari (21:30 Hrs)<br />
<br />
Hop onboard the tram and psyche yourself for a 40-minute journey of wild animal encounters! Journey from the Himalayan foothills to wild Equitorial Africa, this tram ride offers live commentary. Get a chance to come up-close with lions, tigers, tapirs, deer and more! Set in a forest clearing, the Creatures of the Night Show a 20-minute animal presentation will introduce you to nocturnal animals, from the elusive owl to nimble binturongs to intuitive civets.</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> City Tour of Singapore
								</p>
								<p class="aj">Pick up time from Hotel (10:30 Hrs &13:30 Hrs) and Duration (4 Hrs)<br />
<br />
The Singapore city tour will cover Orchard Road, Suntec City and the Fountain of Wealth. Stop at the Merlion Park. Followed by an orientation tour of the Fullerton Hotel & Esplanade. Stop at Singapore Flyer (ticket optional). Pass by Marina Bay Sands and the Helix Bridge, Little India area and China Town. Visit the Thian Hock Temple. Explore the city by driving round the Civic District, pass by Padang, the Cricket Club, the historic Parliament House, the Supreme Court and City Hall. Next, stop at the Merlion Park and enjoy the impressive views of Marina Bay. Do not miss out on this great photo opportunity with the Merlion, a mythological creature that is part lion and part fish. Then proceed to Singapore Flyer with a stop (entrance optional). Visit the Thian Hock Keng Temple, one of Singapore`s oldest Buddhist-Taoist temples, before driving past Chinatown. Stop by a local handicraft center and observe craftsmen at work up-close. You can also enjoy the panoramic view of Marina Bay Sands and walk to the Helix Bridge. Our final stop at Little India will charm you with the scent of joss sticks, jasmine and spices.</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> Sentosa Sunset Tour Standard
								</p>
								<p class="aj">Pick up Time From Hotel (14:30 Hrs) and Duration ( 07:15Hrs)<br />
<br />
Start your journey with the Cable Car . Enjoy your half day at Sentosa Island. Visit Underwater World, Dolphin Lagoon and enjoy an incredible spectacular light & Wing of time. We will visit a peaceful and calm island just a short scenic cable car ride from Mount Faber. Upon reaching the island, we will see the Dolphin Lagoon where we can watch adorable pink dolphins performing tricks such as spy-hop, tail-flapping and vocalizations. A voyage to the bottom of the sea will be next on our agenda as we go to Underwater World, an 80-meter transparent acrylic tunnel which gives an opportunity to view over 2,500 sea creatures in close proximity. Then proceed for evening Wings of time show that brings you a mesmerizing show with a live cast, dramatic effects and pyrotechnics. Water jets, flame bursts, lasers and captivating music make this a one-of-a-kind entertainment spectacle that`s fun for everyone.</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> Day at leisure
								</p>
								<p class="aj">You have a free day today. After breakfast, you are free to visit places of your choice by yourself to make your trip memorable. While you are finalizing your travel plan, we would be happy to suggest the places you should visit on this day. Although you have an option to book it through us or visit these place by yourself.<br />
<br />
Departure with sweet memories.<br />
This is your last day of the trip. After breakfast, check out from the hotel as per the timings mentioned in the voucher. We suggest that you should keep this day light and check your flight timings before hand. You will be transferred to airport from the pick up location as mentioned in the voucher (If Applicable).</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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore 3Nights / 4Days 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="74657"/>
						</form>
						</div>
						
						";i:1;s:69:"Book Singapore 3Nights / 4Days Tour - 3 Nights / 4 Days Tour Packages";i:2;s:127:"book singapore 3nights / 4days tour - 3 nights / 4 days tour packages, beach and islands tour packages, singapore tour packages";i:3;s:166:"High Spirit Adventures offers Singapore 3Nights / 4Days Tour - 3 Nights / 4 Days tour package, budget Beach and Islands tour packages for Singapore at exciting price.";i:4;s:571:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Singapore"        
		                 },
		      "description": "4.5% Govt service tax
Singapore Night Safari Tour
City Tour of Singapore
Sentosa Sunset Tour Standard
Airport Transfers are on Private Basis
Singapore Visa",
		      "name": "Singapore 3Nights / 4Days Tour",
		      "telephone": "+91-8629029169"
		    }
		    </script>
			";i:5;N;}