a:6:{i:0;s:38365:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Bhutan Tour  6 Days</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.pashupatinathtourandtravel.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.pashupatinathtourandtravel.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> Bhutan Tour  6 Days</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<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-->				
									<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_15/437729/276634.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_15/437729/276634.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/437729/276634.jpg"  alt="Bhutan Tour  6 Days" title="Bhutan Tour  6 Days" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
												
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">Bhutan Tour  6 Days</p>
					
											<p class="mb5px"><b>Duration :</b> 
						5 Nights / 6 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Thimphu, Paro, Punakha</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px"><i class="fa fa-inr"></i> 27000						</p>
						<p class="xxsmall alpha50">Per Person</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.pashupatinathtourandtravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bhutan Tour  6 Days - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="182428"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Arrive Paro Bhutan										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Fly Into Paro By Drukair Flight Bhutan Airlines . After Immigration and Customs Formalities, You Will Be Received By Your Local Bhutanese Tour Guide from Pashupatinath Tour & Travels and Then Travel to Your Hotel in Paro.<br />
after Checking Into Your Hotel in Paro and Refreshment Your Paro Sightseeing Tours Includes the Following:<br />
• Farm Houses in Paro Valley and a Visit to a Farm House Offers a Good Glimpse Into the Lifestyle of a Farmer and Where You Can Enjoy Authentic Bhutanese Lunch.<br />
• Kyichu Temple,One of the 108 Temples Built in the 7th Century By the Tibetan King Songsten Gampo. the Story Goes that a Giant Demon Lay Across the Whole Area of Tibet and the Himalayas and Was Preventing the Spread of Buddhism. to Overcome Her, King Songtsen Gampo Decided to Build 108 Temples, Which Would Be Placed On all the Points of Her Body.<br />
• Rinpung Dzong, Built in 1645 to Defend the Valley Against Tibetan Invaders. the Dzong is Now Being Used as An Administration Center and School for Monks.then Walk Down to Rimpung Bridge (traditonal Bridge), Oldest Bridge in Bhutan.<br />
in the Evening Stroll Around Paro Town and You May Visit Local Bhutanese Handicraft Stores. Dinner & Overnight At a Hotel in Paro.															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Paro –Thimphu and Thimphu tours										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Distance: 54 Km & Estimated Driving Time: 1 Hour<br />
after Breakfast, You Will Travel to Thimphu Which Will Take You Through Chunzom (confluence of Pachu- the River Flowing Through Paro Valley & Wangchu –the River Flowing Through Thimphu Valley). On the Way, Visit Tachog Lhakhang(temple) , this 14th Century Temple Located On the Base of a Mountain Across the Pa Chu On the Paro-thimphu Highway, is a Must Visit Temple in the Paro Valley. Built By the Great Master Architect Thangtong Gyalpo, the Temple Houses Some Unique Statues. to Get to the Temple One May Actually Walk Over the Iron Chains that Spans Over the Pa Chu.<br />
after Crossing Chunzom Which is Confluence of Paro and Thimphu Rivers, the Drive Will Take You Along the Wangchu ( Thimphu River) to Thimphu Valley.<br />
after Checking Into Your Hotel Visit the Following:<br />
• Bhutan Postal Museum-the Museum Tells the Story of Bhutan’s Progress and Development Through the Evolution of Communications and Postal System in the Country. also You Can Get Personalized Bhutanese Postage Stamps with Your Photo On Them. You Can Bring Along Your Own Photo to Make a Personalised Bhutanese Postage Stamps and You Can Use These Stamps On Your Postcard to Send to Your Family and Friends Back Home in Your Country.<br />
• National Textile Museum Which is a Good Place to See the Art of Traditional Weaving Being Kept Alive and Preserved Through Exhibition and Has a Good Collection of Old Textiles Which are Rich in Colors and Designs.you Will also See People Weaving with Intricate Designs.<br />
• School of Traditional Painting of Arts and Crafts Where Students Undertake a Six-year Course On the 13 Traditional Arts and Crafts of Bhutan.<br />
• Folk Heritage Museum– a Living Museum of Rural Life Which Provides Visitors and Tourists with Fascinating Insights Into the Bhutanese Material Culture and Way of Life. the Folk Heritage Museum is Set Inside a Three Storied, 19th Century Traditional House.<br />
after Lunch At Thimphu, Travel for About 40 Minutes to the Base Camp of Tango Monastery Which Lies North of Thimphu City with Packed Picnic Lunch. from the Base Camp Which is the End of Motor Road You Hike Up to the Monastery is Through the Forest Filled with Oak and fine Trees as Well as Rhododendron Flower Trees .<br />
the Tango Monastery Site Has Had Religious Significance Since the 12th Century When It Was the Home of the Highly Revered Buddhist Monks Who Brought the Drukpa Kagyupa School of Buddhism to Bhutan.<br />
the Tango Monastery Was Built in 1689 By Gyalse Tenzin Rabgyal. the Three-storied Monastery Was Built with the Help of the Locals and Was Completed Within Two Months.<br />
at Present Tango Monastery is the Center for Higher Studies for Monks. the View from Tango Monastery is Breathtakingly Beautiful. You Will Experience Complete Peace and Serenity in this Area. After Visiting the Monastery, Walk Back to the Road and Then Travel Back to Thimphu.<br />
overnight At a Hotel in Thimphu.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Thimphu-Punakha/Wangdue and Punakha Tours and sightseeings										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Distance: 71 Km & Estimated Driving Time: 2 ½ Hours<br />
after Breakfast, Travel to Punakha & Wangdue Through Dochula Pass 3140 M). in the Clear Spring Sky, You Can Enjoy the Panoramic View of the Himalayan Mountain Ranges. . Then Pass By the Beautiful 108 Chortens Built On the Hill By Her Majesty Ashi Dorji Wangmo Wangchuck (queen Mother of Bhutan) for the Security and Well Being of His Majesty, the King of Bhutan.<br />
you Will also Visit Druk Wangyal Lhakhang (monastery) Which Was Built By Ashi Dorji Wangmo Wangchuck ( the Queen Mother of Bhutan) as a Tribute to His Majesty the Fourth King of Bhutan, Jigme Singye Wangchuck and Armed Forces After His Majesty Led a Successful Operation Against Indian Militants Who Had Occupied Certain Areas of Bhutan. the Gallery of the Druk Wangyal Lhakhang Has Beautiful Murals Depicting Some of the Important Events in the Reigns of the Kings of Bhutan. this is a Unique Feature of this Monastery that No other Monastery in Bhutan Has.<br />
then Travel Onto Punakha. Punakha Has Been Inextricably Linked to Some of the Most Momentous Events in the Bhutanese History and Deserves Its Reputation as One of the Most Beautiful and Significant Regions At the Heart of Bhutanese Culture. Punakha Had Served as the Capital of Bhutan from 1637 Till 1907 and the 1st National Assembly Was Held There. the Dzong is Historically Important and Stands as the Symbol for a Unified Bhutan. <br />
on the Way, Stop for Lunch At Metsina Village and Then Visit the Devine Madman’s Monastery-chhimi Lhakhang, Famously Known for Its Fertility Shrine, Where One Can Receive a Special Fertility Blessing. Then Visit the Punakha Dzong, Located On the Island of the Pho - Chu (male River) and the Mochu (female River). the Dzong Was Built in 1637 By Zhabdrung Ngawang Namgyal (the Person Who Unified Bhutan) to Serve as the Religious and Administrative Seat of the Region. It Was Here that the Dual System of Government Was Introduced in the 17th Century and in 1907, Enthroned the First King Gongsar Ugyen Wangchuck. Damaged Over the Centuries By Four Catastrophic Fires and An Earthquake, the Dzong Has Been Fully Restored in the Recent Years By the 4th King Jigme Singye Wangchuck. At the Dzong, You Can See the Highest Standards in Woodwork. <br />
in the Drive Through Upper Punakha Valley and Take a Hike Through Farmhouses to the Beautiful Khamsum Yuelley Namgyal Lhakhang (temple) Built By Ashi Tshering Yangdon Wangchuck (the Queen Mother of Bhutan) for Peace and Stability in this Ever-changing World. this Temple is Situated On the Hilltop Overlooking the Valley Below. the Leisurely Walk Up to the Temple Would Take About An Hour. Visit the Temple and also Enjoy the Breathtakingly Beautiful View from There.<br />
overnight a Hotel in Punakha.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> Punakha-Thimphu and Thimphu tour										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Distance: 71 Km , Estimated Driving Time : 2 ½ Hour<br />
after Breakfast , Continuing Your Bhutan Travel and Bhutan Trip Takes You to Thimphu and After Lunch Visit the Following:<br />
• takin Preserve, Which Houses the National Animal the Takin that is Only Found in Bhutan. This is An Extremely Rare Member of the Goat Family. Found in Herds in the Very High Altitudes (13,125ft and Over). They Live On a Diet of Grass and Bamboo. It Can Weigh as Much as 550 Pounds.<br />
• witness Archery Game (national Sport of Bhutan) At the Changlimithang National Satdium.<br />
• kuenselphodrang (commonly Known as Buddha Point) Where the Largest Buddha Statue in the Country is Perched On the Hillock Overlooking the Thimphu Valley and Enjoy the Magnificent Few of Thimphu Valley and Mountain Peaks.<br />
• tashichhoe Dzong, a Fortress of the Glorious Religion. It Was Built in 1641 By Zhabdrung Ngawang Namgyel and Was Reconstructed Into Present Structure By the Late King, His Majesty Jigme Dorji Wangchuck in the Year 1962-1969. It Houses the Secretariat Building, the Throne Room and the Office of the King, and the Central Monk Body.<br />
• national Memorial Chorten, Chorten Literally Means ' Seat of Faith' and Buddhists Often Call such Monuments the 'mind of Buddha'. Meet the Elderly Local in Circumambulation At the National Memorial Chorten.<br />
• craft Bazaar -a One Stop Place to Witness Bhutanese Culture and Buy Bhutan Made Art and Craft Product. The Bazaar in Its 80 Stalls Covers all Aspects of the Traditional Arts and Crafts of Bhutan. At this Bazaar Craftsmen and Artisans from Across the Country Display and Sell Their Handicrafts. And also Visit other Handicraft Stores in Thimphu City.<br />
Dinner and Overnight At a Hotel in Thimphu.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 5											
											:</b> Thimphu-Paro & A Hike to Paro Taktsang Ghoempa(Tiger’s Nest Monastery)										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast Drive to Paro for About 1 Hour and Hike Up to Taktsang Monastery, also Known as ‘tiger’s Nest’. The Hike to Tiger's Nest Will Surely Be the Highlight of Your Bhutan Tour and Bhutan Trip as It Was for Many Who Visited Bhutan. The Gradual Climb Up to the Viewpoint Will Take Around 1 ½ Hours and from There You Will Enjoy a Spectacular View of the Monastery Clinging to the Side of the Cliff. Stop for Refreshment At the View Point Cafeteria.then Walk Further Up to the Monastery Which Will Take Another 1 ½ Hour. It is Said that in the 8th Century Guru Rinpoche Flew On the Back of a Tigress from Eastern Bhutan to this Place and Meditated in a Cave Here for 3 Months. The Principal Lhakhang (monastery) of the Present Monastic Complex Dates from 1692. Taktsang Was Damaged Severely By Fire in 1998 But Has Now Been Fully Restored to Its Former Glory.after Visiting the Monastery, Walk Back Down to the Road On the Way Stop for Lunch At the View Point Cafeteria and Then Walk Further Down to the Road Point.<br />
