a:6:{i:0;s:11212:"				<div class="h1"><h1>Bhutan 7N / 8D Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travelect.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelect.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Bhutan 7N / 8D 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">Duration </td>
						<td class="p5px pl0px vat">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Bagdogra, Thimphu, Paro, Phuntsholing</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.travelect.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bhutan 7N / 8D 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="56014"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_12/333350/107044.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/107044.jpg"  height="150"  width="150"    alt="Bhutan 7N / 8D Tour" title="Bhutan 7N / 8D Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<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> Arrive Phuntsholing from Bagdogra / NJP
								</p>
								<p class="aj">Arrive Phuntsholing and transfer to the hotel. Process for route permit and rest of the day at leisure. Overnight stay at Phuntsholing.</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> Phuntsholing - Thimpu - capital city
								</p>
								<p class="aj">Morning transfer to the capital city Thimphu through the mountains, this journey is of almost unbelievable beauty. The road leads from the northern Indian tea plantations through endless turns, hair pin bends and daring stretches carved into the mountain rock via Chukka to Thimphu. Check in the hotel. Afternoon you can relax and in the evening spend some time in clock tower square. O/n 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> Thimpu
								</p>
								<p class="aj">When in Thimphu you got to prepare for surprises where this unique capital has no traffic lights but adopted its own version of the British - Indian colonial times traffic policemen who can startle you and memorize others with his elaborate hand gestures, sometimes he may be signaling stop when it looks like go but don’t worry you can observe the flow and notice his smile as you stare at him. Sightseeing includes the Folk Heritage Museum, National Library, Handicraft Center to view the traditional arts, the indigenous Medicine Hospital, the Painting School and from the road point take a glimpse of Tashichho Dzong. Further drive uphill and visit Takin Zoo where you will find national animal of Bhutan. Afternoon visit National Memorial Chorten a stupa dedicated to the third king of Bhutan and Buddha statue. Evening take a walk to the main city from Clock tower square. O/n 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 4:</b> Thimphu - Paro valley
								</p>
								<p class="aj">Morning drive to Paro valley and visit the ruins of Drukgyel Dzong, a 17th century fortress that used to keep invaders from Tibet and in 1951 the fort was destroyed by fire. On the way back drive till the base of the world famous Tigers Nest or popularly known as Taktsang one of the popular spiritual heritage sites. It was here that the great tantric master Guru Padma Sambhava flew in from Tibet on a tiger to bring Buddhist teachings to Bhutan. Rest of the day at leisure. O/n at 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> Paro
								</p>
								<p class="aj">Morning visit, the National Museum housed in a round fortress called as the Ta Dzong considered to be one of the best natural history museums in Asia where it has a fine collection of natural and historic artifacts. Just below Ta Dzong lies Paro Dzong. Afternoon visit Kyichu Lhakhang the monastery dates back to 7th century and is one of the oldest and most sacred and visit farm house where you will be able to see the lifestyle of the villagers of Paro. Visit the town for shopping or leisure. O/n at 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> Paro
								</p>
								<p class="aj">Morning - if you are adventurous and physically fit to you could hike to the world famous Tigers Nest or popularly known as Taktsang one of the popular spiritual heritage sites. It was here that the great tantric master Guru Padma Sambhava flew in from Tibet on a tiger to bring Buddhist teachings to Bhutan. (round hike take 7 hours). OR Hike to Dzongdrakha temple often called as mini Taktsang, the temple is built in the cliffs above Bondey village. The walk is not as strenuous as to Tigers Nest OR Hike to Kila Gompa - if you are fit as mountain goat Kila Gompa awaits you. These magnificent clustered temples are built on the cliffs and have been home for nuns for a longtime. Kila in Sanskrit means subjugating spiritual dagger that destroys the negativities. Hike up and subjugate all your negative energies within you and if it does not give you any spiritual satisfaction you will feel physically rejuvenated after the hike. OR If you want to spend some time near by the river side before reaching Tigers Nest base you will come across a small river where you could stop and walk down near the riverbed. Experience and feel close to nature and visit some Farm House where you will be able to see the lifestyle of the villagers of Paro. Afternoon if you are left with some energy you could visit the town for shopping or leisure/n at 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 7:</b> Paro - Phuntsholing
								</p>
								<p class="aj">Morning transfer to Phuntsholing and before reaching Phuntsholing stop and visit Kharbandi Gompa. Check in the hotel and evening at leisure. Overnight stay at Phuntsholing.</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 8:</b> Departure
								</p>
								<p class="aj">Morning transfer to depart for your next destination.</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>Sightseeing</li>
															</ul>
						<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.travelect.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Bhutan 7N / 8D 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="56014"/>
						</form>
						</div>
						
						";i:1;s:58:"Book Bhutan 7N / 8D Tour - 7 Nights / 8 Days Tour Packages";i:2;s:144:"book bhutan 7n / 8d tour - 7 nights / 8 days tour packages, forts and palaces tour packages, bagdogra, thimphu, paro, phuntsholing tour packages";i:3;s:185:"El Travel Elect Pvt. Ltd offers Bhutan 7N / 8D Tour - 7 Nights / 8 Days tour package, budget Forts and Palaces tour packages for Bagdogra, Thimphu, Paro, Phuntsholing at exciting price.";i:4;s:428:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Bagdogra, Thimphu, Paro, Phuntsholing"        
		                 },
		      "description": "",
		      "name": "Bhutan 7N / 8D Tour",
		      "telephone": "+91-9225503370"
		    }
		    </script>
			";i:5;N;}