a:6:{i:0;s:33872:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Awsome Trip To Twin 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> Awsome Trip To Twin 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/275896.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/275896.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/275896.jpg"  alt="Awsome Trip to Twin Island Tour" title="Awsome Trip to Twin 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">Awsome Trip to Twin Island Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair, Diglipur, 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="Awsome Trip to Twin 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="167483"/>
						</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> Corbyn’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 Where the Saga of the Freedom Struggle is Brought Alive. 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. in Havelock Visit the Famous radhanagar Beach which Has Been Rated as One of the Best Beaches in Asia. the Beach is Best to Swim and Enjoy the Waves. <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 3											
											:</b> A Famous Sunset View – Chidiya Tapu										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Transfer to Port Blair Island By Morning Cruise/ferry. After Lunch Proceed to Chidya Tapu. chidya Tapu is 30 Km from Main City; this Place is Famous for Sunset View and for Bird Watching. Varieties of Birds Visit this Place. the Road Passes Through Forest and Small Hills Up to the Chidya Tapu. from Port Blair, the Journey Would Take Around One Hour to Reach Chidya Tapu.<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 4											
											:</b> Wild Safari Port Blair to Diglipur										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Early Morning Proceed to Baratang. On Your Way You Would Pass Through Jirkatang,Where You Can Watch Jarawa (andaman Tribes).baratang Island Between South and Middle Andaman Has Beautiful Beaches, Mangrove Creeks, Mud-volcanoes and Limestone Caves. Andaman Trunk Road to Rangat and Mayabunder Goes Through this Island. Limestone Cave Can Be Explored with the Permission of Forest Department At Baratang and Proper Local Guidance.<br />
later have Lunch Then Proceed To.rangat Visit aamkunj Beach, morice Dera Beach and Panchvati Waterfalls.<br />
after that We Will Proceed to Diglipur Via Mayabunder. <br />
<br />
   Overnight Stay At Diglipur.			
														   
											</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> Twin Island										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Early morning, visit Ross and Smith Island which is approximately 40 minutes by boat from the Ariel Bay. Explore the island. This island is connected with sand during high tide it look like separate island and low tide look like connected Island. <br />
In evening return to your respective resort<br />
And overnight stay in Diglipur.			
														   
											</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> Return to Port Blair										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Return to Port Blair Via Rangat, Kadamtala & Baratang. After Reaching Port Blair At 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 7											
											:</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 03 Nights With breakfast + At Port Blair.</li><li>
accommodation In a/c Room for 01 Nights With breakfast + At Havelock.</li><li>
accoaccommodation In  A/c Room for 02 Nights </li><li>
with breakfast + At Diglipur Island.</li><li>
all Transfers In  A/c Private Car at Port Blair.</li><li>
all Transfers In  A/c Private Car at Havelock Island.</li><li>
all Transfers in  A/c Private Car at Diglipur  Island.</li><li>
entry and Ferry Tickets to Visit all the Places of Sightseeing.</li><li>
all 6 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 And 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.<br />
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="Awsome Trip to Twin 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="167483"/>
						</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, Diglipur, 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:70:"Book Awsome Trip to Twin Island Tour - 6 Nights / 7 Days Tour Packages";i:2;s:149:"book awsome trip to twin island tour - 6 nights / 7 days tour packages, beach and islands tour packages, port blair, diglipur, havelock tour packages";i:3;s:181:"Trip 4 Trippers offers Awsome Trip to Twin Island Tour - 6 Nights / 7 Days tour package, budget Beach and Islands tour packages for Port Blair, Diglipur, Havelock at exciting price.";i:4;s:433:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Diglipur, Havelock"        
		                 },
		      "description": "",
		      "name": "Awsome Trip to Twin Island Tour",
		      "telephone": "+91-7063933613"
		    }
		    </script>
			";i:5;N;}