a:6:{i:0;s:37475:"				<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>4 N Port Blair + 1 N Havelock Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.andamanemeraldtour.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.andamanemeraldtour.com/andaman-tour-packages.htm" title="Andaman Tour Packages">Andaman Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>4 N Port Blair + 1 N Havelock 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_9/265931/111063.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_9/265931/111063.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/265931/111063.jpg"  alt="4 N Port Blair + 1 N Havelock Tour" title="4 N Port Blair + 1 N Havelock 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">4 N Port Blair + 1 N Havelock Tour</p>
					
											<p class="mb5px"><b>Tour Code :</b> 201</p>
												<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair, Havelock</p>
												<p class="mb5px"><b>Attractions :</b> Cellular Jail</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px"><i class="fa fa-inr"></i> 6878						</p>
						<p class="xxsmall alpha50">Per Person</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.andamanemeraldtour.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 N Port Blair + 1 N Havelock 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="58744"/>
						</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">Air Fare/Train fare.<br />
Personal Expenses such as Laundry, telephone calls, tips & gratuity, mineral water, soft & hard drinks, porterage.<br />
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary.<br />
camera fees & Guide charges.<br />
Any cost arising due to natural calamities like, landslides, road blockage, political disturbances (strikes), etc (to be borne by the client, which is directly payable on the spot).<br />
Any increase in taxes or fuel price, leading to increase in cost on surface transportation & land arrangements, which may come into effect prior to departure.<br />
Snorkeling, Glass Bottom, Boat Ride, Sea Walking, Scuba Diving<br />
Insurance.<br />
Anything which is not include in the inclusion.22-0431-08</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> Air Port Pickup										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Our representative will pick you up from the airport and drop you at your hotel. From this point your amazing journey for the incredible Andaman will begin. We know you will be very excited and eager to experience the scenic beauty of the exotic island. We will be equally enthusiastic in welcoming you to the emerald beach destination.<br />
Chidiya Tapu Beach<br />
White sand beach, clear water and sunset combine to make Chidiya Tapu a perfect tourist attraction. The place also has a small zoo which will interest children. The best time to visit the place is around late afternoon so that you don’t miss the serene sunset from the beach. Chidiya Tapu is also famous for swimming and has changing room facility.																											   
												<div class="mt10px">
												
																	
													<p>Meals : No Meals</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> Ross Island + North Coral Island										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												North Bay Island which being located at a distance of 30mins by boat journey from water sports complex of Port Blair is the most coral reach Island of Andaman. It is one of the best places in Andaman to explore colorful corals and various under water creatures through sea walk, scuba diving, glass bottom boat and snorkeling. This island also has a small local market.<br />
Ross Island<br />
Ross Island, the former capital of Andaman is located near Port Blair, which can be visited via boats from water sports complex by 20 minutes journey. The island is currently unhabituated for humans but the houses are wonderful and you also get to see friendly animals (deer’s) and birds (peacocks). Island has old buildings and churches which are architecturally amazing.															   
												<div class="mt10px">
												
																	
													<p>Meals : Breakfast Only</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> Havelock Radhanagar Beach										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Our representative will receive you from the hotel and will drop you at the jetty.  Jetty is the place where boats/cruises halt (also known as Port), from here it takes and drops passengers and cargo from one place to another. Here you can find many sizes and varieties of ship starting from small slow boats for inter island journeys till multi layer cruise from different countries. Here you can take some memorable photographs, experience how boats operate and know the life style of localities. Keep your Id Proof ready in your hands along with ticket for security check.<br />
Port Blair to Havelock Island by Green Ocean( Luxury )<br />
Radhanagar Beach<br />
Radhanagar beach located at about 12km from jetty is also known as beach No.7. It is a beautiful Beach with amazing waves and perfect for swimming. It is constantly ranked as best beach in India and Asia. It’s a picture perfect beach with an excellent view of sunset. You cannot just miss this place if you are in Havelock.															   
												<div class="mt10px">
												
																	
													<p>Meals : Breakfast Only</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 - Port Blair Corbyn Beach										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Havelock Island to Port Blair by Makruzz( Premium )<br />
Jetty Pickup<br />
Our representative will receive you from the jetty and drop you at the hotel. Jetty is the place where boats/cruises halt (also known as Port), from here it takes and drops passengers and cargo from one place to another. Here you can find many sizes and varieties of ship starting from small slow boats for inter island journeys till multi layer cruise from different countries. Here you can take some memorable photographs, experience how boats operate and know the life style of localities. Keep your Id Proof ready in your hands along with ticket for security check.<br />
Corbyns Cove<br />
The only beach around Port Blair is located at a distance of around 9kms and 20 mins from the city center. The beach is very famous for water sports activities and is a wonderful place to relax at. This beach has all the arrangements like rest chairs, changing rooms, restaurants etc.															   
												<div class="mt10px">
												
																	
													<p>Meals : Breakfast Only</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> City Tour + Sound & Light Show										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Cellular Jail houses the rich history of Andaman and is a must see in Port Blair. It is a colonial prison built by Britisher's to exile Indian freedom fighters and political leaders. Jail has museums that reflect the sufferings and hardship of the prisoners. The place has the pride & patriotism in the air and will certainly make you enthusiastic.<br />
Fisheries Museum<br />
The marine museum is a small museum located near water sports complex which is maintained by Indian Marine department. This museum displays some aquatic life and coral present in Andaman Islands. It is a place where you can learn a lot about the life under sea.<br />
Anthropology Museum<br />
This is one of the best museum in Port Blair, which provides thorough and sympathetic portrait of indigenous tribal communities of Andaman and Nicobar. The place reflects the rich history and culture of Andaman. There is no better place than this to explore the heritage and culture of Andaman.<br />
Samudrika Museum<br />
Samudrika museum is a unique museum located in the heart of Port Blair that displays beautiful corals with neat notes on each species of sea creatures which makes it every educative. It is distinctly different from the mainland aquariums due to the presence of sheer variety of coral life that is exclusive to the seas surrounding the Andaman Islands.<br />
Vehicle For Shopping<br />
You can do shopping of some shell arts, articles made of local stuff, species, handicrafts. We will provide you with a complimentary ride for shopping .Then we will drop you at your hotel.<br />
Water Sports Complex<br />
Located in the heart of Port Blair, the Rajiv Gandhi Water Sports Complex offers an array of aqua-sports like banana rides, jet skiing, parasailing, speed boat rides, rowboat paddling, etc. The Centre is well-equipped with changing rooms and trained staff to ensure safety. This place is a must if you want to explore water sports in Port Blair.<br />
Sound And Light Show<br />
This is a show of lights and sound conducted in Cellular Jail every evening that depicts the history of Andaman and the life of prisoners in the Cellular Jail.  The show will fill your heart with patriotism. The show lasts around 30 mins and is conducted in both English and Hindi languages.															   
												<div class="mt10px">
												
																	
													<p>Meals : Breakfast Only</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> Air Port Drop										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After enjoying the beauty of exotic islands, mesmerizing beaches, unexploited nature and knowing our culture its now time for us to tell you good bye. We will be thankful for giving us the opportunity to serve you and will expect to serve you many more times in the future. Our representative will receive you from the Hotel and drop you at the Airport.															   
												<div class="mt10px">
												
																	
													<p>Meals : Breakfast Only</p> 
																									</div>	
															
														   
											</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>Transfers</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Air Fare/Train fare.</li><li>
Personal Expenses such as Laundry, telephone calls, tips & gratuity, mineral water, soft & hard drinks, porterage.</li><li>
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary.</li><li>
camera fees & Guide charges.</li><li>
Any cost arising due to natural calamities like, landslides, road blockage, political disturbances (strikes), etc (to be borne by the client, which is directly payable on the spot).</li><li>
Any increase in taxes or fuel price, leading to increase in cost on surface transportation & land arrangements, which may come into effect prior to departure.</li><li>
Snorkeling, Glass Bottom, Boat Ride, Sea Walking, Scuba Diving</li><li>
Insurance.</li><li>
Anything which is not include in the inclusion.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Rate Card</p>
								</div>
								
    	<p class="h dif xlarge b mb5px">Package Cost</p>
    	<div class="otherDetails aj">Port Blair + Coral Island + Havelock Radhanagar Beach</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">TYPE OF HOTEL</td>
				<td class="data p5px">COST FOR 2 PAX</td>
				<td class="data p5px">COST FOR 4 PAX</td>
				<td class="data p5px">COST FOR 6 PAX</td>
				<td class="data p5px">COST FOR GROUP OF 14 AND ABOVE</td>
			</tr>
			<tr>
				<td class="data p5px">Budget</td>
				<td class="data p5px">9233 ( Per Head )</td>
				<td class="data p5px">7693 ( Per Head )</td>
				<td class="data p5px">7180 ( Per Head )</td>
				<td class="data p5px">6878 ( Per Head )</td>
			</tr>
			<tr>
				<td class="data p5px">Standard - 1*</td>
				<td class="data p5px">9905 ( Per Head )</td>
				<td class="data p5px">8365 ( Per Head )</td>
				<td class="data p5px">7852 ( Per Head )</td>
				<td class="data p5px">7550 ( Per Head )</td>
			</tr>
			<tr>
				<td class="data p5px">Deluxe - 2**</td>
				<td class="data p5px">11458 ( Per Head )</td>
				<td class="data p5px">9918 ( Per Head )</td>
				<td class="data p5px">9404 ( Per Head )</td>
				<td class="data p5px">9127 ( Per Head )</td>
			</tr>
			<tr>
				<td class="data p5px">Super Deluxe - 3***</td>
				<td class="data p5px">14252 ( Per Head )</td>
				<td class="data p5px">12712 ( Per Head )</td>
				<td class="data p5px">12200 ( Per Head )</td>
				<td class="data p5px">11897 ( Per Head )</td>
			</tr>
		</table></div><br>								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								<ul>
	<li>All rates quoted are on Per person basis (in Rs) - Applicable for 2 persons staying together sharing the same room</li>
	<li>Prices mentioned are the minimum quote and will be available on first-come, first-served basis</li>
	<li>Package rates are subject to change without prior notice</li>
	<li>EMERALD reserves the right to change/modify or terminate the offer anytime at its own discretion and without any prior notice</li>
	<li>Cruise to Islands is subject to weather conditions. Alternate arrangements will be made in case the sailing does</li>
	<li>not take place. However, EMERALD will not be responsible for refunding any amount due to non-sailing of Cruise.</li>
	<li>Only Indian citizens are entitled to make booking on these rates.</li>
	<li>We request the customers to provide their meal preference at the time of booking for convenience during the holiday</li>
	<li>Meal selections are available for vegetarian / non-vegetarian / Jain meals / Guajarati food.</li>
	<li>In case of unavailability in mentioned hotels, alternate accommodation will be arranged in a similar category hotel.</li>
	<li>Refund on cancellation strictly depends upon concerned hotel&#39;s cancellation policy</li>
</ul>								</div>
														
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.andamanemeraldtour.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="4 N Port Blair + 1 N Havelock 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="58744"/>
						</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="https://www.andamanemeraldtour.com/port-blair-tour-packages.htm" title="Port Blair Tour Packages">Port Blair</a> <b class="alpha50 bn small">(95)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.andamanemeraldtour.com/havelock-tour-packages.htm" title="Havelock Tour Packages">Havelock</a> <b class="alpha50 bn small">(73)</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="https://www.andamanemeraldtour.com/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.andamanemeraldtour.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(78)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.andamanemeraldtour.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.andamanemeraldtour.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="https://www.andamanemeraldtour.com/adventure-sports-holidays-catid.htm" title="Adventure Sports Packages">Adventure Sports</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.andamanemeraldtour.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.andamanemeraldtour.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</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='https://www.andamanemeraldtour.com/holiday-packages/family-standard-packages5n6d.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/265931/20814.jpg"  alt="Family Standard Packages - ( 5N / 6D )" title="Family Standard Packages - ( 5N / 6D )"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.andamanemeraldtour.com/holiday-packages/family-standard-packages5n6d.htm" title="Family Standard Packages - ( 5N / 6D )"><h3>Family Standard Packages - ( 5n / 6d )</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_14269" id="pkg_14269" method="post" action="https://www.andamanemeraldtour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.andamanemeraldtour.com/holiday-packages/family-standard-packages5n6d.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Family Standard Packages - ( 5N / 6D ) - 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="14269"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.andamanemeraldtour.com/holiday-packages/incredible-andaman-tour-couple.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/265931/65103.jpg"  alt="Incredible Andaman Tour ( Couple)" title="Incredible Andaman Tour ( Couple)"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.andamanemeraldtour.com/holiday-packages/incredible-andaman-tour-couple.htm" title="Incredible Andaman Tour ( Couple)"><h3>Incredible Andaman Tour ( Couple)</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 12785</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_31542" id="pkg_31542" method="post" action="https://www.andamanemeraldtour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.andamanemeraldtour.com/holiday-packages/incredible-andaman-tour-couple.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Incredible Andaman Tour ( Couple) - 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="31542"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.andamanemeraldtour.com/holiday-packages/couple-package5n-port-blairw-baratang1n-havelock-radhanagar1n-neil.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/265931/98643.jpg"  alt="Couple Package (5 N Port Blair W Baratang + 1 N Havelock Radhanagar + 1 N Neil Tour" title="Couple Package (5 N Port Blair W Baratang + 1 N Havelock Radhanagar + 1 N Neil Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.andamanemeraldtour.com/holiday-packages/couple-package5n-port-blairw-baratang1n-havelock-radhanagar1n-neil.htm" title="Couple Package (5 N Port Blair W Baratang + 1 N Havelock Radhanagar + 1 N Neil Tour"><h3>Couple Package (5 N Port Blair W Baratang ..</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 17445</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_50365" id="pkg_50365" method="post" action="https://www.andamanemeraldtour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.andamanemeraldtour.com/holiday-packages/couple-package5n-port-blairw-baratang1n-havelock-radhanagar1n-neil.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Couple Package (5 N Port Blair W Baratang + 1 N Havelock Radhanagar + 1 N Neil 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="50365"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.andamanemeraldtour.com/holiday-packages/family-deluxe-package7n8d.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/265931/20845.jpg"  alt="Family Deluxe Package - ( 7N / 8D )" title="Family Deluxe Package - ( 7N / 8D )"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.andamanemeraldtour.com/holiday-packages/family-deluxe-package7n8d.htm" title="Family Deluxe Package - ( 7N / 8D )"><h3>Family Deluxe Package - ( 7n / 8d )</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_14289" id="pkg_14289" method="post" action="https://www.andamanemeraldtour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.andamanemeraldtour.com/holiday-packages/family-deluxe-package7n8d.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Family Deluxe Package - ( 7N / 8D ) - 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="14289"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.andamanemeraldtour.com/holiday-packages/exotic-andaman-ett-102-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/265931/196631.jpg"  alt="Exotic Andaman ( ETT@102) Package" title="Exotic Andaman ( ETT@102) Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.andamanemeraldtour.com/holiday-packages/exotic-andaman-ett-102-package.htm" title="Exotic Andaman ( ETT@102) Package"><h3>Exotic Andaman ( Ett@102) Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 16343</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_121679" id="pkg_121679" method="post" action="https://www.andamanemeraldtour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.andamanemeraldtour.com/holiday-packages/exotic-andaman-ett-102-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Exotic Andaman ( ETT@102) 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="121679"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.andamanemeraldtour.com/holiday-packages/group-deluxe-package2n3d.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/265931/21535.jpg"  alt="Group Deluxe Package - ( 2N / 3D )" title="Group Deluxe Package - ( 2N / 3D )"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.andamanemeraldtour.com/holiday-packages/group-deluxe-package2n3d.htm" title="Group Deluxe Package - ( 2N / 3D )"><h3>Group Deluxe Package - ( 2n / 3d )</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</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</p>
															<div class="mt10px small">
							<form name="pkg_14551" id="pkg_14551" method="post" action="https://www.andamanemeraldtour.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.andamanemeraldtour.com/holiday-packages/group-deluxe-package2n3d.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Group Deluxe Package - ( 2N / 3D ) - 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="14551"/>
							</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:73:"Book 4 N Port Blair + 1 N Havelock Tour - 5 Nights / 6 Days Tour Packages";i:2;s:142:"book 4 n port blair + 1 n havelock tour - 5 nights / 6 days tour packages, beach and islands tour packages, port blair, havelock tour packages";i:3;s:182:"Emerald Tours & Travels offers 4 N Port Blair + 1 N Havelock Tour - 5 Nights / 6 Days tour package, budget Beach and Islands tour packages for Port Blair, Havelock at exciting price.";i:4;s:1160:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "Air Fare/Train fare.
Personal Expenses such as Laundry, telephone calls, tips & gratuity, mineral water, soft & hard drinks, porterage.
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary.
camera fees & Guide charges.
Any cost arising due to natural calamities like, landslides, road blockage, political disturbances (strikes), etc (to be borne by the client, which is directly payable on the spot).
Any increase in taxes or fuel price, leading to increase in cost on surface transportation & land arrangements, which may come into effect prior to departure.
Snorkeling, Glass Bottom, Boat Ride, Sea Walking, Scuba Diving
Insurance.
Anything which is not include in the inclusion.22-0431-08",
		      "name": "4 N Port Blair + 1 N Havelock Tour",
		      "telephone": "+91-9434284736"
		    }
		    </script>
			";i:5;N;}