a:6:{i:0;s:10961:"				<div class="h1"><h1>Holy And Authentic Odisha - 4 Nights / 5 Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.natureviewtours.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.natureviewtours.co.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Holy And Authentic Odisha - 4 Nights / 5 Days Tour</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">Bhubaneswar, Konark, Puri</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 class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Few hours Water boat at Mangalazodi<br />
Bird Guide<br />
One Tour escort for Group Booking<br />
Experienced Boatman to take you inside the Mangalozodi</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.natureviewtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Holy And Authentic Odisha - 4 Nights / 5 Days 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="121843"/>
						</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_17/495762/196863.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/495762/196863.jpg"  width="150" height="150"    alt="Holy And Authentic Odisha - 4 Nights / 5 Days Tour" title="Holy And Authentic Odisha - 4 Nights / 5 Days Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Few hours Water boat at Mangalazodi<br />
Bird Guide<br />
One Tour escort for Group Booking<br />
Experienced Boatman to take you inside the MangalozodiAny personal expenses which is not mention in itinerary will carry additional cost <br />
Vedio camera & camera fee.<br />
Gotipua Dance at Raghurajpur will attract additional cost.<br />
Personal services in hotel like Body Massage, Ayurveda Therapy etc <br />
Any Flight/ Train tickets<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> Bhubaneswar
								</p>
								<p class="aj">Arrival at Bhubaneswar airport, meet & Greet, transfer to hotel. Second half visit Tribal Museum, Khandagiri & Udayagiri Caves.  Overnight at Bhubaneswar. ( Total  50 Kms)</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> Bhubaneswar – Mangalazodi Bird – Bhubaneswar temple Sightseeing
								</p>
								<p class="aj">After breakfast proceed for Mangalajodi Wet land, The villagers of Mangalajodi will welcome you into their village; on the banks of the Chilika Lake, hosts more than 800000 birds which jostle in its marshy water, especially in winters. Two hours boat safari  on wetland is a lifetime experience for the visitors,  where local & migratory birds can be seen in few meters only. Visitors will be accommodated by village bird guide; they have immense knowledge of this ecology. Once upon a time these villagers were poachers but now they become the protectors  of bird. It’s a beautiful journey of life, visit Mangalazodi to get complete picture with fast hand experience of Sustainable ecology & human connections.<br />
<br />
Afternoon back to Bhubaneswar, have lunch & visit Architectural marvels of Bhubaneswar Temple: Lingaraja, Parsurameswara, Mukteswar and Raja-Rani temple, second half visit Nandankanan zoological Park.  Overnight at Bhubaneswar. (Total 150Kms)</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> Bhubaneswar - Pipili – Konark Sun Temple- Puri
								</p>
								<p class="aj">After breakfast drive to Puri, enroute visit Dhauli (Buddhist Santi Stupa), Pipili (Appliqué work village) local market & Konark Sun Temple, have lunch Konark and then visit Chandrabhaga Sea Beach.<br />
Overnight at Puri. ( Total 140 Kms)</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> Puri – Chilika Lake- Sea beach – Raghurajpur Heritage Village - Puri
								</p>
								<p class="aj">Morning Darshan Lord Jangannath and after breakfast move to Chilika Lake, Asia’s largest estuarine water lagoon covers an area of 1100 sq Km with combination of salt and fresh water. The lake is separated from the Bay of Bengal by a narrow sandy ridge, called Ramsar Wetland. For it biodiversity, this lake attracts millions migratory bird in winter. It also home to a diverse range of aquatic life, including 225 species of fish and the playful Irrawaddy Dolphin. Boating to Mouth Of Chilika Lake: the point where see meets the lake.<br />
<br />
 After lunch, visit Raghuraj pur Heritage Village <br />
<br />
Then visit Raghurajpur (Painting village), the main village has two streets with over 120 houses, most decorated with mural paintings, where the painters reside and practice their Pattachitra craft, besides many others that practices throughout the village, including traditional masks, stone idols, paper Mache, sculptures, and wooden toys.<br />
<br />
And also you can witness Gotipua dance, is a traditional dance form in the state of Odisha, India, and the precursor of Odissi classical dance. It has been performed in Odisha for centuries by young boys, who dress as young women to praise Jagannath and Krishna. The dance is executed by a group of boys who perform acrobatic figures inspired by the life of Radha and Krishna. And this performance is a life time experience for visitors. <br />
<br />
Evening at Puri Sea Beach, fishing village and explore the Traditional local market in Puri. Overnight at Puri. (Total 160 Kms)</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> Puri–Bhubaneswar
								</p>
								<p class="aj">After breakfast transfer to Bhubaneswar airport for onwards journey</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>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Entry Tickets</li>
																		<li>Stay Included</li>
																		<li>Veg & Non Veg Meals</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any personal expenses which is not mention in itinerary will carry additional cost </li><li>
Vedio camera & camera fee.</li><li>
Gotipua Dance at Raghurajpur will attract additional cost.</li><li>
Personal services in hotel like Body Massage, Ayurveda Therapy etc </li><li>
Any Flight/ Train tickets</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.natureviewtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Holy And Authentic Odisha - 4 Nights / 5 Days 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="121843"/>
						</form>
						</div>
						
						";i:1;s:89:"Book Holy And Authentic Odisha - 4 Nights / 5 Days Tour - 4 Nights / 5 Days Tour Packages";i:2;s:154:"book holy and authentic odisha - 4 nights / 5 days tour - 4 nights / 5 days tour packages, heritage tour packages, bhubaneswar, konark, puri tour packages";i:3;s:197:"Nature View Tours & Travel offers Holy And Authentic Odisha - 4 Nights / 5 Days Tour - 4 Nights / 5 Days tour package, budget Heritage tour packages for Bhubaneswar, Konark, Puri at exciting price.";i:4;s:852:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bhubaneswar, Konark, Puri"        
		                 },
		      "description": "Few hours Water boat at Mangalazodi
Bird Guide
One Tour escort for Group Booking
Experienced Boatman to take you inside the MangalozodiAny personal expenses which is not mention in itinerary will carry additional cost 
Vedio camera & camera fee.
Gotipua Dance at Raghurajpur will attract additional cost.
Personal services in hotel like Body Massage, Ayurveda Therapy etc 
Any Flight/ Train tickets",
		      "name": "Holy And Authentic Odisha - 4 Nights / 5 Days Tour",
		      "telephone": "+91-9324904946"
		    }
		    </script>
			";i:5;N;}