a:6:{i:0;s:5465:"				<div class="h1"><h1>Sundarbans Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sriganpatitoursandholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sriganpatitoursandholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Sundarbans Tour</p>
				<br />
				
									<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>
					
					<table class="w100 formTable imgWidth">
					<tr>
					
											<td class="p10px vat imgWidth150 w150px">
						<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_2/30889/168564.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/30889/168564.jpg"  width="150" height="150"    alt="Sundarbans Tour" title="Sundarbans Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Duration :</b> 
						2 Nights / 3 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Kolkata</p>
												<p><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
											</td>
					</tr>
					</table>
										<br />
					
					<div class="packageTabs myTabs horizontal mc"><!--MY TABS STARTS-->
					<ul class="fo lsn m0px p0px">
					
											<li id="tab2"><a href="#data2">Itinerary</a></li>
												<li id="tab4"><a href="#data4">Tour Detail</a></li>
												<li id="tab6"><a href="#data6">Terms &amp; Conditions</a></li>
											</ul>
					
					
											<div class="ic bdr" id="data2"><!--DATA2 START-->
						<br />
						<ul class="lsn m0px p0px">
									<li>
									<p class="b mb5px">Day 1: Sundarbans National Park
									</p>
									<div class="data p10px">You are expected in Kolkata in the morning of the first day. Once you arrive, you are taken to the jetty at Sonakhali. The ride that last for two and a half hours takes you across the rural landscape of Bengal consisting of villages and colorful markets. Soon you will be boarding the lovely river launch of MB Sundari, you sail down several rivers like the Hogol, Gomor, Gumdi and more.while you relax and enjoy the ride sipping your cup of tea, the resident guide explains you the mysteries of the Sundarbans.<br />
<br />
You get to witness many exotic birds and plants, there are varieties of them in this area. In some hours, you reach the Sundarbans Jungle Camp on the Bali island. Lunch is served soon after your arrival, you are to stay at cottages which are well maintained. Post lunch, you move down to Sajnekhali  where you visit the Mangrove Interpretation Center and on the way back stop by the Sudhyanakhal watchtower. Dinner awaits you on your arrival at the resort.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Sundarbans National Park
									</p>
									<div class="data p10px">After breakfast, you spend the whole day cruising. You proceed to the canopied walk at Dobanki and further to Netidhopani, here you can see the ancient excavations and watch a game from the height of the watchtower. You can spot some animals from there, mostly the tigers as they are in abundance here.<br />
<br />
There is a great possibility to witness the Estuarine Crocodiles and the Dolphins of Irrawady. Lunch is served on board and late in the evening you return to the resort after watch the beautiful view of the setting sun. Then the local villagers are ready with their performance based on the old popular Myth. Your day ends with your retiring for the day.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Sundarbans National Park - Kolkata
									</p>
									<div class="data p10px">Today you visit the village of Bali island, you come close to the lifestyle of the locals just observing their everyday activities of fishing, weaving, boat making and more. For the completion of the Sundaebans experience, you move around the narrow canals for the last time. Soon after lunch, your trip ends as you will be transferred to Kolkata.</div>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
													<p class="b mb5px dif">Inclusions :</p>
							<ul>
														</ul>
							<br />
													<!--DATA4 EMD--></div>
												<div class="ic bdr" id="data6"><!--DATA6 START-->
						<br />
						* 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. ~^#^~						<!--DATA6 EMD--></div>
											
					<!--MY TABS END--></div>
					";i:1;s:54:"Book Sundarbans Tour - 2 Nights / 3 Days Tour Packages";i:2;s:112:"book sundarbans tour - 2 nights / 3 days tour packages, wildlife and nature tour packages, kolkata tour packages";i:3;s:158:"Sri Ganapati Tours & Holidays offers Sundarbans Tour - 2 Nights / 3 Days tour package, budget Wildlife and Nature tour packages for Kolkata at exciting price.";i:4;s:394:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kolkata"        
		                 },
		      "description": "",
		      "name": "Sundarbans Tour",
		      "telephone": "+91-8974893345"
		    }
		    </script>
			";i:5;N;}