a:6:{i:0;s:10146:"				<div class="h1"><h1>Discovering Nepal Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.yadavtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.yadavtravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Discovering Nepal 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kathmandu, Pokhara, Chitwan</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.yadavtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Discovering 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="95913"/>
						</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/444380/162884.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/444380/162884.jpg"  width="150" height="150"    alt="Discovering Nepal Tour" title="Discovering Nepal Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Nepal, officially the Federal Democratic Republic of Nepal, is a landlocked central Himalayan country in South Asia. <br />
Kathmandu is rich in temples, Buddhist Stupas, medieval palace and shrines. Modern day Kathmandu covers much of the Kathmandu Valley. At its heart are three ancient city states: Kathmandu, Patan and Bhaktapur. In each of these well-preserved centres, life has changed little in several hundred years. The quality of architecture, carvings and castings which survive in abundance are among the best in the world. A number of hindu and buddhist festivals are held each year in different parts of Kathmandu - as well as more widely in Nepal. <br />
“Discovering Nepal” Tour package has been designed to take you on a journey through famous places in Nepal.  <br />
<br />
One breakfast<br />
03 Night Accommodation in Kathmandu<br />
02 Night Accommodation in Chitwan<br />
01 Night Accommodation in Pokhara<br />
All transfers & sightseeing by dedicated vehicle<br />
All transfers as per the itinerary<br />
All applicable Hotel Taxes<br />
Package Exclusions:<br />
Any Air Fare<br />
Applicable Peak Season, Christmas, New year surcharges<br />
Items of Personal Nature<br />
Medical and Travel Insurance<br />
All personal expenses, optional tours and extra meals<br />
Anything not mentioned under “Inclusions”<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 Kathmandu
								</p>
								<p class="aj">On arrival at Kathmandu, begin your tour of “Nepal-The Real Beauty of Nature”.  First Guest will get transferred to hotel. Rest of the day is at leisure. There Guest will have their Breakfast and Stay overnight 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> Kathmandu City tour
								</p>
								<p class="aj">After breakfast at hotel, Full Day City tour of Kathmandu, visiting temples of Pashupatinath, Bouddhanath, Swayambhunath, temple of the living Goddess and stroll through the old Durbar Square. The rest of the evening is free to enjoy exploring the markets, pubs and casinos on own. Stay overnight 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 3:</b> On to Chitwan
								</p>
								<p class="aj">Chitwan, one of the best destination in Nepal lies 165 km south west to Kathmandu is famous for adventurous elephant riding, jungle safari, jeep safari in National park to view wild animals. More that that boating in the Rapati river as well as Tharu cultural show, village tour, etc. are the attractions of Chitwan.<br />
After breakfast take the transfer to Chitwan. You will proceed on a drive from Kathmandu valley into the subtropical Gangetic plains - the Terai region, to Chitwan. Located at the foothills of the Himalayas, Chitwan is famous for its rich flora, fauna and wildlife, especially the single-horned Asiatic rhinoceros and the Royal Bengal tiger. On arrival in Chitwan, check into your hotel. Stay overnight 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 4:</b> On to Pokhara
								</p>
								<p class="aj">Pokhara offers hidden treasures such as mighty caves, waterfalls, gorges, and canyons, all seemingly carved out lovingly by the gods themselves. No wonder that local legend claims that Pokhara Valley was once the garden of the gods, created so they could get respite from their arduous duties by dancing their days away.<br />
After early morning breakfast take the transfer to Pokhara, you will proceed on a picturesque drive to the enchanting city of Pokhara. On arrival, check into your hotel. Later embark on a sightseeing tour of Pokhara covering - Fewa Lake, Gupteswar Cave, David’s falls, Seti Gorge, Bindhyabasini Temple and Old City. Stay overnight 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> Return to Kathmandu
								</p>
								<p class="aj">After breakfast take the transfer to Kathmandu, where on arrival you will check into your hotel. Rest of the day is free for last minute shopping. Stay overnight 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 6:</b> Return home with happy memories
								</p>
								<p class="aj">Return home with happy memories and transferred to your further destination.</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.yadavtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Discovering 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="95913"/>
						</form>
						</div>
						
						";i:1;s:61:"Book Discovering Nepal Tour - 5 Nights / 6 Days Tour Packages";i:2;s:126:"book discovering nepal tour - 5 nights / 6 days tour packages, valley tour packages, kathmandu, pokhara, chitwan tour packages";i:3;s:201:"Book Discovering Nepal Tour - 5 Nights / 6 Days tour packages from Yadav Travels (A Unit of Yadavlink Pvt Ltd) - Get attractive 5 Nights / 6 Days Valley  tour packages for  Kathmandu, Pokhara, Chitwan.";i:4;s:1680:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kathmandu, Pokhara, Chitwan"        
		                 },
		      "description": "Nepal, officially the Federal Democratic Republic of Nepal, is a landlocked central Himalayan country in South Asia. 
Kathmandu is rich in temples, Buddhist Stupas, medieval palace and shrines. Modern day Kathmandu covers much of the Kathmandu Valley. At its heart are three ancient city states: Kathmandu, Patan and Bhaktapur. In each of these well-preserved centres, life has changed little in several hundred years. The quality of architecture, carvings and castings which survive in abundance are among the best in the world. A number of hindu and buddhist festivals are held each year in different parts of Kathmandu - as well as more widely in Nepal. 
“Discovering Nepal” Tour package has been designed to take you on a journey through famous places in Nepal.  

One breakfast
03 Night Accommodation in Kathmandu
02 Night Accommodation in Chitwan
01 Night Accommodation in Pokhara
All transfers & sightseeing by dedicated vehicle
All transfers as per the itinerary
All applicable Hotel Taxes
Package Exclusions:
Any Air Fare
Applicable Peak Season, Christmas, New year surcharges
Items of Personal Nature
Medical and Travel Insurance
All personal expenses, optional tours and extra meals
Anything not mentioned under “Inclusions”",
		      "name": "Discovering Nepal Tour",
		      "telephone": "91-8292393528"
		    }
		    </script>
			";i:5;N;}