a:6:{i:0;s:39724:"				<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 5 Nights Havelock & Neil Island Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.vnandamantourtravel.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.vnandamantourtravel.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>6 Days 5 Nights Havelock & Neil Island 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_18/536349/298002.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298002.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298002.jpg"  alt="6 Days 5 Nights Havelock & Neil Island Tour" title="6 Days 5 Nights Havelock & Neil Island Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<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_18/536349/298003.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298003.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298003.jpg"  alt="6 Days 5 Nights Havelock & Neil Island Tour" title="6 Days 5 Nights Havelock & Neil Island Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<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_18/536349/298004.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298004.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298004.jpg"  alt="6 Days 5 Nights Havelock & Neil Island Tour" title="6 Days 5 Nights Havelock & Neil Island Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<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_18/536349/298005.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298005.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298005.jpg"  alt="6 Days 5 Nights Havelock & Neil Island Tour" title="6 Days 5 Nights Havelock & Neil Island Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<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_18/536349/298006.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298006.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298006.jpg"  alt="6 Days 5 Nights Havelock & Neil Island Tour" title="6 Days 5 Nights Havelock & Neil Island Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<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_18/536349/298007.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298007.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298007.jpg"  alt="6 Days 5 Nights Havelock & Neil Island Tour" title="6 Days 5 Nights Havelock & Neil Island Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<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_18/536349/298008.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298008.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298008.jpg"  alt="6 Days 5 Nights Havelock & Neil Island Tour" title="6 Days 5 Nights Havelock & Neil Island Tour" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
							
							<ul class="lsn" id="bxslider-pager"><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298002.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298003.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298004.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298005.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298006.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298007.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/536349/298008.jpg"></a></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 5 Nights Havelock & Neil Island Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair,,Rose Island,,North Bay Island,,Havelock Island,,Neil Island,,Baratang Island,,</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px"><i class="fa fa-inr"></i> 16418						</p>
						<p class="xxsmall alpha50">Per Person</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.vnandamantourtravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="6 Days 5 Nights Havelock & Neil Island 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="189805"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</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> Arrive to Port Blair:										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												On arrive at Port Blair, our representative receives you at the Airport and drop you to your hotel to rest and relax. After Lunch proceeds to the nearest Beach, Corbin’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.																											   
												<div class="mt10px">
												
																	
														<p class="dib">Accommodation :<span class="b"> Standard Hotels</span></p> 
																										</div>	
															
														   
											</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> Port Blair – Coral Island + 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 For a Full-Day Excursion To North Bay (Coral Island)– To See Coral Reefs, Varieties of Beautiful Ornamental Fishes and Other Marine Life. This is an Ideal Place for Snorkeling as This Sandy Beach Coupled with Clear Water Creates a Breath - Taking Spectacle. Optional Activities – Snorkeling, Scuba Diving, Glass Bottom Ride, after that proceed for Ross Island, The Former Residential And administrative island of the British during the rule of South East Asia, was nicknamed the Paris of the east. This Island is an Ideal Destination for Nature Walk amidst Sylvan Surrounding with Deer’s, Peacock Exotic Birds, etc....Night Stay at Port Blair															   
												<div class="mt10px">
												
																	
														<p class="dib">Accommodation :<span class="b"> Standard Hotels</span></p> 
																										</div>	
															
														   
											</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 – Havelock Island: -										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Today we depart to the Andaman Islands most amazing destination, Havelock Island. The destination is rated as the best island in India. Today, we start a journey towards Havelock Island via luxury cruise from Port Blair. On arrival at Havelock Island, our representative will receive and escort you to check-in to the resort. After lunch, we proceed to Radhanagar Beach, which rated the #7 among the finest beach in Asia. 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. Night stay at Havelock.															   
												<div class="mt10px">
												
																	
														<p class="dib">Accommodation :<span class="b"> Standard Hotel</span></p> 
																										</div>	
															
														   
											</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: -										
											
											<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 Hotel and visit Neil Island Today, we start 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.<br />
After the completion of the coral island tour, Afternoon sail for Neil island. It's a marvelous Island with plenty of marine life, an ideal location for eco-tourism. Neil Island is triangularly shaped with lust green surroundings of paddy fields, banana plantations, and tropical trees. On arrival, visit Laxmanpur beach, where you can see Howrah Bridge, a natural bridge formation make this Island a much-sought picnic spot. Overnight stay at respective Hotel / Resort at Neil Island.															   
												<div class="mt10px">
												
																	
														<p class="dib">Accommodation :<span class="b"> Standard Hotels</span></p> 
																										</div>	
															
														   
											</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> Neil Island 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 Hotel. Today, we begin our journey from Neil Island to Port Blair the explore the beauty of Neil Island. Firstly we cover, Bharatpur Beach. The closest white sand beach to Neil dock, Bharatpur beach. The reef here is still unexplored and travelers can avail snorkeling, glass-bottom boat rides and Jet Ski rides here. Then, visit Sitapur beach which is a perfect picturesque beach for travelers. We also visit Laxmanpur beach. Known as the sunset point at Neil Island, Laxmanpur beach is a vast open white sand beach Today we return back from the exotic journey of Havelock and Neil Island to Port Blair. Upon reaching Port Blair our representative attends you and drop you back to your hotel. Rest and relax and then go visit the city market to purchase gifts and souvenirs for your friends and family.															   
												<div class="mt10px">
												
																	
														<p class="dib">Accommodation :<span class="b"> Standard Hotel</span></p> 
																										</div>	
															
														   
											</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> Drop to the Airport.										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Drop to the Airport. Return home with sweet memories of this exotic destination, the Andaman Islands.			
														   
											</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>EP (No Meal)</li>
																				<li>All Entry Tickets and ferry tickets & Permit Charges.</li><li>
All sightseeing By 02 Personal A/c Vehicles.</li><li>
Havelock Transfers in luxury Makruzz Cruise's /Green Ocean Cruise.</li><li>
Full day Tour with all Transfers including Airport Pickup and Drop.</li><li>
Personal Tour Coordinator to help you with any requirements during the tour.</li><li>
Travel assistance by field executive at all the major entry exit points (Airport / Jetty /Jail / Water Sports    Complex, etc.).</li><li>
Accommodation in AC Rooms as given at Hotels in Port Blair& Havelock & NEIL Island with Breakfast all taxes.</li><li>
3 AC ROOMS in All Islands</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Flight fares are not included.</li><li>
Any Personal expenses room Service & Special Orders. Alcohol and non-alcoholic Beverage. </li><li>
Any extra excursion or sights caning apart From the suggested tour itinerary.</li><li>
Camera Tickets are not including in the mentioned cost of Sightseeing & Transfers.</li><li>
Other meals not mentioned, laundry, telephone calls.</li><li>
Vehicles are not at disposal at any of the islands.</li></ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Specific Departure Dates</p>
								</div>
								
								2019-10-29								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>20% Advance Percentage of the total booking amount</li><li>
Airfare/Transport fare to be paid full at one time in advance.</li><li>
Payments: For all the services contracted, certain advance payment should be made to hold the booking, on confirmed basis & the balance amount can be paid either before your departure from your country or upon arrival in INDIA but definitely before the commencement of the services. Management personnel’s hold the right to decide upon the amount to be paid as advance payment, based on the nature of the service & the time left for the commencement of the service.</li><li>
Apart from above in some cases like Special Train Journeys, hotels or resorts bookings during the peak season (X-Mas, New Year), full payment is required to be sent in advance</li></ul>						
								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								Our Liabilities & Limitations:

 Please note that after the finalization of the Tour/ service Cost, if there are any Hike in entrance fees of monuments/museums, Taxes, fuel cost or guide charges – by Govt of India, the same would be charged as extra. We act only in the capacity of agent for the hotels, airlines, transporters, railways & contractors providing other services & all exchange orders, receipts, contracts & tickets issued by us are issued subject to terms & conditions under which these services are provided by them.
All itineraries are sample itineraries, intended to give you a general idea of the likely trip schedule. Numerous factors such as weather, road conditions, the physical ability of the participants, etc. may dictate itinerary changes either before the tour or while on the trail. We reserve the right to change any schedule in the interest of the trip participants' safety, comfort & general wellbeing.
Our rates are based on the prevailing rates as negotiated by us with the hotels, airlines, etc. Hotels and Airlines retain the right to modify the rates without notice. In case of such changes the rates quoted before the modification can be changed by us according to the modifications by hotels or airlines. All hotel bookings are based on usual check-in and check-out time of the hotels until unless indicated in the itinerary. We shall not be responsible for any delays & alterations in the programmer or expenses incurred – directly or indirectly – due to natural hazards, flight cancellations, accident, breakdown of machinery or equipment’s, breakdown of transport, weather, sickness, landslides, political closures or any untoward incidents. We shall not be responsible for any loss, injury or damage to person, property, or otherwise in connection with any accommodation, transportation or other services, resulting – directly or indirectly – from any act of GOD, dangers, fire, accident, breakdown in machinery or equipment, breakdown of transport, wars, civil disturbances, strikes, riots, thefts, pilferages, epidemics, medical or custom department regulations, defaults, or any other causes beyond our control.
We do not have any insurance policy covering the expenses for accident, sickness, loss due to theft, or any other reasons. Visitors are advised to seek such insurance arrangements in their home country. All baggage’s & personal property/s at all times are at the client's risk.
Please Note: We will not be responsible for any costs arising out of unforeseen circumstances like landslides, roadblocks, bad weather, etc.								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Price &amp; Rates</p>
						</div>				
				        <table class="mb15px bdrall bdreee w100 p5px15px formTable">
			            	<tr class="headVr b">
			                	<td class="p5px10px">No of pax</td>
			                    <td class="p5px10px">Age Limit</td>
			                    <td class="p5px10px">Price per pax (Rs)</td>
			                </tr>

															<tr>
				            	<td class="p5px10px">Adult</td>
				                <td class="p5px10px">1</td>
				                <td class="p5px10px">
			                				                		<b class="webrupee">INR</b>
			                					                	<b>16418</b> <small>/
			
			                		Adult			
			                	( With Tax )			
			                		
			                	</small></td>
				            	</tr>
				            					         </table>
						</div>
					 					
						<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Accommodation</p>
						</div>				
		
				    	<table class="mb15px bdrall bdreee w100 p5px15px formTable">
						<tr class="headVr b">
						<td class="p5px10px">City</td>
						<td class="p5px10px">Hotel Name</td>
						<td class="p5px10px">Star Rating</td>
						</tr>
						 
									<tr>
							    	<td class="p5px10px">
							    	Port Blair 
							    	</td>
							        <td class="p5px10px">Hotel Standard Hotels</td>
							        <td class="tac p5px10px">
							        								            	<p class="ac-dib acac-dib ac-mr5px lc-mr0">
											<span class="vam large dif" style="">
							            		<i class="fa fa-star mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i>							                </span>
											</p>
							                							        </td>
								    </tr>
									 
									<tr>
							    	<td class="p5px10px">
							    	Port Balir 
							    	</td>
							        <td class="p5px10px">Hotel Standard Hotel</td>
							        <td class="tac p5px10px">
							        								            	<p class="ac-dib acac-dib ac-mr5px lc-mr0">
											<span class="vam large dif" style="">
							            		<i class="fa fa-star mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i><i class="fa fa-star-o mr2px"></i>							                </span>
											</p>
							                							        </td>
								    </tr>
															</tbody>
						</table>
						</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, the refund will be made after deducting the Retention Amount.</li><li>
Retention Amount varies as per the number of days left before your package start date.</li><li>
Refund will be made within 15 working days from the date of receipt of the cancellation.</li><li>
Cancellation Policy: In the event of cancellation of tour/travel services due to any avoidable/unavoidable reason/s we must be notified of the same in writing. Cancellation charges will be effective from the date we receive advice in writing, and cancellation charges would be as follows:</li><li>
45 days prior to arrival: 10% of the Tour/service cost.</li><li>
15 days prior to arrival: 25% of the Tour/service cost.</li><li>
07 days prior to arrival: 50% of the Tour/service cost.</li><li>
48 hours prior to arrival OR No Show: No Refund.</li><li>
Note: Written cancellation will accept on all working days, except Sunday, Any cancellation sent on Sunday's will be considered on next working day (Monday).</li><li>
For the X-mas and New Year period from 20 Dec to 05 Jan the payment is non-refundable.</li><li>
In case you cancel the trip after commencement, refund would be restricted to a limited amount only which too would depend on the amount that we would be able to recover from the hoteliers/ contractors we patronize. For unused hotel accommodation, chartered transportation & missed meals, etc. we do not bear any responsibility to refund.</li><li>
Please Note: We will not be responsible for any costs arising out of unforeseen circumstances like landslides, roadblocks, bad weather, etc.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.vnandamantourtravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="6 Days 5 Nights Havelock & Neil Island 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="189805"/>
						</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.vnandamantourtravel.in/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(23)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(21)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-genting.htm" title="Packages in Genting">Genting</a> <b class="alpha50 bn small">(16)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-moga.htm" title="Packages in Moga">Moga</a> <b class="alpha50 bn small">(8)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-kolhapur.htm" title="Packages in Kolhapur">Kolhapur</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-mansa.htm" title="Packages in Mansa">Mansa</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-anantapur.htm" title="Packages in Anantapur">Anantapur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-adilabad.htm" title="Packages in Adilabad">Adilabad</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-cuddapah.htm" title="Packages in Cuddapah">Cuddapah</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-banaue.htm" title="Packages in Banaue">Banaue</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-south-andaman.htm" title="Packages in South Andaman">South Andaman</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-bemetara.htm" title="Packages in Bemetara">Bemetara</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/packages-in-valsad.htm" title="Packages in Valsad">Valsad</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></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.vnandamantourtravel.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(32)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/group-holidays-catid.htm" title="Group Packages">Group</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(17)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/boat-safari-holidays-catid.htm" title="Boat Safari Packages">Boat Safari</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/paddle-boats-holidays-catid.htm" title="Paddle Boats Packages">Paddle Boats</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/water-skiing-holidays-catid.htm" title="Water Skiing Packages">Water Skiing</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/snorkeling-holidays-catid.htm" title="Snorkeling Packages">Snorkeling</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vnandamantourtravel.in/scuba-diving-holidays-catid.htm" title="Scuba Diving Packages">Scuba Diving</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/parasailing-holidays-catid.htm" title="Parasailing Packages">Parasailing</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/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 spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/kayaks-holidays-catid.htm" title="Kayaks Packages">Kayaks</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/water-scooters-holidays-catid.htm" title="Water Scooters Packages">Water Scooters</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/family-holidays-catid.htm" title="Family Packages">Family</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/jet-ski-ride-holidays-catid.htm" title="Jet Ski Ride Packages">Jet Ski Ride</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/snorkelling-holidays-catid.htm" title="Snorkelling Packages">Snorkelling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.vnandamantourtravel.in/boating-holidays-catid.htm" title="Boating Packages">Boating</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</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:82:"Book 6 Days 5 Nights Havelock & Neil Island Tour - 5 Nights / 6 Days Tour Packages";i:2;s:213:"book 6 days 5 nights havelock & neil island tour - 5 nights / 6 days tour packages, adventure tour packages, port blair,,rose island,,north bay island,,havelock island,,neil island,,baratang island,, tour packages";i:3;s:270:"Book 6 Days 5 Nights Havelock & Neil Island Tour - 5 Nights / 6 Days tour packages from Vn Andaman Tour & Travels - Get attractive 5 Nights / 6 Days Adventure  tour packages for  Port Blair,,Rose Island,,North Bay Island,,Havelock Island,,Neil Island,,Baratang Island,,.";i:4;s:505:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair,,Rose Island,,North Bay Island,,Havelock Island,,Neil Island,,Baratang Island,,"        
		                 },
		      "description": "",
		      "name": "6 Days 5 Nights Havelock & Neil Island Tour",
		      "telephone": "+91-8008089220"
		    }
		    </script>
			";i:5;N;}