a:6:{i:0;s:13263:"				<div class="h1"><h1>Andaman 5N/6D Andaman Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.bellatours.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.bellatours.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Andaman 5N/6D Andaman 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">Port Blair, Havelock</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Starting From </td>
						<td class="p5px pl0px vat">
						INR 15990 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Special Offer 	<br />
1st 50 people get BELLA TOURS bag</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bellatours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman 5N/6D Andaman 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="91750"/>
						</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_14/397488/157859.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397488/157859.jpg"  height="150"  width="150"    alt="Andaman 5N/6D Andaman Tour" title="Andaman 5N/6D Andaman Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					1 Night in Port Blair with breakfast<br />
2 Nights in Havelock Island with breakfast<br />
2 Nights in Port Blair with breakfast<br />
All Transfers & local sightseeing by Non AC vehicleSpecial Offer 	<br />
1st 50 people get BELLA TOURS bagAirfare & Taxes<br />
Any increase in Govt. taxes, Fuel price and any applicability of new taxes from the govt.<br />
Any up gradation in hotel room category<br />
Any meals other than specified above<br />
Any sightseeing other than mentioned above<br />
Any Entrance fees or Fees for video or camera permit<br />
Any item of personal nature like tips, laundry, telephone calls, etc.<br />
Service tax will be applicable on total invoice19-0731-12<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> Arrive in Port Blair – Local Sightseeing
								</p>
								<p class="aj">Welcome to Andaman. Arrive at Port Blair airport and transfer to hotel for your stay. Later in the evening proceed to visit Cellular Jail, a place of pilgrimage for all freedom loving people. One can also view the history of the heroic freedom struggle which is brought alive in a moving Light & Sound Show at the Cellular Jail. Overnight stay in Port Blair.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_14/397488/157859.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397488/157859.jpg"  height="150"  width="150"    alt="Andaman 5N/6D Andaman Tour" title="Andaman 5N/6D Andaman Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Port Blair – Havelock Island
								</p>
								<p class="aj">Early morning departure to Havelock Island by ferry (54 kms by sea from Port Blair). Havelock Island is 57 kms from Port Blair and reachable in 120 minutes. The island is well known for its two world famous beaches namely Beach No. 5 and 7. These beaches have received A+ rating from the World Tourism Organization (WTO). Hence, Havelock Island is an ideal destination for a relaxing beach holiday as well as a paradise for scuba diving and snorkeling. Rest of day is at leisure. Overnight stay in Havelock.</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> Havelock Island
								</p>
								<p class="aj">Today after Breakfast take a trip to:  Light House Point /Elephant Beach inclusive of Complimentary Snorkeling. (Please take your swim wear and a change of clothes). Overnight stay in Havelock.<br />
<br />
Optional: - Scuba Diving @ Havelock Island: INR 2500 per person per dive</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> Havelock Island – Port Blair
								</p>
								<p class="aj">Morning is at leisure. After checking out from the Resort, leave your baggage at the Reception. Spend your day on beautiful beaches of Havelock. Sail for Port Blair in the evening. Upon return from Havelock Island overnight stay at respective Hotel at Port Blair.</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> Port Blair - City Tour (Closed Mondays) – Ross Island (Closed Wednesdays)
								</p>
								<p class="aj">After breakfast enjoy city tour of Port Blair. (Closed Mondays) Port Blair (City Tour) - covers the famous Chatham Saw Mill (one of the oldest and largest in Asia), Forest Museum, Anthropological Museum, Naval Marine Museum (Samudrika) & the Cottage Industries Emporium (Sagerika) - for shopping & souvenirs. Next trip to Ross Island. (Closed Wednesdays) Ross Island - is the place from where the British governed the entire Andaman and Nicobar islands, prior to India's Independence. This island is an ideal destination for nature walks amidst sylvan surroundings with deers, peacocks, exotic birds, etc.  Overnight stay in Port Blair.</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> Port Blair - Departure
								</p>
								<p class="aj">After breakfast it’s time to check out.Transfer to the airport for your onward flight or 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>3 Star Hotel</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Airfare & Taxes</li><li>
Any increase in Govt. taxes, Fuel price and any applicability of new taxes from the govt.</li><li>
Any up gradation in hotel room category</li><li>
Any meals other than specified above</li><li>
Any sightseeing other than mentioned above</li><li>
Any Entrance fees or Fees for video or camera permit</li><li>
Any item of personal nature like tips, laundry, telephone calls, etc.</li><li>
Service tax will be applicable on total invoice</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. ~^#^~						
    	<p class="h dif xlarge b mb5px">Hotel Details:-</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">City</td>
				<td class="headHr p5px b">Budget</td>
				<td class="headHr p5px b">Standard</td>
				<td class="headHr p5px b">Deluxe Peerless Sarovar Portico – A/C Deluxe Room</td>
				<td class="headHr p5px b">Premium</td>
			</tr>
			<tr>
				<td class="data p5px">Port Blair</td>
				<td class="data p5px">Hotel Haywizz – A/C Premium Room</td>
				<td class="data p5px">Hotel Haywizz – A/C Premium Room</td>
				<td class="data p5px">Peerless Sarovar Portico – A/C Deluxe Room</td>
				<td class="data p5px">Fortune Resort Bay Island – A/C Garden Facing Room</td>
			</tr>
			<tr>
				<td class="data p5px">Havelock Island</td>
				<td class="data p5px">The Kingdom – A/C Standard Room</td>
				<td class="data p5px">Symphony Palms – A/C Casa</td>
				<td class="data p5px">Symphony Palms – A/C Cottage</td>
				<td class="data p5px">Silver Sands – A/C Cottage</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Price per person in INR:-</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Category</td>
				<td class="headHr p5px b">Twin</td>
				<td class="headHr p5px b">Single</td>
				<td class="headHr p5px b">Extra Adult</td>
			</tr>
			<tr>
				<td class="data p5px">Budget</td>
				<td class="data p5px">15990</td>
				<td class="data p5px">28990</td>
				<td class="data p5px">10990</td>
			</tr>
			<tr>
				<td class="data p5px">Standard</td>
				<td class="data p5px">19990</td>
				<td class="data p5px">34990</td>
				<td class="data p5px">12990</td>
			</tr>
			<tr>
				<td class="data p5px">Deluxe</td>
				<td class="data p5px">25990</td>
				<td class="data p5px">46990</td>
				<td class="data p5px">14990</td>
			</tr>
			<tr>
				<td class="data p5px">Premium</td>
				<td class="data p5px">34990</td>
				<td class="data p5px">62990</td>
				<td class="data p5px">16990</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bellatours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman 5N/6D Andaman 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="91750"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Andaman 5N/6D Andaman Tour - 5 Nights / 6 Days Tour Packages";i:2;s:136:"book andaman 5n/6d andaman tour - 5 nights / 6 days tour packages, beaches and islands tour packages, port blair, havelock tour packages";i:3;s:164:"Bella Tours offers Andaman 5N/6D Andaman Tour - 5 Nights / 6 Days tour package, budget Beaches and Islands tour packages for Port Blair, Havelock at exciting price.";i:4;s:1053:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "1 Night in Port Blair with breakfast
2 Nights in Havelock Island with breakfast
2 Nights in Port Blair with breakfast
All Transfers & local sightseeing by Non AC vehicleSpecial Offer 	
1st 50 people get BELLA TOURS bagAirfare & Taxes
Any increase in Govt. taxes, Fuel price and any applicability of new taxes from the govt.
Any up gradation in hotel room category
Any meals other than specified above
Any sightseeing other than mentioned above
Any Entrance fees or Fees for video or camera permit
Any item of personal nature like tips, laundry, telephone calls, etc.
Service tax will be applicable on total invoice19-0731-12",
		      "name": "Andaman 5N/6D Andaman Tour",
		      "telephone": "+91-9819406969"
		    }
		    </script>
			";i:5;N;}