a:6:{i:0;s:9285:"				<div class="h1"><h1>Andaman Island Delight Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.andamanmakemyjourney.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.andamanmakemyjourney.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Andaman Island Delight Package</p>
				<br />
				
								
						<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">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Port Blair</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamanmakemyjourney.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Island Delight Package - 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="120601"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_10/273519/195276.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/273519/195276.jpg"  width="150" height="150"    alt="Andaman Island Delight Package" title="Andaman Island Delight Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</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> Arrival in Port Blair
								</p>
								<p class="aj">Upon Arrival our representative will receive and escort you to the Hotel and stay-rest. At afternoon we visit Carbyn's cove beach about 7 kms from Port Blair. This coconut palm fringed beach, is ideal for swimming. Later proceed to the National Monument the Cellular Jail - a place of pilgrimage for all freedom loving people in the evening move the history of the heroic freedom struggle which is brought alive in a moving Light and Sound Show at the Cellular Jail, which takes you back to the British Era. Overnight stay at Port.</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> Port Blair- Ross Island
								</p>
								<p class="aj">After breakfast, you will escort to Andaman Water Sports Complex to start the voyage begins in a boat towards Ross Island - the erstwhile capital of Port Blair during the British Regimes. . This island is an ideal destination for nature walk amidst sylvan surroundings with deer's, peacocks and exotic birds. The Island presently houses the ruins of old building like Chief Commissioner's house, Government houses, Church, Bakery, Press, Swimming pool, etc. and then for an enthralling journey to North Bay Island (Coral Island) offering exotic coral and underwater marine life which can be viewed through Glass Bottom Boats, scuba Diving, under water sea walk facility (optional activity) . Overnight stay at Port Blair.</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> Port Blair- Havelock
								</p>
								<p class="aj">Early morning departure through Private Cruise to Havelock Island - It is 38 kms by sea from Port Blair, visit the famous Radhanagar Beach - Asia's N o. 7th beach rated by Times Magazine. After 2 hour journey in the Andaman sea with the flying fishes and Dolphins (you may be lucky to sight some) reach Havelock islands. Our tour executive will receive you at the jetty and take you to Radhanagar beach Experience trilogy of yourself, sun and the sea like never before. Evening cruise to Port Blair. Evening at leisure.</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> Mahatma Gandhi Marine National Park
								</p>
								<p class="aj">Mahatma Gandhi Marine National Park at Wandoor encompasses 281 sq. km that include 15 uninhabited islands and the surrounding sea. The full day tour to Jolly Bouy/Red Skin Island start from Wandoor village, with a boat ride weaving its way through some lush mangrove. Throw in the shimmering white sands and the tranquil blue waters that spread for as far as you can see, and you are in a poet's paradise. Get down in this uninhabited island and experience the best underwater life in India by snorkeling, sea bathing and basking on the sun kissed beaches. At evening you will visit Chidiyatapu- for a breathtaking view of sunset. Chidiyatapu is another heaven for the lovers of nature and water babies. Within a serene beach front, Chidiyatapu is one of the most visited haunt for the ones eager to see a mesmerizing sunset. It's one of the more secluded beaches at Port Blair, and is perfect for the ones seeking solitude. At last Visit Sagarika government emporium for some local shopping for your dear ones. Evening at leisure.</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> Depart from Port Blair - Airport
								</p>
								<p class="aj">This morning after breakfast, transfer to the airport to board your return flight back home. Arrive home with wonderful memories of your holiday</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
															</ul>
						<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.~^#^~* 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. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.andamanmakemyjourney.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Andaman Island Delight Package - 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="120601"/>
						</form>
						</div>
						
						";i:1;s:69:"Book Andaman Island Delight Package - 4 Nights / 5 Days Tour Packages";i:2;s:128:"book andaman island delight package - 4 nights / 5 days tour packages, beach and islands tour packages, port blair tour packages";i:3;s:167:"Andaman Makemy Journey offers Andaman Island Delight Package - 4 Nights / 5 Days tour package, budget Beach and Islands tour packages for Port Blair at exciting price.";i:4;s:412:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Blair"        
		                 },
		      "description": "",
		      "name": "Andaman Island Delight Package",
		      "telephone": "+91-9933268952"
		    }
		    </script>
			";i:5;N;}