a:6:{i:0;s:16523:"				<div class="h1"><h1>Mountain Biking 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>Mountain Biking 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">01</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Thimphu, Paro, Wangdue Phodrang</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						USD 1525 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">15% discount will be offered to those who contact direct</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="Mountain Biking 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="127014"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					15% discount will be offered to those who contact directAit Tickets<br />
Guide and Driver Tips and Personal Expenses16-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> Paro Arrival
								</p>
								<p class="aj">Total Distance 36 kilometers; 16 kilometers uphill, 16 kilometers downhill<br />
Paro: You will arrive at Paro Internatinal Airport via a Druk Air flight. Upon clearing immigration and customs you will be greeting with a traditional scarf welcome by one our travel host tour guide, from where we will proceed to your designated hotel for check - in. Once you are ready we will board our cycles and being our tour of Paro we will cycle to the picturesque town of Paro to the Paro Dzhong and its Ta Dzhong which is home to the Bhutanese national museum.<br />
<br />
Bhutan National Museum<br />
Visit the watch tower of Paro Dzong, which is home to the Bhutan National Museum. The museum literally preserves the history and culture of the land through ancient Bhutanese artifacts and history. Enjoy a rare collection of Bhutanese art, crafts, paintings and sculptures from a by - gone era carefully preserved for posterity. The museum is especially famous for the amazing range of colors and shades used in the fabrics on display many of which probably don’t even have a name.<br />
<br />
Paro Dzong<br />
You will then proceed to Rinpung Dzong also known as Paro Dzong, which means “fortress of the heap of jewels.” The monument was built in 1646 AD and is today the seat of the Bhutan Government. The monastery, by the way, is fully functional and is a classic example of a traditional abode in which “the church and the state” co - exist in harmony. Feel free to take lots of pictures as evidence! The historical and architecturally rich complex houses the administrative and religious headquarters for the Paro district. A short scene of Bernardo Bertolucci’s famous movie, “Little Buddha,” was shot inside this Dzong. Feel free to take a leisurely walk over to the Pachu river and cross over a traditional cantilever bridge, a wooden covered bridge, to the other side of the river.<br />
After visiting the 2 we will proceed towards the Drukgyel Dzhong.<br />
<br />
Drukgyel Dzhong<br />
The Drukgyel Dzhong is an abandoned 16th century fortress that was built by the legendary Bhutanese warrior Shabdrung Ngawang Namgyal to commemorate his victory over the Tibetan invaders. The Dzhong was abandoned after a fire destroyed it in 1951. On a clear day you have a spectacular view of mount Jomolhari from the village below the Dzhong.<br />
<br />
Kyichu Lhakahng Temple:<br />
The Kyichu Lhakahng Temple is one of the 108 temples that are believed to have been constructed by the Tibetan King Songtsent Gyanpo in the 8th century AD. These temples are believed to have constructed over the body of a demon that once upon a time held sway over the Himalayas and stopped to the spread of Buddhism in the region.<br />
After visiting the temple we will return back to our hotel for a warm dinner and a nights rest.</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 to Haa Valley
								</p>
								<p class="aj">Total Distance 66 kilometers; 36 kilometer uphill with a accent of about 1600 meters, 22 kilometers downhill.<br />
<br />
After breakfast we will climb on to our bikes and ride towards the Haa valle, we will cycle up to the Chele La pass which is the highest point of our trip at an altitude of 3822 meters above sea level. We will stop here for a while to rest and enjoy the spectacular view of the eastern Himalayan Mountains. We will then proceed downhill to enter the Haa Valley and reach the village of Haa our stop for the 2nd night.</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> Haa Valley to Thimphu
								</p>
								<p class="aj">Total Distance: 111 kilometers; 28 kilometers uphill and 70 kilometers downhill with the rest on flat roads.<br />
Today after breakfast we begin our journey towards Thimphu, the capital of Bhutan we will be biking along a route that takes us past the Shari Village, Chuzom and the fortress of Simthokha finally onwards to the city of Thimphu . Today we will be visiting the .The King’s Memorial was built in memory of the third king of Bhutan who reigned for three decades from 1952 - 1972. We will also visit the Tashichoe Dzhong and the Weekend Market<br />
<br />
National Memorial Chorten<br />
It was built in 1974 to pay tribute to the late King Jigme Dorji Wangchuk who is also known as the Father of Modern Bhutan. The Memorial was built in a unique Tibetan style and has scores of religious paintings and occult statues that represent both the pacifist and wrathful aspects of Buddhist spirituality. The Memorial is also a center of worship for the residents of the capital.<br />
<br />
Trashicho Dzhong<br />
You will next visit the Trashicho Dzhong also known as the Fortress of the Glorious Religion. Initially built in 1641 AD and later remodeled by King Jigme Dorji Wangchuk in 1965, the Dzhong is the home of the main secretariat of the Government. The throne of His Majesty, the King of Bhutan, is situated here. The National Assembly Hall is in a modern structure on the other side of the river. During summer, the main monk groups led by His Holiness, the Je Khenpo, reside in the Dzhong.<br />
If time and energy permits we will also visit the local market to get a feel of Bhutanese city life and may be doing a bit of souvenir hunting. We will then return to our hotels for dinner and a nights rest.</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 to Punakha
								</p>
								<p class="aj">Total distance: 89 kilometers; 23 kilometers uphill and 58 kilometers downhill.<br />
Post breakfast, we will begin our journey towards the Phunakha valley. We will fist climb up t the Dochu La pass the gateway to the Punakha and Wandue Phodrang.<br />
<br />
Dochu La Pass:<br />
108 Stupas<br />
Your first destination of the day is the Dochu La pass and the 108 Bhutanese Stupas, is revered by the people of the land as an emblem of religious sanctity. Notice their architectural beauty and the manner in which they have weathered the four seasons over the years. If the weather decides to cooperate, you can admire the glory of the snow - capped Himalayan Ranges from this vantage point.<br />
From here we will descend in to the valley towards the Chimi Lhakhang Temple.<br />
<br />
Chimi Lhakhang:<br />
Chimi Lhakhang, one of Bhutan’s most famous monasteries. It was built by Lama Drukpa Kuenley in 15th century AD. It is dedicated to Drukpa Kinley who is also known as the Divine Madman. The spiritual leader inherited the accolade since he revolted against the principles of orthodox Buddhism. The monk, it is believed, was bestowed with the powers to subdue the devils with his magical thunder bolt.<br />
After paying our respects and receiving the Lama’s blessings we will continue our jouney onward to the town of Wangdue Phodrang and stop by to visit the Wangue Phodrang Dzhong.<br />
<br />
Wandue Phodrang Dzhong:<br />
The Wandue Phodrang Dzhoing is a 16 century fortress atop a hill that dominates over the Wandue valley according to a prophecy, the one builds a fort at the spot, will one day be able to unite the country under his / her power. After enjoying a tour of the Dzhong, we will cycle on to the village of Chuzomsa our rest spot for the night.</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
								</p>
								<p class="aj">Today we take a break from cycling and retrace our steps back to our strating point at paro via the capital city Thimphu. En route will be cover a few places of interest in Thimphu or take your straight to the hotel for rest and relaxation as per your choice. Dinner and overnight stay at the hotel.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 6:</b> Paro to Taktshang Monastery
								</p>
								<p class="aj">Today we will be visiting the world famous Taktshang Monastery, one of the lost wonders of the world.<br />
<br />
Taktshang Monastery<br />
Taktsang monasteryis also known as “the Tiger’s Lair” when translated. The short trek to the monastery passes through a dense pine forest. You can hear the insects chirp as you pass along the clearly marked and maintained pathway. You will stop at a traditional Bhutanese cafeteria for rest and refreshments Bhutanese style. You will then continue the hike till you arrive at the ruins of the ancient Taktsang monastery. This abode of traditional Buddhist religious prayer and worship was built in the 17th century AD. It literally hangs from the edge of a sheer rock cliff that plunges 900 meters into the valley below. According to a legend, Guru Padmasambhava, the Tantric mystic who brought Buddhism to Bhutan, came to Bhutan from India flying on a tiger.<br />
<br />
You will have Lunch and refreshments at the cafeteria. Take in the amazing views of Bhutan’s majestic peaks and valleys as you enjoy your meal. The hike may be quite a challenge for the uninitiated and your tour guide can arrange for a pony for you at a nominal expense. The pony ride is very safe and an experience in itself.<br />
Following the visit we can either bike or drive back to the hotel depending of your level of fatigue after the hike. Once back you will have evening at leisure either to do some last minute shopping or indulge yourself with a spa treatment before having dinner and calling it a night.<br />
<br />
Departure<br />
After a heavy breakfast we will drop you off to Paro International Airport for you flight back home. We hope you had a memorable trip to our little nation and wish you al the best !</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>2 Star Hotel</li>
																		<li>3 Star Hotel</li>
																		<li>4 Star Hotel</li>
																		<li>5 Star Hotel</li>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
																		<li>Private Cab</li>
																		<li>Private Guides</li>
																		<li>Entry Tickets</li>
																		<li>Sim Card</li>
																		<li>Complimentary Drinks</li>
																		<li>Bus Transfer</li>
																		<li>Cab Transfer</li>
																		<li>Stay Included</li>
																		<li>Non Veg Meals</li>
																		<li>Veg Meals</li>
																		<li>Veg & Non Veg Meals</li>
																		<li>Pickup-Drop</li>
																<li>Service include Above</li>
													</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Ait Tickets</li><li>
Guide and Driver Tips and Personal Expenses</li></ul><br />
												<p class="large b mb5px dif">Specific Departure Dates :</p>All Seasons Awaits<br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* 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="Mountain Biking 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="127014"/>
						</form>
						</div>
						
						";i:1;s:59:"Book Mountain Biking Tour - 5 Nights / 6 Days Tour Packages";i:2;s:134:"book mountain biking tour - 5 nights / 6 days tour packages, hill station tour packages, thimphu, paro, wangdue phodrang tour packages";i:3;s:189:"Book Mountain Biking Tour - 5 Nights / 6 Days tour packages from Exotic Vacations Bhutan - Get attractive 5 Nights / 6 Days Hill Station  tour packages for  Thimphu, Paro, Wangdue Phodrang.";i:4;s:544:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Wangdue Phodrang"        
		                 },
		      "description": "15% discount will be offered to those who contact directAit Tickets
Guide and Driver Tips and Personal Expenses16-0431-12",
		      "name": "Mountain Biking Tour",
		      "telephone": "+975-77685791"
		    }
		    </script>
			";i:5;N;}