a:6:{i:0;s:11276:"				<div class="h1"><h1>Orissa Golden Triangle Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.mytravoholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.mytravoholidays.com/tour-packages.htm" title="Tour Packages">Tour 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.mytravoholidays.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="94445"/>
						</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_10/286827/161111.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/286827/161111.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 starts with your arrival at Bhubaneswar airport. A tour representative shall escort you to the hotel. Check-in and freshen up. Afternoon is spent enjoying sightseeing.<br />
<br />
The tour starts with Khandagiri Udaygiri caves. These caves are the earliest group of Jain rock cut shelters. The caves hold importance for its history, rock-cut architecture, art and religion. Once the dwelling retreats or cells of the Jain ascetics, here visitors can feel the wisdom of the learned.<br />
<br />
The next sight you visit is The Lingaraj temple. The thousand year old spectacular specimen of Hindu architecture is awe-inspiring. It is one of the most revered places to visit. Pay respect to the Linga form of Lord Shiva. The Kedar Gouri temple and Sai Baba temple is a short way from the temple complex. The unique architecture, the peacefulness lingering in air spellbinds all visitors. Take the blessings of the divine.<br />
<br />
Evening is free for leisure. Explore the intriguing markets of Bhubaneswar where you can strike some wonderful bargains or relish some delicacies of the city. Check out the cultural dance and music programs. The city is a quick insight into the unique diversity of the Orissa. Return to hotel for overnight stay.</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">Start your day with a hearty breakfast. After your meal check-out of the hotel and proceed to Konark. The mystical city hosts the UNESCO world heritage site of the Konark Sun Temple. The 13th century temple is an intriguing sight. The colossal chariot shaped temple is a marvel of architecture. Dedicated to the Sun God, the ruined temple is a treasure. The exquisite carvings and skills of artisans still shines through.Get lost in the intrinsic charm still lingering in the ambiance.<br />
<br />
Next you visit the Chandrabhaga beach. The beautiful expanse of silvery soft sands lapped by the azure waters of the Bay of Bengal. The beach is mentioned in many mythological tales. Spend time enjoying the natural beauty.<br />
<br />
Afterwards, proceed to Puri. Check-in the hotel. Freshen up as you are scheduled to visit Puri Jagannath temple and Gundicha temple. The Puri Jagannath temple is one of the holy places in Hindu faith. Mentioned as one of the divine Char dhams, the temple is dedicated to the "Lord of the Universe' Jagannath. Pay your respects 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 festival. Get blessed by the divine powers. Evening is kept free.<br />
<br />
Relax at the Golden sand beach of Puri. The views of sunset are breathtaking. Enjoy long walks on the soft sands. Check out the beach eateries where delicacies of the fresh catch can be tasted. Check out tribal handicrafts and other specialties. Shop for some delights. Return to hotel for overnight stay 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 early. Enjoy a sumptuous breakfast in the hotel. Depart for Satpara, Chillika.Asia's largest brackish water lagoon, Chilika is recognized as one of the most important wetlands in the world. It is known for the spotting of beautifulIrwadi Dolphins.The lake is also home to a phenomenal variety of birds. Spectacular display of colorful avian charms in a thousand different hues presented by over 160 species awaits here. Spend the day exploring the pleasures of the wetland.<br />
<br />
After a well-spent day in the natural beauty, return to Puri in the evening. Overnight stay 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">Start you day with a leisurely breakfast in the hotel. After meal, check out from hotel and drive to Bhubaneswar. En-route stop at Pipili. The small city is famous for designing beautiful Applique handicrafts. It is a town of artisans famous for their colorful fabrics. Stop and shop for these wonderful garbs.<br />
<br />
Next stop is Dhauli. This city is associated with great legends of Emperor Ashoka. Located on the banks of river Daya. It is said the bloodbath war of Kalinga had turned the river red. The gruesome destruction had converted the heart of the emperor and made him a propagator of peace. The city has a Peace pagoda, Edicts of Ashoka's messages and ancient temples. Spend time exploring.<br />
<br />
Upon arrival check-in to the hotel and relax. In the afternoon proceed for sightseeing of Nandakanan, Ram Mandir and Rajarani temple etc. Nandankanan hosts a wonderful zoo inhabiting some of the wild species of the region. Carved out of the Chandaka forest, animals here are kept in their natural habitat. Come close to white Royal Bengal tigers, Gharials and other species. The flora species of the region are also unrivalled. Next visit the divine temples.<br />
<br />
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">After a delicious breakfast, check-out of the hotel and drive to Bhubaneswar airport/railway station. Return home with fond remembrances 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.mytravoholidays.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="94445"/>
						</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:171:"My Travo Tours Solution 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-9717748667"
		    }
		    </script>
			";i:5;N;}