a:6:{i:0;s:34185:"				<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="h1"><h1>6 Days Andaman Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.andamanvishakatravels.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamanvishakatravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>6 Days Andaman Tour</p> 
										<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/252275.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/252275.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/252275.jpg"  alt="6 Days Andaman Tour" title="6 Days Andaman Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
												
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">6 Days Andaman Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair, Havelock</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="6 Days Andaman Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="166382"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">In This Package  already given 10% Discount <br />
Economy  Package category  cost : 58,500/- 05pax <br />
Hotel at Port Blair : Nakshatra inn or similar <br />
Hotel at Havelock : Nagri inn or similar <br />
Hotel at Neil Island : Amulya Hotel or similar <br />
premium  package category cost : 69,600/- 5pax <br />
Hotel at Port Blair : sunsea  or similar <br />
Hotel at Havelock :  Radhakrisha Resort or similar <br />
Hotel at Neil Island : Amulya Hotel or similar <br />
Deluxepackage category cost : 88,500/- 5pax <br />
Hotel at Port Blair : Megapode or similar <br />
Hotel at Havelock : Holiday inn or similar <br />
Hotel at Neil Island : Tango Beach Resort  or similar <br />
Meet and Assist at all arrival and departure point<br />
Hotel taxes applicable as on today<br />
<br />
NOTE:-<br />
<br />
At Hotel Check-out time is 08.00 a.m.<br />
<br />
Early check in and late checkout subject to availability.<br />
The above rates are valid for the mentioned period only and subject to change without any prior notice.<br />
If Any Case petrol charge’s going to high They costing will be change as per ur booking.<br />
Any changes in the hotel taxes or ferry/entry charges will be charged additional.<br />
The above rates are on per head basis.<br />
Supplement charge for A.c Vehicle & Havelock, Neil island: 450/- per headPersonal Expenses<br />
<br />
airfares / Ship Fare to Mainland India<br />
<br />
activity Charges, Jet Ski, Scuba Divingetc<br />
<br />
 Expenses Occurred Due to Bad Weather ,Flight or Ferry Cancellation , Strike or Political Unrest to Be Paid By Guest as per Actual<br />
<br />
<br />
any Dispute Regarding Child Age to Be Settled Directly with Hotels<br />
<br />
<br />
room     Services,     Laundry,    Telephone     Charges, Ross      Islandmaintenance Fee<br />
<br />
<br />
additional Usage of Vehicle<br />
<br />
<br />
cost of Services Which is Not Mentioned in the “inclusions”</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Arrival at Port Blair										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Fly in to Port Blair Airport. Our representative will meet and assist you at the Veer Sawarkar Airport. Board the waiting vehicles, drive to your hotel and check in. First half of the day is at leisure. Later in the afternoon visit Cellular jail followed by light and sound show. The Cellular Jail has a pride of place in India’s freedom struggle. Many a stalwart were imprisoned here. Declared a national memorial, this three-storey prison constructed by Britishers in 1906, is a pilgrimage destination for freedom fighters. This colossal edifice has mutely witnessed the most treacherous of inhumane atrocities borne by the convicts, who were mostly freedom fighters. The day draws to a gentle close with the Sound and Light Show at the historic Cellular Jail, which gives you a vivid experience of its strong association with the freedom fighters and their struggle for  independence. Overnight  stay  at  respective  Hotel  /  Resort  at  Port  Blair. (Note- Cellular jail is closed on every Monday and national Holidays, visit to Cellular jail and Museum closes by 1600hrs and light n sound show is Open every day 1800hrs)															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Excursion to Coral island North Bay & Ross Island										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast, start off for a full- day excursion to Coral Island (North Bay) to see coral reefs, exotic varieties of beautiful ornamental fish and other marine life. This is an ideal place for snorkelling as this sandy beach coupled with clear water creates a breathtaking spectacle. Please carry your lunch pack, drinking water & changing dress.( water sports activities available here are Scuba diving , Under water sea-walk , Snorkelling , glass bottom boat ride , Jet ski- water scooter , Banana boat ride , speed boat etc on direct payment basis) After North Bay, Visit Ross Island, the former residential and administrative island of the British during their rule of South East Asia, was nick named the Paris of the East. This island<br />
was completely destroyed in an earthquake, now in ruins. Overnight stay at respective Hotel at Port Blair. (Note: 1) Ross & North Bay remains closed on every Wednesdays. 2) Ferry departs at 0930hrs – subject to weather condition, please report to Rajiv Gandhi Water sports complex latest by 0900hrs. 3) Contact us if you want a private chartered boat for above trip perfect for 5-7 person.) Optional Activities:- Scuba Diving and Sea Walk at North Bay on direct payment basis.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Port Blair to Havelock/Radhanagar beach										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast get transfer to Phoenix Bay Harbour to catch a ferry to Havelock. The Island (often just called Havelock) is one of the most beautiful and largest islands of Ritchie's Archipelago and is a placid heaven like no other. Situated 57 km northeast of the South Andamans with an area of 92 Sq.Kms she offers a breath-taking trail of nature expeditions. Bengali settlers primarily populate the island. This picturesque Island with beautiful sandy beaches and lush green forest is also rated as the seventh most beautiful island in the world. The Island also has the biggest concentration of breath-taking diving and snorkeling sites, thus acting as a paradise to marine world explorers. On arrival proceed to selected hotel. Stay here overnight amongst sandy beach and lush green forest in a comfortable beach resort. . (Note-This day your breakfast will be at Port Blair if you are travelling by a early morning ferry ask the Hotel to give a pack breakfast, Ferry timings is mentioned in the tickets provided to you please report 45minutes prior to departure with a valid photo id card – subjected to weather condition, Ferry Operation is purely Subjected to Govt clearance, Class of ferry and timings is confirmed as per availability at the time of confirmation only)			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> Havelock Island to Neil Island/ Excursion to Laxmanpur Beach										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After breakfast, the cab will be provided to pickup and drop guest to Havelock harbour to catch a ferry to Neil Island as per ferry timings advised. Neil Island dwells with lust green surroundings of paddy fields, banana plantations and tropical trees. It occupies an area of 18.9 square kilometres (7.3 sq mi). The island is located 40 kilometres (25 mi) east of Port Blair, the capital of Andaman and Nicobar Islands. Pristine sandy beaches at Bharatpur and Laxmanpur are some of the best beaches to explore. A quite heaven for Bag pack travellers. On arrival at Neil Island, get transferred to selected hotel & after check in half of the day is at leisure. Later in the afternoon proceed for a trip to Laxmanpur beach (sunset point). Spend the evening relaxing on this beach & enjoying the amazing sunset view. Stay overnight at respective Hotel / Resort at Neil Island. (Note- 1) Ferry timings are mentioned in the tickets provided to you please report 45minutes prior to departure with a valid photo id card issued by govt. competent authority. 2) Ferry services are subjected to weather condition) Class of ferry and timings is subjected to availability at the time of confirmation only			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 5											
											:</b> Excursion to Bharatpur Beach, Return back to Port Blair.										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast check out from Hotel/resort, & leave for an excursion to the Bharatpur Beach. The breathtaking view of sea and the lusting greeneries in this beach is really rejuvenating and enjoyable for enthusiastic travellers. Spend the day relaxing on this beach & catch a ferry to Port Blair as per ferry timings advised. Return to Port Blair. Stay overnight at Port Blair. (Note- 1) Ferry timings are mentioned in the tickets provided to you please report 45minutes prior to departure with a valid photo id card issued by govt. competent authority. 2) Ferry services are subjected to weather condition) Class of ferry and timings is subjected to availability at the time of confirmation only			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 6											
											:</b> Departure										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Transfer to Airport and Departure with unlimited memories<br />
