a:6:{i:0;s:14711:"				<div class="h1"><h1>Spirit of Bhutan 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>Spirit of Bhutan 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">03</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Thimphu, Paro, Punakha</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						USD 1755 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="Spirit of Bhutan 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="126642"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					15% discount will be offered to those who contact directlyAir Tickets<br />
Guide and Driver tips<br />
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 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 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 2:</b> PARO - THIMPHU
								</p>
								<p class="aj">After breakfast, drive to Thimphu - world's smallest capital. Upon arrival at Thimphu you will start 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. 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. Overnight at 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 3:</b> THIMPHU - PUNAKHA
								</p>
								<p class="aj">Today you drive to Punakha, an ancient capital of Bhutan over the Dochu - La pass (3,100 meters), which on a clear day offers an incredible view of Himalayan peaks before descending into balmy Punakha valley. In the Dochu - La area there are vast Rhododendron forests that grow to tree size and bloom in late April/early May covering the mountains in a riot of glorious spring colour.<br />
<br />
On arrival at Punakha, visit Punakha Dzong, the "Palace of Great Happiness" built in 1637 by the Shabdrung, the 'Unifier of Bhutan'. It is situated at the confluence of the Mo Chu and Pho Chu (Mother and Father Rivers) and is the winter headquarters of the Je Khenpo and hundreds of monks who move en masse from Thimphu to this warmer location. It was here in 1907 that Bhutan's first king was crowned. 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
								</p>
								<p class="aj">After breakfast 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.<br />
<br />
Afterwards drive back into the Punkha valley for a short walk to Chimi Lhakhang, temple of the Drukpa Kuenly who is also known as the Divine Madman. He inherited the Divine Madman title since he revolted against the orthodox Buddhism in his time. He is considered a symbol of fertility and most childless couples go to his temple for blessing. 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 5:</b> PUNAKHA - PARO
								</p>
								<p class="aj">Today drive back to Paro Valley. The Paro Valley is home to many of Bhutan's old monasteries and temples. The country's only Airport is in Paro. The valley is also home to mount Chomolhari (7,300 meters) situated at the northern end of the valley whose glacier water forms the Pachu flowing through the valley. The following are some of the prominent places to visit in Paro. Paro Dzong also known as Rinpung Dzong, this 15th century massive fortress/monastery, is also the administrative center of the dzonkhag. A morning drive, north of Paro valley brings us to the ruins of Drukgyal Dzong. Built in 1647 by the great Shabdrung Ngawang Namgyal, father and unifier of medieval Bhutan, the Dzong was destroyed by an accidental fire and left in ruins as an evocative reminder of the great victories it was built to commemorate.Explore the ramparts and relive the memories of a glorious past.</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> PARO - HAA
								</p>
								<p class="aj">Drive to Haa through Chele La Pass (3,988 m) where you will enjoy an panoramic views of the Paro and Haa valley. You can also have a picnic at Chele La if you like to. In Haa, some sightseeing and then going to katsho village and visiting the Katso Lhakhang. The extraordinarily beautiful Haa Valley is newly opened to Tourists in 2002 and Haa is the least visited valley in Bhutan due to the lack of Tourist infrastructure). In the late afternoon transfer to Paro for overnight.</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> HIKE TO PARO TAKTSHANG
								</p>
								<p class="aj">After breakfast hike to Tiger's Nest, one of the most sacred Taktshang monasteries in Bhutan. The trail is broad and the walk of approximately 1.5 to 2 hours uphill takes you almost a kilometer above the Paro valley. It is perched on the cliff where Guru Rimpoche is said to have flown here on the back of a tigress when he brought the teachings of the Buddhist Dharma to Bhutan in the 8th Century. He subsequently meditated here for three months. The cave is said to be the origin of Buddhism in Bhutan. Nearby there is a teahouse where you can stop for refreshments before returning to Paro for lunch.<br />
<br />
Return to Paro, where we may have more time for stroll around the town. Farewell dinner in the evening. 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 8:</b> DEPART PARO
								</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</li><li>
Guide and Driver tips</li><li>
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>*</h5>

<p><strong>&nbsp;DELAYED ARRIVAL/DEPARTURE</strong>

<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:<br />
Tickets issued and cancelled shall be subject to cancellation charges as follows:</strong>

<ul>
	<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="Spirit of Bhutan 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="126642"/>
						</form>
						</div>
						
						";i:1;s:60:"Book Spirit of Bhutan Tour - 7 Nights / 8 Days Tour Packages";i:2;s:126:"book spirit of bhutan tour - 7 nights / 8 days tour packages, hill station tour packages, thimphu, paro, punakha tour packages";i:3;s:166:"Exotic Vacations Bhutan offers Spirit of Bhutan Tour - 7 Nights / 8 Days tour package, budget Hill Station tour packages for Thimphu, Paro, Punakha at exciting price.";i:4;s:535:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Punakha"        
		                 },
		      "description": "15% discount will be offered to those who contact directlyAir Tickets
Guide and Driver tips
Personal Expenses11-0431-12",
		      "name": "Spirit of Bhutan Tour",
		      "telephone": "+975-77685791"
		    }
		    </script>
			";i:5;N;}