a:6:{i:0;s:35439:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Andaman With Wild Safari 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> Andaman With Wild Safari 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/252667.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/252667.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_18/533691/252667.jpg"  alt="Andaman with Wild Safari Tour" title="Andaman with Wild Safari 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">Andaman with Wild Safari Tour</p>
					
											<p class="mb5px"><b>Duration :</b> 
						7 Nights / 8 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair, Diglipur, Havelock</p>
												<p class="mb5px"><b>Attractions :</b> Ross Island</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="Andaman with Wild Safari 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="166704"/>
						</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> Entire Excursion to Ross Island and North Bay										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast you will be escorted to Andaman Water Sports Complex to catch a ferry which will be your mate for the entire excursion to Ross Island and North Bay.<br />
Ross Island was the British Capital. Structure of commissioner office, Bakery, superintendent office, tennis court and many other attractions.<br />
North Bay. The beach around the island is very famous for under water corals. It is ideal place for scuba diving and snorkeling. Coral island with white sand beaches and surrounded by the pristine beauty of Nature. The sea has gifted this island with all the splendor to attract any sea loving human. The Coral reefs are gorgeously decorated by nature to stun the visitor. In Evening back to Port Blair and overnight stay.			
														   
											</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> 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 4											
											:</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 5											
											:</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 6											
											:</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 7											
											:</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 8											
											:</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>Meals</li>
																						<li>Sightseeing</li>
																						<li>EP (No Meal)</li>
																				<li>Accommodation in A/C room for 06 nights with Breakfast + at Port Blair.</li><li>
Accommodation in A/C room for 01 nights with Breakfast + at Havelock.</li><li>
Accommodation in A/C room for 01 nights with Breakfast + at Neil Island.</li><li>
Accommodation in 01 A/C room for 01 nights with Breakfast + at Diglipur Island.</li><li>
All transfers in 01 A/C private car at Port Blair.</li><li>
All transfers in 01 A/C private car at Havelock Island.</li><li>
All transfers in 01 A/C private car at Neil 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 7 days sightseeing according to the itinerary.</li><li>
Transfer to Havelock and Port Blair by A/C Luxury tourist 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 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>

<ul>
	<li>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.</li>
	<li>Responsibility &amp; Limitation &amp; Reservation Policy</li>
	<li>As a loyal Travel agent, we are happy to provide our customers with services for travel needs including best airlines, accommodations and cruises.</li>
	<li>We are here to assure travel bookings on your behalf and involve in ensuring relevant agreements with our customers and the service providers.</li>
	<li>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.</li>
	<li>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.</li>
	<li>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.</li>
	<li>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.</li>
	<li>We will be arranging alternate provision for your safe journey in case of vehicle breakdown but the time delay caused will not be compensated.</li>
	<li>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.</li>
	<li>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.</li>
	<li>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.</li>
	<li>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.</li>
	<li>No refund will be entertained if you have done cash payments to an authority or person for any reason without out our written consent.</li>
</ul>								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount. * Retention Amount varies as per the number of days left before your package start date.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.trip4trippers.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman with Wild Safari 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="166704"/>
						</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:68:"Book Andaman with Wild Safari Tour - 7 Nights / 8 Days Tour Packages";i:2;s:147:"book andaman with wild safari tour - 7 nights / 8 days tour packages, beach and islands tour packages, port blair, diglipur, havelock tour packages";i:3;s:179:"Trip 4 Trippers offers Andaman with Wild Safari Tour - 7 Nights / 8 Days tour package, budget Beach and Islands tour packages for Port Blair, Diglipur, Havelock at exciting price.";i:4;s:431:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair, Diglipur, Havelock"        
		                 },
		      "description": "",
		      "name": "Andaman with Wild Safari Tour",
		      "telephone": "+91-7063933613"
		    }
		    </script>
			";i:5;N;}