a:6:{i:0;s:13170:"				<div class="h1"><h1>Window To 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>Window To 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">02</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 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 1515 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 the direct clients</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="Window To 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="126635"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					15% discount will be offered to the direct clientsAir Tickets<br />
Guide<br />
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 - PARO
								</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 was here in 1907 that Bhutan's first king was crowned. After lunch, enjoy a 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 taught the people that religion is an inner feeling and it's not necessary that one should be an ordained monk. 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 4:</b> THIMPHU
								</p>
								<p class="aj">Continue sightseeing in Thimphu. Visit the nursing pen for the Takin, the national animal of Bhutan, and Tashichhodzong, 'the fortress of the glorious religion' housing some ministries, His Majesty's secretariat, and the central monk body. After that hike to Tango and Cheri Monasteries (45 mins), two of the most ancient monasteries in the Thimphu region. Overnight at your 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 5:</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. Perched high on a hill on the bank of the river, the Chorten houses paintings belonging to Nyingmapa Traditions.<br />
<br />
Drive back to Thimphu where you will have an opportunity to visit handicraft and souvenir stores. Afterwards proceed to Paro, visiting Semtokha Dzong en route. The Dzong, built in 1627, is the oldest in Bhutan. On arrival in Paro, check into the hotel. Evening stroll through the charming Paro town. 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 6:</b> HIKE TO PARO TAKTSHANG
								</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 />
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 7:</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>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</li><li>
Driver tips</li><li>
Personal expenses</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>All Season 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>

<p><strong>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="Window To 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="126635"/>
						</form>
						</div>
						
						";i:1;s:60:"Book Window To Bhutan Tour - 6 Nights / 7 Days Tour Packages";i:2;s:126:"book window to bhutan tour - 6 nights / 7 days tour packages, hill station tour packages, thimphu, paro, punakha tour packages";i:3;s:166:"Exotic Vacations Bhutan offers Window To Bhutan Tour - 6 Nights / 7 Days tour package, budget Hill Station tour packages for Thimphu, Paro, Punakha at exciting price.";i:4;s:524:"
			<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 the direct clientsAir Tickets
Guide
Driver tips
Personal expenses11-0431-12",
		      "name": "Window To Bhutan Tour",
		      "telephone": "+975-77685791"
		    }
		    </script>
			";i:5;N;}