a:6:{i:0;s:11221:"				<div class="h1"><h1>Orissa Golden Triangle Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.shreetoursandtravels.in/" title="Home">Home</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, Chillika</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price </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.shreetoursandtravels.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="120078"/>
						</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_12/356221/194558.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/356221/194558.jpg"  height="150"  width="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.shreetoursandtravels.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="120078"/>
						</form>
						</div>
						
						";i:1;s:66:"Book Orissa Golden Triangle Tour - 4 Nights / 5 Days Tour Packages";i:2;s:133:"book orissa golden triangle tour - 4 nights / 5 days tour packages, heritage tour packages, bhubaneswar, puri, chillika tour packages";i:3;s:186:"Book Orissa Golden Triangle Tour - 4 Nights / 5 Days tour packages from Shree Tours & Travels - Get attractive 4 Nights / 5 Days Heritage  tour packages for  Bhubaneswar, Puri, Chillika.";i:4;s:426:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bhubaneswar, Puri, Chillika"        
		                 },
		      "description": "",
		      "name": "Orissa Golden Triangle Tour",
		      "telephone": "+91-9871034578"
		    }
		    </script>
			";i:5;N;}