Then You Will Drive Up the Paro Valley to Visit Drukgyel Dzong ( in Ruins), a 17th Century Fortress that Used to Keep Invading Tibetan Forces At Bay and It Was Destroyed By Fire in 1951.<br />
In the Evening You May Relax in the Traditional Hotstone Bath.<br />
Dinner and Overnight At a Hotel in Paro.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 6											
											:</b> Departure from Paro Bhutan										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After Breakfast, Drive to the Paro International Airport and Your Tour Guide from Om-mani Tours and Travel( Your Bhutan Travel Agent) Will See You Off At the Paro International Airport for Your Flight to Your Onward Destinations.<br />
End of the Bhutan Tour			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<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>
																				<li>bhutan Government Royalty of US$ 85/person/night</li><li>
FIT surcharges of US$55/person/night for a single traveler and US$45/person/night for a double</li><li>
Twin sharing hotel rooms at 3 star hotels</li><li>
All meals ( breakfast, lunch, dinner & light refreshments) at 3 star hotels/tourist standard restaurants </li><li>
English speaking tour guide service</li><li>
All transfers and excursions by private vehicles</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Single room supplement of US$40/room/night during low season and US$ 50/room/night during high season (optional)</li><li>
Bhutanese Tourist Visa fee of US$40/person (must be paid in advance with tour cost)</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 
* 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">Price &amp; Rates</p>
						</div>				
				        <table class="mb15px bdrall bdreee w100 p5px15px formTable">
			            	<tr class="headVr b">
			                	<td class="p5px10px">No of pax</td>
			                    <td class="p5px10px">Age Limit</td>
			                    <td class="p5px10px">Price per pax (Rs)</td>
			                </tr>

															<tr>
				            	<td class="p5px10px">Adult</td>
				                <td class="p5px10px">Above 12 years</td>
				                <td class="p5px10px">
			                				                		<b class="webrupee">INR</b>
			                					                	<b>27000</b> <small>/
			
			                		Adult			
			                	( With Tax )			
			                		
			                	</small></td>
				            	</tr>
				            					         </table>
						</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. 
