a:6:{i:0;s:12527:"				<div class="h1"><h1>Oppex Holiday Tour Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.oppexholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.oppexholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Oppex Holiday Tour Package</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, Nagarkot</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.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Oppex Holiday Tour Package - 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="14016"/>
						</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/37817/19476.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/37817/19476.jpg"  width="150" height="150"    alt="Oppex Holiday Tour Package" title="Oppex Holiday Tour Package" /></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.<br />
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.<br />
Any Expenses Caused By Reasons Beyond Our Control Such As Flight Delays, Rescheduling Or Cancellations, Any Accidents, <br />
Medical Evacuations, Riots, Strikes, Etc.<br />
Any Tips To Drivers, Hotel Staff, Any Meals Apart From The Ones Mentioned Above.<br />
Any Other Tax Or Service Charge That Could Be Enforced During This Period Will Be Extra & Need To Borne By You.<br />
INR 1000 And 500 Demonetization Indian Notes Are Banned In Nepal. The Clients Should Be Informed Of This.<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 our personnel. 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> 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 - Pokhara
								</p>
								<p class="aj">After breakfast, drive to Pokhara. Pokhara is 180 Km & is a 04 hours drive from Chitwan. From Pokhara town (2,352 feet) the 25,000+ peaks of the Annapurna and Dhaulagiri ranges rise a scant 20 miles away with no intervening ridges to spoil the view. 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
								</p>
								<p class="aj">This morning you will go for a excursion trip to Sarangkot.The village of Sarangkot (1590 m) is situated on the top of a hillock just north of Phewa Lake. One gets to see beautiful views of sunrise and sunset from Sarangkot as the sun splashes hues of red on the Himalayan range. On a clear day, the panoramic ranges of Annapurna, Dhaulagiri, Machhapuchhre and Ganesh Himal can be observed from here.<br />
<br />
<br />
Later 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 - Nagarkot
								</p>
								<p class="aj">Drive back to Kathmandu. Continue drive to to Nagarkot. Nagarkot is situated 32 kilometers, 1.5  hrs drive east of Kathmandu at an altitude of 2,175 meters. The panoramic view of the major peaks including Mt. Everest can be seen from here. This place is also famous for viewing sunrise and sunset. 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> Nagarkot Airport
								</p>
								<p class="aj">Drive straight to the airport which is 1.5 hours drive approx to board 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.</li><li>
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.</li><li>
Any Expenses Caused By Reasons Beyond Our Control Such As Flight Delays, Rescheduling Or Cancellations, Any Accidents, </li><li>
Medical Evacuations, Riots, Strikes, Etc.</li><li>
Any Tips To Drivers, Hotel Staff, Any Meals Apart From The Ones Mentioned Above.</li><li>
Any Other Tax Or Service Charge That Could Be Enforced During This Period Will Be Extra & Need To Borne By You.</li><li>
INR 1000 And 500 Demonetization Indian Notes Are Banned In Nepal. The Clients Should Be Informed Of This.</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.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Oppex Holiday Tour Package - 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="14016"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Oppex Holiday Tour Package - 5 Nights / 6 Days Tour Packages";i:2;s:133:"book oppex holiday tour package - 5 nights / 6 days tour packages, heritage tour packages, kathmandu, pokhara, nagarkot tour packages";i:3;s:224:"Book Oppex Holiday Tour Package - 5 Nights / 6 Days tour packages from Oppex Travels & Tours ( a Division of Oppex Freight Systems - Get attractive 5 Nights / 6 Days Heritage  tour packages for  Kathmandu, Pokhara, Nagarkot.";i:4;s:1302:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Kathmandu, Pokhara, Nagarkot"        
		                 },
		      "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.
INR 1000 And 500 Demonetization Indian Notes Are Banned In Nepal. The Clients Should Be Informed Of This.",
		      "name": "Oppex Holiday Tour Package",
		      "telephone": "+91-9821321975"
		    }
		    </script>
			";i:5;N;}