a:6:{i:0;s:13588:"				<div class="h1"><h1>The Buddha Trail Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.parwaztourandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.parwaztourandtravels.com/vacation-packages.htm" title="Vacation Packages">Vacation 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, Gaya, 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.parwaztourandtravels.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="117674"/>
						</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_17/508952/191010.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/508952/191010.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> Arrival
								</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> Departure
									</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.parwaztourandtravels.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="117674"/>
						</form>
						</div>
						
						";i:1;s:51:"Book The Buddha Trail Tour - 111 Days Tour Packages";i:2;s:187:"book the buddha trail tour - 111 days tour packages, heritage tour packages, new delhi, agra, lucknow, varanasi, gaya, patna, rajgir, vaishali, kushinagar, lumbini, sarvasti tour packages";i:3;s:226:"Parwaz Tours & Travels offers The Buddha Trail Tour - 111 Days tour package, budget Heritage tour packages for New Delhi, Agra, Lucknow, Varanasi, Gaya, Patna, Rajgir, Vaishali, Kushinagar, Lumbini, Sarvasti at exciting price.";i:4;s:489:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Agra, Lucknow, Varanasi, Gaya, Patna, Rajgir, Vaishali, Kushinagar, Lumbini, Sarvasti"        
		                 },
		      "description": "",
		      "name": "The Buddha Trail Tour",
		      "telephone": "+91-7426875919"
		    }
		    </script>
			";i:5;N;}