a:6:{i:0;s:22452:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Singapore City Break Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.thecrazypartner.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.thecrazypartner.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Singapore City Break Tour</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						4 Nights / 5 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Singapore</p>
												<p class="mb5px"><b>Price (Starting From) :</b> 
						INR 25000 Per Person						</p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.thecrazypartner.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore City Break Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="192432"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_22/651419/303554.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_22/651419/303554.jpg"  width="150" height="93"    alt="Singapore City Break Tour" title="Singapore City Break Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</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> Changi international airport - Hotel in City Center (Singapore)
										</p>
										<p class="aj">Welcome to Singapore. Upon arrival at the Airport you will be met by our local representative who will transfer you to the city hotel. Meeting point at Airport INFORMATION COUNTER (Driver Would Be Waiting There With Your Name Pla-Card) For SIC transfers, Pick up Airport : 0700, 0900, 1100, 1300, 1500, 1800, 2000 hrs.<br />
<br />
Half Day free time in Singapore (No Services included) (Singapore)<br />
<br />
There is no service included, you may spend time, as per your interests.</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> Full Day Singapore City Tour and Evening Sentosa (Singapore)
										</p>
										<p class="aj">Singapore City Tour Highlights: <br />
<br />
Little India Merlion Chinatown Gem Factory<br />
<br />
Evening Sentosa Tour Highlights:<br />
<br />
Sentosa (Admission, 4d Adventure Land Choose 01 + 01-way cable car and Wings of Time 02nd show).<br />
<br />
Inclusions:<br />
<br />
Pick up Time : 0830-0900 hrs (City Tour) <br />
Pick up Time : 1340-1400 hrs (Sentosa Tour) <br />
Pick up and Drop off from /to Hotel <br />
Admission Ticket (Sentosa)<br />
<br />
SIC Tour is eligible from only these areas, If the hotel is outside of these areas then there will be supplement cost.<br />
<br />
SIC eligible Hotels – ALL hotels at Little India, Lavender St, Arab St, Beach Road, Albert St, Balestier rd Bugis Area ONLY.<br />
<br />
All Transfers and Tours which are on PVT VEHICLE BASIS, should not be considered as vehicle at disposal. It only means that you are not sharing the vehicle with any other guests.</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> Morning City Tour of Singapore HD (Singapore)
										</p>
										<p class="aj">City Tour covers :<br />
<br />
-Little India<br />
 -Merlion <br />
-Chinatown <br />
-Gem Factory<br />
<br />
Inclusions : <br />
Entrance Fees<br />
Hotel Pick up and Hotel Drop off<br />
<br />
SIC Tour is eligible from only these areas, If the hotel is outside of these areas then there will be supplement cost.<br />
<br />
SIC eligible Hotels – ALL hotels at Little India, Lavender St, Arab St, Beach Road, Albert St, Balestier rd Bugis Area ONLY<br />
<br />
All Transfers and Tours which are on PVT VEHICLE BASIS, should not be considered as vehicle at disposal. It only means that you are not sharing the vehicle with any other guests.</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> Evening MBS Sky Park HD (Singapore)
										</p>
										<p class="aj">Highlights:<br />
<br />
Marina Bay Sands SkyPark really offers a taste of the highlife by viewing Singapore from above. This large wooden decked area on top of iconic Marina Bay Sands hotel at the edge of the city’s harbour offers a 360-degree panorama, with nothing but a sheet of glass and a few wires between you and the view.<br />
<br />
Includes :<br />
-General Admission ticket <br />
-Pick up & drop off<br />
<br />
SIC Tour is eligible from only these areas, If the hotel is outside of these areas then there will be supplement cost.<br />
<br />
SIC eligible Hotels – ALL hotels at Little India, Lavender St, Arab St, Beach Road, Albert St, Balestier rd Bugis Area ONLY<br />
<br />
All Transfers and Tours which are on PVT VEHICLE BASIS, should not be considered as vehicle at disposal. It only means that you are not sharing the vehicle with any other guests.</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> Hotel in City Center - Changi international airport (Singapore)
										</p>
										<p class="aj">Check out from hotel and get transferred Airport for your further journey. For SIC Transfers, Pick up from Hotel : 0700, 0800, 1030, 1200, 1400, 1600, 1700, 1900, 2200 hrs</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>CP (Room + Breakfast)</li>
																						<li>Hotel</li>
																						<li>Sightseeing</li>
																				<li>4 Night's accommodation in Singapore at the Marrison Hotel</li><li>
Sightseeing tours and Airport transfers as per the itinerary are operated as per your vehicle selection during customization.</li><li>
Inclusive of all current applicable taxes</li><li>
SIC eligible Hotels â€“ ALL hotels at Little India, Lavender St, Arab St, Beach Road, Albert St, Balestier rd Bugis Area ONLY (SIC rates differ based on the Location for other hotels outside the mentioned locations)</li><li>
One Indian Dinner coupon for buffet veg and non-veg food</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Internal Flights</li><li>
Peak/festival period surcharge</li><li>
Beverages NOT included in the quotation</li><li>
Visas & Airfare</li><li>
Entrance Fee (unless specified)</li><li>
Driver & Guide Tipping</li><li>
Early Check-in</li><li>
Late Check-out</li><li>
Luggage truck & Porter</li><li>
There shall be a supplement charge for arrival/departure transfer between 2200hrs to 0700 hrs</li><li>
If City / Resort Fees / Tourist taxes are applicable then the same will be Payable directly at hotel /Apartment.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>20% Advance Percentage of total booking amount.</li><li>
Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								Insurance is not covered in the package so please cover yourself with an insurance at your own cost before travelling on a package tour

Hotel Standard Check-in / Check-out time is 1400hrs / 1200 hrs

Prices are dynamic and subject to change unless the booking is put on hold-On time limit basis or vouchered. Rates include only those items specified in your itinerary

Maximum waiting time at the airport shall be 60 - 90 minutes from the touchdown of the flight.

Refund strictly as per the cancellation policy given.

Package rates are valid for the selected travel dates only and for the room category and other services, specified.

The guests are requested to follow the rules and regulations of the resort / hotel where they are accommodated

Request guests to be punctual for all tours. Maximum waiting time shall be 05 minutes for Shared Tours and 10 minutes for Private Tours

Inter connecting rooms/Adjacent rooms/Rooms on same floor /rooms near to each other, Smoking /Non-smoking rooms / are strictly subject to availability

For any amendment requests while on tour, please request your guests to contact you or our local emergency numbers and the request shall be subject to availability, with/without any supplement charge.

Shorter-stays than the booked stay and early check-out will be regarded as cancellation and hence no refund will be provided for any un-utilized service/s.

No amendments (name changes , date changes, hotel change etc) will be done once the booking is Vouchered. Any changes possible will be done offline, subject to any cancellation / rebooking / additional charges (as applicable).

We do not hold any responsibility for additional cost or adjustment which may arise as a result of events beyond our control, such as technical problems with means of transportation, changes imposed by re-scheduling or cancellation of flights by an airline/train, political disturbances, natural disasters, bad weather or terrorist activity etc. Also, any subsequent increase in the cost, which may arise from the increase of fuel price, govt taxes or accommodation charges shall have to be charged additionally

We shall have no legal liability for any loss, damage, personal injury arising directly or indirectly from any aspect of your Holiday.

Journey undertaken by air, land or sea is governed by the terms and conditions of the service provider.

The guest booking our services is expected to provide a valid identity authenticating the person and you shall not make a reservation in a fictitious name.

Showing around all the places mentioned in our packages depend upon the availability of time and climatic conditions

Rates are Net and non-commissionable, unless any separate confirmation has been given in writing by any of our authorized staff or account manager

It is the responsibility of the guest to carry all necessary travel documents such as accommodation voucher / confirmation, passport, other valid identity proof, flight/air tickets etc.

In the unfortunate event of vehicle breakdown, we will provide you alternate vehicle. However, the time loss due to event will not be compensated.

At Religious place like Mosque please wear decent clothing covering all your body & At the time of visiting any Theme park please wear comfortable clothing etc

Rates quoted are based on currency displayed and for specified no. of persons

In case of any immigration/Visa complications, the cancellation policy shall be applicable in full

Please note that pick-up for all transfer and tours will be done as per the details in the Tour Briefing Sheet. This document is shared closer to the date of travel and all guests must carry the Tour Briefing Sheet during their travel.

SIC Pickup and Drop Time between 10:30 am to 08:00 pm. For departure shuttle services: Passengers are advised to schedule their hotel pick up at least 3 hrs and 15 mins before their flight departure

For shared transfers, Each passenger (except infants) can check in a maximum of two (2) pieces of luggage, total dimensions per bag shall not exceed 158 cm (62 inch) - regular size suitcase. These dimensions include wheels, handles and side pockets.

SIC Pickup and Drop is available from city centre hotels only.								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.thecrazypartner.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Singapore City Break 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="192432"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/paris-tour-packages.htm" title="Paris Tour Packages">Paris</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/zurich-tour-packages.htm" title="Zurich Tour Packages">Zurich</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/bangkok-tour-packages.htm" title="Bangkok Tour Packages">Bangkok</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/pattaya-tour-packages.htm" title="Pattaya Tour Packages">Pattaya</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/viseu-tour-packages.htm" title="Viseu Tour Packages">Viseu</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/makkah-tour-packages.htm" title="Makkah Tour Packages">Makkah</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/florence-tour-packages.htm" title="Florence Tour Packages">Florence</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/rome-tour-packages.htm" title="Rome Tour Packages">Rome</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/kuala-lumpur-tour-packages.htm" title="Kuala Lumpur Tour Packages">Kuala Lumpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/hong-kong-tour-packages.htm" title="Hong Kong Tour Packages">Hong Kong</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thecrazypartner.in/jakarta-tour-packages.htm" title="Jakarta Tour Packages">Jakarta</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thecrazypartner.in/medina-uae-tour-packages.htm" title="Medina Tour Packages">Medina</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thecrazypartner.in/bali-tour-packages.htm" title="Bali Tour Packages">Bali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thecrazypartner.in/lyon-tour-packages.htm" title="Lyon Tour Packages">Lyon</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thecrazypartner.in/chiang-mai-tour-packages.htm" title="Chiang Mai Tour Packages">Chiang Mai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thecrazypartner.in/ko-samui-tour-packages.htm" title="Ko Samui Tour Packages">Ko Samui</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thecrazypartner.in/amsterdam-tour-packages.htm" title="Amsterdam Tour Packages">Amsterdam</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.thecrazypartner.in/singapore-city-tour-packages.htm" title="Singapore Tour Packages">Singapore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(11)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.thecrazypartner.in/affordable-budget-holidays-catid.htm" title="Affordable & Budget Packages">Affordable & Budget</a> <b class="alpha50 bn small">(2)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:64:"Book Singapore City Break Tour - 4 Nights / 5 Days Tour Packages";i:2;s:114:"book singapore city break tour - 4 nights / 5 days tour packages, adventure tour packages, singapore tour packages";i:3;s:163:"Book Singapore City Break Tour - 4 Nights / 5 Days tour packages from The Crazy Partner - Get attractive 4 Nights / 5 Days Adventure  tour packages for  Singapore.";i:4;s:406:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Singapore"        
		                 },
		      "description": "",
		      "name": "Singapore City Break Tour",
		      "telephone": "+91-9990001854"
		    }
		    </script>
			";i:5;N;}