a:6:{i:0;s:17424:"				<div class="h1"><h1>Bhutan At A Glance Tour (4 Nights/5 Days)</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>Bhutan At A Glance Tour (4 Nights/5 Days)</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">01</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 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 1135 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Special discount  will be offered to the direct clients from above charged rates (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="Bhutan At A Glance Tour (4 Nights/5 Days) - 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="114289"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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_17/507122/186722.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507122/186722.jpg"  width="150" height="150"    alt="Bhutan At A Glance Tour (4 Nights/5 Days)" title="Bhutan At A Glance Tour (4 Nights/5 Days)" /></a></p></div></li>
																		<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_17/507122/186725.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507122/186725.jpg"  width="150" height="150"    alt="Bhutan At A Glance Tour (4 Nights/5 Days)" title="Bhutan At A Glance Tour (4 Nights/5 Days)" /></a></p></div></li>
																		<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_17/507122/186727.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/507122/186727.jpg"  width="150" height="150"    alt="Bhutan At A Glance Tour (4 Nights/5 Days)" title="Bhutan At A Glance Tour (4 Nights/5 Days)" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Day 01. Arrive at Paro – Thimphu<br />
Day 02. Thimphu – Punakha – Thimphu<br />
Day 03. Thimphu – Paro<br />
Day 04. Paro sightseeing (Excursion to Taktsang Monastery)<br />
Day 05. DepartureSpecial discount  will be offered to the direct clients from above charged rates (those who contact directly)Air tickets,Guide and Driver tips,Personal Expenses01-1231-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> BHUTAN AT A GLANCE TOUR (4 NIGHTS/5 DAYS)
								</p>
								<p class="aj">Arrive at Paro (2280 meters) – Thimphu (Altitude 2320 m, 54 km):<br />
You will be received by the Representative from Exotic vacations Bhutan at the airport and drive to Thimphu. On the way, view Tamchog Monastery built by Thangthong Gyalpo (Popularly known as Lama Chazampa, which literally means, the Iron Bridge builder) in the 15th century.<br />
<br />
Thang Thong Gyalpo (1385 – 1464) was a wonder working saint from Tibet who came to Bhutan in 1433 looking for Iron Ore. He built 108 bridges across Tibet and Bhutan, out of which 8 were built in Bhutan. His only surviving bridge is in Duksum (Tashi Yangtse in Eastern Bhutan).<br />
After lunch, visit National Postal Museum, which is worth a visit for you can get your own picture on Bhutanese stamp right then and there. Get a photo clicked then and there or give a photo of your dear ones and you will get personalized stamps in 5 minutes followed by a visit Memorial Chorten, a monument dedicated to the Third King of Bhutan. Late His Majesty, King Jigme Dorji Wangchuck. The inside paintings and statues provide a very rare insight into Buddhist Philosophy. Changangkha Monastery, Takin Preserve centre and Sangay Gang view point, the Largest and tallest statue of Buddha in the world and Tashichho Dzong. Dinner and overnight in Hotel Migmar or similar.</p>					
									<p><b>Meals : </b> AP (Breakfast,Lunch,Dinner)</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> BHUTAN AT A GLANCE TOUR (4 NIGHTS/5 DAYS)
								</p>
								<p class="aj">Thimphu – Punakha (1310 meters): (72 Km, 3 hrs drive) – Thimphu.<br />
After breakfast, drive to Punakha via Dochula pass. If the weather is clear, we stop for a while at Dochula pass to view Higher Himalayas. Drive further down and visit the Royal Botanical Garden at Lamperi.<br />
<br />
The Royal Botanical park, also known as the Rhododendron Garden at Lamperi is about half and hour drive towards Punakha/Wangdue. With your spirits still high from the visit to the awesome sites of Dochula Pass with its 108 stupas and the beautifully arranged Himalayan mountain ranges, you will descend down to Rhododendron Botanical Garden, a nature reserve rich in flora and fauna and beautiful in itself. After the almost surreal experience of the flutter of colorful prayer flags, the image of Dochula’s sublimity and a most wonderful sight where the earth touched the sky, you will be enthralled to find yourself amongst another similar natural environment: fresh air breeze, the twittering of the birds, distant barking of a Barking Deer that breaks the silence of the garden. The recorded species are the monal pheasants, blood pheasants, musk deer, tiger, leopard, red panda and the leopard cat. A Rhododendron garden with 46 species of the plant is the theme of the botanical garden. Located 30 KMS from capital, the park has numerous view points, a lake and a canteen. At this park, you can indulge yourself amongst these rich biodiversity.<br />
Drive further to Punakha. Enroute stop a while to view Chimi Lhakhang also called the “Temple of Fertility” built by Lama Drukpa Kuenley also popularly known as “Devine Mad man” in 15th century.<br />
<br />
Lama Drukpa Kuenley (1455 – 1529) was one of the Bhutan’s Favourite Saints who was born in Tibet, trained at Ralung Monastery and was a contemporary and a disciple of Pema Lingpa. He Travelled throughout Bhutan and Tibet as a “Neljorpa” (Yogi) using songs, humour and outrageous behavior to dramatise his teachings of Salvation through sex.<br />
After Lunch, visit Punakha Dzong built in 1637 by Shabdrung Ngawang Namgyal and is situated between Pho Chu (Male River) and Mo Chu (Female River). For many years until the time of the second king, it served as the seat of the Government. The construction of the Dzong was foretold by Guru Rimpoche, who predicted, “…a person named Namgyal will arrive at a hill that looks like an elephant”. There was a smaller building here called Dzong Chu (Small Dzong) that housed a statue of Buddha. It is said that Shabdrung ordered the architect, Zowe Palep, to sleep in front of the statue, while Palep was sleeping; the Shabdrung took him in his dreams to Zangtopelri and showed him the palace of Guru Rimpoche. From his vision, the architect conceived the design for the new Dzong, which in keeping with the tradition, was never committed to paper. The Dzong was named Druk Pungthang Dechen Phodrang (Palace of Great Happiness). The war materials captured during the battle with Tibetans are preserved here. Punakha is still the winter residence of Je-Khenpo and The third King; Jigme Dorji Wangchuk convened the First National Assembly here in 1952.<br />
<br />
In the evening, drive to Thimphu. Dinner and overnight in Hotel Migmar or similar.</p>					
									<p><b>Meals : </b> AP (Breakfast,Lunch,Dinner)</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> BHUTAN AT A GLANCE TOUR (4 NIGHTS/5 DAYS)
								</p>
								<p class="aj">Thimphu – Paro:  (Altitude 2320 m, Distance 58 km, Drive Time 1 hour):<br />
After breakfast, visit the National Library, which holds a vast collection of ancient Buddhist manuscripts followed by visit to Painting School, famous for carving and free hand art and Folk Heritage Museum.<br />
<br />
Drive to Paro. After lunch, visit the Ta dzong, an ancient watchtower, which has been, since 1967, the national museum of Bhutan then visit Rimpung Dzong (Paro Dzong) built in 1646 by Shabdrung Ngawang Namgyal. The Dzong presently houses administrative offices.  From here, take a short walk across a traditional cantilever bridge to one of the many archery grounds to be found in Bhutan. If you are lucky, you will catch a glimpse of archery match in action. Archery is the national sport.<br />
In the evening, visit to a farm house. Dinner and overnight in Tashi Namgay Resort or similar.</p>					
									<p><b>Meals : </b> AP (Breakfast,Lunch,Dinner)</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> BHUTAN AT A GLANCE TOUR (4 NIGHTS/5 DAYS)
								</p>
								<p class="aj">After early breakfast, Excursion to Taktsang Monastery: A short drive takes us to Satsam Chorten, the trail climbs through beautiful pine forest, many of the trees festooned with Spanish moss, and an occasional grove of fluttering prayer flags. We stop for a rest and light refreshments at the Taktsang Jakhang (cafeteria) and then walk a short distance until we see, clearly and seemingly within reach, Taktsang monastery. The primary Lhakhang was built around Guru Rimpoche’s meditation cave in 1684 by the Penlop of Paro, Gyaltse Tenzin Rabgay; this incredible monastery clings to the edge of a sheer rock cliff that plunges 900 meters into the valley below. Legend has it that Guru Padmasambhava, the tantric mystic who brought Buddhism to Bhutan in 747 AD, flew here on the back of a flying tiger, Dorji Drolo, said to be his favourite consort.<br />
<br />
NB: You can hoist prayer flags near the monastery, and offer your prayers inside the monastery.  You can also request lama to pray for you.<br />
<br />
In the evening, visit the Drukgyel Dzong, now in ruins was built by Shabdrung Ngawang Namgyal to commemorate the victory over the Tibetan invaders in1644; the dzong name’s means indeed “ victorious Druk “. The Dzong was used as an administrative center until 1951 when a fire caused by butter lamp destroyed it. Then visit Kyichu Lhakhang, one of Bhutan’s oldest and most sacred monasteries dating from the introduction of Buddhism in the 8th century.<br />
<br />
Srongsen Gampo: He was a Tibetan king who married a Chinese princess, Wenchen in 641, as a apart of her dowry was a statue called “Jowo” which was an Indian image of Buddha, Sakyamuni as a small boy. In 659, He decided to build 108 Temples in a single day to pin the Ogress to the earth forever and, at the same time, convert the Tibetan people to Buddhism. 6 of these Temples lie in Bhutan, most prominent of them are Jambay Lhakhang in Bumthang and Kichu Lhakhang in Paro. Kichu Lhakhang is said to hold the left foot of the Ogress and Jambay Lhakhang pins the left knee.<br />
Hot stone bath: One of the best ways to unwind after a long day in Bhutan is the hot stone bath. It is not only practiced as a comforting soak but also to treat various alignments.  Soaking in Menchu with (Water with medicinal properties) is one of the favorite activities for Bhutanese, especially during the winters. The cost for one bath is US$10.<br />
<br />
Dinner and overnight in Tashi Namgay Resort or similar.</p>					
									<p><b>Meals : </b> AP (Breakfast,Lunch,Dinner)</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> BHUTAN AT A GLANCE TOUR (4 NIGHTS/5 DAYS)
								</p>
								<p class="aj">Departure (Altitude 2280 m): Early morning, drive to the Airport and Farewell.</p>					
									<p><b>Meals : </b> AP (Breakfast,Lunch,Dinner)</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>3 Star Hotel</li>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Private Cab</li>
																		<li>Private Guides</li>
																		<li>Sim Card</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,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">Departure Cities with rates :</p>Peak season(March,April,May,September,October and November) Off season( January , February,June,July,August,December)<br /><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.exoticvacationsbhutan.biz/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bhutan At A Glance Tour (4 Nights/5 Days) - 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="114289"/>
						</form>
						</div>
						
						";i:1;s:80:"Book Bhutan At A Glance Tour (4 Nights/5 Days) - 4 Nights / 5 Days Tour Packages";i:2;s:140:"book bhutan at a glance tour (4 nights/5 days) - 4 nights / 5 days tour packages, valley tour packages, thimphu, paro, punakha tour packages";i:3;s:195:"Book Bhutan At A Glance Tour (4 Nights/5 Days) - 4 Nights / 5 Days tour packages from Exotic Vacations Bhutan - Get attractive 4 Nights / 5 Days Valley  tour packages for  Thimphu, Paro, Punakha.";i:4;s:784:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Punakha"        
		                 },
		      "description": "Day 01. Arrive at Paro – Thimphu
Day 02. Thimphu – Punakha – Thimphu
Day 03. Thimphu – Paro
Day 04. Paro sightseeing (Excursion to Taktsang Monastery)
Day 05. DepartureSpecial discount  will be offered to the direct clients from above charged rates (those who contact directly)Air tickets,Guide and Driver tips,Personal Expenses01-1231-12",
		      "name": "Bhutan At A Glance Tour (4 Nights/5 Days)",
		      "telephone": "+975-77685791"
		    }
		    </script>
			";i:5;N;}