a:6:{i:0;s:12707:"				<div class="h1"><h1>Nepal wildlife Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.holidaymasti.co.in/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Nepal wildlife 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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Kathmandu, Pokhara, Dhulikhel</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.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Nepal wildlife 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="48368"/>
						</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_2/30465/94241.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/30465/94241.jpg"  width="150" height="150"    alt="Nepal wildlife Tour" title="Nepal wildlife Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Kathmandu(3N)<br />
Nagarkot(1N)<br />
Dhulikhel(1N)<br />
Chitwan(2N)<br />
Pokhara(1N)Any Airfare/ Train Fare.<br />
Meals Other Than The Ones Mentioned In The Inclusions Above And As Specified.<br />
Personal Expenses Such As Monuments Entry Ticket, Telephone Calls, Laundry, Mini Bar Etc.<br />
Anything Else Not Specifically Mentioned In The Inclusion Above.<br />
3.09% Govt. Service Tax<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">Arrive At Kathmandu Airport, Our Representative Will Meet You And Transfer To Hotel. Evening Free At Leisure. Stay 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 - Nagarkot
								</p>
								<p class="aj">After Breakfast, Transfer For Nagarkot Enroute Visiting Bhaktapur. Bhaktapur, One Of The Three Major Towns Of The Kathmandu Valley. Bhaktapur Means "The City Of Devotees" In The Sanskrit Language. It Is Also Known As Bhadgaon. The Palace Complex In The Middle Of The City Portrays The Prosperity Of The Malla Years And The Details At Which The Crafts- People Then Worked. The Palace Of Fifty-Five Windows Stands In The Square And It Was Home To Many Kings Of Bhaktapur.It Is Perhaps The Most Popular Of The Three Newar Towns Of The Kathmandu Valley. Stay 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> Nagarkot - Dhulikhel
								</p>
								<p class="aj">After Breakfast, Morning Departs For Dhulikhel And On Arrival Check In At Hotel. Dhulikhel Is A Small Township, 30 Kms From Kathmandu, Along The Chinese-Built Road Which Leads To The Border. It Is At An Altitude Of 6000 Ft And Offers Superb Views Of Cho Oyu In The East To Himalchuli In The West.The Little Town Exudes Great Charm In The Bare-Brick Houses, Carved Wooden Windows, Sloping Tile-Roofs, Pagoda-Temples And Sacred Statues Everywhere. Lot Of Temples Dot The Town And The Skyline. Many Vantage Points Offer A Panorama Of The Himalayan Mountains. Besides Bird Watching, Hiking And Mountain Biking Are Some Of The Activities That Can Be Undertaken Here Stay 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> Dhulikhel - Chitwan
								</p>
								<p class="aj">After Breakfast, Morning Departs For Chitwan And On Arrival Check In At Hotel. Stay 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> Chitwan
								</p>
								<p class="aj">Chitwan-A Day Full Of Jungle Activities. Among The 14 National Parks And Wildlife Reserves In The Kingdom, The Royal Chitwan Park Is The Most Popular Safari Destination. More Than 43 Species Of Animals Are Found In Chitwan.The Endangered One-Horned Rhino, Royal Bengal Tiger, Gharial Crocodile, Four-Horned Antelope, Striped Hyena & The Gangetic Dolphin Are The Main Attractions. Many Adventurers Also Choose To Go Down To Chitwan By Raft. A Jungle Safari Is An Experience You Will Remember For A Long Time. Overnight At The Ho.</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> Chitwan - Pokhara
								</p>
								<p class="aj">After Breakfast, Morning Depart For Pokhara And On Arrival Check In At Hotel. Later Sightseeing Of Devis Fall And Lake Phewa.Locally Known As The Patale Chhango (Hell'S Fall). Devi'S Fall Is A Lovely Waterfall Lying About 2 Km Southwest Of The Pokhara Airport. Phewa Lake, The Second Largest Lake In The Kingdom, Is The Center Of All Attraction In Pokhara.Here, One Can Sail Or Row A Hired Boat Across Across To The Water Or Visit The Island Temple In Its Middle. Stay 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> Pokhara - Kathmandu
								</p>
								<p class="aj">After Breakfast, Morning Departs For Kathmandu And On Arrival Check In At Hotel. Evening Free At Leisure. Stay 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
								</p>
								<p class="aj">After Breakfast, Morning City Tour Visiting The Durbar Square, Hanuman Dhoka, The Ancient Royal Residential Quarter, Mahadev And Parvati Temple, Machhender Bahl-Holy Place For The Buddhists And Hindus, Temple House Of Kumari, The Vestal Virgin Or The Living Goddess. Walk Around The Local Bazaars. Also Visit Swayambunath, A 2500-Year Old Site Where, It Is Believed, The Radiant Lotus Of The Valley-Mythology, Settled When The Water Was Drained By Manjushri, The God Of Wisdom. The 5 Dhyani Buddha'S Attended By Their Consorts Are Enshrined At The Base Of The Stupa. (Non-Hindus Are Not Allowed Inside Swayambhunath Temple). <br />
Afternoon, Visit To Patan. In Patan Visit The Old Newar City, The Historic Durbar Square, The Golden Gate, The Sky Piercing Temple Of Teleju And The Statue Of Yogendra Malla, Other Temples, Old Carved Windows And Balconies Of Wood, Curio Shops And Bazaars. Stay 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 9:</b> Departure
								</p>
								<p class="aj">After Breakfast,Transfer To The Airport To Board Flight For Your Onward 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">Exclusions :</p> <ul><li>Any Airfare/ Train Fare.</li><li>
Meals Other Than The Ones Mentioned In The Inclusions Above And As Specified.</li><li>
Personal Expenses Such As Monuments Entry Ticket, Telephone Calls, Laundry, Mini Bar Etc.</li><li>
Anything Else Not Specifically Mentioned In The Inclusion Above.</li><li>
3.09% Govt. Service Tax</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><span style="text-align: justify; line-height: 15px; background-color: rgb(252,252,252); font-family: Arial, Helvetica, sans-serif; color: rgb(68,68,68); font-size: 12px">The Above Is Just Offer, No Booking Is Made. The Package Cost Is Subject To Change At The Time Of Booking Due To Any Changes In Hotel Cost And Hike In Transportation &amp; Airfare Cost 50% Of Tour Cost Needs To Be Paid In Order To Confirm The Booking Cultural Show, Light And Sound Show Subject To Availability At The Time Of Booking. According To The Season We Can Change The Hotels To The Same Level Or More Luxury Category. Package Cost May Be Change Due To Changes In Number Of Passengers. Travel Stoppage Or Its Sub Agent Is Therefore Not Responsible For Any Loss, Injury Sustained By The Tourists, Including Those Occurring Outside The Touring Programs. Additional Expenses Incurred Due To Delay, Accidents, Natural Disaster, Political Actions And Unrest Must Be Borne By The Tourists. Program, Prices, Services And Conditions Are Based On Those Valid At The Time Of Issuing This Voucher And Are Therefore Subject To Change Without Advance Notice Before Or During The Tour. Subject To New Delhi Jurisdiction Only.</span>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.holidaymasti.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Nepal wildlife 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="48368"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Nepal wildlife Tour - 8 Nights / 9 Days Tour Packages";i:2;s:138:"book nepal wildlife tour - 8 nights / 9 days tour packages, wildlife and nature tour packages, kathmandu, pokhara, dhulikhel tour packages";i:3;s:183:"Book Nepal wildlife Tour - 8 Nights / 9 Days tour packages from Holiday Masti - Get attractive 8 Nights / 9 Days Wildlife and Nature  tour packages for  Kathmandu, Pokhara, Dhulikhel.";i:4;s:773:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kathmandu, Pokhara, Dhulikhel"        
		                 },
		      "description": "Kathmandu(3N)
Nagarkot(1N)
Dhulikhel(1N)
Chitwan(2N)
Pokhara(1N)Any Airfare/ Train Fare.
Meals Other Than The Ones Mentioned In The Inclusions Above And As Specified.
Personal Expenses Such As Monuments Entry Ticket, Telephone Calls, Laundry, Mini Bar Etc.
Anything Else Not Specifically Mentioned In The Inclusion Above.
3.09% Govt. Service Tax",
		      "name": "Nepal wildlife Tour",
		      "telephone": "+91-8090952150"
		    }
		    </script>
			";i:5;N;}