a:6:{i:0;s:11177:"				<div class="h1"><h1>Andaman Magic Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.heavendestination.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.heavendestination.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Andaman Magic 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</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.heavendestination.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Magic 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="118490"/>
						</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_12/358960/192140.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/358960/192140.jpg"  width="150" height="150"    alt="Andaman Magic Tour" title="Andaman Magic 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">Our representative will receive you at Veer Savarkar Airport, Port Blair and will escort to the hotel, he will also assist you to do hotel check-in formalities. After check-in and little relax, you will be taken to the following places.<br />
<br />
Corbyns’ Cove Beach: The Corbyns’ Cove, is a serene and unspoiled soft sandy beach, set in picturesque background of lush green coconut palms and pleasant blue sea. The main attractions of this beach are the inviting water sports. The Corbyns’ Cove beach, situated 8 kms from the City centre is the closest Beach from the city. This coconut- palm fringed beach, is ideal for swimming and sun bathing.<br />
<br />
Cellular Jail: This historic building was built in the 19th century to look like a wheel with seven spokes. Today only three wings of the seven remain. It took 10 years to complete. It is called ‘Cellular’ because it is “Cells beyond Cells”.</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> North Bay and Ross Island
								</p>
								<p class="aj">After Breakfast you will be escorted to Andaman Water Sports Complex to catch a ferry which will be your mate for the entire excursion to Ross Island and North Bay.<br />
<br />
North Bay: It is also called “The Gate Way to Port Blair”. This place is famous for its coral reefs, exotic verities’ of beautiful ornamental fishes and water sports activities. The breathtaking stretch of coral bed leaves you spellbound.  North Bay is the foremost snorkeling point of Andaman. Apart from snorkeling and glass-bottom boat ride, scuba diving, underwater sea walk facility is also available at North Bay.<br />
<br />
Ross Island: It was the Capital of Port Blair during British and Japanese regime, prior to India’s Independence. It was named after Sir Daniel Ross a marine surveyor. It was nick named “The Paris of the East”. It is now under the supervision of the Indian Navy. This island is an ideal destination for nature walk amidst sylvan surroundings with deer’s, peacocks and exotic birds.</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> Baratang Island
								</p>
								<p class="aj">Early morning before daybreak we depart for Baratang Islands. It is approximately 110 kms away from Port Blair. It is connected through road passing through Jarawas Tribe Reserve also known as ATR Road (Andaman Trunk Road or the State High Way).  We will travel through fabulous and enchanting forest in conveys to reach Nilambur Jetty (Middle Strait) from where we take a ferry for Baratang Island which is a 15mints ride. It has thick mangrove creeks on both sides followed by dense tropical forest. Major attractions at Baratang are lime Stone Cave and Mud Volcanoes.<br />
<br />
Lime Stone Cave: They are located 15 mints away by sea from Baratang Jetty. We can reach there by dongis or small boats. The journey enthralls everyone as it takes you underneath the dense forest of mangroves plantation. Please do carry sufficient water along with you.<br />
<br />
Mud Volcano (Jalki): The mud volcanoes have erupted so sporadically with recent eruption I n 2005, believed to have been associated with the 2004 earthquake. The natives of this island call it “Jalki”. The mud volcanoes squirt little fountains of mud.</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> Onward journey to Havelock & Radhanagar beach
								</p>
								<p class="aj">In the morning you will be escorted to Phoenix Bay Harbor to board MV. Makruzz (1 ½ hrs) or Govt. Ferry (2 ½ hrs) which will take you to Havelock Island.<br />
<br />
Havelock Island: The Island is named after a British Army Officer. The island offers state-of-the-art facilities for snorkeling and scuba diving. Havelock is famous for its white sand and crystal clear and transparent waters.<br />
<br />
At the Harbour our representative will receive you and will escort you to the Hotel for checkin process. After checkin proceed to Radhanagar Beach, the best and famous beach of Andaman Islands. You can go forswimming or can enjoy the beautiful place.</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> Day trip to Neil island
								</p>
								<p class="aj">Check out from the hotel, move towards the Harbor to board a ferry which will take you to Neil Island. At the harbor our representative will receive you and will escort you to sightseeing of Neil Island.<br />
<br />
Neil Island:This Island is apparently named after James George Smith Neill, a British soldier responsible for several war crimes during the suppression of the 1857 Mutiny. There is a lone jetty at Bharathpur, which serves as the only entry–exit point of the island.<br />
<br />
In the evening we will start our return journey to Port Blair enjoying the sea breeze and the sight of the changing colors of the sky of the setting sun and most of the time accompanied by dolphins and flying fishes swimming along the boat.</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> Departure from Port Blair
								</p>
								<p class="aj">Check out and pick up from the hotel and transfer to Port Blair Airport / Harbour for your onward journey, carrying wonderful memories.</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>Sightseeing</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.heavendestination.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Magic 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="118490"/>
						</form>
						</div>
						
						";i:1;s:57:"Book Andaman Magic Tour - 5 Nights / 6 Days Tour Packages";i:2;s:124:"book andaman magic tour - 5 nights / 6 days tour packages, water sports and activity tour packages, port blair tour packages";i:3;s:175:"Heaven Destination Tour and Travel offers Andaman Magic Tour - 5 Nights / 6 Days tour package, budget Water Sports and Activity tour packages for Port Blair at exciting price.";i:4;s:400:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "",
		      "name": "Andaman Magic Tour",
		      "telephone": "+91-9679569602"
		    }
		    </script>
			";i:5;N;}