a:6:{i:0;s:19038:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>7 Days Vietnam Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.gnholidayz.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.gnholidayz.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> 7 Days Vietnam Tour</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-->				
								
						<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> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Siem Reap, Ha Long, Hanoi</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.gnholidayz.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="7 Days Vietnam 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="189756"/>
						</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_21/610161/297884.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_21/610161/297884.jpg"  width="150" height="73"    alt="7 Days Vietnam Tour" title="7 Days Vietnam 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> HANOI ARRIVAL
										</p>
										<p class="aj">No guide / No MealsWe pick you up from the airport then transfer you to the Hanoi Old Quarter. Arrival Hanoi and start visiting Hanoi old quarter street. Hanoi old quarter was called Hanoi 36 streets, is one of peaceful cities in the world and in here you can find many things for shopping. Stay overnight in Hanoi.</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> HANOI – HALONG CRUISE (Breakfast, Lunch, Dinner)
										</p>
										<p class="aj">Morning, we pick you up at the hotel in Ha Noi old quarter depart to Halong Bay, on the half way stop for short break in Hai Duong province 25 minutes. Arrive Port, then transfer to Cruise by tender. Enjoy welcome drinks and having lunch on cruise.Afternoon, visiting one of the caves in Halong Bay (and take kayaking). Then welcome sunset party relaxing on sun deck and cooking class how to make fresh noodle roll, you can enjoy product which you make it. And enjoy your dinner in restaurant and go fishing, singing karaoke on cruise.</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> HALONG BAY – HANOI (Breakfast, Lunch)
										</p>
										<p class="aj">Morning, Free enjoy the nice atmosphere inn Halong Bay. Check out and settle the bill, take time to relax. Have lunch while the boat is cruising back to port,Afternoon, get on the bus back to Hanoi, on the half way stop for short break 25 minutes. Arrive back at the hotel in Ha Noi old quarter around 17.00. Stay overnight in the hotel in Hanoi.</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> HANOI DEPARTURE (Breakfast)
										</p>
										<p class="aj">No guideHaving breakfast at the hotel, then free time to going around for shopping or visit some attractive places by your own until our staff comes to meet you at the hotel and takes you to the airport. Say goodbye to Hanoi and Vietnam.Welcome to Cambodia! Meet and greeting by our professional guide upon your arrival at Siem Reap International Airport then transfer to hotel for check-in. Transfer by overland to visit to the floating village of Chong Khneas, located 10 kilometers south of Siem Reap. Take a private boat to visit the village and take a ride in a traditional wooden boat on Tonle Sap Lake, the “Great Lake of Cambodia and the largest in Asia”. Continue to Artisans d’Angkor. Artisans d’Angkor was established in 1992 in order to support Cambodian arts and crafts, and to help young people find work in their local villages by continuing the practice of traditional arts.<br />
Among the workshops available for visit are wood and stone carving, wood and stone lacquering, gilding, and silk processing. Proceed to Angkor Silk Farm. Then, stop at the WAR MEMORIAL MONUMENT, it is dedicated to those who sacrificed their lives in the civil war and follow by a tour at their Local Market. Overnight at hotel in Siem Reap.</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> SIEM REAP – ANGKOR TEMPLE TOURS (Breakfast, Dinner)
										</p>
										<p class="aj">Breakfast in hotel In the morning, visit the South Gate (with its huge statues depicting the churning of the ocean of milk), the ancient capital of Angkor Thom (12th century), Bayon temple (unique for its 54 towers decorated with over 200 smiling faces of Avolokitesvara), Baphuon recently re-opened after years of restoration), the Royal Enclosure, Phimeanakas, the Elephant Terrace and the Terrace of the Leper King..After lunch, visit the most famous of all the temples on plain of Angkor: Angkor Wat, the temple complex covers 81 hectares and is comparable in size to the Imperial Palace in Beijing. Its distinctive five towers are emblazoned on the Cambodia flag and the 12th century masterpiece is considered by art historians to be the prime example of classical Khmer art and architecture. Angkor Wat’s five towers symbolize Meru’s five peaks – the enclosed wall represents the mountains at the edge of the world and the surrounding moat, the ocean beyond. Sunset at Global Angkor Boat on Tonle OM. Dinner will be served at local restaurant with classical/Apsara dance show overnight at hotel in Siem Reap.</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> SIEM REAP – KULEN MOUNTIAN (Breakfast, Dinner)
										</p>
										<p class="aj">After breakfast at the hotel departure for excursion at Phnom Kulen or "Lychee Mountain", it is also one of the National Park in the country. Here begins the story of Angkor with the 802 AD sacrament of Jayavaramen II who institutionalized the cult of the "God-King"View the river "of the 1000 lingas" and beautiful cultures on the river bed, pagoda, the large sleeping Buddha carved in the rock, nice view of countryside, visit the waterfalls and you can see the ruins of a temple also. After a good and refreshing swim, at 15:00pm drive back the same way to Siem Reap and overnight at the hotel DAY 07: SIEM REAP – DEPARTURE (B)Breakfast in hotel In the morning, enjoy you free and easy time until checkout our will come to pick up and transferring to the airport for catching your international flight.</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">Departure</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>EP (No Meal)</li>
																				<li>Accommodation with daily breakfast based on Double / Twin /Triple sharing room- Tours with English speaking Guide- Ground transport with air-con vehicle as mentioned in itineraries - All entrance fees for the tour sites as mentioned in the tour itineraries- Cambodia Scarf- Halong Bay sharing group tour- Welcome Drink at hotel- Drinking water and fresh tower for the whole trips 2 Bottle per pax per day ( 500ml ) Package Exclusions- Cambodia visa fee- Vietnam visa fee and letter fee- Domestic and International Air tickets- International airport tax departure- Tip Guide and Driver for the hold trip- Lunch and dinner that not mention in program- Other language guide- Soft drinks- Personal expenses such as drinks at meals- All other accounts are not mentioned in the above inclusion</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">Accommodation</p>
						</div>				
		
				    	<table class="mb15px bdrall bdreee w100 p5px15px formTable">
						<tr class="headVr b">
						<td class="p5px10px">City</td>
						<td class="p5px10px">Hotel Name</td>
						<td class="p5px10px">Star Rating</td>
						</tr>
												</tbody>
						</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.</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.gnholidayz.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="7 Days Vietnam 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="189756"/>
						</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.gnholidayz.com/munnar-tour-packages.htm" title="Munnar Tour Packages">Munnar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/alleppey-tour-packages.htm" title="Alleppey Tour Packages">Alleppey</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/thekkady-tour-packages.htm" title="Thekkady Tour Packages">Thekkady</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/kochi-tour-packages.htm" title="Kochi Tour Packages">Kochi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/hanoi-tour-packages.htm" title="Hanoi Tour Packages">Hanoi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/kovalam-tour-packages.htm" title="Kovalam Tour Packages">Kovalam</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/baku-tour-packages.htm" title="Baku Tour Packages">Baku</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/kakinada-tour-packages.htm" title="Kakinada Tour Packages">Kakinada</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/siem-reap-tour-packages.htm" title="Siem Reap Tour Packages">Siem Reap</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/kanyakumari-tour-packages.htm" title="Kanyakumari Tour Packages">Kanyakumari</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.gnholidayz.com/ha-long-tour-packages.htm" title="Ha Long Tour Packages">Ha Long</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.gnholidayz.com/male-tour-packages.htm" title="Male Tour Packages">Male</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.gnholidayz.com/hyderabad-tour-packages.htm" title="Hyderabad Tour Packages">Hyderabad</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.gnholidayz.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/cruise-holidays-catid.htm" title="Cruise Packages">Cruise</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.gnholidayz.com/house-boat-holidays-catid.htm" title="House Boat Packages">House Boat</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:58:"Book 7 Days Vietnam Tour - 6 Nights / 7 Days Tour Packages";i:2;s:124:"book 7 days vietnam tour - 6 nights / 7 days tour packages, adventure tour packages, siem reap, ha long, hanoi tour packages";i:3;s:153:"G N Holidayz offers 7 Days Vietnam Tour - 6 Nights / 7 Days tour package, budget Adventure tour packages for Siem Reap, Ha Long, Hanoi at exciting price.";i:4;s:416:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Siem Reap, Ha Long, Hanoi"        
		                 },
		      "description": "",
		      "name": "7 Days Vietnam Tour",
		      "telephone": "+91-9052381553"
		    }
		    </script>
			";i:5;N;}