a:6:{i:0;s:11356:"				<div class="h1"><h1>Orissa Golden Triangle Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.globalconnect247.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.globalconnect247.com/packages.htm" title="Packages">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, 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></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.globalconnect247.com/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="89491"/>
						</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_15/424987/155225.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/424987/155225.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.globalconnect247.com/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="89491"/>
						</form>
						</div>
						
						";i:1;s:66:"Book Orissa Golden Triangle Tour - 4 Nights / 5 Days Tour Packages";i:2;s:131:"book orissa golden triangle tour - 4 nights / 5 days tour packages, heritage tour packages, bhubaneswar, konark, puri tour packages";i:3;s:177:"Global Connect Tour & Travels offers Orissa Golden Triangle Tour - 4 Nights / 5 Days tour package, budget Heritage tour packages for Bhubaneswar, Konark, Puri at exciting price.";i:4;s:424:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bhubaneswar, Konark, Puri"        
		                 },
		      "description": "",
		      "name": "Orissa Golden Triangle Tour",
		      "telephone": "+91-9419470268"
		    }
		    </script>
			";i:5;N;}