a:6:{i:0;s:10198:"				<div class="h1"><h1>Astonishing Singapore & Sizzling Bali - 06 Nights & 07 Days Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.oppexholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.oppexholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Astonishing Singapore & Sizzling Bali - 06 Nights & 07 Days Package</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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Bali, Singapore</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 34199 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Astonishing Singapore & Sizzling Bali - 06 Nights & 07 Days Package - 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="113240"/>
						</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_2/37817/185396.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/37817/185396.jpg"  width="150" height="150"    alt="Astonishing Singapore & Sizzling Bali - 06 Nights & 07 Days Package" title="Astonishing Singapore & Sizzling Bali - 06 Nights & 07 Days Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Cost of Land Part Package: INR 34,199/- per adult on twin sharing basis (Inclusive of Visa Charges for Singapore<br />
<br />
HOTEL DETAILS:<br />
Singapore : Grand Copthorne or similar in<br />
Bali : Grand Zuri Kuta or similar<br />
Return airport transfers<br />
Daily breakfast at all Hotels<br />
3 Nights in Singapore + 3 Nights in Bali<br />
Singapore City tour<br />
Sentosa Extreme (Butterfly Park And Insect Kingdom + Cable Car (one Way) +<br />
Luge And Sky Ride + Sky Tower + Underwater World + Dolphin Lagoon + Wings Of<br />
Time {8:40 Pm})<br />
Night Safari<br />
FD Celuk - Mas - Ubud Market Tour - Tanah Lot Sunset Tour<br />
Singapore VisaAirfare<br />
Bali Visa on Arrival (approx. USD 35) & Bali Departure Tax (approx. USD 25)<br />
GST As per applicable<br />
Hotels not booked yet.<br />
Rates Subject to change without prior notice.<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
								</p>
								<p class="aj">Board your flight from Del to Singapore. On arrival in Singapore, you will be transferred to your hotel. Can have leisure time and later on enjoy 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> SINGAPORE
								</p>
								<p class="aj">After enjoying a scrumptious breakfast at the hotel, gear up for an exciting half-day city tour of Singapore and later on head for Sentosa Island Tour.</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">Day at Leisure</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> BALI
								</p>
								<p class="aj">After Breakfast, check out from Hotel and board your flight for Bali. Check in Hotel in Bali</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> BALI
								</p>
								<p class="aj">Take up Ubud Market Tour and Tanah Sunset Tour and Enjoy Shopping later on.</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> BALI
								</p>
								<p class="aj">Day at leisure</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 7:</b> DEPART FOR INDIA
								</p>
								<p class="aj">Check out of the hotel as you will be transferred to the 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">Exclusions :</p> <ul><li>Airfare</li><li>
Bali Visa on Arrival (approx. USD 35) & Bali Departure Tax (approx. USD 25)</li><li>
GST As per applicable</li><li>
Hotels not booked yet.</li><li>
Rates Subject to change without prior notice.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>The above is only an offer. In the event of Non availability of the specified hotel, alternate or similar hotels would be offered.</li>
	<li>Rates valid strictly for the requested period.</li>
	<li>RATES FOR PRIVATE SERVICES ARE BASED ON MINIMUM PAX TRAVELING. ANY CHANGE IN THRE NUMBER OF PAX WOULD LEAD TO CHANGE IN COST</li>
	<li>Any increase in the Airlines taxes /Hotel Surcharges from the time of Booking till the Departure date must be borne by pax.</li>
	<li>No refund for unutilized service</li>
	<li>All Hotels, Itinerary, restaurants subject to change without notice.</li>
	<li>Rates valid only for the dates and period requested. Change in date would lead to change of Cost</li>
	<li>Rates are based on as on date&rsquo;s exchange rate. Should there be any major fluctuation OPPEX TRAVELS AND TOURS reserve the right to furnish a fresh quote.</li>
	<li>Rates do not include Event/ Peak Season surcharges. Would be advised at the time of booking.</li>
	<li>Any damage caused to hotel rooms/ Coach during your stay, shall be payable by the which may occur in carrying out the tour arrangement, weather conditions, strikes, Passengers.</li>
	<li>OPPEX TRAVELS AND TOURS will not be liable for the same.</li>
	<li>The Company shall not accept any liability or responsibility for any damages, loss, injury, accident, death, Flight Cancelation by Airline, breakdown, or irregularity, wars, quarantine or any other cause whatsoever and all such loss or expense must be borne by pax.</li>
	<li>All Tours subject to OPPEX TRAVELS AND TOURS Tour conditions</li>
	<li>For payments made in INR, the conversion would be based on the ROE as on the date of payments.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Astonishing Singapore & Sizzling Bali - 06 Nights & 07 Days Package - 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="113240"/>
						</form>
						</div>
						
						";i:1;s:106:"Book Astonishing Singapore & Sizzling Bali - 06 Nights & 07 Days Package - 6 Nights / 7 Days Tour Packages";i:2;s:170:"book astonishing singapore & sizzling bali - 06 nights & 07 days package - 6 nights / 7 days tour packages, beach and islands tour packages, bali, singapore tour packages";i:3;s:261:"Book Astonishing Singapore & Sizzling Bali - 06 Nights & 07 Days Package - 6 Nights / 7 Days tour packages from Oppex Travels & Tours ( a Division of Oppex Freight Systems - Get attractive 6 Nights / 7 Days Beach and Islands  tour packages for  Bali, Singapore.";i:4;s:1220:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bali, Singapore"        
		                 },
		      "description": "Cost of Land Part Package: INR 34,199/- per adult on twin sharing basis (Inclusive of Visa Charges for Singapore

HOTEL DETAILS:
Singapore : Grand Copthorne or similar in
Bali : Grand Zuri Kuta or similar
Return airport transfers
Daily breakfast at all Hotels
3 Nights in Singapore + 3 Nights in Bali
Singapore City tour
Sentosa Extreme (Butterfly Park And Insect Kingdom + Cable Car (one Way) +
Luge And Sky Ride + Sky Tower + Underwater World + Dolphin Lagoon + Wings Of
Time {8:40 Pm})
Night Safari
FD Celuk - Mas - Ubud Market Tour - Tanah Lot Sunset Tour
Singapore VisaAirfare
Bali Visa on Arrival (approx. USD 35) & Bali Departure Tax (approx. USD 25)
GST As per applicable
Hotels not booked yet.
Rates Subject to change without prior notice.",
		      "name": "Astonishing Singapore & Sizzling Bali - 06 Nights & 07 Days Package",
		      "telephone": "+91-9821321975"
		    }
		    </script>
			";i:5;N;}