a:6:{i:0;s:10689:"				<div class="h1"><h1>Spiritual Ganges Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.indiatourandvacations.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.indiatourandvacations.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Spiritual Ganges 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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Agra, Allahabad, Mathura, Varanasi</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.indiatourandvacations.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Spiritual Ganges 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="54791"/>
						</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_13/376887/105597.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/376887/105597.jpg"  width="150" height="150"    alt="Spiritual Ganges Tour" title="Spiritual Ganges 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> Delhi Arrival
								</p>
								<p class="aj">The tour begins from Delhi, after arriving here you check in at the hotel and stay 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">The 2nd day is organized for local sightseeing; right after breakfast you leave to explore Delhi. The ancient Mughal capital has many fortifications and mosques scattered around the city. Visit to Old Delhi will open up to the colorful markets of Chandni Chowk and right behind is one of the largest and popular mosques in the country. You also visit Raj Ghat, the burial spot of Gandhi. Other attractions of the city are the Red Fort, India Gate, Parliament House, Qutub Minar, Humayun’s tomb and more. In the evening you return to the hotel to relax and later go to bed.</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 - Mathura
								</p>
								<p class="aj">Soon after your breakfast is over, you prepare to leave for Mathura. It is fairly close to Delhi and takes around 3 hours to reach. Mathura is one of the main pilgrim destinations of the devotees of Lord Krishna, as it is the birthplace of the Lord. On arrival, you check in at the hotel and leave for the Mathura city tour. It has numerous temples with its own significance; among them some are popular like the Sri Krishna Janmabhoomi temple at the site where the Lord was born. The Vishram Ghat is where the Lord rested after defeating the tyrant; another important temple is the Dwaekadeesh temple where all the devotees assemble during any festival. In the evening you return to the hotel and stay 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 4:</b> Mathura - Agra- Allahabad
								</p>
								<p class="aj">After breakfast you will be leaving for Agra which only takes around 1 and a half hour to reach. Once you are in Agra the sightseeing follows, the main attraction in Agra includes The Taj Mahal; one of the seven wonders of the world. Others are Agra Fort which is huge and breathtaking; the tomb of Itmad-Ud-Daulah is also made intricately. In the evening you get to the station to catch the Express Train for Allahabad, it is an overnight journey.</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> Allahabad - Varanasi
								</p>
								<p class="aj">In the morning, at Allahabad, you will be escorted to your hotel by the attendants. Breakfast will be served and after that you have Allahabad exploration to start with. You will visit the Sangam, it is a point where the River Ganges, River Yamuna and the mythological Saraswati merge. You then get to see the Allahabad Fort, the Ashoka pillar and some temples and Ghats. You head towards Varanasi after lunch; it takes 4 hours to reach there. On reaching Varanasi, you check in at the hotel and relax for the evening. You will stay over at 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 6:</b> Varanasi
								</p>
								<p class="aj">On waking up, you will go for a boat ride on the Ganges. This experience is very mystical and peaceful at the same time, it is exciting to see the people offering their prayers and taking a dip in the river. Later in the day you will be taken for a city trip to some important sites like the Bharat Mata Temple, Vishwanath temple, the University and more. You stay overnight at 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 7:</b> Varanasi - Delhi
								</p>
								<p class="aj">After breakfast you will leave for Sarnath, an important site for the Buddhists. It is here that the Lord Buddha delivered his sermons to his disciples. All the major attractions are mostly Buddhist temples and stupas, among them are the Dhamekha Stupa, the Archeological museum and the Chaukhandi Stupa. In the afternoon you can take some rest, and at evening you depart for Delhi by Train. It is an overnight journey.</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> Delhi
								</p>
								<p class="aj">In the morning, on reaching Delhi, you check in at the hotel. The whole day is given for you to relax in the comfort of the hotel. Later in the evening you are taken to your respective airports and stations, thus ending this long and magical journey along the Ganges.</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.indiatourandvacations.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Spiritual Ganges 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="54791"/>
						</form>
						</div>
						
						";i:1;s:60:"Book Spiritual Ganges Tour - 7 Nights / 8 Days Tour Packages";i:2;s:159:"book spiritual ganges tour - 7 nights / 8 days tour packages, religious & pilgrimage tour packages, new delhi, agra, allahabad, mathura, varanasi tour packages";i:3;s:200:"India Tour and Vacations offers Spiritual Ganges Tour - 7 Nights / 8 Days tour package, budget Religious & Pilgrimage tour packages for New Delhi, Agra, Allahabad, Mathura, Varanasi at exciting price.";i:4;s:438:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Agra, Allahabad, Mathura, Varanasi"        
		                 },
		      "description": "",
		      "name": "Spiritual Ganges Tour",
		      "telephone": "+91-9818529130"
		    }
		    </script>
			";i:5;N;}