a:6:{i:0;s:16851:"				<div class="h1"><h1>Jambay Lhakhang Drup Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.exoticvacationsbhutan.biz/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.exoticvacationsbhutan.biz/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Jambay Lhakhang Drup 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">Tour Code </td>
						<td class="p5px pl0px vat">06</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Thimphu, Paro, Punakha, Trongsa, Bumthang</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						USD 2235 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">15% discount those who contact direct</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.exoticvacationsbhutan.biz/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jambay Lhakhang Drup 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="126681"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					15% discount those who contact directAir Tickets, Guide and Driver tips and Personal expenses11-0431-12<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 Paro International Airport
								</p>
								<p class="aj">Upon arrival at Paro International airport, you will be welcomed by our company representative and the tour guide will receive and escort you to designated Hotels in Paro or Thimphu depending on the Final Itinerary that may be agreed upon.<br />
<br />
After lunch enjoy sightseeing around Paro, including a visit to the Ta Dzong Museum housing many religious relics, works of art and handicrafts offering a great orientation into Bhutan’s historical, cultural, and religious past. Next, visit the Rimpong Dzong to see the painting of the great saint Milarepa, considered as the master of meditation by the Bhutanese and believed to have attained enlightenment in a lifetime. Afterwards, drive to Thimphu - world’s smallest capital takes about an hour on a well paved two lane road that follows Paro River downstream to the confluence with Wang Chu (Thimphu River). The 60 kms road then turn upstream towards Thimphu along the Wang Chu. Check in at the designated hotel in Thimphu.</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> Thimphu
								</p>
								<p class="aj">We will start our sightseeing tour visiting Memorial Chorten built in memory of the 3rd King Jigme Dorji Wangchuck who reigned the Kingdom from 1952-1972. Visit the National Library where ancient manuscripts are preserved. Further, we will visit the Zorig Chusum - 13 Arts & Crafts Institute where traditional arts and crafts are still kept alive. The visitors can see students of different trades at work like: Sculpting, Thanka Painting, Wood Carving and other skills.<br />
<br />
Afternoon visit to the Textile Museum, Handicrafts Emporium, Crafts Bazaar where Bhutanese textiles and other arts and crafts are displayed and can be purchased. In the evening free for a leisure walk to explore Thimphu city - the world’s smallest capital and the only capital city where Traffic Lights are absent. The walk around the city is easy and would be enjoyable to experience the Bhutanese way of life.</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> Thimphu - Punakha
								</p>
								<p class="aj">Check-out from the hotel and drive to Punakha, the former Capital of Bhutan (77 Km) from Thimphu. Enjoy panoramic view of Black Mountain range at Dochu La, Visit Druk Wangyel Lhakhang, and Royal Botanical Garden on the way. Dochu La is a paradise for photographers.<br />
<br />
On arrival, visit Punakha Dzong, the "Palace of Great Happiness" built in 1637 by the Zhabdrung, the 'Unifier of Bhutan' to serve as the religious and administrative center of the region. It is placed strategically at the junction of the Pho Chu and Mo Chu rivers. Damaged over the centuries by four catastrophic fires and an earthquake, the Dzong has been fully restored in recent years by the present monarch and displays some of the best works of Bhutanese arts and crafts.<br />
<br />
Afterwards enjoy a walk to Chimi Lhakhang, the temple of fertility, blessed by the Divine Mad in the 1500s. The walk to the temple will take about 45 minutes one way through rice paddy fields. Overnight at Punakha/WangduePhodrang.</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> Punakha/Wangdue - Trongsa - Bumthang
								</p>
								<p class="aj">After an early breakfast, drive to Bumthang from Punakha/Wangdue via Trongsa District over Pele-La pass. On the way visit beautiful Chendebji Chorten, erected in the 18th century. The imposing Trongsa Dzong can be viewed across a deep canyon to signal your approach to the town around a curving road. Trongsa is the ancestral home of Bhutan’s ruling dynasty. After lunch, visit Trongsa Dzong, the largest Dzong in Bhutan. Also visit the Ta Dzong museum housing an incredible collection of historical artifacts of the Royal Family.<br />
<br />
Continue driving to Bumthang, home to some of Bhutan’s oldest Palaces and temples. Try to stay awake until midnight to witness the opening proceedings of the Jambay Lhakhang Drup Festival, including an unusual naked dance performed to sanctify the region. Overnight at Bumthang.</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> Bumthang
								</p>
								<p class="aj">In the morning visit Kurjey Lhakhang, one of the most sacred place in the kingdom where Bhutan’s patron saint Guru Rimpoche meditated and 7th century Jambay Lhakhang. It dates back to the origins of Buddhism in Bhutan and is one of the Kingdoms oldest temples. After lunch, visit Jakar Dzong and Tamshing Lhakhang, founded by Pemalingpa and containing interesting and ancient Buddhist wall paintings. Afterwards enjoy exploring the village of Jakar, Bumthang’s main township. Overnight at Bumthang.</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> Bumthang
								</p>
								<p class="aj">Return to experience more of the festivities at Jambay Lhakhang, or enjoy an excursion to Tang Valley, the most remote valley in the Bumthang district. Activities may include a 45 minute walk uphill to Ugyen Chholing Palace, built in the 16th century by the Trongsa Penlop Tshokey Dorji. The main building in the complex now features a fascinating museum offering a real insight into the lifestyle of a Bhutanese noble family. You may also visit 14th century Tang Rimochen Lhakhang where Guru Rinpoche meditated and Mebar Tsho (Burning Lake), where some of Guru Rinpoche’s treasures were found in the 15th century by the famous treasure discover Pema Lingpa. It’s a good location to meditate. Overnight at Bumthang.</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> Bumthang - Punakha
								</p>
								<p class="aj">In the morning visit visit Kurjey Lhakhang, one of the most sacred places in the kingdom where Bhutan’s patron saint Guru Rimpoche meditated. Afterwards drive to Punakha, stopping for lunch along the way. Overnight at Punakha.</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> Punakha - Paro
								</p>
								<p class="aj">In the morning drive to Yabesa village and hike to through rice fields and up to Khamsum Yueley Namgyal Chorten, built by her majesty the queen Ashi Tshering Yangdon Wangchuk. Take a picnic lunch on a picturesque riverside before exploring the Wangduephodrang Dzong. Built in 1639 the strategically located Dzong is perched on a spur at the confluence of two rivers.<br />
<br />
In the evening take a stroll through Paro town. The town is flooded with handicraft shops catering to tourist interest. There also fake jewelry shops. Bargaining is accepted and part of business deals.</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> Paro
								</p>
								<p class="aj">Hike to Tiger`s Nest, one of the most sacred Taktshang monasteries in Bhutan. It is perched on the cliff where Guru Rinpoche is said to have flown to the site riding on a tigress. He subsequently meditated here for three months. You can have lunch at the Taktshang cafeteria from where you get a spectacular view of the monastery.<br />
<br />
In the afternoon drive to the ruins of the 17th Century Drukgyel Dzong, an historic monument built by the Zhabdrung to commemorate his victory against invading Tibetans in 1644. In fine weather the towering peak of the sacred Mount Jomolhari (7314m) appears as a stunning backdrop. On the return drive to Paro, visit 7th Century Kyichu Lhakhang, one of the 108 temples constructed by the Tibetan king Songtsen Gampo. Overnight at Paro.</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 10:</b> Paro - International Airport
								</p>
								<p class="aj">The guests will be Seen Off by a Representative of our company and the Tour Guide at the Exit Gate. Wish Bon Voyage!!!</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>2 Star Hotel</li>
																		<li>3 Star Hotel</li>
																		<li>4 Star Hotel</li>
																		<li>5 Star Hotel</li>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Private Cab</li>
																		<li>Private Guides</li>
																		<li>Entry Tickets</li>
																		<li>Sim Card</li>
																		<li>Complimentary Drinks</li>
																		<li>Bus Transfer</li>
																		<li>Cab Transfer</li>
																		<li>Stay Included</li>
																		<li>Non Veg Meals</li>
																		<li>Veg Meals</li>
																		<li>Veg & Non Veg Meals</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Air Tickets, Guide and Driver tips and Personal expenses</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>All Seasons  Awaits<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<header>
<h1>Cancellation Policy</h1>
</header>

<p><strong>Tour programs booked and subsequently cancelled shall be subject to cancellation charges as follows:</strong>

<table>
	<tbody>
		<tr>
			<td>1</td>
			<td>Within 45 days of the start of the tour program</td>
			<td>15% of the total tour cost</td>
		</tr>
		<tr>
			<td>2</td>
			<td>Within 30 days</td>
			<td>25% of the total tour cost</td>
		</tr>
		<tr>
			<td>3</td>
			<td>Within 21 days</td>
			<td>30% of the total tour cost</td>
		</tr>
		<tr>
			<td>4</td>
			<td>Within 15 days</td>
			<td>50% of the total tour cost</td>
		</tr>
		<tr>
			<td>5</td>
			<td>Less than 7 days</td>
			<td>100% of the total tour cost</td>
		</tr>
	</tbody>
</table>

<h5>*&nbsp;DELAYED ARRIVAL/DEPARTURE</h5>

<ul>
	<li>There shall be no fixed charge for the number of days of delay in arrival of visitors due to weather conditions, Druk-air problems or road blocks except for minimum charge on hotel cancellation, transport and guide.</li>
	<li>There shall be no charge for the number of days of delay in departure of visitors due to weather conditions, Druk-Air problems or roadblocks. They will be charged only the actual expenses on accommodation, food, transport, guide and any other services required.</li>
</ul>

<p><strong>DRUK AIR CANCELLATION POLICY:</strong>

<ul>
	<li>Tickets issued and cancelled shall be subject to cancellation charges as follows:</li>
	<li>Within 45 days of the start of travel: no charges except documentation fees</li>
	<li>Within 30 days of the start of travel: 50% of the fare</li>
	<li>Within 15 days of the start of travel: 100% (No refund)</li>
	<li>Name Change: USD 25 per ticket</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.exoticvacationsbhutan.biz/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Jambay Lhakhang Drup 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="126681"/>
						</form>
						</div>
						
						";i:1;s:65:"Book Jambay Lhakhang Drup Tour - 9 Nights / 10 Days Tour Packages";i:2;s:154:"book jambay lhakhang drup tour - 9 nights / 10 days tour packages, festive & events tour packages, thimphu, paro, punakha, trongsa, bumthang tour packages";i:3;s:210:"Book Jambay Lhakhang Drup Tour - 9 Nights / 10 Days tour packages from Exotic Vacations Bhutan - Get attractive 9 Nights / 10 Days Festive & Events  tour packages for  Thimphu, Paro, Punakha, Trongsa, Bumthang.";i:4;s:540:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Punakha, Trongsa, Bumthang"        
		                 },
		      "description": "15% discount those who contact directAir Tickets, Guide and Driver tips and Personal expenses11-0431-12",
		      "name": "Jambay Lhakhang Drup Tour",
		      "telephone": "+975-77685791"
		    }
		    </script>
			";i:5;N;}