a:6:{i:0;s:14209:"				<div class="h1"><h1>Taj Mahal Tour with Ganges</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.journeyasia.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.journeyasia.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Taj Mahal Tour with Ganges</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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Jaipur, Agra, Jhansi, Varanasi, Khajuraho, Tikamgarh</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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Taj Mahal Tour with Ganges - 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="106103"/>
						</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_1/7828/176245.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_1/7828/176245.jpg"  width="150" height="150"    alt="Taj Mahal Tour with Ganges" title="Taj Mahal Tour with Ganges" /></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> Arrive Delhi 
								</p>
								<p class="aj">Assistance and transfer to the hotel. Check-in time is 12 Noon. Overnight.</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> Delhi 
								</p>
								<p class="aj">This morning you will be taken to visit Old Delhi - Former centre of Moghul Power, Old Delhi offers ancient monuments, narrow streets and bustling bazaars. Drive past the Red Fort, built in 1648 and board the 'rickshaw ride' for a unique experience from the Red Fort, through "Chandni Chowk" or Silver Street, experiencing the sights and sounds of this very busy avenue heading west from the Fort. Later visit the Jama Masjid, the greatest mosque in India and completed in 1658 by Shah Jahan who also built the Taj Mahal, and the Raj Ghat, the simple memorial to Mahatma Gandhi. This afternoon you will be taken to visit New Delhi - drive past the stately government buildings of the British Era designed by Lutyens, including the India Gate & the Presidential Palace. Continue onto the beautiful Humayuns tomb of the Mughal era & predecessor of the world famous Taj Mahal. End the tour at the towering minaret of Qutab Minar. Overnight at 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 3:</b> Delhi - Jaipur 
								</p>
								<p class="aj">Morning drive to Jaipur and on arrival, check-in at the hotel. Rest of the day at leisure. Overnight at the hotel. Morning excursion to Amber Fort, set in a picturesque location. Amer is a fascinating blend of Hindu and Muslim architecture. Built in the 16th centuary by Raja Mansingh in red sandstone and white marble, the palace complex has some very interesting apartments. Jai Mandir, Sheesh Mahal, Sukh Niwas, Ganesh Pol and Temple of Kali are some of the prominent areas of interest. Elephants are provided to ascend the fort to visit the complex.<br />
Afternoon city sightseeing tour Jaipur, this city was built by Maharaja Jai Singh, the notable astronomer 260 years ago. Visit the Maharaja's City Palace, the home of the erstwhile royal family, the Observatory, Ram Niwas Gardens, Hawa Mahal or the Palace of winds built in 1799 by Maharaja Sawai Pratap Singh and drive past the old part of Jaipur city</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> Jaipur - Agra drive, 235 km/6 hours 
								</p>
								<p class="aj">Drive to Agra visiting enroute Fatehpur Sikri. Fatehpur Sikri, the birth story of this beautiful city is interesting. There, in a grotto in Sikri, lived a Muslim Saint , Sheikh Salim Chishti by name. Akbar hearing of his renown, asked of the blessings of a son, and when a son was born, not only was the child named Salim, the  site for a mighty and ambitious project - a city - was chosen near the residence of the saint erected in k1569. The shortage of water lead to the desertion of this city. Visit the mosque of Salim Chishti, Panch Mahal and other Palaces. On arrival, check-in at the hotel for overnight.</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> Agra 
								</p>
								<p class="aj">Agra, the home of the immortal Taj Mahal, the inimitable poem in white marble is the first expression of love of an Emperor Shahjehan for his queen Mumtaz Mahal. This great monument was completed in 1653 AD. Agra Fort, the imposing structure on the banks of the river Yamuna is replete with priceless examples of craftsmanship in the Mughal period, including the beautiful pearl Mosque, it was designed and built by Emperor Akbar in 1565 AD. Tomb of Itimadd-ud-Daulah built between 1622 AD by Empress Nur Jehan, in memory of her father, Ghias-id-Din Beg., it is considered a precursor of the Taj Mahal. Afternoon at leisure.</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 6:</b> Agra - Jhansi - Orcha 
								</p>
								<p class="aj">Transfer to railway station for train to Jhansi (0800-1040 hours) Assistance on arrival and transfer by coach to Khajuraho(30 minutes) Orcha had the distinction of being the capital of one of the largest and most powerful kingdoms of central India. Situated on the river Betwa, the medieval city was founded in the 16th century by the Bundela Chieftain Rudra pratap.The succeeding rulers built some of the finest examples of Bundela architecture which can be seen at Orcha today, such as Jehangir Mahal, Raj Mahal, Raj Praveen Mahal, Ram Raj Temple, Chaturbhuj Temple, Sunder Mahal.</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 7:</b> Orcha - Khajuraho, 175 km/4 hours 
								</p>
								<p class="aj">Drive to Khajurhao and on arrival, check-in at the hotel. Afternoon visit of Khajuraho temples Khajuraho, once the great capital of Chandela, now a quiet town, Khajuraho temples here were built during the Chandela period from 950 to 1050 AD. Almost intriguing as the sheet beauty and the size of the temples is the question of why and how they were built here as Khajuraho is isolated, 1000 years ago as it is even today. The temples are superb examples of Indo-Aryan architecture and depict images of gods and goddesses, warriors and musicians, real and mythological animals and in great detail - women and sex. In between are the mithuna, eroti figures running through a whole Kamasutra of positions and possibilities. Of the two groups of temples - Western and Eastern - important temples to visit are - Lakshmi and Varaha, Lakshmana, Kandariya Mahadev, Devi Jagdamba, Chitradurga, Parvati, Vishvanath Temple and Nandi, Chausath Yogini, Parsanavanth and Adinath</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 8:</b> Khajuraho -Varanasi flight 
								</p>
								<p class="aj">Transfer to airport for flight to Varanasi On arrival, transfer to the hotel. Rest of the day free</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 9:</b> Varanasi
								</p>
								<p class="aj">Early morning boat cruise on river Ganges. Thousands of pilgrims throng the water's edge, bathing, worshipping, meditating. On stone platforms under palm leaf umbrellas, the Pandas-Brahmin priests preside over rites and rituals. The boat trip will cover various ghats including the cremation sites. Because every pious Hindu believes that to die in Kashi (Varanasi)and to be cremated on the banks of the Ganges is to attain release from the cycle of birth and death.<br />
Afternoon city sightseeing tour. Varanasi, one of the oldest living cities in the world, believed to be founded 3000 years ago, is one of the 7 holiest cities of Hindus. It was a flourishing trading centre 500 BC when the Buddha came to Sarnath to preach his first sermon. A city of great wealth and religious importance when the Chinese traveller, Hiuen Tsang, visited it in the 7th century. Visit the Vishwanath Golden Temple, the abode of great God Shiva, Bharat Mata Temple, Durga Temple, Tulsi Manas Mandir and Banaras Hindu University.</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 10:</b> Varanasi - Delhi flight 
								</p>
								<p class="aj">Morning visit Sarnath. Sarnath, 7 km from the city where Buddha preached his first sermon more than 2500 years ago. The site is marked by the massive Dhamek stupa which is believed to date back to 500 AD. Nearby is a Museum where rare collection of manuscripts and other items related with Lord Buddha can be seen. Afternoon transfer to airport for flight to Delhi Assistance on arrival and transfer to international airport for return flight.</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.journeyasia.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Taj Mahal Tour with Ganges - 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="106103"/>
						</form>
						</div>
						
						";i:1;s:68:"Book Taj Mahal Tour with Ganges - 9 Nights / 10 Days Tour Packages";i:2;s:171:"book taj mahal tour with ganges - 9 nights / 10 days tour packages, heritage tour packages, new delhi, jaipur, agra, jhansi, varanasi, khajuraho, tikamgarh tour packages";i:3;s:200:"Journey Asia offers Taj Mahal Tour with Ganges - 9 Nights / 10 Days tour package, budget Heritage tour packages for New Delhi, Jaipur, Agra, Jhansi, Varanasi, Khajuraho, Tikamgarh at exciting price.";i:4;s:463:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Agra, Jhansi, Varanasi, Khajuraho, Tikamgarh"        
		                 },
		      "description": "",
		      "name": "Taj Mahal Tour with Ganges",
		      "telephone": "+91-9910078863"
		    }
		    </script>
			";i:5;N;}