<br />
 <br />
<br />
 <br />
<br />
*Note: The above itinerary is totally subjected to Weather conditions & may be changed as per convenience and ferry timings.			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																				<li>Accommodation in 02 A.c Room On  Twin Sharing Basis  01 Extra Bed with Breakfast</li><li>
both Ways Airport Transfers By A.c Private Vehicle One Time One Spot Basis</li><li>
 all Sightseeing By A.c Private Vehicle in Port Blair as per Itinerary Not At Disposal</li><li>
all Sightseeing By A.c Private Vehicle in Havelock Island</li><li>
to and Fro Ticket to Havelock By A.c Cruise / Govt. Ferry (as per Availability in Basecategory)</li><li>
all Entry,Monument, Parking Andpermit Charges</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Personal Expenses</li><li>
airfares / Ship Fare to Mainland India</li><li>
activity Charges, Jet Ski, Scuba Divingetc</li><li>
 Expenses Occurred Due to Bad Weather ,Flight or Ferry Cancellation , Strike or Political Unrest to Be Paid By Guest as per Actual</li><li>
any Dispute Regarding Child Age to Be Settled Directly with Hotels</li><li>
room     Services,     Laundry,    Telephone     Charges, Ross      Islandmaintenance Fee</li><li>
additional Usage of Vehicle</li><li>
cost of Services Which is Not Mentioned in the “inclusions”</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>						
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>* 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.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="6 Days 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="166382"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(13)</b></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanvishakatravels.com/family-holidays-catid.htm" title="Family Packages">Family</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Port Blair, Havelock</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/stay-day-trip-havelock-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231696.jpg"  alt="Stay Day Trip Havelock Tour" title="Stay Day Trip Havelock Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/stay-day-trip-havelock-tour.htm" title="Stay Day Trip Havelock Tour"><h3>Stay Day Trip Havelock Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 18000</b> <b class="xsmall alpha50"></b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_150039" id="pkg_150039" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/stay-day-trip-havelock-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Stay Day Trip Havelock Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="150039"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/amazing-andaman-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231693.jpg"  alt="Amazing Andaman Tour" title="Amazing Andaman Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/amazing-andaman-tour.htm" title="Amazing Andaman Tour"><h3>Amazing Andaman Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 14000</b> <b class="xsmall alpha50"></b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_150036" id="pkg_150036" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/amazing-andaman-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Amazing Andaman Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="150036"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/port-blair-havelock-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231681.jpg"  alt="Port Blair - Havelock Tour" title="Port Blair - Havelock Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/port-blair-havelock-tour.htm" title="Port Blair - Havelock Tour"><h3>Port Blair - Havelock Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 29800</b> <b class="xsmall alpha50"></b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_150029" id="pkg_150029" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/port-blair-havelock-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Port Blair - Havelock Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="150029"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/diglipurto-rangat-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231705.jpg"  alt="Diglipur to Rangat Tour" title="Diglipur to Rangat Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/diglipurto-rangat-tour.htm" title="Diglipur to Rangat Tour"><h3>Diglipur To Rangat Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 49500</b> <b class="xsmall alpha50"></b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								8 Nights / 9 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_150049" id="pkg_150049" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/diglipurto-rangat-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Diglipur to Rangat Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="150049"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/andaman-honeymoon-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231678.jpg"  alt="Andaman Honeymoon Package" title="Andaman Honeymoon Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/andaman-honeymoon-package.htm" title="Andaman Honeymoon Package"><h3>Andaman Honeymoon Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 49800</b> <b class="xsmall alpha50"></b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_150025" id="pkg_150025" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/andaman-honeymoon-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Honeymoon Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="150025"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanvishakatravels.com/tour-packages/diglipur-and-neil-island-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/231703.jpg"  alt="Diglipur and Neil Island Tour" title="Diglipur and Neil Island Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanvishakatravels.com/tour-packages/diglipur-and-neil-island-tour.htm" title="Diglipur and Neil Island Tour"><h3>Diglipur And Neil Island Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 49800</b> <b class="xsmall alpha50"></b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair</p>
															<div class="mt10px small">
							<form name="pkg_150045" id="pkg_150045" method="post" action="http://www.andamanvishakatravels.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanvishakatravels.com/tour-packages/diglipur-and-neil-island-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Diglipur and Neil Island Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="150045"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:58:"Book 6 Days Andaman Tour - 5 Nights / 6 Days Tour Packages";i:2;s:119:"book 6 days andaman tour - 5 nights / 6 days tour packages, adventure tour packages, port blair, havelock tour packages";i:3;s:174:"Book 6 Days Andaman Tour - 5 Nights / 6 Days tour packages from Andaman Vishaka Travels - Get attractive 5 Nights / 6 Days Adventure  tour packages for  Port Blair, Havelock.";i:4;s:2135:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "In This Package  already given 10% Discount 
