a:6:{i:0;s:13574:"				<div class="h1"><h1>The Buddha Trail Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.grandindiatrip.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.grandindiatrip.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>The Buddha Trail 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">
						10 Nights / 11 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Agra, Lucknow, Varanasi, Bodhgaya, Patna, Rajgir, Vaishali, Kushinagar, Lumbini, Sarvasti</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.grandindiatrip.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Buddha Trail 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="69386"/>
						</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_9/257644/126023.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_9/257644/126023.jpg"  width="150" height="150"    alt="The Buddha Trail Tour" title="The Buddha Trail 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> Arrive Delhi
								</p>
								<p class="aj">Arrive in Delhi, by late evening. Upon arrival meet our representative who'll escort you to one of our listed hotels. Spend night 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 2:</b> Delhi - Agra
								</p>
								<p class="aj">Morning starts with the city sightseeing tour to New and Old Delhi including major attractions like Jama Masjid, India Gate, Parliament House, Humayun Tomb, Red Fort, Gandhi memorial, and Qutab Minar. After the city tour of Delhi, drive to Agra. Stop midway to visit Sikandra. The Sikandra city is frequented by tourists to visit the popular tomb of Akbar. After the visit, start over for Agra again. Upon reaching Agra, get accommodated at one of our listed hotels for a lavish dinner and a comfortable 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 3:</b> Agra-Varanasi
								</p>
								<p class="aj">Next morning after breakfast, embark on an excursion to sightseeing tour of Agra. The major tourist attractions of Agra include Agra Fort, Tomb of Itmad-ud- Daulah. Mehtab Bagh, Ram Bagh, Chini Ka Rauza and Guru Ka Tal. After Lunch move out to visit the Taj Mahal, the epitome of Love. The beautiful Taj Mahal is the seventh wonder of the world and was commissioned by the Mughal emperor Saha Jahan in memory of his beloved wife Mumtaz Mahal. After exploring the Taj Mahal, transfer to the Agra Fort railway station to board the an overnight train to Varanasi.</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> Varanasi
								</p>
								<p class="aj">In the morning the train chugs into the Varanasi Cantonment Station. Disembark from the train to meet our representative who'll escort you to one of our listed hotels. Rest and relax for a while in the cozy comfort of its room. Later in the day move out of the hotel for a sightseeing tour of Varanasi. The major tourist attractions of Varanasi include Niranjana River, Mahabodhi Temple and Sujata Village. Spend the evening at leisure. Enjoy a sumptuous dinner and comfortable overnight stay 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 5:</b> Varanasi - Bodhgaya
								</p>
								<p class="aj">On the following day after breakfast, move out of the hotel to reach Bodhgaya. It is one of the most important and sacred Buddhist pilgrimage center in the world. As you reach Bodhgaya, check-in at one of our listed hotels. Rest and relax for a while in the cozy comfort of its room. Later set off for a sightseeing tour of Bodhgaya. The major tourist attractions of Bodhgaya include Mahabodhi temple, Bodhi tree and the Vishnupad Mandir. In the evening visit Chankramana and Ratnagarh. After the visit return to the hotel for dinner and 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 6:</b> Bodhgaya
								</p>
								<p class="aj">Post breakfast, move out of the hotel to enjoy a guided tour to Bodhgaya. The other major tourist attractions scheduled for the day include Brahm Yoni, Chinese Temple & Monastery, 80 ft Statue of the Buddha, International Buddhist House and Japanese Temple, Rajayatana, Thai Temple & Monastery, Tibetan Monastery, Lotus Tank, Buddha Kund, Burmese Temple, Buddhist Monastery of Bhutan, Archaeological Museum. In the evening return to the hotel for dinner and 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 7:</b> Bodhgaya - Rajgir - Patna
								</p>
								<p class="aj">Relish breakfast at the hotel, leave for Patna. Along the way visit Rajgiri for the sightseeing. Then start again for Patna. Upon reaching Patna, check-in at one of our listed hotels. Enjoy a sightseeing tour of Patna. The major tourist hotspots of Patna include Golghar, Takht Sri Patna Sahib, Sanjay Gandhi Jaivik Udyan, Mahavir Mandir and the Patna Museum. In the evening after enjoying a sumptuous dinner, 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 8:</b> Patna - Vaishali - Kushinagar
								</p>
								<p class="aj">After breakfast, drive towards Kushinagar on the way visit Vaishali. It is a small village surrounded by banana and mango groves as well as rice fields. Explore Vaishali for its major tourist attractions like Ashokan Pillar, Bawan Pokhar Temple, Budha Stupa-I & II, Abhiskek Pushkarn, Kundalpur and the Shanti Stupa. After the visit continue driving to Kushinagar. It is the place where Buddha finally attained Mahaparmirvana. After check-in at one of our listed hotels, head to a guided tour of Kushinagar covering major tourist attractions like Sun temple, Kushinagar Museum, Mahaparinirvana Temple. After the sightseeing return to the hotel for dinner and 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 9:</b> Kushinagar - Lumbini
								</p>
								<p class="aj">Next morning after breakfast drive straight to Lumbini, the birthplace of Buddha. On reaching Lumbini, check-in at one of our listed hotels. The major tourist attractions of Lumbini include the holy temple of Maya Devi, Lumbini Grove, Rummendei pillar, Dharmaswami Maharaja Buddha Vihara. In the evening drive to visit Kapilvastu. After the visit return to the hotel for dinner and an 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 10:</b> Lumbini - Sarvasti
								</p>
								<p class="aj">In the morning after breakfast, drive straight to Sarvasti. On reaching Sarvasti check-in at the hotel. After resting for a while move out to visit the Jetavana Monastery is an ancient monastery that was located near Sravasti. The remains of Lord Buddha's hut can be seen at the monastery. The other major tourist attractions of the area are the Jain temple, Ananthapindika Stupa and the Agulimala Stupa. After the visit return to the hotel to take some rest. Retire for the night at the hotel after enjoying a sumptuous dinner and overnight stay.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Sravasti - Lucknow - Delhi
									</p>
									<p class="aj">In the morning after breakfast drive straight to Lucknow. On reaching Lucknow, transfer to Lucknow airport to board a flight to Delhi. On reaching Delhi airport board a connecting flight for the onward destination.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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.grandindiatrip.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Buddha Trail 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="69386"/>
						</form>
						</div>
						
						";i:1;s:51:"Book The Buddha Trail Tour - 111 Days Tour Packages";i:2;s:205:"book the buddha trail tour - 111 days tour packages, religious & pilgrimage tour packages, new delhi, agra, lucknow, varanasi, bodhgaya, patna, rajgir, vaishali, kushinagar, lumbini, sarvasti tour packages";i:3;s:249:"Grand India Tours & Travels offers The Buddha Trail Tour - 111 Days tour package, budget Religious & Pilgrimage tour packages for New Delhi, Agra, Lucknow, Varanasi, Bodhgaya, Patna, Rajgir, Vaishali, Kushinagar, Lumbini, Sarvasti at exciting price.";i:4;s:493:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Agra, Lucknow, Varanasi, Bodhgaya, Patna, Rajgir, Vaishali, Kushinagar, Lumbini, Sarvasti"        
		                 },
		      "description": "",
		      "name": "The Buddha Trail Tour",
		      "telephone": "+91-9415285186"
		    }
		    </script>
			";i:5;N;}