a:6:{i:0;s:32161:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Explore Elephanta Island Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.trip4trippers.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.trip4trippers.com/packages.htm" title="Packages">Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Explore Elephanta Island Tour</p>
						</div>
						</div>
						</section>
										<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="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/533691/253903.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/253903.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/253903.jpg"  alt="Explore Elephanta Island Tour" title="Explore Elephanta Island 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">Explore Elephanta Island Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						4 Nights / 5 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair, Havelock</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.trip4trippers.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Explore Elephanta 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="167472"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</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> Day Visit Cellular Jail, Corby’s Cove Beach and Light & Sound Show										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												On Arrival At Port Blair Airport, Our Representative Will Receive and Escort You to the Hotel. After Check-in At the Hotel and Little Relaxation, We Will Proceed to Carbyn’s Cove Beach & Cellular Jail and Watch the Light and Sound Show at Cellular Jail. <br />
<br />
overnight Stay At Port Blair.															
														   
											</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> One of the best Beach of Asia										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Transfer to Havelock Island By Morning Cruise/ferry. Havelock Islands Situated About 60 Kms Away from Port Blair (approx 2hrs By Sea) is the Most Popular Tourist Destination in Andaman’s, Famous for Its Great Dive Sites and Beaches. On Reaching Havelock You Will Visit the Famous radhanagar Beach which Has Been Consistently Rated as One of Asia’s Best Beaches Over the Years. the Beach is One of Nature's Best Kept Secrets swim in Its Emerald Waters, Enjoy a Stroll By the Beach or Be Lulled to Sleep By the Sound of the Waves. in Evening Relax in Your Resort.			
														   
											</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> Water Sport Activity Elephant Island										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Early Morning, Your Trip Will Start. You Will Visit Elephant Beach Which is Approximately 20 Minutes By Boat from the Havelock Island Dock. this Destination Offers Beautiful White Sand Beach Along with An Amazing Coral Reef Which Starts At a Depth Less Than a Meter. the White Sand Beach and the Blue Green Water At the Elephant Beach is Enticing for Almost Every Traveler. the Boat Ride to Elephant Beach Passing Through the Light House is Amazing.<br />
 in Evening Relax in Your Resort.			
														   
											</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> A Famous Sunset Views – Chidiya Tapu										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast, Board to Cruise and Transfer to Port Blair. In Afternoon Proceed to Chidya Tapu. chidya Tapu is 30 Km from Main City; this Place is Famous for Sunset View. The Road Passes Through Forest. From Port Blair, the Journey Would Be Around One Hour to Reach the Destination.<br />
<br />
In the Evening Relax in Your Resort.			
														   
											</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> Drop to Airport										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Break Fast you will be drop to airport with memories.			
														   
											</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>Accommodation in A/c Room for 02 Nights With breakfast + At Port Blair.</li><li>
accommodation In  A/c Room + for 02 Nights </li><li>
with breakfast + At Havelock </li><li>
all Transfers In a/c Private Car at Port Blair.</li><li>
all Transfers In a/c Private Car at Neil Island.</li><li>
all Transfers In  A/c Private Car at Havelock Island.</li><li>
entry and Ferry Tickets to Visit all the Places of Sightseeing.</li><li>
all 04 Days Sightseeing According to the Itinerary.</li><li>
transfer to Havelock  and Port Blair By a/c Luxury Tourist </li><li>
ferry</li><li>
(note: if Private Ferry is Not Operating, the Guests Will Be </li><li>
transferred By Govt. Ferry)</li><li>
airport Pick Up & Drop.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Lunch and Dinner are Not Included in the Package.</li><li>
water Sports Activities are Not Included in the Package.</li><li>
vehicle At Disposal.</li><li>
any Extra Excursions Apart from the Suggested Itinerary.</li><li>
to and Fro Airline/ship Tickets to Port Blair are Not </li><li>
included.</li><li>
personal Expenses.</li><li>
room Services, Laundry, Telephone Charges, Ross Island </li><li>
maintenance Fees.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li><p>* 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">Terms &amp; Conditions</p>
								</div>				
								</p>

<p>Terms &amp; Condition<br />
Dear Guest, Our Company takes immense pleasure in extending our hands for completing your ever dreamt Andaman tour with exceptional services and modest way of customer dealings. We take pride in gaining your trust and support all along our endeavour and our expertise in handling a trustful relation with our customers have always been successful and in future too, we will continue our journey by offering secure and comfortable modes of travel for our enthusiastic customers. Prior to the journey, we set forth some terms and conditions before you to ensure a transparent and authentic deal and by filling the consent form, thereby acceding our conditions, our services are bound by an agreement. The details of Reservation/Amendment/Cancellation of a trip is distinctly mentioned in our Reservation policy. If you are satisfied with the following terms and conditions, do fill the personal data form which will be in turn resent back to you with our confirmation e-mail. Responsibility &amp; Limitation &amp; Reservation Policy<br />
As a loyal Travel agent, we are happy to provide our customers with services for travel needs including best airlines, accommodations and cruises.<br />
We are here to assure travel bookings on your behalf and involve in ensuring relevant agreements with our customers and the service providers.<br />
We have assigned the prices of services like vehicles, ferry tickets, cruise charges, rates negotiated with hotels calculated on the basis of current pricing and if in case of an increase in these above-mentioned rates and in Government surcharge or fuel charges, the increased amount will be levied from the customer itself.<br />
The Andaman ferry sailings are subjected to weather conditions and if in case there is a hindrance in sailing due to weather or payload restriction, we will try to handle the situation by looking for an alternative plan. But we are not responsible for non-sailing ferries and the amount will not be refunded back as per the Cancellation policy. Thus, the itinerary can be subjected to change.<br />
There are chances for cancellation of ferry rides to islands like Neil, Ross and Havelock due to unforeseen circumstances or events, or if any attractions are closed owing to the maintenance, we will arrange an alternative itinerary and the accommodation charges will be refunded back following the cancellation  policy of the concerned hotel in the above mentioned islands. And, if we got to know the circumstances in advance, your itineraries will be subjected to change and we will duly plan your trip. Also, the conduct of water activities in the islands depend on weather conditions and so the rides will be cancelled or delayed owing to bad weather. In case of cancellation of activities or day trips, we will try to refund the amount to the maximum.<br />
If you have contracted any service with any other service provider, and in case, they have failed to offer you the service for any reason, then Trip 4 Trippers will not take any responsibility and that service provider will be answerable and legal recourse must be moved against them.<br />
We will be arranging alternate provision for your safe journey in case of vehicle breakdown but the time delay caused will not be compensated.<br />
We will not take the responsibility of alternations or delays in the planned programs or events occurred due to several factors like accidents, flight cancellation, natural hazards, weather, breakdown, sickness, political closures or any other unexpected reasons. If so, the extra amount will be levied from the customer.<br />
We will book your accommodation in a hotel as per your needs and will try to confirm the check-in in that particular hotel itself but in case we find any difficulty in dealing with the hotel management or on the basis of our regular feedback program, we are forced to withdraw the contract, then we reserve the right to change your stay to a hotel with similar category. This will be duly intimated to you and we will not be done without disclosing it to you.<br />
While you travel, it is the responsibility of each tourist to carry your valid travel documents or statutory clearances including visas, passports, insurance, confirmed air/rail tickets, medical insurance certificates, and carry documents with the possession of which will enable you to travel on a tour.<br />
There are chances of arising any type of dissatisfaction or complaints which must be immediately brought to the notice of your concerned tour representative and we will try to resolve it if it is within our limitation or constraints but the complaints will not be dealt at the commencement of using the services or after utilising the services.<br />
No refund will be entertained if you have done cash payments to an authority or person for any reason without out our written consent.</p>

<p>Note: The Above mentioned rates are not valid from 15th Dec  to 20th Jan as it is the Peak season time and extra surcharges will be excluded</p>

<p> </p>								</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.trip4trippers.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Explore Elephanta 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="167472"/>
						</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.trip4trippers.com/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(20)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip4trippers.com/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(20)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip4trippers.com/packages-in-diglipur.htm" title="Packages in Diglipur">Diglipur</a> <b class="alpha50 bn small">(2)</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.trip4trippers.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(20)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip4trippers.com/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 "><a class="dif" href="http://www.trip4trippers.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.trip4trippers.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(3)</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.trip4trippers.com/tour-packages/andaman-adventure-tour-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/242343.jpg"  alt="Andaman Adventure Tour Package" title="Andaman Adventure Tour Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.trip4trippers.com/tour-packages/andaman-adventure-tour-package.htm" title="Andaman Adventure Tour Package"><h3>Andaman Adventure Tour Package</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> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_158108" id="pkg_158108" method="post" action="http://www.trip4trippers.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.trip4trippers.com/tour-packages/andaman-adventure-tour-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Adventure Tour 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="158108"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.trip4trippers.com/tour-packages/andaman-family-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/242348.jpg"  alt="Andaman Family Tour" title="Andaman Family Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.trip4trippers.com/tour-packages/andaman-family-tour.htm" title="Andaman Family Tour"><h3>Andaman Family Tour</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> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_158111" id="pkg_158111" method="post" action="http://www.trip4trippers.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.trip4trippers.com/tour-packages/andaman-family-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Family 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="158111"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.trip4trippers.com/tour-packages/family-package-for-andaman.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/242349.jpg"  alt="Family Package for Andaman" title="Family Package for Andaman"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.trip4trippers.com/tour-packages/family-package-for-andaman.htm" title="Family Package for Andaman"><h3>Family Package For Andaman</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> : 
								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_158115" id="pkg_158115" method="post" action="http://www.trip4trippers.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.trip4trippers.com/tour-packages/family-package-for-andaman.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Family Package for Andaman - 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="158115"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.trip4trippers.com/tour-packages/andaman-group-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/242351.jpg"  alt="Andaman Group Tour" title="Andaman Group Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.trip4trippers.com/tour-packages/andaman-group-tour.htm" title="Andaman Group Tour"><h3>Andaman Group Tour</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> : 
								3 Nights / 4 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair, Havelock</p>
															<div class="mt10px small">
							<form name="pkg_158117" id="pkg_158117" method="post" action="http://www.trip4trippers.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.trip4trippers.com/tour-packages/andaman-group-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Group 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="158117"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.trip4trippers.com/tour-packages/andaman-adventure-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/242325.jpg"  alt="Andaman Adventure Tour" title="Andaman Adventure Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.trip4trippers.com/tour-packages/andaman-adventure-tour.htm" title="Andaman Adventure Tour"><h3>Andaman Adventure Tour</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> : 
								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_158104" id="pkg_158104" method="post" action="http://www.trip4trippers.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.trip4trippers.com/tour-packages/andaman-adventure-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Adventure 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="158104"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.trip4trippers.com/tour-packages/amazing-andaman-ltc-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/242365.jpg"  alt="Amazing Andaman LTC Tour" title="Amazing Andaman LTC Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.trip4trippers.com/tour-packages/amazing-andaman-ltc-tour.htm" title="Amazing Andaman LTC Tour"><h3>Amazing Andaman Ltc Tour</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> : 
								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_158129" id="pkg_158129" method="post" action="http://www.trip4trippers.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.trip4trippers.com/tour-packages/amazing-andaman-ltc-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Amazing Andaman LTC 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="158129"/>
							</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:68:"Book Explore Elephanta Island Tour - 4 Nights / 5 Days Tour Packages";i:2;s:137:"book explore elephanta island tour - 4 nights / 5 days tour packages, beach and islands tour packages, port blair, havelock tour packages";i:3;s:184:"Book Explore Elephanta Island Tour - 4 Nights / 5 Days tour packages from Trip 4 Trippers - Get attractive 4 Nights / 5 Days Beach and Islands  tour packages for  Port Blair, Havelock.";i:4;s:421:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Havelock"        
		                 },
		      "description": "",
		      "name": "Explore Elephanta Island Tour",
		      "telephone": "+91-7063933613"
		    }
		    </script>
			";i:5;N;}