Economy  Package category  cost : 58,500/- 05pax 
Hotel at Port Blair : Nakshatra inn or similar 
Hotel at Havelock : Nagri inn or similar 
Hotel at Neil Island : Amulya Hotel or similar 
premium  package category cost : 69,600/- 5pax 
Hotel at Port Blair : sunsea  or similar 
Hotel at Havelock :  Radhakrisha Resort or similar 
Hotel at Neil Island : Amulya Hotel or similar 
Deluxepackage category cost : 88,500/- 5pax 
Hotel at Port Blair : Megapode or similar 
Hotel at Havelock : Holiday inn or similar 
Hotel at Neil Island : Tango Beach Resort  or similar 
Meet and Assist at all arrival and departure point
Hotel taxes applicable as on today

NOTE:-

At Hotel Check-out time is 08.00 a.m.

Early check in and late checkout subject to availability.
The above rates are valid for the mentioned period only and subject to change without any prior notice.
If Any Case petrol charge’s going to high They costing will be change as per ur booking.
Any changes in the hotel taxes or ferry/entry charges will be charged additional.
The above rates are on per head basis.
Supplement charge for A.c Vehicle & Havelock, Neil island: 450/- per headPersonal Expenses

airfares / Ship Fare to Mainland India

activity Charges, Jet Ski, Scuba Divingetc

 Expenses Occurred Due to Bad Weather ,Flight or Ferry Cancellation , Strike or Political Unrest to Be Paid By Guest as per Actual


any Dispute Regarding Child Age to Be Settled Directly with Hotels


room     Services,     Laundry,    Telephone     Charges, Ross      Islandmaintenance Fee


additional Usage of Vehicle


cost of Services Which is Not Mentioned in the “inclusions”",
		      "name": "6 Days Andaman Tour",
		      "telephone": "+91-9933246100"
		    }
		    </script>
			";i:5;N;}