* 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.pashupatinathtourandtravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bhutan Tour  6 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="182428"/>
						</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.pashupatinathtourandtravel.in/packages-in-pokhara.htm" title="Packages in Pokhara">Pokhara</a> <b class="alpha50 bn small">(24)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-kathmandu.htm" title="Packages in Kathmandu">Kathmandu</a> <b class="alpha50 bn small">(22)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-gorakhpur.htm" title="Packages in Gorakhpur">Gorakhpur</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-jomsom.htm" title="Packages in Jomsom">Jomsom</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-lumbini.htm" title="Packages in Lumbini">Lumbini</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-chitwan.htm" title="Packages in Chitwan">Chitwan</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-thimphu.htm" title="Packages in Thimphu">Thimphu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-punakha.htm" title="Packages in Punakha">Punakha</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-nagarkot.htm" title="Packages in Nagarkot">Nagarkot</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-paro.htm" title="Packages in Paro">Paro</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.pashupatinathtourandtravel.in/packages-in-prayagraj.htm" title="Packages in Prayagraj">Prayagraj</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.pashupatinathtourandtravel.in/packages-in-gangotri.htm" title="Packages in Gangotri">Gangotri</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.pashupatinathtourandtravel.in/packages-in-janakpur.htm" title="Packages in janakpur">janakpur</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.pashupatinathtourandtravel.in/packages-in-rudraprayag.htm" title="Packages in Rudraprayag">Rudraprayag</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.pashupatinathtourandtravel.in/packages-in-badrinath.htm" title="Packages in Badrinath">Badrinath</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.pashupatinathtourandtravel.in/packages-in-nyalam.htm" title="Packages in Nyalam">Nyalam</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.pashupatinathtourandtravel.in/packages-in-haridwar.htm" title="Packages in Haridwar">Haridwar</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.pashupatinathtourandtravel.in/packages-in-barkot.htm" title="Packages in Barkot">Barkot</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.pashupatinathtourandtravel.in/packages-in-joshimath.htm" title="Packages in Joshimath">Joshimath</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.pashupatinathtourandtravel.in/packages-in-chitrakoot.htm" title="Packages in Chitrakoot">Chitrakoot</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.pashupatinathtourandtravel.in/packages-in-uttarkashi.htm" title="Packages in Uttarkashi">Uttarkashi</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.pashupatinathtourandtravel.in/packages-in-yamunotri.htm" title="Packages in Yamunotri">Yamunotri</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.pashupatinathtourandtravel.in/packages-in-paryang.htm" title="Packages in Paryang">Paryang</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.pashupatinathtourandtravel.in/packages-in-kedarnath.htm" title="Packages in Kedarnath">Kedarnath</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.pashupatinathtourandtravel.in/packages-in-varanasi.htm" title="Packages in Varanasi">Varanasi</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.pashupatinathtourandtravel.in/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(16)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/group-holidays-catid.htm" title="Group Packages">Group</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/family-holidays-catid.htm" title="Family Packages">Family</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(10)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/luxury-holidays-catid.htm" title="Luxury Packages">Luxury</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.pashupatinathtourandtravel.in/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.pashupatinathtourandtravel.in/adventure-sports-holidays-catid.htm" title="Adventure Sports Packages">Adventure Sports</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.pashupatinathtourandtravel.in/abseiling-holidays-catid.htm" title="Abseiling Packages">Abseiling</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.pashupatinathtourandtravel.in/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</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.pashupatinathtourandtravel.in/trekking-holidays-catid.htm" title="Trekking Packages">Trekking</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.pashupatinathtourandtravel.in/affordable-budget-holidays-catid.htm" title="Affordable & Budget Packages">Affordable & Budget</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.pashupatinathtourandtravel.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 spanlist dn"><a class="dif" href="http://www.pashupatinathtourandtravel.in/boating-holidays-catid.htm" title="Boating Packages">Boating</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.pashupatinathtourandtravel.in/biking-holidays-catid.htm" title="Biking Packages">Biking</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.pashupatinathtourandtravel.in/angling-holidays-catid.htm" title="Angling Packages">Angling</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.pashupatinathtourandtravel.in/elephant-safari-holidays-catid.htm" title="Elephant Safari Packages">Elephant Safari</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.pashupatinathtourandtravel.in/artificial-wall-climbing-holidays-catid.htm" title="Artificial Wall Climbing Packages">Artificial Wall Climbing</a> <b class="alpha50 bn small">(2)</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>
				</div>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Thimphu, Paro, Punakha</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.pashupatinathtourandtravel.in/tour-packages/bhutan-tour-agent.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_15/437729/269143.jpg"  alt="Bhutan Tour Agent" title="Bhutan Tour Agent"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.pashupatinathtourandtravel.in/tour-packages/bhutan-tour-agent.htm" title="Bhutan Tour Agent"><h3>Bhutan Tour Agent</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Thimphu, Paro, Punakha</p>
															<div class="mt10px small">
							<form name="pkg_179042" id="pkg_179042" method="post" action="http://www.pashupatinathtourandtravel.in/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.pashupatinathtourandtravel.in/tour-packages/bhutan-tour-agent.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Bhutan Tour Agent - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="179042"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</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:58:"Book Bhutan Tour  6 Days - 5 Nights / 6 Days Tour Packages";i:2;s:112:"book bhutan tour  6 days - 5 nights / 6 days tour packages,  tour packages, thimphu, paro, punakha tour packages";i:3;s:172:"Book Bhutan Tour  6 Days - 5 Nights / 6 Days tour packages from Pashupatinath Tour & Travels - Get attractive 5 Nights / 6 Days   tour packages for  Thimphu, Paro, Punakha.";i:4;s:413:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Punakha"        
		                 },
		      "description": "",
		      "name": "Bhutan Tour  6 Days",
		      "telephone": "+91-7318377725"
		    }
		    </script>
			";i:5;N;}