a:6:{i:0;s:12399:"				<div class="h1"><h1>Andaman Exclusive Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.andamantourntravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamantourntravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Andaman Exclusive 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.andamantourntravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Exclusive 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="86782"/>
						</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/397291/151752.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397291/151752.jpg"  width="150" height="150"    alt="Andaman Exclusive Tour" title="Andaman Exclusive 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 - Andaman
								</p>
								<p class="aj">Our representative will pick you up from the airport and drop you at your hotel. From this point your amazing journey for the incredible Andaman will begin. We know you will be very excited and eager to experience the scenic beauty of the exotic island. We will be equally enthusiastic in welcoming you to the emerald beach destination. White sand beach, clear water and sunset combine to make Chiriyatapu a perfect tourist attraction. The place also has a small zoo which will interest children. The best time to visit the place is around late afternoon so that you don’t miss the serene sunset from the beach. Chiryatappu is also famous for swimming and has changing room facility.</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 Island
								</p>
								<p class="aj">North Bay Island which being located at a distance of 30mins by boat journey from water sports complex of Port Blair is the most coral reach Island of Andaman. It is one of the best places in Andaman to explore colorful corals and various under water creatures through sea walk, scuba diving, glass bottom boat and snorkeling. This island also has a small local market.Ross Island, the former capital of Andaman is located near Port Blair, which can be visited via boats from water sports complex by 20 minutes journey. The island is currently unhabituated for humans but the houses are wonderful and you also get to see friendly animals (deer’s) and birds (peacocks). Island has old buildings and churches which are architecturally amazing.</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> Jetty Drop
								</p>
								<p class="aj">Our representative will receive you from the hotel and will drop you at the jetty. Jetty is the place where boats/cruises halt (also known as Port), from here it takes and drops passengers and cargo from one place to another. Here you can find many sizes and varieties of ship starting from small slow boats for inter island journeys till multi layer cruise from different countries. Here you can take some memorable photographs, experience how boats operate and know the life style of localities. Keep your Id Proof ready in your hands along with ticket for security check. Radhanagar Beach : Radhanagar beach located at about 12km from jetty is also known as beach No.7. It is a beautiful Beach with amazing waves and perfect for swimming. It is constantly ranked as best beach in India and Asia. It’s a picture perfect beach with an excellent view of sunset. You cannot just miss this place if you are in Havelock. Hotel : Jetty Drop, Jetty Drop</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 to Port Blair by Makruzz( Premium )
								</p>
								<p class="aj">Jetty Pickup : Our representative will receive you from the jetty and drop you at the hotel. Jetty is the place where boats/cruises halt (also known as Port), from here it takes and drops passengers and cargo from one place to another. Here you can find many sizes and varieties of ship starting from small slow boats for inter island journeys till multi layer cruise from different countries. Here you can take some memorable photographs, experience how boats operate and know the life style of localities. Keep your Id Proof ready in your hands along with ticket for security check. Corbyns Cove : The only beach around Port Blair is located at a distance of around 9kms and 20 mins from the city center. The beach is very famous for water sports activities and is a wonderful place to relax at. This beach has all the arrangements like rest chairs, changing rooms, restaurants etc.</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> Cellular Jail
								</p>
								<p class="aj">Cellular Jail houses the rich history of Andaman and is a must see in Port Blair. It is a colonial prison built by Britisher's to exile Indian freedom fighters and political leaders. Jail has museums that reflect the sufferings and hardship of the prisoners. The place has the pride & patriotism in the air and will certainly make you enthusiastic. Fisheries Museum : The marine museum is a small museum located near water sports complex which is maintained by Indian Marine department. This museum displays some aquatic life and coral present in Andaman Islands. It is a place where you can learn a lot about the life under sea. Anthropology Museum : This is one of the best museum in Port Blair, which provides thorough and sympathetic portrait of indigenous tribal communities of Andaman and Nicobar. The place reflects the rich history and culture of Andaman. There is no better place than this to explore the heritage and culture of Andaman. Samudrika Museum : Samudrika museum is a unique museum located in the heart of Port Blair that displays beautiful corals with neat notes on each species of sea creatures which makes it every educative. It is distinctly different from the mainland aquariums due to the presence of sheer variety of coral life that is exclusive to the seas surrounding the Andaman Islands. Vehicle For Shopping : You can do shopping of some shell arts, articles made of local stuff, species, handicrafts. We will provide you with a complimentary ride for shopping .Then we will drop you at your hotel. Water Sports Complex : Located in the heart of Port Blair, the Rajiv Gandhi Water Sports Complex offers an array of aqua-sports like banana rides, jet skiing, parasailing, speed boat rides, rowboat paddling, etc. The Centre is well-equipped with changing rooms and trained staff to ensure safety. This place is a must if you want to explore water sports in Port Blair. Sound And Light Show : This is a show of lights and sound conducted in Cellular Jail every evening that depicts the history of Andaman and the life of prisoners in the Cellular Jail. The show will fill your heart with patriotism. The show lasts around 30 mins and is conducted in both English and Hindi languages.</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> Airport Drop
								</p>
								<p class="aj">After enjoying the beauty of exotic islands, mesmerizing beaches, unexploited nature and knowing our culture its now time for us to tell you good bye. We will be thankful for giving us the opportunity to serve you and will expect to serve you many more times in the future. Our representative will receive you from the Hotel and drop you at 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">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.andamantourntravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Exclusive 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="86782"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Andaman Exclusive Tour - 5 Nights / 6 Days Tour Packages";i:2;s:120:"book andaman exclusive tour - 5 nights / 6 days tour packages, beach and islands tour packages, port blair tour packages";i:3;s:173:"Book Andaman Exclusive Tour - 5 Nights / 6 Days tour packages from Halder Tour & Travels - Get attractive 5 Nights / 6 Days Beach and Islands  tour packages for  Port Blair.";i:4;s:404:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "",
		      "name": "Andaman Exclusive Tour",
		      "telephone": "+91-9679532700"
		    }
		    </script>
			";i:5;N;}