a:6:{i:0;s:15334:"				<div class="h1"><h1>Nepal Adventures Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sanskrutivacations.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sanskrutivacations.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Nepal Adventures 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">Kathmandu, Pokhara, Lumbini, Chitwan, Jomsom</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 36495 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Nepal Adventures 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="51966"/>
						</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_14/393874/102212.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/393874/102212.jpg"  width="150" height="150"    alt="Nepal Adventures Tour" title="Nepal Adventures Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Services other than specified.<br />
Entrance fee at the monumental sites during the sightseeing<br />
Guide during the sightseeing<br />
If there is any domestic flight been taken there is an airport tax of Inr 125 PP each time taking the flight payable directly at the airport at the time of check in. This cannot be included in the proposal.<br />
Any expenses of personal nature such as drinks, laundry, telephone/fax calls. Any expenses caused by reasons beyond our control such as flight delays, rescheduling or cancellations, any accidents,medical evacuations, riots, strikes, etc. Any tips to drivers, hotel staff, any meals apart from the ones mentioned above. Any other tax or service charge that could be enforced during this period will be extra & need to borne by you.<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> Kathmandu
								</p>
								<p class="aj">Meeting at airport upon arrival by Nebuti Personnel. Kathmandu is the capital of Nepal and the Kathmandu Valley is the political and cultural heart of the Kingdom. The urban sprawl that makes up modern Kathmandu is in fact two cities, Patan and Kathmandu.<br />
<br />
After short relaxation at the hotel, you will be taken for sightseeing to Pashupatinath. This is the place where holy saddhus pray and cremations on the Bagmati River are carried out. While you are not allowed into the temple if you are not a Hindu, the grounds surrounding the temple usually have a fascinating crowd of the faithful. 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 2:</b> Kathmandu / Pokhara ( 210 KMS )
								</p>
								<p class="aj">Drive to Pokhara. Pokhara is 210 kms from Kathmandu and is a 7 hours drive approx. From Pokhara town (2,352 feet) in good weather there are splendid views right from the hotel. On the way you have an option of doing the river rafting or visit the Manakamna Temple " Goddess of Fulfilling Wishes" where you are taken by a cable ride of 10 mins. 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> Pokhara / Jomsom
								</p>
								<p class="aj">After Breakfast, early morning fly to Jomsom. Upon arrival at Jomsom, walk over to the hotel which is 2 minutes from the airport.<br />
<br />
Please do note that Jomsom is a small village in the Mountains. Only basic accommodation is available here. The clients will have to walk from the airport to the hotel which takes about 2 minutes.Porters are sent to the airport to carry the luggage by the hotel. 15 Kg luggage per adult and 7 kg per child is allowed by the airlines on this sector. The aircraft is a Twin Otter or Doniar - average 15 seats.<br />
<br />
Darshan of Muktinath temple.<br />
<br />
To visit Muktinath, the clients will have to walk for about 15-20 minutes over the Kali Gandaki River. Here there is no means of transport as on the river there is a narrow bridge - vehicles cannot cross. After crossing the bridge take the Jeep on sharing basis for Muktinath. Originally the route from Jomson to Muktinath was a trekkers route only. Recently the route has been widened and 4x4 vehicles can only drive. The path is a Dirt road. The ride is Bumpy all the way. The drive takes about 1.5 hours one way. Upon arrival at Muktinath it is another 30 minutes walk from the base to the Temple.<br />
<br />
Darshan on your own of Muktinath & following the same route return to Jomsom.</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> Jomsom / Pokhara
								</p>
								<p class="aj">Fly back to Pokhara early morning and transfer to hotel.<br />
<br />
This afternoon you will visit Bindebasini Temple. This is one of the oldest temples in Pokhara was a part of Kaski Kingdom, the main deity of the temple,Goddess Durga, was brought from India . Apart from the peace and tranquility that can be felt in this region, the premises of the temple offers a good view of the Himalaya on a clear day. The temple is in the area of the bazaar, hence,a journey of the old bazaar can be combined with a visit to the temple. Sightseeing to Devi’s fall, also known as Patale Chango is an awesome waterfall lying 2 km southwest of Pokhara. During summer and rainy season, the waterfall takes its real form, with gushing water splashing and making its way through the rocks. Just opposite of Devi’s fall, on the other side of the road, there is Gupteshwor Cave. This cave is popular for the different natural forms made from limestone deposits. Photography is strictly prohibited inside the cave. 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 5:</b> Pokhara / Lumbini
								</p>
								<p class="aj">Drive to Lumbini. Lumbini is 270 kms from Pokhara & a 7 - 8 hrs of non stop drive. Lumbini is located in the south-central Terai of Nepal, situated in the foothills of the Himalayas. For millions of Buddhists the world over, it evokes a kind of holy sentiment akin to the significance of Jerusalem to Christians and Mecca to Muslims. Lumbini is the place where Lord Buddha - the apostle of peace, and the Light of Asia - was born in 623 B.C.<br />
<br />
This afternoon you will tour the Lumbini Garden which consists of the birth place of Lumbini, various Bodh Vihars built by different countries such as Japan, Myanmar, Indonesia, USA to establish the Buddhist religion in the Garden. You will tour by a rickshaw for 3 hrs. 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 6:</b> Lumbini - Chitwan
								</p>
								<p class="aj">Drive to Chitwan. Chitwan is 180 Km from Lumbini & a 05 hours drive. Chitwan is one of Asia's premier wildlife reserves. Its 360 square miles of tall grasslands and forests are home to a wide variety of mammals and birds, including several endangered species.<br />
<br />
Enjoy Jungle observation at Chitwan National park. The highlight being the Elephant Safari in the jungles. Other activities are Canoeing, Dugout canoe, Nature Walk and Bird Watching. Also experience walking through the forests with naturalists and watch the Native folk dances of the Terais. 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 7:</b> Chitwan / Kathmandu
								</p>
								<p class="aj">Drive back to Kathmandu & transfer to hotel. Rest day at leisure. 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 8:</b> Kathmandu / Airport
								</p>
								<p class="aj">This morning your tour will take you for a visit to Patan. Also known as Lalitpur , the city of beauty is separated from Kathmandu only by the Bagmati River and is the second largest town in the valley. Lalitpur is fragmented from other cities due to its substantive architectural ancient masterpieces. Patan's central Durbar Square is absolutely packed with temples: Its an architectural center point with a far greater concentration of temples per sq. meter than in Kathamandu or Bhaktapur. Within the city also lies the Tibetan refugee center, home to most of the valley's Tibetan population. While technically refugees, the Tibetans are some of the wealthiest people in the valley because of the carpet industry they operate. For those looking to bring home a fine Tibetan carpet, this is the place to shop. You will then go to Swayambhunath the golden spire of the 5th-century Swayambhu Stupa is adorned with a colorful fluttering of prayer flags; it crowns a hill overlooking the Kathmandu Valley and offers fantastic views over the city of Kathmandu. Swayambhunath is one of the most recognizable symbols in Nepal and the painted eyes of Buddha watch all who ascend the worn stone steps.<br />
<br />
Later, you will be transferred to the airport in time to board your flight for onward journey.</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>
																		<li>Transport</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Services other than specified.</li><li>
Entrance fee at the monumental sites during the sightseeing</li><li>
Guide during the sightseeing</li><li>
If there is any domestic flight been taken there is an airport tax of Inr 125 PP each time taking the flight payable directly at the airport at the time of check in. This cannot be included in the proposal.</li><li>
Any expenses of personal nature such as drinks, laundry, telephone/fax calls. Any expenses caused by reasons beyond our control such as flight delays, rescheduling or cancellations, any accidents,medical evacuations, riots, strikes, etc. Any tips to drivers, hotel staff, any meals apart from the ones mentioned above. Any other tax or service charge that could be enforced during this period will be extra & need to borne by you.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><strong>Hotels used:</strong>

<p><strong>Kathmandu</strong>: Ambassador Chauni / Gangjong / Mountain / Indreni Himalaya / similar

<p><strong>Pokhara</strong>: Kantipur / Riverpark / Third Pole A/c / similar

<p><strong>Jomsom</strong>: Hotel Majesty / Om&rsquo;s Home / similar&nbsp;- non A/c

<p><strong>Lumbini</strong>: Buddha Maya Garden / similar

<p><strong>Chitwan</strong>: Westwood / Jungle Nepal Resort / Chitwan Adventure Resort

<p>&nbsp;

<p><strong>Notes: The rates are based on 4 Pax travelling together in a car. The rates are valid only till 31st October.</strong>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Nepal Adventures 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="51966"/>
						</form>
						</div>
						
						";i:1;s:60:"Book Nepal Adventures Tour - 7 Nights / 8 Days Tour Packages";i:2;s:153:"book nepal adventures tour - 7 nights / 8 days tour packages, forts and palaces tour packages, kathmandu, pokhara, lumbini, chitwan, jomsom tour packages";i:3;s:204:"Book Nepal Adventures Tour - 7 Nights / 8 Days tour packages from Sanskruti Vacations - Get attractive 7 Nights / 8 Days Forts and Palaces  tour packages for  Kathmandu, Pokhara, Lumbini, Chitwan, Jomsom.";i:4;s:1198:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kathmandu, Pokhara, Lumbini, Chitwan, Jomsom"        
		                 },
		      "description": "Services other than specified.
Entrance fee at the monumental sites during the sightseeing
Guide during the sightseeing
If there is any domestic flight been taken there is an airport tax of Inr 125 PP each time taking the flight payable directly at the airport at the time of check in. This cannot be included in the proposal.
Any expenses of personal nature such as drinks, laundry, telephone/fax calls. Any expenses caused by reasons beyond our control such as flight delays, rescheduling or cancellations, any accidents,medical evacuations, riots, strikes, etc. Any tips to drivers, hotel staff, any meals apart from the ones mentioned above. Any other tax or service charge that could be enforced during this period will be extra & need to borne by you.",
		      "name": "Nepal Adventures Tour",
		      "telephone": "+91-9769880881"
		    }
		    </script>
			";i:5;N;}