a:6:{i:0;s:9855:"				<div class="h1"><h1>Nepal Wonders - 4N/5D (Kathmandu Pokhara) Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.pragyatravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.pragyatravels.com/tour-packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Nepal Wonders - 4N/5D (Kathmandu Pokhara) 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">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kathmandu, Pokhara</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.pragyatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Nepal Wonders - 4N/5D (Kathmandu Pokhara) 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="68531"/>
						</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_15/434232/124757.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/434232/124757.jpg"  width="150" height="150"    alt="Nepal Wonders - 4N/5D (Kathmandu Pokhara) Tour" title="Nepal Wonders - 4N/5D (Kathmandu Pokhara) 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 at Kathmandu
								</p>
								<p class="aj">Meeting at airport upon arrival by our executive. Transfer to hotel. 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.</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> : Local Sightseeing of Kathmandu
								</p>
								<p class="aj">This morning you will be taken for a visit of the Hindu culture in Nepal, Pashupatinath. This is the place where holy saddhus pray and cremations on the Bagmati River are carried out. We then continue to the holiest shrine for the Buddhist culture in Nepal, Bouddhanath, with its large stupa, this is the place where all devout Buddhists come for a pilgrimage. After completion of these two spots, you will be taken 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.</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> Kathmandu to Pokhara By Flight & Sightseeing
								</p>
								<p class="aj">Fly to Pokhara. Pokhara is 30 mins by flight from Kathmandu. From Pokhara town (2,352 feet)in good weather there are splendid views right from the hotel. Assistance upon arrival by hotel coach in Pokhara and then transfer to Hotel. Evening free to stroll around the lakeside. Later 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 4:</b> Pokhara to Kathmandu
								</p>
								<p class="aj">Fly back to Kathmandu and transfer to Hotel. Rest day at leisure. One can indulge in shopping or visit the casinos trying their lady luck. 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> Departure from Kathmandu
								</p>
								<p class="aj">Morning will be comparatively free and closer to the time of your flight , 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>
															</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.pragyatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Nepal Wonders - 4N/5D (Kathmandu Pokhara) 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="68531"/>
						</form>
						</div>
						
						";i:1;s:85:"Book Nepal Wonders - 4N/5D (Kathmandu Pokhara) Tour - 4 Nights / 5 Days Tour Packages";i:2;s:143:"book nepal wonders - 4n/5d (kathmandu pokhara) tour - 4 nights / 5 days tour packages, heritage tour packages, kathmandu, pokhara tour packages";i:3;s:185:"Book Nepal Wonders - 4N/5D (Kathmandu Pokhara) Tour - 4 Nights / 5 Days tour packages from Pr Travels - Get attractive 4 Nights / 5 Days Heritage  tour packages for  Kathmandu, Pokhara.";i:4;s:436:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kathmandu, Pokhara"        
		                 },
		      "description": "",
		      "name": "Nepal Wonders - 4N/5D (Kathmandu Pokhara) Tour",
		      "telephone": "+91-7060220730"
		    }
		    </script>
			";i:5;N;}