a:6:{i:0;s:18325:"				<div class="h1"><h1>Black Necked Crane Festival 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>Black Necked Crane Festival 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">04</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						10 Nights / 11 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Thimphu, Paro, Wangdue Phodrang, Punakha, Trongsa, Bumthang</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						USD 6075 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">15% discount will be offered to those who contact directly</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="Black Necked Crane Festival 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="126671"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					15% discount will be offered to those who contact directlyAir 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 - Gangtey/Phobjikha
								</p>
								<p class="aj">Today we will drive to Phobjikha Valley through the bustling market town of Wangduephodrang and visit Wangduephodrang Dzong. Drive up a winding mountain road through oak and rhododendron forests, and over a high pass down into the picturesque Phobjikha Valley.<br />
<br />
Phobjikha is one of Bhutan's few glacial valleys, and chosen winter home of black necked cranes migrating from the Tibetan plateau. The valley is one of the most beautiful in Bhutan. After lunch visit Gangtey Gompa (Monastery), the only Nyingmapa monastery in western Bhutan. In the evening explore Phobjikha valley. Overnight at Phobjikha.</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> Punakha - Gangtey/Phobjikha
								</p>
								<p class="aj">After an early breakfast attend the Black-Necked Crane Festival. The festival features numerous cultural programs organized by the local community. These include students performing the crane dance and small stalls offering many colorful local items such as yak tail dusters, butter tea cups, turquoise and also different Bhutanese handicrafts for sale. This will also be ample time to view the Black Necked Cranes, visit the Information Centre and enjoy some of the many nature trails throughout the valley. Overnight at Phobjikha.</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> Gangtey/Phobjikha - Trongsa - Bumthang
								</p>
								<p class="aj">After an early breakfast, drive to Bumthang from Gangtey/Phobjikha 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 7:</b> Bumthang
								</p>
								<p class="aj">Enjoy a day exploring some of the incredible sites of Bumthang, including Jakar Dzong (Dzong of the white Bird) and Tamshing Lhakhang, founded in 1501 by Terton Pemalingpa (founder of the Nyingmapa sect) and containing interesting and ancient Buddhist wall paintings. Pemalingpa’s heavy coat of nails is kept in the Vestibule and people are permitted to try it on. It is said that if they can walk around the inner sanctuary three times while wearing it, some of their sins will be forgiven. Also visit Kurjey Lhakhang, one of the most sacred places in the kingdom where Bhutan's patron saint Guru Rimpoche meditated and Jambay Lhakhang, erected by the Tibetan king Songtsen Gampo in the 7th century. It dates back to the origins of Buddhism in Bhutan and is one of the Kingdoms oldest temples. 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 8:</b> Bumthang - Punakha
								</p>
								<p class="aj">After breakfast drive to Punakha crossing over Kiki La Pass & Yo-Tong La Pass. After a short break in Trongsa continue your drive to Punakha and en-route stop at Chendibji Chorten for lunch. After lunch drive across Pele la pass. 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 9:</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 10:</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 id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</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>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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="Black Necked Crane Festival 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="126671"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Black Necked Crane Festival Tour - 111 Days Tour Packages";i:2;s:169:"book black necked crane festival tour - 111 days tour packages, festive & events tour packages, thimphu, paro, wangdue phodrang, punakha, trongsa, bumthang tour packages";i:3;s:215:"Book Black Necked Crane Festival Tour - 111 Days tour packages from Exotic Vacations Bhutan - Get attractive 111 Days Festive & Events  tour packages for  Thimphu, Paro, Wangdue Phodrang, Punakha, Trongsa, Bumthang.";i:4;s:585:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Wangdue Phodrang, Punakha, Trongsa, Bumthang"        
		                 },
		      "description": "15% discount will be offered to those who contact directlyAir Tickets,Guide and Driver tips and personal expenses11-0431-12",
		      "name": "Black Necked Crane Festival Tour",
		      "telephone": "+975-77685791"
		    }
		    </script>
			";i:5;N;}