a:6:{i:0;s:10418:"				<div class="h1"><h1>4 Nights 5 Days Andaman Special Honeymoon Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.andamanblueoceantravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamanblueoceantravels.com/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>4 Nights 5 Days Andaman Special Honeymoon 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">
						4 Nights / 5 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">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.andamanblueoceantravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Nights 5 Days Andaman Special Honeymoon 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="104271"/>
						</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_17/484011/173931.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484011/173931.jpg"  width="150" height="150"    alt="4 Nights 5 Days Andaman Special Honeymoon Package" title="4 Nights 5 Days Andaman Special Honeymoon Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					3 Night at Port Blair, 1 Night at Havelock Island.Scuba Diving.<br />
Sea Walk.<br />
Snorkeling.<br />
Game Flshing.<br />
Jet-Ski.<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 at Port Blair Stay at Port Blair
								</p>
								<p class="aj">On arrival at Port Blair in the morning /after noon by flight, you will be received and transfer to your hotel. after Launch start for a tour of places in and around Port Blair covering Rajiv Gandhi Water sports, Corbyns cove Beach ,Light & Sound show at Cellular Jail, Night Stay 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 2:</b> Port Blair To Havelock Island
								</p>
								<p class="aj">Early morning departure by inter-island GOVT Ferry Or PVT Ferry To Havelock Island (54 Km by sea from Port Blair). In the afternoon hours sightseeing to Beach No.7(Radha Nagar Beach) which is rated as the Asia’s beautiful beach by Times Magazine. Night Stay at Havelock Island.</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 To Port Blair
								</p>
								<p class="aj">In Morning after breakfast at 8.30 AM we will move for Elephant Beach (Elephant Beach is further north from Radhanagar and is popular with Indian tourists. The shoreline here was largely swept away by the 2004 tsunami and the beach is a fraction of what it used to be; however, the coral here is probably the best on the island, making this an excellent spot for snorkeling. It's reachable on foot from Beach #7 or by fishing boat from the east side of the island; many resorts arrange snorkeling and diving trips here.) via Speed Boat(Glass Boat) In Elephant Beach lots of water activity is there like Snorkeling and Glass Boat we will go there and after water sports we will move back to via boat and have our lunch in have lock around 2.30 pm,Once the lunch is finish we will move to catch ferry form have lock Jetty, Night Stay 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 4:</b> Port Blair To Ross Island & North Bay Island
								</p>
								<p class="aj">In the morning 8:30AM start for a full day tour by boat to visit Ross island from where Britisher's governed the entire Andaman and Nicobar Island, prior to India's Independence. Then visit to North Bay Island (Coral Island) a ideal spot for coral viewing by glass bottom boat (Optional activity: Snorkeling) Night Stay 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> Departure
								</p>
								<p class="aj">At appropriate time transfer to Airport/Harbor to reach your home<br />
destination with lovely memories to cherish.</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>Transport</li>
																		<li>Entry Tickets</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Scuba Diving.</li><li>
Sea Walk.</li><li>
Snorkeling.</li><li>
Game Flshing.</li><li>
Jet-Ski.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>All Tours subject to weather conditions</li>
	<li>This Rates are not valid on 01th December To 30th January.</li>
	<li>Most of the tourist place in Port Blair close in Monday.</li>
	<li>40% advance is to be paid at the time of booking tour.</li>
	<li>We shall not be responsible for any cancellation of boats due to bad weather &amp; are not liable for it.</li>
	<li>Children above 2 years will be charged full.</li>
	<li>Child below 2 years Entry permits/Entry tickets/Boat tickets/Ferry tickets. if applicable on direct payment basis.</li>
	<li>Adhere to the timings and instructions.</li>
	<li>If addiational /Optional Tour - Charge will be apply.</li>
	<li>Check in time varies from hotels and it starts from 07:30 hours to 08:30 hours.</li>
	<li>The vehicle used will be exclusive for that group but will not be at their disposal. It will be as per contract &amp; will change sector wise.</li>
	<li>Extra charges are applicable for the vehicle used apart from the itinerary.</li>
	<li>Check - out time of the hotels in Port Blair is 08:30 hours. If you are going by the afternoon flight you can request the hotel for late check - out and they will provide the room subject to availability. Or else you will be requested to check - out by 08:30 hours and spend time in the hotel campus or can book extra tour from us.</li>
	<li>To and fro journey to Havelock Island will be by private ..Makcruise / .Coastal Cruise&quot;. During bad weather Makcruise / M.V.Coastal Cruise cancels the sailing in short notice and also mostly .Makcruise / Coastal Cruise is not operational from July to September every year. In such unavoidable circumstances the journey will be changed to Government ferry without prior notice.</li>
	<li>After Reach in Port Blair 1 Or 2 st Day, Tour Amount Should be Made in 100% to the Tour Operator.</li>
	<li>All the tour programmers are subject to whether condition Travel Executive SANJIB&nbsp; DEBNATH.</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamanblueoceantravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 Nights 5 Days Andaman Special Honeymoon 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="104271"/>
						</form>
						</div>
						
						";i:1;s:88:"Book 4 Nights 5 Days Andaman Special Honeymoon Package - 4 Nights / 5 Days Tour Packages";i:2;s:157:"book 4 nights 5 days andaman special honeymoon package - 4 nights / 5 days tour packages, beach and islands tour packages, port blair, havelock tour packages";i:3;s:200:"Andaman Blue Ocean Travels offers 4 Nights 5 Days Andaman Special Honeymoon Package - 4 Nights / 5 Days tour package, budget Beach and Islands tour packages for Port Blair, Havelock at exciting price.";i:4;s:553:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "3 Night at Port Blair, 1 Night at Havelock Island.Scuba Diving.
Sea Walk.
Snorkeling.
Game Flshing.
Jet-Ski.",
		      "name": "4 Nights 5 Days Andaman Special Honeymoon Package",
		      "telephone": "+91-9933250564"
		    }
		    </script>
			";i:5;N;}