a:6:{i:0;s:12747:"				<div class="h1"><h1>Singapore with Cruise Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="https://www.avanitravels.net/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="https://www.avanitravels.net/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Singapore with Cruise 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">Tour Code </td>
						<td class="p5px pl0px vat">SQ001</td>
						</tr>
												<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="https://www.avanitravels.net/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore with Cruise 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="24283"/>
						</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_10/277951/47071.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/277951/47071.jpg"  width="150" height="150"    alt="Singapore Cruise" title="Singapore Cruise" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Singapore the Lion City that never sleeps is located at the southern tip of the Malay Peninsula, a narrow body of water separates the island from the West Malaysia mainland. <br />
Super Star Virgo offers so much more than first class dining and entertainment - it takes you to places where the sun, sea, people and culture blend color fully well.Airline taxes approx per person INR 18000 to INR 20000 subject to change at the time of booking. <br />
Cruise Taxes INR 2500, subject to change at the time of booking<br />
Expenses of personal nature ( phone calls, laundry etc)<br />
Any services not mentioned in the "Inclusions"<br />
Service Tax of 3.09% will be applicable on the package<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> Singapore - Night Safari Tour
								</p>
								<p class="aj">Arrive at Changi International Airport. On arrival you will be met and transferred to your hotel in Singapore . In the evening proceed for Night safari tour take a tour of the Jungle with complete safety and comfort of 40 mins tram journey of wild animals through the east and west loop. On completion of the tram ride, your guide will take you on a walking trail where you will be able to get a chance to come close with lions, tigers, tapirs, deer etc. Stay overnight at the hotel.</p>					
									<p><b>Meals : </b> N/A</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 - City Tour - Super Star Virgo
								</p>
								<p class="aj">After breakfast, proceed for the city tour of Singapore. Explore the city by driving round the Civic district, passing by the Padang, Cricket Club, Parliament house, Supreme Court and the City Hall. Also stop at the Merlion Park and enjoy the impressive views of the Marina Bay. Also do not miss the picture taking opportunity with the Merlion - a mythological creature. Visit the Thian Hock Keng Temple, one of the Oldest Buddhist temple. Proceed to the National Orchid Gardens, located within Singapore Botanic Gardens. Then stop at the Little India where you can buy spices, joss and jasmine. Later transferred to Cruise terminal (boarding starts 4 hours prior to departure and cruise will depart at 2000 hrs). While the rest of your day is free at leisure on your own. In the evening you may enjoy at the Celebrity Disco. Stay overnight at Super Star Virgo.</p>					
									<p><b>Meals : </b> Breakfast and Dinner</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> Super Star Virgo - Pulau Redang / Kuala Lumpur (Port Klang)
								</p>
								<p class="aj">After breakfast, Arrive Malaysia and you are free to do excursion on your own or enjoy the on board activity. Stay overnight at Super Star Virgo.</p>					
									<p><b>Meals : </b> All Meals</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> Depart Super Star Virgo - Arrive Singapore
								</p>
								<p class="aj">After breakfast, At 11:00 hrs disembark from Star Cruise Virgo and transfer to the hotel in Singapore. While the rest of the evening at leisure. Stay overnight at the hotel in Singapore.</p>					
									<p><b>Meals : </b> Breakfast</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 - Jurong Bird Park
								</p>
								<p class="aj">After breakfast, proceed for Jurong bird park tour - Jurong Bird Park is a home of 600 species. Later in the afternoon proceed for Afternoon till sunset at Sentosa. Enjoy the scenic cable car ride, Underwater world, Dolphin Lagoon Show, Images of Singapore, Sentosa Cine Blast & Songs of the sea. Stay overnight at the hotel in Singapore.</p>					
									<p><b>Meals : </b> Breakfast</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> Depart Singapore
								</p>
								<p class="aj">Breakfast at the hotel. Spend some time at leisure. Later proceed to the airport for your flight back home.</p>					
									<p><b>Meals : </b> Breakfast</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
													<div class="headHr">
				            <p class="p7px b pl10px xlarge">Hotel Detail : </p>
				            </div>
															<div class="data lh13em p20px aj mb7px">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px"><p class="fr lh0">
								
																	<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_on.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_on.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_on.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																		<img class="vam" src="https://static.tourtravelworld.com/images/star_ratings_off.png" alt=""/>
																	
								</p>
								<div class="mb5px">
								<h2 class="dif b xxlarge">Grand Chancellor Singapore</h2>
								</div>
								<p class="cb"></p>
								<p><b>Address :</b> Singapore</p>
								<p><b>Facility :</b> </p>
								<div class="mt7px">Hotel is very nice and centrally located in Singapore. Well connected by Metro, Buses from major junctions. Rooms are very comfortable and well maintained</div>
								</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="showZoomImage2" href="https://ttw.wlimg.com/hotel-package-images/photo-big/dir_10/277951/6715.jpg"><img src="https://ttw.wlimg.com/hotel-package-images/photo-big/dir_10/277951/6715.jpg"  width="150" height="111"    alt="Grand Chancellor Singapore" title="Grand Chancellor Singapore" class="bdr"  /></a></p></div></li>
																					</ul>
									</div>
									</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>Meals</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Airline taxes approx per person INR 18000 to INR 20000 subject to change at the time of booking. </li><li>
Cruise Taxes INR 2500, subject to change at the time of booking</li><li>
Expenses of personal nature ( phone calls, laundry etc)</li><li>
Any services not mentioned in the "Inclusions"</li><li>
Service Tax of 3.09% will be applicable on the package</li><li>
Singapore Visa</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="https://www.avanitravels.net/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore with Cruise 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="24283"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Singapore with Cruise Tour - 5 Nights / 6 Days Tour Packages";i:2;s:123:"book singapore with cruise tour - 5 nights / 6 days tour packages, forts and palaces tour packages, singapore tour packages";i:3;s:153:"Avani Travels offers Singapore with Cruise Tour - 5 Nights / 6 Days tour package, budget Forts and Palaces tour packages for Singapore at exciting price.";i:4;s:1088:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Singapore"        
		                 },
		      "description": "Singapore the Lion City that never sleeps is located at the southern tip of the Malay Peninsula, a narrow body of water separates the island from the West Malaysia mainland. 
Super Star Virgo offers so much more than first class dining and entertainment - it takes you to places where the sun, sea, people and culture blend color fully well.Airline taxes approx per person INR 18000 to INR 20000 subject to change at the time of booking. 
Cruise Taxes INR 2500, subject to change at the time of booking
Expenses of personal nature ( phone calls, laundry etc)
Any services not mentioned in the "Inclusions"
Service Tax of 3.09% will be applicable on the package
Singapore Visa",
		      "name": "Singapore with Cruise Tour",
		      "telephone": "+91-9970119645"
		    }
		    </script>
			";i:5;N;}