a:6:{i:0;s:30673:"				<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
									<div class="h1"><h1>Admirable Andaman Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.andamanseahawktravels.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamanseahawktravels.in/packages.htm" title="Packages">Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Admirable Andaman Tour</p> 
									
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					
											<p class="mb5px"><b>Duration :</b> 
						4 Nights / 5 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Port Blair</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamanseahawktravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Admirable Andaman Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="66194"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_9/244363/121529.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/244363/121529.jpg"  width="150" height="150"    alt="Admirable Andaman Tour" title="Admirable Andaman Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Lunch & Dinner at Hotel, Personal expenses.<br />
Airfares / Ship fare to mainland India.<br />
Activity charges, Jet Ski, scuba diving etc.<br />
Room Services, Laundry, Telephone charges, Ross island maintenance fee.<br />
Anything which is not mentioned in "PRICE INCLUDES".<br />
Additional usage of vehicle.<br />
Any services not specifically mentioned in the inclusions.<br />
Supplement(s) if any - Per Person in INR We will not be Liable for the following :<br />
For any lost or damage your personal belongings during the tour / stay, we would request you to take care of your<br />
personal belongings on your own.<br />
To pay for any extra services beyond the above-mentioned inclusions (Until approved by you in writing).<br />
We would in no way be liable for any delay / loss of Baggage, Loss of Passports, Air Tickets and Forex/INR etc. However we would provide assistance to the best of our abilities.								</div>
								<br />
																<div class="headHr">
					            <p class="p7px b pl10px xlarge">Tour Itinerary</p>
					            </div>
					            
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 1:</b> Airport pickup welcome on arrival at Port Blair
										</p>
										<p class="aj">Airport pickup welcome on arrival at Port Blair - Veer Savarkar Airport at Port Blair & get transferred by a private Air -Conditioned Vehicle to the Resort / hotel include baggage handling. After reaching to the Hotel our representative will assist to do Hotel Check in formalities. After a short time for leisure have lunch and start for sightseeing of places in and around Port Blair.<br />
Carbyn's Cove Beach ,Cellular Jail & Light and Sound<br />
we proceed to Carbyn's Cove Beach, Which cover Corbyn's Cove Beach - 9 kms from Port Blair town - a coconut palm fringed beach Corbyn’s Cove has a small curve of sand backed by palms. The coastal road here is a scenic journey, and passes several Japanese WWII bunkers along the way.<br />
The Cellular Jail has a pride of place in India ’s freedom struggle. Many a stalwart were imprisoned here. Declared a national memorial, this three storey prison constructed by Britishers in 1906, is a pilgrimage destination for freedom fighters. This colossal edifice has mutely witnessed the most treacherous of inhumane atrocities borne by the convicts, who were mostly freedom fighters.<br />
Cellular Jail is closed on Monday<br />
Light and Sound Show at 1800 hrs or 1900 Hrs. Back to Gust house.<br />
Overnight at Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 2:</b> Ross Island
										</p>
										<p class="aj">Breakfast at hotel.<br />
Today after breakfast embark on a day long two island cruise. One of the most sought after activities. It covers a panorama of seven harbours that include the , North Bay and Ross Island. It leaves a lasting impression. Visit Ross Island. Once the administrative headquarters of the British and capital of these Islands, the island is now under the Indian Navy. It stands now as a ruin of the bygone days with the old structures almost in debris. There is a small museum named Smritika, it holds photographs and the other antiques of the Britishers relevant to these islands. The island is famous for friendly flocks of Deer and lush green walking trails. North Bay, the water lovers may enjoy (called the Coral Island). Best destination to enjoy the view of colorful corals and underwater marine life through glass bottom boat and Snorkeling or take a glass bottom boat ride (Optional on direct payment) in its shallow waters with a chance to see corals up close. . Return to the hotel. Dinner and stay overnight at the Hotel.<br />
<br />
Enjoy Ross Island & North Bay Island Boat Ticket<br />
Overnight at Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 3:</b> Havelock Island
										</p>
										<p class="aj">Breakfast at hotel.<br />
In the early morning drop to Port Blair Harvour for the proceed to the Havelock Island .The island is named after a British Army Officer. The island offers state-of-the-art facilities for snorkeling and scuba diving. Havelock is famous for its white sand and crystal clear and transparent waters.<br />
Enjoy Port Blair To Havelock Makruzz Ship (Premium) Ticket<br />
Radhanagar Beach<br />
After reach our company’s vehicle will be in the resort to take you to the Radhanagar beach- Asia's Best Beach and rated amongst world's top ten beaches. Radhanagar Beach (Beach #7) is the most beautiful on the island and was rated as the best in Asia by Time in 2004. Gorgeous, silky white sand backed by a forest that provides welcome shade looks out over turquoise water, some stretches with a sandy bottom good for swimming and some with excellent coral reefs that are great for snorkeling - a great combination indeed. Sunsets here are often spectacular and it's a popular time to be at the beach. By evening return back to the hotel and Stay Overnight at Havelock Island.<br />
Kindly remind hotel to provide packed breakfast at Port Blair since the same is not included at Havelock.<br />
In evening we Back towards the Port Blair by Havelock Island Harbour. Enjoy Havelock To Port Blair Makruzz Ship (Premium) Ticket<br />
One arrival at Port Blair Harvour our representative will be stand out side the gate to take you and drop to Hotel.<br />
Overnight at Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 4:</b> Baratang Island
										</p>
										<p class="aj">Breakfast at hotel.<br />
Today we proceed towards Baratang Island Mud Volcano, Limestone Caves (Full Day Programme). Baratang Island is located between Middle and South Andaman Islands. Approximately, 110 Kms from Port Blair, Baratang Island is another major attraction for most of the tourist visiting this island. What would you expect when you visit a tropical island? Dense Forest, Tribes, Mangroves, boats, beaches, birds, caves, trekking, volcanoes; Baratang has all of these to offer. Journey to this Island is an adventurous one. Your trip starts early in the morning from Port Blair and Same day return to Port Blair.<br />
<br />
Enjoy Boat Ticket<br />
Enjoy Lime Stone Cave<br />
Enjoy Mud Valcano Per Group Upto 8 Pax<br />
Overnight at Hotel.</p>
										</td>
										</tr>
										</table>					
										</div>
										<div class="data">
										<table class="w100 formTable bdr0 imgWidth">
										<tr>
										<td class="p10px vat">
										<p class="b large mb5px"><b class="dif">Day 5:</b> Departure
										</p>
										<p class="aj">Breakfast at hotel.<br />
Airport Dropping<br />
Drop at Airport. Return home with memories of a wonderful holiday. (Check out time ---- Hrs)</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																						<li>Sightseeing</li>
																						<li>Transport</li>
																						<li>Transfers</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Lunch & Dinner at Hotel, Personal expenses.</li><li>
Airfares / Ship fare to mainland India.</li><li>
Activity charges, Jet Ski, scuba diving etc.</li><li>
Room Services, Laundry, Telephone charges, Ross island maintenance fee.</li><li>
Anything which is not mentioned in "PRICE INCLUDES".</li><li>
Additional usage of vehicle.</li><li>
Any services not specifically mentioned in the inclusions.</li><li>
Supplement(s) if any - Per Person in INR We will not be Liable for the following :</li><li>
For any lost or damage your personal belongings during the tour / stay, we would request you to take care of your</li><li>
personal belongings on your own.</li><li>
To pay for any extra services beyond the above-mentioned inclusions (Until approved by you in writing).</li><li>
We would in no way be liable for any delay / loss of Baggage, Loss of Passports, Air Tickets and Forex/INR etc. However we would provide assistance to the best of our abilities.</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Rate Card</p>
								</div>
								
    	<p class="h dif xlarge b mb5px">Hotel Details</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">City</td>
				<td class="headHr p5px b">Hotel</td>
				<td class="headHr p5px b">Room Category</td>
				<td class="headHr p5px b">Meal Plan</td>
			</tr>
			<tr>
				<td class="data p5px">Port Blair</td>
				<td class="data p5px">S L International</td>
				<td class="data p5px">Deluxe AC Room</td>
				<td class="data p5px">Breakfast</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Package Cost</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">02 PAX</td>
				<td class="headHr p5px b">04 PAX</td>
				<td class="headHr p5px b">06 PAX</td>
				<td class="headHr p5px b">EXTRA ADULT / CHILD WITH BED</td>
			</tr>
			<tr>
				<td class="data p5px">3 STAR HOTEL</td>
				<td class="data p5px">12474</td>
				<td class="data p5px">9885</td>
				<td class="data p5px">9178</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Package Cost</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">02 PAX</td>
				<td class="headHr p5px b">04 PAX</td>
				<td class="headHr p5px b">06 PAX</td>
			</tr>
			<tr>
				<td class="data p5px">WITHOUT HOTEL</td>
				<td class="data p5px">8333</td>
				<td class="data p5px">5912</td>
			</tr>
		</table></div><br>								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								<p><strong>Cancellation Policy:</strong>

<ul>
	<li>All services such as Airline seats / Hotel accommodation / ground transportation for tours are pre-blocked well in advance. We are liable to pay penalties to all our suppliers / vendors if these services are released within the below mentioned time frame.</li>
	<li>If circumstances make you cancel the Tour or the group size reduces below the number of passengers mentioned, the cancellation must be intimated to us in writing. Such Cancellation will attract the following Cancellation Charges:</li>
	<li>Cancellation Charges Per Person when a Cancellation is made-</li>
	<li>45 days or more prior to the departure of the tour- 25%</li>
	<li>30 days or more prior to the departure of the tour- 50%</li>
	<li>15 days or more prior to the departure of the tour- 100%</li>
	<li>No Show- 100%</li>
	<li>In case there are any other Cancellation that are levied by either of the suppliers i.e. Airlines or the Hotels the same would subsequently be charged from you.</li>
</ul>

<p><strong>General Information-</strong>

<ul>
	<li>The prices are quoted on Per Person basis in</li>
	<li>The confirmation of rooms at desired hotels will be subject to availability on the day of making the booking. In case rooms are not available at the hotel foreseen/ desired bookings will be made in alternate or similar category or the next best available hotel. Any supplement/ reduction applicable in such cases will be payable accordingly by you.</li>
	<li>Above prices are subject to any revision of tax and tariff. Standard Check-in / Check out time at hotels is 12 Noon. Flight/Train schedule is subject to change by the Airlines/Railways.</li>
	<li>The Airfare is in Economy Class and subject to change without any prior notice</li>
</ul>								</div>
														
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamanseahawktravels.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Admirable Andaman Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="66194"/>
						</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.andamanseahawktravels.in/packages-in-port-blair.htm" title="Packages in Port Blair">Port Blair</a> <b class="alpha50 bn small">(229)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanseahawktravels.in/packages-in-havelock.htm" title="Packages in Havelock">Havelock</a> <b class="alpha50 bn small">(1)</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.andamanseahawktravels.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanseahawktravels.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(223)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanseahawktravels.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.andamanseahawktravels.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Port Blair</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.andamanseahawktravels.in/tour-packages/exotic-andamans-family-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/244363/44328.jpg"  alt="Exotic Andamans Family Package " title="Exotic Andamans Family Package "  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanseahawktravels.in/tour-packages/exotic-andamans-family-package.htm" title="Exotic Andamans Family Package "><h3>Exotic Andamans Family 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> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair</p>
															<div class="mt10px small">
							<form name="pkg_23220" id="pkg_23220" method="post" action="http://www.andamanseahawktravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanseahawktravels.in/tour-packages/exotic-andamans-family-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Exotic Andamans Family 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="23220"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanseahawktravels.in/tour-packages/andaman-mega-ishland-tour6-nights7-days.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/244363/123909.jpg"  alt="Andaman Mega ishland Tour 6 Nights 7 Days" title="Andaman Mega ishland Tour 6 Nights 7 Days"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanseahawktravels.in/tour-packages/andaman-mega-ishland-tour6-nights7-days.htm" title="Andaman Mega ishland Tour 6 Nights 7 Days"><h3>Andaman Mega Ishland Tour 6 Nights 7 Days</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> : 
								6 Nights / 7 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair</p>
															<div class="mt10px small">
							<form name="pkg_67958" id="pkg_67958" method="post" action="http://www.andamanseahawktravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanseahawktravels.in/tour-packages/andaman-mega-ishland-tour6-nights7-days.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Mega ishland Tour 6 Nights 7 Days - 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="67958"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanseahawktravels.in/tour-packages/andaman-weekend-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/244363/11411.jpg"  alt="Andaman Weekend Tour" title="Andaman Weekend Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanseahawktravels.in/tour-packages/andaman-weekend-tour.htm" title="Andaman Weekend Tour"><h3>Andaman Weekend 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</p>
															<div class="mt10px small">
							<form name="pkg_10388" id="pkg_10388" method="post" action="http://www.andamanseahawktravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanseahawktravels.in/tour-packages/andaman-weekend-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Andaman Weekend 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="10388"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanseahawktravels.in/tour-packages/sampoorna-andaman-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/244363/43533.jpg"  alt="Sampoorna Andaman Tour" title="Sampoorna Andaman Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanseahawktravels.in/tour-packages/sampoorna-andaman-tour.htm" title="Sampoorna Andaman Tour"><h3>Sampoorna Andaman 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</p>
															<div class="mt10px small">
							<form name="pkg_22973" id="pkg_22973" method="post" action="http://www.andamanseahawktravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanseahawktravels.in/tour-packages/sampoorna-andaman-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Sampoorna Andaman Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="22973"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanseahawktravels.in/tour-packages/port-blair-sea-beach-tour1.htm'">
															<div class="picBg ac vam lh0"><img src="https://static.tourtravelworld.com/images/tour-package-no-image.gif"  alt="Port Blair Sea Beach Tour" title="Port Blair Sea Beach Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanseahawktravels.in/tour-packages/port-blair-sea-beach-tour1.htm" title="Port Blair Sea Beach Tour"><h3>Port Blair Sea Beach 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</p>
															<div class="mt10px small">
							<form name="pkg_10492" id="pkg_10492" method="post" action="http://www.andamanseahawktravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanseahawktravels.in/tour-packages/port-blair-sea-beach-tour1.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Port Blair Sea Beach 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="10492"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.andamanseahawktravels.in/tour-packages/baratang-island-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_9/244363/12176.jpg"  alt="Baratang Island Tour" title="Baratang Island Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.andamanseahawktravels.in/tour-packages/baratang-island-tour.htm" title="Baratang Island Tour"><h3>Baratang Island 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> : 
								9 Nights / 10 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Port Blair</p>
															<div class="mt10px small">
							<form name="pkg_10801" id="pkg_10801" method="post" action="http://www.andamanseahawktravels.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.andamanseahawktravels.in/tour-packages/baratang-island-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Baratang Island Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="10801"/>
							</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:61:"Book Admirable Andaman Tour - 4 Nights / 5 Days Tour Packages";i:2;s:120:"book admirable andaman tour - 4 nights / 5 days tour packages, beach and islands tour packages, port blair tour packages";i:3;s:184:"Book Admirable Andaman Tour - 4 Nights / 5 Days tour packages from Andaman Sea Hawk Tours & Travels - Get attractive 4 Nights / 5 Days Beach and Islands  tour packages for  Port Blair.";i:4;s:1268:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "Lunch & Dinner at Hotel, Personal expenses.
Airfares / Ship fare to mainland India.
Activity charges, Jet Ski, scuba diving etc.
Room Services, Laundry, Telephone charges, Ross island maintenance fee.
Anything which is not mentioned in "PRICE INCLUDES".
Additional usage of vehicle.
Any services not specifically mentioned in the inclusions.
Supplement(s) if any - Per Person in INR We will not be Liable for the following :
For any lost or damage your personal belongings during the tour / stay, we would request you to take care of your
personal belongings on your own.
To pay for any extra services beyond the above-mentioned inclusions (Until approved by you in writing).
We would in no way be liable for any delay / loss of Baggage, Loss of Passports, Air Tickets and Forex/INR etc. However we would provide assistance to the best of our abilities.",
		      "name": "Admirable Andaman Tour",
		      "telephone": "+91-9933200646"
		    }
		    </script>
			";i:5;N;}