a:6:{i:0;s:35874:"				<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>07 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>07 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/252278.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/252278.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_10/270660/252278.jpg"  alt="07 Days Andaman Tour" title="07 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">07 Days Andaman Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						6 Nights / 7 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"><i class="fa fa-inr"></i> 49200						</p>
						<p class="xxsmall alpha50">Per Person</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="07 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="166385"/>
						</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 mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">Economy  Package Category  Cost : 31,900/- 02pax <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 />
 <br />
  Premium  Package Category Cost : 40,600/- 2pax <br />
 <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 : 49,200/- 2pax <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 />
<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 />
<br />
·         the Above Rates are Valid for the Mentioned Period Only and Subject to Change Without Any Prior Notice.<br />
<br />
·         if Any Case Petrol Charge’s Going to High They Costing Will Be Change as per Ur Booking.<br />
<br />
·         Any Changes in the Hotel Taxes or Ferry/entry Charges Will Be Charged Additional.<br />
<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 />
any Dispute Regarding Child Age to Be Settled Directly with Hotels<br />
<br />
room     Services,     Laundry,    Telephone     Charges, Ross      Islandmaintenance Fee<br />
<br />
 Additional Usage of Vehicle<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> Port Blair – City tour										
											
											<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 "city Tour" of Port Blair - Covering Cellular Jail (if Not Covered On Day 1 Due to Holiday)- Better Known as Kalapani –was Built By Britishers in the Year 1905 to Imprison Indian Freedom Fighter (for Those Who Could Not Cover On Day 1 Due to Closer), Chatham Saw Mill –it’s a Small Island At the Mouth of Port Blair Harbor, It Houses One of the Oldest Saw Mill in Asia and the Place is also Historically Important, the Forest Museum Displays Exotic Native Woods, Mini Zoo-rare Species of Birds and Animal Found In, Samudrika Naval (marine) Museum – Show Casing the Seashells , Marine Creatures and Underwater Marine Life of Andaman and Nicobar & Water Sports Complex. Afternoon is Free for Shopping and other Own Activities. Overnight Stay At Respective Hotel / Resort At Port Blair. (note- City Tour / Museums are Closed On Mondays and National Holidays Our Executives Will Change this Trip if this Fall On Any of the Above Mentioned Holidays)			
														   
											</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 7											
											:</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 01 A.c Room On  Twin Sharing Basis with 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="07 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="166385"/>
						</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">Per Person</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">Per Person</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">Per Person</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">Per Person</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">Per Person</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">Per Person</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:59:"Book 07 Days Andaman Tour - 6 Nights / 7 Days Tour Packages";i:2;s:120:"book 07 days andaman tour - 6 nights / 7 days tour packages, adventure tour packages, port blair, havelock tour packages";i:3;s:160:"Andaman Vishaka Travels offers 07 Days Andaman Tour - 6 Nights / 7 Days tour package, budget Adventure tour packages for Port Blair, Havelock at exciting price.";i:4;s:2065:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "Economy  Package Category  Cost : 31,900/- 02pax 
  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 : 40,600/- 2pax 
 
  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 : 49,200/- 2pax 
  Hotel At Port Blair : Megapode or Similar 
  Hotel At Havelock : Holiday Inn or Similar 
  Hotel At Neil Island : Tango Beach Resort  or Similar 


         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.

·         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": "07 Days Andaman Tour",
		      "telephone": "+91-9933246100"
		    }
		    </script>
			";i:5;N;}