a:6:{i:0;s:11357:"				<div class="h1"><h1>Orissa Golden Triangle Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.ummytravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.ummytravels.co.in/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Orissa Golden Triangle 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, 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></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.ummytravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Orissa Golden Triangle 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="97925"/>
						</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_11/302421/165703.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_11/302421/165703.jpg"  width="150" height="150"    alt="Orissa Golden Triangle Tour" title="Orissa Golden Triangle Tour" /></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 – Bhubaneswar
								</p>
								<p class="aj">The Orissa Golden Triangle tour begins with your arrival at Bhubaneswar airport. A tour guide shall escort you to the hotel. Check-in and freshen up. Midday is spent enjoying seeing the sights around.

The jaunt starts with Khandagiri Udaygiri caves. These caves are the earliest faction of Jain rock cut shelters. The caves hold significance for its history, rock-cut architecture, art and faith. Once the dwelling abode or cells of the Jain ascetics, here tourists can sense the wisdom of the learned.

The next destination you visit is The Shrine of Lingaraj. The thousand-year old remarkable specimen of Hindu architecture is awe-inspiring. It is one of the well-regarded places to visit. Pay obeisance to the Linga form of Lord Shiva. The Kedar Gouri temple and Sai Baba temple are a short way from the temple complex. The inimitable architecture, the serenity lingering in air spellbinds all visitors. Acquire the blessings of the divine.

Sundown is at your leisure. Explore the local but astir markets of Bhubaneswar, where you can strike some wonderful bargains or savor some delicacies of the city. Check out the cultural dance and music programs. The urban is a quick insight into the unique assortment of Orissa. Return to the guesthouse to retire for the night.</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 – Konark – Puri
								</p>
								<p class="aj">Kick start your day with a delicious breakfast. Shortly after finishing your meal, check-out of the hotel and proceed to Konark. The spiritual city hosts the UNESCO world heritage site of the Konark Sun Temple. The 13th-century shrine is a fascinating sight. The colossal chariot-shaped temple is a phenomenon of architecture. Dedicated to the Sun God, the ruined temple is a treasure. The quintessential carvings and skills of artisans still shimmer through it. Get awe-struck the intrinsic charm still lingering in the ambiance.

Next, you visit the Chandrabhaga shoreline, the mesmerizing expanse of silvery spongy sands. It is lapped by the azure waters of the Bay of Bengal. The beach is glorified in many mythological fables. Spend time enjoying the charm of nature.

Afterwards, ensue to Puri. Check-in the guesthouse. Refresh and get ready as you are set to visit Puri Jagannath temple and Gundicha temple. The Puri Jagannath temple is one of the sacred places in Hindu faith. Cited as one of the divine Char Dhams, the shrine is dedicated to the “Lord of the Universe” Jagannath. Pay obeisance and move to the Gundecha temple. This temple is a vital site as the Rath Yatra Festival takes the Gods and Goddess of Jagannath temple during the fiesta. Get blessed by the divine powers. Evening is at leisure.

Loosen up yourself at the Golden sand beach of Puri. The sight of sunset is tantalizing. Enjoy long walks on the squishy sands and shoreline. Check out the beach eateries where delicacies of the fresh catch can be savored. Check out tribal handiwork and other specialties. Purchase some delights. Return to hotel and sleep overnight at Puri.</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> Puri – Chillika – Puri
								</p>
								<p class="aj">Start your day with the first ray of sun. Relish a sumptuous supper in the guesthouse. Depart for Satpara, Chillika. Asia's largest brackish water lagoon, Chilika is renowned as one of the vital wetlands in the world. It is known for the sighting beautiful Irwadi Dolphins. The lake also houses an unparalleled variety of birds. Beautiful display of multi-hued avian charms in a thousand different hues presented by over 160 species awaits here. Spend the day exploring the delights of the wetland.

After a well-spent day amid scenery, return to Puri during sundown. Retire for the night in the 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> Puri – Pipili – Dhauli – Bhubaneswar
								</p>
								<p class="aj">Kick start the day with a delicious breakfast in the guesthouse. Shortly after meal, check out from hotel and drive to Bhubaneswar. En-route Puri, take a halt at Pipili. The small city is renowned for designing alluring Applique handicrafts. It is a town of artisans well-known for their multi-hued fabrics. Stop and shop for these intriguing garbs.

Next stopover is Dhauli. This city is linked with great fables of Emperor Ashoka. Resting on the banks of river Daya, it is said the bloodbath warfare of Kalinga had turned the river red. The horrific annihilation had converted the heart of the royal leader and made to proliferate peace. The city has a Peace pagoda, Edicts of Ashoka's messages and ancient temples. Spend time exploring.

Unwind yourself upon arrival check-in to the guesthouse. In the noontime proceed for sightseeing of Nandakanan, Ram Mandir and Rajarani temple etc. Nandankanan has an astonishing zoo inhabiting some of the wild genus of the region. Created out of the Chandaka forest, animals here are kept in their natural habitat. Closely observe white Royal Bengal tigers, Gharials and other species. The flora species of the expanse are also unparalleled. Next visit the divine shrines.

Recover from the incredible experience during the overnight stay at Bhubaneswar.</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> Bhubaneswar – Departure
								</p>
								<p class="aj">Shortly after savoring a delicious morning supper, check-out of the hotel and drive to Bhubaneswar airport/railway station. Return home with fond memories of Orissa.</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>Sightseeing</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.ummytravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Orissa Golden Triangle 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="97925"/>
						</form>
						</div>
						
						";i:1;s:66:"Book Orissa Golden Triangle Tour - 4 Nights / 5 Days Tour Packages";i:2;s:123:"book orissa golden triangle tour - 4 nights / 5 days tour packages, heritage tour packages, bhubaneswar, puri tour packages";i:3;s:152:"Ummy Travels offers Orissa Golden Triangle Tour - 4 Nights / 5 Days tour package, budget Heritage tour packages for Bhubaneswar, Puri at exciting price.";i:4;s:416:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bhubaneswar, Puri"        
		                 },
		      "description": "",
		      "name": "Orissa Golden Triangle Tour",
		      "telephone": "+91-7080444555"
		    }
		    </script>
			";i:5;N;}