a:6:{i:0;s:12080:"				<div class="h1"><h1>Golden Triangle Tour with Varanasi</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.gomyjourney.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.gomyjourney.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Golden Triangle Tour with Varanasi</p>
				<br />
				
									<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>
					
					<table class="w100 formTable imgWidth">
					<tr>
					
											<td class="p10px vat imgWidth150 w150px">
						<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_1/17434/3932.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/17434/3932.jpg"  width="150" height="150"    alt="Golden Triangle Tour with Varanasi" title="Golden Triangle Tour with Varanasi" /></a></p></div></li>
															</ul>
						</div>
						</td>
											
					<td class="p10px">
											<p class="mb5px"><b>Tour Code :</b> GIJ-05-12/13</p>
												<p class="mb5px"><b>Duration :</b> 
						9 Nights / 10 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> New Delhi, Jaipur, Agra, Varanasi, Fatehpur Sikri</p>
												<p><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.gomyjourney.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Golden Triangle Tour with Varanasi - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="7051"/>
						</form>
						</p>
											</td>
					</tr>
					</table>
										<br />
					
					<div class="packageTabs myTabs horizontal mc"><!--MY TABS STARTS-->
					<ul class="fo lsn m0px p0px">
					
											<li id="tab2"><a href="#data2">Itinerary</a></li>
												<li id="tab4"><a href="#data4">Tour Detail</a></li>
												<li id="tab6"><a href="#data6">Terms &amp; Conditions</a></li>
											</ul>
					
					
											<div class="ic bdr" id="data2"><!--DATA2 START-->
						<br />
						<ul class="lsn m0px p0px">
									<li>
									<p class="b mb5px">Day 1: Arrival Delhi
									</p>
									<div class="data p10px">Meet and Greet at the Airport and transfer to Hotel. Overnight stay in Delhi.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 2: Delhi Sight Seeing
									</p>
									<div class="data p10px">Morning after breakfast take full day sight seeing tour of New & Old Delhi including Qutab Minar, India Gate, Humayun Tomb and the Grand President's House, Red fort, Jama Mashjid, Mahatama Gandhi Memorial. Also visit Laxmi Narayan temple popularly known as Birla Temple. Later drive back to Hotel after fresh up evening enjoy complimentary Dinner at Indian Family Restaurant and after dinner also enjoys Light & Sound show at Red Fort. Overnight stay in Delhi.</div>					
										<p><b>Meals : </b> Breakfast, Dinner</p>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 3: Delhi - Jaipur (250Kms / 05Hrs)
									</p>
									<div class="data p10px">Morning after breakfast drive to Jaipur. On arrival check in to Hotel. Evening optional visit of Chokhi Dhani Village for Dinner. Drive back to Hotel. Overnight stay in Jaipur.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 4: Jaipur Sight Seeing
									</p>
									<div class="data p10px">Morning tour of the impressive Amber Fort with Elephant Ride situated on a ridge just outside Jaipur City. At the foot of the hill you will mount your caparisoned elephant for the slow but steady climb up to the main gate, making your entrance in the time honored fashion. The Fort, completed in the early 18th century, took over 100 years to build and now, although deserted, offers a fascinating insight into the lifestyle of the Moghul ruling families. Afternoon tour of the City - "The Pink City" is spectacularly set within surrounding rugged hills, dotted with ancient ruined fortresses. Your tour will include the imposing City Palace, still home to the Maharaja although several of the rooms are now open to the public. Many antiques and artifacts belonging to the ruling family are housed here, including a collection of weaponry. You will also visit the Hawa Mahal "Palace of the Winds", and the open-air Jantar Mantar Observatory to see the vast astronomical, instruments. Also visit Albert hall, Enjoy a stroll through the colorful bazaar before returning to your hotel. Night stay in Jaipur.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 5: Jaipur - Agra (250kms / 05Hrs)
									</p>
									<div class="data p10px">Morning after breakfast drive to Agra enroute visit Fatehpur Sikri - the deserted, red sandstone city that was built by Emperor Akbar as his capital and palace in the 16th century. Also visit the Bulund Darwaza the largest gateway in the world. Thereafter continue drive to Agra. Arrive Jaipur and transfer to Hotel. Evening at leisure. Night stay in Agra.</div>					
										<p><b>Meals : </b> Breakfast</p>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 6: Agra - Varanasi (Overnight Train)
									</p>
									<div class="data p10px">Morning after breakfast visit the magnificent Taj Mahal - one of the seven wonders of the world surely the most extravagant expression of love ever created. 20,000 men laboured for over 17 years to build this memorial to Shah Jahan's beloved wife. Also visit the Agra fort - the rusty and majestic red-sandstone fort of Agra stands on the banks of the river Yamuna and the construction was started by Emperor Akbar in 1566. At the Diwan-I-Am (hall of public audience), a colonnaded hall of red-sandstone with a throne alcove of inlaid marble at the back, the Emperor heard public petitions. At the Diwan-I-Khas (hall of private audience) where marble pavilions with floral inlays lend an ethereal ambience, the Emperor sat on his gem-studded Peacock Throne and met foreign ambassadors and rulers of friendly kingdoms. Also visit the Tomb of Itmad-ud-Daullah built by Empress Noorjehan in memory of her father. Evening transfer to Agra Cant Railway Station to catch the train for Varanasi. Overnight at Train.</div>					
										<p><b>Meals : </b> Breakfast</p>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 7: Arrival Varanasi
									</p>
									<div class="data p10px">Arrival from Varanasi Railway Station and transfer to Hotel. Check in to Hotel after relax. In the afternoon take a half day tour of Varanasi including the Kashi Vishwanath Temple, Gyanvapi Mosque, Benaras Hindu University and other important monuments. In the evening witness aarti at the Ghat. Stay overnight at Varanasi.<br />
<br />
(Varanasi is the world's most ancient living city. Sunrise on the riverfront, as seen from a boat, can be spiritually uplifting sight. Crowded with temples, and its labyrinth of streets, the city attracts the maximum number of tourists. The religious capital of Hinduism, Varanasi is the carpet manufacturing place of India. It was previously known as Kashi - the city that illuminates. The present name is derived from the fact that the city is at the confluence of the rivers varuna and ASI).</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 8: Varanasi
									</p>
									<div class="data p10px">Very early morning drive to Daswamedh Ghat and take a boat ride on the sacred river Ganges to see the cremation Ghats and witness the living traditions of one of the world's oldest and most important religions. (To start at 0500 hrs. for the best lifetime experience) For you to appreciate this remarkable city, we'll transfer you to the banks of the River Ganges before the sun rises. Board a boat with your guide and proceed to the middle of the river, where at sunrise the sight unfolds before you. Thousands of faithful come daily to the banks to bathe and pray while in the background, temples and palaces rise in tiers from the water's edge. Return for a walk through the cobblestone streets along the banks of "Ganga". As shops are opening, the place now becomes a beehive of activity as the faithful are coming and going. Return to hotel for a sumptuous breakfast and rest of the day free. Later in the day visit Sarnath - 5 miles out of Varanasi for a day excursion: One of the holiest Buddhist sites in the world, where Buddha preached his first Sermon in 590 BC. Witness the ruins of a once flourishing Buddhist monastery and then visit a fine Museum which houses an excellent collection of Buddhist art and sculptures found at the site. overnight stay at Varanasi Hotel.</div>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 9: Varanasi - Delhi (By Flight)
									</p>
									<div class="data p10px">Morning after breakfast drive to Varanasi Airport to catch the flight for Delhi.</div>					
										<p><b>Meals : </b> Breakfast</p>					
									</li>
									<br />
									<li>
									<p class="b mb5px">Day 10: Delhi Departure
									</p>
									<div class="data p10px">Morning after breakfast departure transfer to your onward destinations.</div>					
										<p><b>Meals : </b> Breakfast</p>					
									</li>
									<br />					
							</ul>						<!--DATA2 EMD--></div>
											
						<div class="ic bdr" id="data4"><!--DATA4 START-->
						<br />
						Any Air / Train fare<br />
Meals other than specified<br />
Monuments Entrance fees / Camera fees<br />
Soft drinks / hard drinks / starters<br />
Medical and insurance of any kind<br />
Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities<br />
Expenses of personal nature like laundry bills / telephone bills etc<br />
Any Tips31-1001-11							<p class="b mb5px dif">Inclusions :</p>
							<ul>
																	<li>Hotel</li>
																				<li>Transport</li>
																				<li>Transfers</li>
																	</ul>
							<br />
														<p class="b mb5px dif">Exclusions :</p> <ul><li>Any Air / Train fare</li><li>
Meals other than specified</li><li>
Monuments Entrance fees / Camera fees</li><li>
Soft drinks / hard drinks / starters</li><li>
Medical and insurance of any kind</li><li>
Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities</li><li>
Expenses of personal nature like laundry bills / telephone bills etc</li><li>
Any Tips</li></ul><br />
													<!--DATA4 EMD--></div>
												<div class="ic bdr" id="data6"><!--DATA6 START-->
						<br />
						* 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. ~^#^~						<!--DATA6 EMD--></div>
											
					<!--MY TABS END--></div>
					";i:1;s:74:"Book Golden Triangle Tour with Varanasi - 9 Nights / 10 Days Tour Packages";i:2;s:163:"book golden triangle tour with varanasi - 9 nights / 10 days tour packages, heritage tour packages, new delhi, jaipur, agra, varanasi, fatehpur sikri tour packages";i:3;s:217:"Book Golden Triangle Tour with Varanasi - 9 Nights / 10 Days tour packages from Go My Journey Pvt Ltd - Get attractive 9 Nights / 10 Days Heritage  tour packages for  New Delhi, Jaipur, Agra, Varanasi, Fatehpur Sikri.";i:4;s:843:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Agra, Varanasi, Fatehpur Sikri"        
		                 },
		      "description": "Any Air / Train fare
Meals other than specified
Monuments Entrance fees / Camera fees
Soft drinks / hard drinks / starters
Medical and insurance of any kind
Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities
Expenses of personal nature like laundry bills / telephone bills etc
Any Tips31-1001-11",
		      "name": "Golden Triangle Tour with Varanasi",
		      "telephone": "+91-9711877344"
		    }
		    </script>
			";i:5;N;}