a:6:{i:0;s:11824:"				<div class="h1"><h1>Ultimate Andaman Adventure Tour</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>Ultimate Andaman Adventure 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Port Blair</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="Ultimate Andaman Adventure 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="125221"/>
						</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/201451.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484011/201451.jpg"  width="150" height="150"    alt="Ultimate Andaman Adventure Tour" title="Ultimate Andaman Adventure Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</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> Arrival
								</p>
								<p class="aj">Arrival at Port Blair in the morning/afternoon by flight and our representative will be waiting outside holding a placard with your name on it. You will be taken to your hotel where you relax and rest. After Lunch proceed to the nearest Beach, Corbyn's Cove. The Crescent shaped coconut palm fringed Corbyn's Cove ideal for swimming & bathing.Coastal drive to this beach is awesome, a stretch of around 4 Km with an open sea towards your left is a sight to experience. Take pit stops during this ride to click pictures and to explore the beauty. Later proceed to attend the enthralling Sound and Light Show at Cellular Jail - where the heroic saga of the Indian freedom struggle is brought alive. Enacting of freedom fighters and their struggle for India's Independence is enacted during this trip. Post completion of this trip, we drop you back to your hotel.</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> Chidiatapu
								</p>
								<p class="aj">Morning we move forward from Port Blair to Chidiatapu. 30 Km from Port Blair, this destination is known for its amazing sunset. Here board a game fishing boat, equipped with all the fishing gears. Our expert guides will train you with how to catch a fish and will be available at your service for any of your queries during your fishing excursion. Travel in a fishing boat and experience the amazing fishing trip during your trip. Fishing takes place around Rutland island. Upon completion of the trip we proceed back to Chidia Tapu. Pit stops on your way back to take pictures and to spend some time admiring the exotic island. Upon reaching Chidia Tapu, take a bow and entangle yourself with a mesmerizing view of sunset. Later return to hotel to relax NOTE : The above tour is subject to weather condition.</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 we depart to Andaman Islands most amazing destination, Havelock Island. The destination is rated as the best island in India. Depart from Port Blair to Havelock Island in a ferry. Upon reaching Havelock, our representative attends you and will drop you at your hotel. Rest and Relax in a beachside resort. We at Experience Andamans only share beach side resorts for exquisite experiences. Later we begin our journey to one among Asia's best beach, Radhanagar Beach. Explore this white sand beach and bask in the beauty of this natural wonder. Post this we drop you back to your resort where you relax and unwind.</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
								</p>
								<p class="aj">Well, how about exploring something underwater? Today, we begin our journey to the most visited snorkeling destination in Havelock Island, Elephant Beach. Around 30 Minutes by boat, Elephant Beach flaunts one among the best reefs in Havelock Island. The great thing is that the reef here starts at a depth of less than a meter.    Upon reaching Elephant beach, we rest and relax. Later, our guide takes you to snorkel underwater where you explore the amazing reef in Elephant beach. Later we return back from Elephant beach to the Havelock dock in a boat. Our representative attends you and drops you to your hotel to relax and unwind. Note: We can either take the trekking route or the boat route to Elephant beach. Do let us know about any specific preference you have for your elephant beach trip. Inclusive of snorkeling equipment, car pick up, boat ride and drop to the harbor. (The trip is subject to weather conditions and visibility). Please note that NO Swimming Skills are required for this activity.</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> Andaman Islands
								</p>
								<p class="aj">Yes, today we immerse ourselves in the beauty of Andaman Islands. Its Scuba Diving today in an open reef with plenty of marine life. Explore the underwater marine life. The Andaman Sea offers dive sites considered to be among the best scuba destinations in the world. It boasts crystal clear water, spectacular reefs and rock formations, plus a colourful selection of marine life. The reefs are in pristine condition and with little exploration you can find corals in the same way they were formed. Our certified divers accompany you throughout for safety and instructions. Later board an open deck ferry to reach Port Blair. Drop to the hotel after arrival 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> Baratang Island
								</p>
								<p class="aj">Depart from hotel to Baratang Island by road through the dense tropical forest and Jarawa Tribal reserve in a private vehicle. Often you might see a member of the Jarawa Tribe while passing through the tribal reserve. At the end of this forest journey you would reach Baratang jetty. Launch service is available to cross the sea bay. Enjoy the breathtaking fiber boat ride through a fascinating Mangrove drive, which leads to the start point of the trek to Lime stone caves. Trek through dense forest to reach the Limestone Cave. Made up of the mineral calcite (calcium carbonate) the cave contains beautiful cave formation. Return back for overnight stay at respective hotel at Port Blair by the same route. Later drop back to the hotel for overnight stay. Note : A shared vehicle is provided for your trip to Baratang island. It comes with complementary lunch and refreshments.</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> Departure
								</p>
								<p class="aj">Return home with sweet memories of the Andaman Islands.</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">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="http://www.andamanblueoceantravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Ultimate Andaman Adventure 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="125221"/>
						</form>
						</div>
						
						";i:1;s:70:"Book Ultimate Andaman Adventure Tour - 6 Nights / 7 Days Tour Packages";i:2;s:121:"book ultimate andaman adventure tour - 6 nights / 7 days tour packages, adventure tour packages, port blair tour packages";i:3;s:164:"Andaman Blue Ocean Travels offers Ultimate Andaman Adventure Tour - 6 Nights / 7 Days tour package, budget Adventure tour packages for Port Blair at exciting price.";i:4;s:413:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "",
		      "name": "Ultimate Andaman Adventure Tour",
		      "telephone": "+91-9933250564"
		    }
		    </script>
			";i:5;N;}