a:6:{i:0;s:19984:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Amazing Bhutan Package Tour</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.hillquientours.in/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.hillquientours.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Amazing Bhutan Package Tour</p>
						</div>
						</div>
						</section>
										<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Thimphu, Paro, Punakha</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.hillquientours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Amazing Bhutan Package Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="190718"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_19/565611/300296.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_19/565611/300296.jpg"  width="150" height="100"    alt="Amazing Bhutan Package Tour" title="Amazing Bhutan Package Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<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> WELCOME TO BHUTAN AND TRANSFER TO THIMPHU (2 HRS DRIVE)
										</p>
										<p class="aj">Meet & greet on arrival for your Bhutan Package Tour and as the aircraft enters the Paro valley, look down and you will see theParo Dzong on the hillside overlooking Paro Chu (river) with Ta Dzong. You will be received by our representative at the Paro Airport and on the way to Paro, halt at Chojum to take photographs of confluence of two rivers of Bhutan, Thumpu Chu and Paro Chu. Reach Thimphu and enjoy the sightseeings.<br />
Trashi Chhoe Dzong - Also called Fortress of the Glorious Religion it is situated on north of the city on west bank of the Wang Chhu. The Dzong was the site of the lavish formal coronation of the fifth King in 2008 and hosts the city's biggest annual bash, the colorful tsechu festivities. The opening times 5-6PM Mon-Fri, 8AM-6PM on Sat & Sun.<br />
<br />
National Library - Housing an extensive collection of priceless Buddhist manuscripts; the Institute for Zorig Chusum (commonly known as the PaintingSchool) is where students undergo a 6-year training course in Bhutan's 13 traditional arts and crafts.<br />
N/Stay 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 SIGHTSEEING
										</p>
										<p class="aj">After breakfast, we go for a full day Thimphu Sightseeing Tour - one of the smallest capital in the world.<br />
Buddha View Point - A place from where you can get a good overview of the Thimphu valley is from the Buddha point (Kuensel Phodrang). You can pay your obeisance and offer prayers to the Buddha, the largest statue in the country and then walk around and take a glimpse of the valley.<br />
Memorial Chorten - Also known as the Thimphu Chorten, The Memorial Chorten (a stupa dedicated to world peace and prosperity in 1974 in memory of the Third King of Bhutan).<br />
SAARC Building - Guest will also visit to Wonderful SAARC Building .<br />
Takin Mini Zoo - The Takin is the national animal of Bhutan, and looks like a cross between a cow and a goat. Legend has it that the animal was created by the great Buddhist yogi, Drupa Kunley, and it can be found only in Bhutan. In the evening, return to your hotel and rest overnight after dinner.<br />
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> TRANSFER TO PUNAKHA & SIGHTSEEING
										</p>
										<p class="aj">After breakfast, start for Punakha Tour. on the way visit :<br />
Dochula View Point - The first stop after leaving Thimphu on the journey is Dochu La pass around 3100 m high and way above the clouds. Only an hour's drive from Thimphu, it offers visitors their first glimpse of the Eastern Himalayan range. From the pass the road curls its way down into the relative lowlands of the Punakha Valley. Before Thimphu was made the permanent capital of Bhutan.<br />
Punakha Dzong - Beautiful Punakha Dzong (known as the "the palace of great happiness") located at the confluence of the Pho Chhu (father) and Mo Chhu (mother) rivers in the Punakha - Wangdue valley. the city's dzong is one of the most picturesque of all Bhutan's ancient fortresses The dzong is joined to the mainland by an arched wooden bridge, and contains many precious relics from the days when successive kings reined the kingdom from this valley.<br />
Changangkha Lhakhang - At Thimphu you will go across several monasteries and temples. Changangkha Lhakhang is among the most important religious structures in Thimphu. The structure dates back to the 15th century and is one of the oldest in the region. The structure is dedicated to Avalokiteshvara, the sign of compassion. You will also enjoy the grand view of Thimphu valley from here.<br />
Suspension Bridge - Visit the hidden treasure of Punakha Valley,the longest suspension bridge over River Mo.<br />
Wangdue - After crossing the Fo-Chu-Mo-Chu river, driver along the Wangdue phradong and visit newly developed small beautiful town, Bazo Town in Wangdue.<br />
Overnight stay at Hotel in 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> TRANSFER TO PARO & SIGHTSEEING
										</p>
										<p class="aj">This is your fourth day of Bhutan Tour Package with us. After breakfast start for Paro, around 2.5 - 3 hrs drive.and have lunch in Paro.after Lunch start for Paro local sight seeing.<br />
Simtokha Dzong - is a small Dzong, Built in 1629 by Zhabdrung Ngawang Namgyal, who unified Bhutan, the dzong is the first of its kind built in Bhutan. An important historical monument and former Buddhist monastery, today it houses one of the premier Dzongkha language learning institutes.<br />
National Museum of Bhutan - Situated right above Rinpung Dzong in Paro, the National Museum of Bhutan is a house that showcases Bhutan's culture. Built in 1968, the museum stands inside the ancient Ta-dzong building. The museum houses the collection of finest specimens of Bhutanese culture and art and its highlights are paintings and some bronze statues, which are simply masterpieces. The items are demonstrated in large galleries and you can get to know a lot about Bhutan's art and culture from these objects.<br />
Ta Dzong - Ta Dzong, once a watchtower, built to defend Rinpung Dzong during inter-valley wars of the 17th century, Ta Dzong was inaugurated as Bhutan's National Museum in 1968.<br />
Rinpung Dzong - Built in 1646 by Shabdrung Ngawang Namgyal , the first spiritual and temporal ruler of Bhutan, the Dzong houses the monastic body of Paro, the office of the Dzongda (district administrative head) and Thrimpon (judge) of Paro district. The approach to the Dzong is through a traditional covered bridge called Nemi Zam.<br />
Nya Mey Zam Bridge - "The Bridge with No Fish" is the bridge that connects Paro Town to Dzong. It is one of finest specimens in Bhutan and local believes if one sees a fish in the river , it is ill omen..The earlier bridge which could be folded during war was washed away by flood in 1969.<br />
Paro Airport View Point - This is finest valley view point to look after Paro Valley and Paro Airport . This view point overlooking the Paro river along with the all the Dzongs and Monastry.<br />
Overnight at Hotel in 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 5:</b> VISIT TAKSANG MONASTERY (TIGER'S NEST TEMPLE)
										</p>
										<p class="aj">Drukgyal Ruin Dzong - Originally a fortress and Buddhist monastery, it is now in ruins and is located in the upper part of Paro valley. The Dzong was built by Tenzin Drukdra in 17th century 'fortress of victory' built to commemorate the victory of the Bhutanese over the invaders from Tibet.<br />
Taksang Monastery (Tiger's Nest Temple) - The most famous of Bhutanese monasteries. It is said that Guru Rinpoche arrived here on the back of a tigress and meditated at this monastery hence it is called Tiger's Nest. Precariously perched on the edge of 1,200 metre cliff, this monastery creates an impressive sight, and is the unofficial symbol of Bhutan. Bhutan Package Tour From AhmedabadIt is about 2 hour up-hill hike or ride a horse from the parking lot to the monastery. If the full hike sounds a bit tough you can hike for 1 hour to the cafeteria, a wooden tea-house restaurant which offers a good view of the monastery. After a visit to the monastery spend the evening at leisure in Paro town for some souvenir shopping and get a feel of local Paro town.<br />
Kyichu Lhakhang -also known as Kyerchu Temple or Lho Kyerchu is an important Himalayan Buddhist temple situated in Lamgong Gewog of Paro District in Bhutan. The Jowo Temple of Kyichu is one of the oldest temples in Bhutan, originally built in the 7th century by the Tibetan Emperor Songsten Gampo.<br />
Overnight stay in 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> DEPART FOR PARO AIRPORT
										</p>
										<p class="aj">After early breakfast, start for Paro Airport with a sweet Bhutan Holiday Tour memory and cherish ur memories forever...</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>MAP (Room + Breakfast + Lunch/Dinner)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>Some Advance Percentage of total booking amount</li><li>
Airfare/Transport fare to be paid full at one time in advance.</li></ul>					
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
								
						<ul><li>Upon cancellation, refund will be made after deducting the Retention Amount.</li><li>
Retention Amount varies as per the number of days left before your package start date.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.hillquientours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Amazing Bhutan Package 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="190718"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/darjeeling-tour-packages.htm" title="Darjeeling Tour Packages">Darjeeling</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/gangtok-tour-packages.htm" title="Gangtok Tour Packages">Gangtok</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/agra-tour-packages.htm" title="Agra Tour Packages">Agra</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/new-delhi-tour-packages.htm" title="New Delhi Tour Packages">New Delhi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/jaipur-tour-packages.htm" title="Jaipur Tour Packages">Jaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/punakha-tour-packages.htm" title="Punakha Tour Packages">Punakha</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/thimphu-tour-packages.htm" title="Thimphu Tour Packages">Thimphu</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/kalimpong-tour-packages.htm" title="Kalimpong Tour Packages">Kalimpong</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/lachen-tour-packages.htm" title="Lachen Tour Packages">Lachen</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/paro-tour-packages.htm" title="Paro Tour Packages">Paro</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.hillquientours.in/pelling-tour-packages.htm" title="Pelling Tour Packages">Pelling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.hillquientours.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(1)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:66:"Book Amazing Bhutan Package Tour - 5 Nights / 6 Days Tour Packages";i:2;s:129:"book amazing bhutan package tour - 5 nights / 6 days tour packages, adventure tour packages, thimphu, paro, punakha tour packages";i:3;s:171:"Hill Quien Tour & Travels offers Amazing Bhutan Package Tour - 5 Nights / 6 Days tour package, budget Adventure tour packages for Thimphu, Paro, Punakha at exciting price.";i:4;s:421:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Punakha"        
		                 },
		      "description": "",
		      "name": "Amazing Bhutan Package Tour",
		      "telephone": "+91-9002414014"
		    }
		    </script>
			";i:5;N;}