a:6:{i:0;s:23385:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>The Best Of Nepal Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.flyingfeetholidays.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.flyingfeetholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> The Best Of Nepal Tour</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Kathmandu, Pokhara, Chitwan, Nagarkot</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.flyingfeetholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Best of Nepal Tour - 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="187951"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_20/578790/293998.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_20/578790/293998.jpg"  width="150" height="84"    alt="The Best of Nepal Tour" title="The Best of Nepal Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Get ready toescape from the monotonyof daily life. This peaceful holiday in Nepal is sure to leave you rejuvenated and satisfied. The package, “Wonders of Nepal” makes you come across all the important sites and guarantees you of a hassle free holiday. Enjoy the vibrant city of Kathmandu, the Safari and elephant rides at Chitwan along with the spectacular landscapes of Pokhara and Nagarkot. It is truly an adventure within a short period of time of 6 days - 5 nights.<br />
Note: This is just a suggested itinerary indicative of what could be possible. We customize holidays for your specific needs. Contact us if you want modifications so that we could customize a holiday to suit your need for an unforgettable International tour.<br />
<br />
TRIP HIGHLIGHTS<br />
<br />
Visit the Sacred Pashupati Temple in Kathmandu, dedicated to Lord Shiva.<br />
Visit the Buddhist holy Stupas of Bouddhanath and Swayambhunath.<br />
Experience the wildlife of Nepal through the UNESCO Heritage Sites of Chitwan National Park.<br />
View the Annapurna range up close at Pokhara.<br />
View the MT Everest from elevated Nagarkot.								</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 KATHMANDU
										</p>
										<p class="aj">The Trip Begins with Your Arrival in the Central City, Kathamndu. You are Escorted to the Hotel, Where You Complete Your Check in Procedure and Rest. the Essence of the Ancient, Along with the Modern Day Influence Can Be Observed in the Lifestyle and the Buildings in the City. Kathmandu is the Center for Religion, Culture and Politics of the Whole of Nepal. Once You Reach the Hotel, You Can Spend the Rest of the Day At Leisure in the Comfort of 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> KATHAMNDU
										</p>
										<p class="aj">After breakfast, you set out for the city tour. Firstly, you visit the sacred Pashupatinath Temple, along the banks of Baghmati river. The temple is in dedication to Lord Shiva, it is the epitome of the Hindu religion in Nepal. Your second destination will be the holy Stupa of Bouddhanath, this is believed to be the oldest and the largest Buddhist structure in the country. Further, you visit the famous city, Patan/ Lalitpur is known for its rich cultural heritage. It is covered with great ancient architectural structures. The well known Kathmandu Darbar Square is another attraction, it has a huge statue of Lord Hanuman and other temples within the complex. Patan is home to the Refugees from Tibet, who makes the area brighter with their handicraft stores on the outskirts of Patan. The sightseeing drive ends with your visitation to the magnificent Swayambhunath Stupa, located on top of a hill. All the four sides of the Stupa are painted with eyes of Buddha, whichseems like it watches over the city.<br />
<br />
The busy day comes to an end with your return to the hotel for 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 3:</b> CHITWAN
										</p>
										<p class="aj">After a hearty breakfast, head towards Chitwan. The National Park in Chitwan is the first one in the country and is listed as a UNESCO World Heritage Site. It has a variety of wild animals and plants.<br />
You can spot out some rare and endangered animals like one horned Rhinos, Bengal tiger, crocodiles and many exotic birds. In the park, you can experience an elephant ride, wildlife safari, nature walks and more. The National Park experience is very thrilling, just walking around the lush green forest areas and coming across the locals give you a great opportunity to know about the culture and lifestyle of the people there. In the evening, you return back to the hotel for dinner and a night 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 4:</b> CHITWAN – POKHARA
										</p>
										<p class="aj">After breakfast, you drive to the scenic place of Pokhara. The way to Pokhara is filled with greenery, rivers and tranquility. On reaching Pokhara, you check in at the hotel and rest for some time. Later in the afternoon, you set out for local sightseeing , first you visit the Binsabasini Temple dedicated to goddess Durga. You then leave for Devi's fall, it is beautifully placed and opposite to the lake is a cave, Gupteshar and is considered sacred.This cave consists of natural forms of deities.<br />
<br />
After exploring much of exotic Pokhara, you return to the hotel and retire for the night.</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> POKHARA – NAGARKOT
										</p>
										<p class="aj">After breakfast, you drive back to Kathmandu and soon head towards Nagarkot. The main feature of Nagarkot is that it provides a panoramic view of the Mt Everest, rising and setting of the Sun. On reaching Nagarkot, you check in at the hotel and rest for a while. Later, you leave for sightseeing. In the evening you return to the hotel for 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 6:</b> NAGARKOT – KATHMANDU DEPARTURE
										</p>
										<p class="aj">After breakfast, you are taken to the airport in Kathmandu. This beautiful tour comes to an end.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount</li><li>
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>* Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
* Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.flyingfeetholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="The Best of Nepal 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="187951"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/new-delhi-tour-packages.htm" title="New Delhi Tour Packages">New Delhi</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/jaipur-tour-packages.htm" title="Jaipur Tour Packages">Jaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/bikaner-tour-packages.htm" title="Bikaner Tour Packages">Bikaner</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/guwahati-tour-packages.htm" title="Guwahati Tour Packages">Guwahati</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/bali-tour-packages.htm" title="Bali Tour Packages">Bali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/tashkent-travel-tour-packages.htm" title="Tashkent Tour Packages">Tashkent</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/almaty-tour-packages.htm" title="Almaty Tour Packages">Almaty</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/nainital-tour-packages.htm" title="Nainital Tour Packages">Nainital</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/hurghada-tour-packages.htm" title="Hurghada Tour Packages">Hurghada</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/nagarkot-tour-packages.htm" title="Nagarkot Tour Packages">Nagarkot</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/dubai-tour-packages.htm" title="Dubai Tour Packages">Dubai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/manali-tour-packages.htm" title="Manali Tour Packages">Manali</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/mumbai-tour-packages.htm" title="Mumbai Tour Packages">Mumbai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/aswan-tours-tour-packages.htm" title="Aswan Tour Packages">Aswan</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/siem-reap-tour-packages.htm" title="Siem Reap Tour Packages">Siem Reap</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/corbett-tour-packages.htm" title="Corbett Tour Packages">Corbett</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/udaipur-tour-packages.htm" title="Udaipur Tour Packages">Udaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/ranakpur-tour-packages.htm" title="Ranakpur Tour Packages">Ranakpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/pokhara-tour-packages.htm" title="Pokhara Tour Packages">Pokhara</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/interlaken-tour-packages.htm" title="Interlaken Tour Packages">Interlaken</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/khandala-tour-packages.htm" title="Khandala Tour Packages">Khandala</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/cairo-tour-tour-packages.htm" title="Cairo Tour Packages">Cairo</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/thimphu-tour-packages.htm" title="Thimphu Tour Packages">Thimphu</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/male-tour-packages.htm" title="Male Tour Packages">Male</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/jodhpur-tour-packages.htm" title="Jodhpur Tour Packages">Jodhpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/darjeeling-tour-packages.htm" title="Darjeeling Tour Packages">Darjeeling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/colombo-tour-packages.htm" title="Colombo Tour Packages">Colombo</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/nuwara-eliya-tour-packages.htm" title="Nuwara Eliya Tour Packages">Nuwara Eliya</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/thekkady-tour-packages.htm" title="Thekkady Tour Packages">Thekkady</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/johannesburg-tours-tour-packages.htm" title="Johannesburg Tour Packages">Johannesburg</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/house-boat-holidays-catid.htm" title="House Boat Packages">House Boat</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.flyingfeetholidays.com/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.flyingfeetholidays.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:61:"Book The Best of Nepal Tour - 5 Nights / 6 Days Tour Packages";i:2;s:139:"book the best of nepal tour - 5 nights / 6 days tour packages, adventure tour packages, kathmandu, pokhara, chitwan, nagarkot tour packages";i:3;s:191:"Book The Best of Nepal Tour - 5 Nights / 6 Days tour packages from Flying Feet Holidays - Get attractive 5 Nights / 6 Days Adventure  tour packages for  Kathmandu, Pokhara, Chitwan, Nagarkot.";i:4;s:1512:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kathmandu, Pokhara, Chitwan, Nagarkot"        
		                 },
		      "description": "Get ready toescape from the monotonyof daily life. This peaceful holiday in Nepal is sure to leave you rejuvenated and satisfied. The package, “Wonders of Nepal” makes you come across all the important sites and guarantees you of a hassle free holiday. Enjoy the vibrant city of Kathmandu, the Safari and elephant rides at Chitwan along with the spectacular landscapes of Pokhara and Nagarkot. It is truly an adventure within a short period of time of 6 days - 5 nights.
Note: This is just a suggested itinerary indicative of what could be possible. We customize holidays for your specific needs. Contact us if you want modifications so that we could customize a holiday to suit your need for an unforgettable International tour.

TRIP HIGHLIGHTS

Visit the Sacred Pashupati Temple in Kathmandu, dedicated to Lord Shiva.
Visit the Buddhist holy Stupas of Bouddhanath and Swayambhunath.
Experience the wildlife of Nepal through the UNESCO Heritage Sites of Chitwan National Park.
View the Annapurna range up close at Pokhara.
View the MT Everest from elevated Nagarkot.",
		      "name": "The Best of Nepal Tour",
		      "telephone": "+91-9166682022"
		    }
		    </script>
			";i:5;N;}