a:6:{i:0;s:20500:"				<div class="h1"><h1>Honeymoon 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>Honeymoon Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Tour Code </td>
						<td class="p5px pl0px vat">02</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Thimphu, Paro, Wangdue Phodrang, Punakha</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						USD 1815 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 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="Honeymoon 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="127015"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
										</tr>
					</table>
					</div>
					<br />
					
					15% discount will be offered to those who contact directlyAir 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> Arrival at Paro International Airport
								</p>
								<p class="aj">Your much anticipated Bhutan honeymoon vacation commences the moment you enter the air space around the Himalayan mountain range near Bhutan. You will be instantly struck by the beauty and splendor of the 360 degree view around you as you watch from your Druk Airline airplane window. The Antediluvian Jumolhari &J ichu Drake peaks are a visual feast in themselves. Moments before you land, the picturesque Paro valley will gently glide into your line of sight. Be sure to look for it and take in the once - in - a - lifetime views.<br />
<br />
As soon as both of you arrive at the Paro International Airport, you will be warmly received by an English - speaking tour guide from Our Travel Agency, who will be your personal tour host and facilitator from a comfortable distance throughout your Bhutan honeymoon vacation. Once you complete the customs and immigration procedures, you will be driven in a private car to Hotel Migmar, a well appointed three - star hotel in Thimphu. Relax at the hotel and unwind from your long journey for a little while. Thimphu is about 30 minutes away from Paro and the drive is indeed scenic.<br />
<br />
Bhutan National Museum<br />
Your only stop for the day is the Bhutan National Museum. 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 />
Once you visit the National Museum, you are free to wander leisurely around Thimphu by yourself until dinner time. Visit the markets, parks and the traditional outdoor cafes Thimphu is so famous for especially among those who are here for a Bhutan honeymoon. Our chauffeur - driven travel agency car will address all your transportation needs and will bring you back to your hotel well in time for a sumptuous 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> Thimphu - King’s Memorial
								</p>
								<p class="aj">The next day, after a delectable breakfast of Bhutan’s choicest breakfast delicacies plus the traditional continental fare, you will visit the King’s Memorial. The King’s Memorial was built in memory of the third king of Bhutan who reigned for three decades from 1952 - 1972. This monument is a favorite for Bhutan honeymoon vacationers because of the numerous photo opps it offers. So be sure to bring your camera along on your Bhutan honeymoon vacation.<br />
<br />
More Sight - seeing Attractions<br />
After paying your tribute to the king, the newly weds will be escorted to see the Changankha monastery, the Radio Tower which is one of Bhutan’s tallest buildings, and the Zoological Garden, where you can easily spot the national animal of Bhutan - the takin. After an enjoyable session at the zoo, you will visit the Nunnery Temple, the National Library of Bhutan which houses some of the world’s most rare and ancient religious manuscripts and the Bhutan School of Arts & Crafts which is also called the Painting School.<br />
<br />
Trashicho Dzong<br />
You will next visit the Trashicho Dzong 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 Dzong 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 group led by His Holiness, the Je Khenpo, reside in the Dzong.<br />
<br />
Jungshi Handmade Paper Factory<br />
Both of you will surely need to take back lots of presents and mementos to your respective families after your Bhutan honeymoon vacation so the Jungshi Handmade Paper Factory is the perfect stop. Come and see how Bhutan protects its environment through long - term sustainability. Paper products are manufactured from mulberry plant bark called “daphne” in the local language. This factory manufactures a special watermark paper as well as products such as lampshades, envelopes and other objects made of traditional Bhutanese paper. They make great gifts to take home with you and are genuinely unique. It is not just the texture of these handmade paper products that will intrigue you, but also their unique earth tones and natural hews.<br />
<br />
Visits to all the places of interest we have mentioned here will be short and sweet to make ample time for you to rest and relax during your Bhutan honeymoon vacation.</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> More Sight - seeing In Thimphu ; Textile Museum and Folk Heritage museum
								</p>
								<p class="aj">You are all set to depart after breakfast. The Bhutan Textile Museum and the Folk Heritage museum are your first two stops. Learn first - hand about Bhutan’s rich cultural traditions, its deeply rooted heritage which spans thousands of years and the Bhutanese way of life. You will also visit the Handicrafts Emporium where you can purchase exquisite hand - woven fabric in a million colors and decorations for your living room. After all, you will need new furnishings to make a new start in life and nothing beats Bhutanese furnishings. Your Bhutan honeymoon is the perfect time to think, plan and dream.<br />
<br />
Simtokha Dzong<br />
The Simtokha Dzong is your next stop. Simtokha Dzong is the oldest and the most secure fortress in Bhutan. It offers you an amazing backdrop to take pictures. Not to worry, there will be plenty of folks on hand to click the two of you together to help you preserve a bundle of memories. Enjoy a full - course dinner and some little “me” time in the evening. Feel free to go out on your own since Bhutan is a very safe country for everyone including tourists.</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> The Bhutan Honeymooners drive to Punakha! ; 108 Stupas
								</p>
								<p class="aj">Your Bhutan honeymoon vacation package is now in full swing as you leave Thimphu for Punakha after breakfast. You will go through the Dochula Pass which is an experience in itself. Situated high among the mountains, the pass is the primary conduit that connects the two points. Your first destination of the day, the 108 Bhutanese Stupas, are 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 />
<br />
Punakha Dzong<br />
After the stupas, the two of you will drive to Punakha to visit the Punakha Dzong. It is situated near two rivers - the Pho Chu (Male River) and Mo Chu (Female River.) Even rivers in Bhutan celebrate an eternal never - ending honeymoon and so a Bhutan honeymoon vacation is bound to be the perfect honeymoon for you!<br />
<br />
Punakha Dzong is one of the largest Dzongs in Bhutan. Take the suspension bridge to arrive at the Dzong. Punakha Dzong was initially called Druk Pungthang or Dechen Phodrang (Palace of Great Happiness), for many years until the second king of Bhutan assumed power. Punakha Dzong happened to be the seat of the Government for a long time. The booty seized during the various wars with Tibet are carefully preserved at Punakha Dzong. Punakha continues to serve as the winter residence of Je - Khenpo, the country’s spiritual leader. King Jigme Dorji Wangchuk convened the National Assembly here in 1952.<br />
<br />
Chimi Lhakhang<br />
We will next take you on a short evening hike to 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.<br />
<br />
You will be staying at the Royal Living Hotel in Punakha and you will return to your hotel in the evening well in time for a quick session of R&R plus a little dose of leisure. Dinner will also await you 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 5:</b> Punakha - Wangdue - Paro - Wangdue Dzong
								</p>
								<p class="aj">After a laid back morning breakfast, a short drive to Wangdue takes you to the Wangdue Dzong. It was founded by Zhandrung in 1639 AD and is located on a hill which overlooks the valley. The view leaves absolutely nothing to be desired. Folk lore has it that Bhutan’s protective deity, Yeshey Gonpo told Zhabdrug Rimpoche that if he would construct a dzong on this remote ridge, he would be able to rule the nation. The word “Wangdue” means “to bring under one’s power.”<br />
<br />
You can either relax in your hotel in the afternoon or visit the local markets for a quick round of window shopping before you drive to Paro in the evening. Wander around the town at your own pace. Meet the friendly shop owners many of whom speak English and trade stories with them. This is the perfect time to shop for gifts and haggle for the right price. Once you arrive in Paro, you will check in at Hotel Zhiwa Ling, one of the finest homes of hospitality in the town. You have two more fun - filled days during your Bhutan honeymoon package.</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 - Hike to Taktshang Monastery (Tiger Nest)
								</p>
								<p class="aj">Your call of the day after a sumptuous breakfast is the Taktsang monastery. It can be called “the Tiger’s Lair” when translated. The short and extremely easy 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 royal 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 and your significant other will have Lunch and refreshments at the cafeteria adjacent to the monument. Take in the amazing views of Bhutan’s majestic peaks and valleys as you enjoy your meal. If you wish, 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. You will return to your hotel and if you like, you can surely go out for a quick spin around town and stop by at a restaurant for coffee. Many Bhutan honeymoon couples say that they really enjoy these strolls around the quaint and dainty markets which, in essence, characterize the true spirit of Bhutanese life and culture. We will get you back to your hotel in good time for a full course meal. Cocktails are available at all the three hotels in which you will stay for a very attractive price.</p>
								</td>
								</tr>
								</table>					
								</div>
								<div class="data">
								<table class="w100 formTable bdr0 imgWidth">
								<tr>
								<td class="p10px vat">
								<p class="b large mb5px"><b class="dif">Day 7:</b> Departure
								</p>
								<p class="aj">Like all good things, your Bhutan honeymoon vacation will come to an end. We will be sad to see you go but we know you will come back again because Bhutan has more to offer to you. And hopefully, you will bring your family and a few friends with you the next time you arrive. The entire travel team at Our Travel Agency is standing by to assist you with your hotel check - out and departure formalities.</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>Air 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>~^#^~~^#^~<header>
<h1>Cancellation Policy</h1>
</header>

<p><strong>Tour programs booked and subsequently cancelled shall be subject to cancellation charges as follows:</strong>

<table>
	<tbody>
		<tr>
			<td>1</td>
			<td>Within 45 days of the start of the tour program</td>
			<td>15% of the total tour cost</td>
		</tr>
		<tr>
			<td>2</td>
			<td>Within 30 days</td>
			<td>25% of the total tour cost</td>
		</tr>
		<tr>
			<td>3</td>
			<td>Within 21 days</td>
			<td>30% of the total tour cost</td>
		</tr>
		<tr>
			<td>4</td>
			<td>Within 15 days</td>
			<td>50% of the total tour cost</td>
		</tr>
		<tr>
			<td>5</td>
			<td>Less than 7 days</td>
			<td>100% of the total tour cost</td>
		</tr>
	</tbody>
</table>

<h5>*</h5>

<p><strong>DELAYED ARRIVAL/DEPARTURE</strong>

<ul>
	<li>There shall be no fixed charge for the number of days of delay in arrival of visitors due to weather conditions, Druk-air problems or road blocks except for minimum charge on hotel cancellation, transport and guide.</li>
	<li>There shall be no charge for the number of days of delay in departure of visitors due to weather conditions, Druk-Air problems or roadblocks. They will be charged only the actual expenses on accommodation, food, transport, guide and any other services required.</li>
</ul>

<p><strong>DRUK AIR CANCELLATION POLICY:</strong>

<p><strong>Tickets issued and cancelled shall be subject to cancellation charges as follows:</strong>

<ul>
	<li>Within 45 days of the start of travel: no charges except documentation fees</li>
	<li>Within 30 days of the start of travel: 50% of the fare</li>
	<li>Within 15 days of the start of travel: 100% (No refund)</li>
	<li>Name Change: USD 25 per ticket</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.exoticvacationsbhutan.biz/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Honeymoon 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="127015"/>
						</form>
						</div>
						
						";i:1;s:53:"Book Honeymoon Tour - 6 Nights / 7 Days Tour Packages";i:2;s:137:"book honeymoon tour - 6 nights / 7 days tour packages, hill station tour packages, thimphu, paro, wangdue phodrang, punakha tour packages";i:3;s:177:"Exotic Vacations Bhutan offers Honeymoon Tour - 6 Nights / 7 Days tour package, budget Hill Station tour packages for Thimphu, Paro, Wangdue Phodrang, Punakha at exciting price.";i:4;s:549:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Thimphu, Paro, Wangdue Phodrang, Punakha"        
		                 },
		      "description": "15% discount will be offered to those who contact directlyAir Tickets
Guide and Driver tips and personal expenses16-0431-12",
		      "name": "Honeymoon Tour",
		      "telephone": "+975-77685791"
		    }
		    </script>
			";i:5;N;}