a:6:{i:0;s:16695:"				<div class="h1"><h1>Vietnam Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="https://www.avanitravels.net/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="https://www.avanitravels.net/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Vietnam 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">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Ho Chi Minh City</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="https://www.avanitravels.net/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="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="95502"/>
						</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_10/277951/162271.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/277951/162271.jpg"  width="150" height="150"    alt="Vietnam Tour" title="Vietnam Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Accommodations in double/twin-shared basic with daily breakfast<br />
Private cabin on shared cruise in Halong Bay<br />
Airport transportation by air-conditional vehicle (only driver, no guide escorts)<br />
Shuttle bus Hanoi – Halong - Hanoi<br />
English speaking tour guide, different guide in different city. Station guide on cruise in Halong Bay<br />
Group tour in Hanoi and Saigon<br />
Meals as mentioned in the program (local food, set menu, no drinks) L=Lunch, D=Dinner<br />
Cyclo trip for 1 hour around Hanoi Old Quarter<br />
Water during tour days<br />
All entrance fees and sightseeing as mentioned in the programAirfare (international & domestic) and airport tax<br />
Vietnam Visa Stamp fee: USD 25/person (one month, single entry, paid directly at Immigration office at arrival airport) +Vietnam Visa Approval Letter<br />
Meals as not mentioned in the program<br />
Early check-in and late check-out<br />
Hotel/Room upgrade<br />
Festivity surcharge & festivity compulsory service by hotel(s) if any<br />
Tips, drinks, personal expenses and others, optional cost<br />
Any services not mentioned in the program (phone call, laundry etc.)<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> Hanoi Arrival – Half Day City Tour
								</p>
								<p class="aj">Welcome to Hanoi – the capital of Vietnam!<br />
<br />
The tour guide & driver will be welcoming you at Noi Bai airport; it takes us 35 minutes driving to the centre of Hanoi then check-in at hotel and relax.<br />
<br />
Afternoon let’s start our city tour from Temple of Literature, the 1st university in Vietnam then continue to Ba Dinh Square - the biggest square in Hanoi where all biggest cultural, political events of the cities for taking photos of Ho Chi Minh Mausoleum (outside). Later have an overall view of the capital by a walking visit, which will start around the Old Quarter of Hanoi, stop at Hoan Kiem Lake (the “Sword” Lake). Overnight in Hanoi.<br />
<br />
Please note: Standard check in time is 14:00. Early check in is subject to availability of 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 2:</b> Hanoi – Ninh Binh – Hoa Lu – Tam Coc Sic Tour
								</p>
								<p class="aj">Breakfast at hotel. A 90km drive south of Hanoi will lead you to Ninh Binh, the site of the one capital city of ancient Vietnam before Hanoi took its leading role in 11th century. The area is featured by lots of well-known sceneries, which include Tam Coc Caves and Hoa Lu ancient capital with the old temples dedicated to King Dinh & King Le reigned in 10th century. The visit in Ninh Binh starts by a boat trip in Tam Coc where spectacular limestone karsts jut out from the green paddy fields reminding about Guilin (China) and Halong Bay of Vietnam, which gives this scenery the name “Halong-bay-on-land”. Further discovery in Ninh Binh will be continued in the site that used to be the kings’ palace in 10th century and now famous for the wooden relieves of the shady Dinh and Le temples. Late afternoon back to Hanoi. Overnight in Hanoi.</p>					
									<p><b>Meals : </b> Breakfast, Lunch</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> Hanoi - Halong - Overnight On Board Shuttle Bus Hanoi - Halong
								</p>
								<p class="aj">From Hanoi, at 8AM, head East for more than 3 hours to Halong Bay, the pride of the Gulf of Tonkin, a Natural World Heritage as designated by UNESCO in 1994. The road will pass by the Red River delta with green paddyfields and rural villages, where hard-work farmers are busy with their farming jobs, ploughing buffaloes or planting seedling. Upon arrival in Halong, we’ll take a big boat to cruise the Bay to discover the magnificent beauty of this “Descending-dragon” bay, created by thousands odd-shaped limestone rocks and karst grottoes. After a lunch of fresh seafood on board, we can visit the Surprising Grotto, stop for swimming or kayaking, passing floating villages and approach islets to enjoy their beauty in close distance. Back to the boat for dinner late afternoon. Evening attend activities on the boat or relax at your own leisure. Overnight on the boat near Titov Beach. (Please note the program may be little varied upon the cruise you choose. Only Vietnamese & International, vegetarian food available on the boat.)</p>					
									<p><b>Meals : </b> Breakfast, Lunch, 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 4:</b> Halong – Hanoi – Airport -  Fly To Saigon Shuttle Bus Halong - Hanoi
								</p>
								<p class="aj">After breakfast, visit by boat to Luon Cave, a ring-shaped pool inside an island in Halong with absolutely tranquil landscape and emerald water. Back to the Wharf of Halong passing the most densely area with many islands that have been named like the Cock-Fighting Rock, Sail Island, Incense burner rock or Sea Dog Rock. Arrive at Halong Wharf around 11.00. Return to Hanoi around 4PM and transfer to airport for take flight to Saigon (only driver, no tour guide escorts). Welcome to Saigon (now known as Ho Chi Minh City)<br />
<br />
the most hectic and business city of Vietnam. Upon arrival at the airport, welcomed by the local driver (no tour guide escorts) and transfer to the city center to check in hotel & relax. Overnight in Saigon.</p>					
									<p><b>Meals : </b> Breakfast, Lunch</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> Saigon City Tour – Cu Chi Tunnels – Sai Gon Sic Tour
								</p>
								<p class="aj">Have breakfast at hotel. Morning we start the city tour at the Reunification Palace, the witness of the fierce Vietnam War ended in 1975. The grand building today is a Museum and Hall of official receptions. Nearby the Palace are the colonial-styled Central Post Office and the Notre Dame Cathedral, built between 1877 and 1883 and one of the city’s major landmarks.  From here visit War Museum.<br />
<br />
Afternoon, we visit Cu Chi Tunnels, one of the few remaining monuments to the Vietnam War. Beneath the ground lie 200 km of tunnels, dug by hand and inhabited by the forces of the Vietnamese guerillas during the conflict. At its peak, prior to the Tet Offensive in 1968, the tunnel complex was base to almost 10,000 troops. To this day, it remains one of the most impressive examples of how fierce the war used to be. You even can try to crawl some dozens of meters on the tunnel underground to have the real experience. Return to Saigon.<br />
<br />
Overnight in Saigon.</p>					
									<p><b>Meals : </b> Breakfast</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> Saigon – Mekong Delta – Saigon Sic Tour
								</p>
								<p class="aj">After breakfast at hotel. At 8:00, picked up at your hotel by the tour guide and driver to transfer to My Tho. Enjoy the scenic journey along the way bordered by green rice fields.  On arrived at My Tho, visit Vinh Trang pagoda, a famous pogoda in the area that its architecture is a mix of Chinese, Cambodian, and French culture. We then take a leisurely boat ride along the river, view the stilt houses, fruit plantations and fishing villages along the river bank. Proceed to Tortoise islet, have lunch in the orchard garden. Then a boat ride to An Khanh – a less touristy attraction in Ben Tre, enjoy cruising on a hand-rowed sampan under the shadow of the water coconut trees along natural canals, then enjoy seasonal fruit & honey tea to the sound of "Southern Vietnamese folk music", performed by locals.<br />
<br />
Visit a family business which epitomizes the idyllic rural lifestyle, taste the delicious coconut candy & observe the pastoral life as you roam through the fruit plantation and village. Meet the bus and return to Saigon. This trip provides a fascinating insight into daily life in the Mekong Delta and you are guaranteed to take home your own private collection of beautiful memories.  Overnight at hotel in Saigon.<br />
<br />
A normal lunch with local food will be served.</p>					
									<p><b>Meals : </b> Breakfast, Lunch</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> Saigon Departure
								</p>
								<p class="aj">Saigon Departure</p>					
									<p><b>Meals : </b> Breakfast</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>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Airfare (international & domestic) and airport tax</li><li>
Vietnam Visa Stamp fee: USD 25/person (one month, single entry, paid directly at Immigration office at arrival airport) +Vietnam Visa Approval Letter</li><li>
Meals as not mentioned in the program</li><li>
Early check-in and late check-out</li><li>
Hotel/Room upgrade</li><li>
Festivity surcharge & festivity compulsory service by hotel(s) if any</li><li>
Tips, drinks, personal expenses and others, optional cost</li><li>
Any services not mentioned in the program (phone call, laundry etc.)</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><strong>PLEASE NOTES:</strong>

<ul>
	<li>Tour cost is not included the Festive Season Surcharge (if any) and Compulsory meals for 24 &amp; 31 Dec 2017. The extra fee will be advised upon booking.</li>
	<li>In case of the sharply increase of fuel cost, The price will be adjusted accordingly.</li>
	<li>An additional surcharge may be applicable for bookings that fall within the Peak Season dates such as Christmas, New Year andLunar New Year (TET Festival).</li>
	<li>Hotel category is for reference and is subject to change.</li>
	<li>All tour rate is net and &amp; non-commission.</li>
	<li>Tour guide in other languages upon request &amp; surcharge applied.</li>
</ul>

<p><strong>Hotel policy:</strong>

<ul>
	<li>Standard check in time is 14:00</li>
	<li>Standard check out time is around 12.00.</li>
	<li>Early check in/ Late check-out is subject to availability with surcharge from the hotels</li>
</ul>

<p><strong>Child policy:</strong>

<ul>
	<li>Child&rsquo;s rate applicable to child from 3 years old to under 12 years old.</li>
	<li>Sharing twin room with other member, full charge as adult rate.</li>
	<li>With an extra bed occupancy, will charge 75% of adult rate.</li>
</ul>						
    	<p class="h dif xlarge b mb5px">Hotel Details</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">Location</td>
				<td class="data p5px">3 star hotel</td>
				<td class="data p5px">4 star hotel</td>
			</tr>
			<tr>
				<td class="data p5px">Hanoi</td>
				<td class="data p5px">Flower Garden Hotel</td>
				<td class="data p5px">Flower Garden Hotel (ROH Room)</td>
			</tr>
			<tr>
				<td class="data p5px">Halong</td>
				<td class="data p5px">Glory Legend Cruise (Deluxe Ocean View Cabin)</td>
				<td class="data p5px">Grayline Cruise (Deluxe Sea View Cabin)</td>
			</tr>
			<tr>
				<td class="data p5px">Saigon</td>
				<td class="data p5px">Liberty Parkview Hotel (Deluxe Room)</td>
				<td class="data p5px">Oscar Saigon Hotel (Oscar Elegant)</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.avanitravels.net/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="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="95502"/>
						</form>
						</div>
						
						";i:1;s:51:"Book Vietnam Tour - 6 Nights / 7 Days Tour Packages";i:2;s:105:"book vietnam tour - 6 nights / 7 days tour packages, valley tour packages, ho chi minh city tour packages";i:3;s:135:"Avani Travels offers Vietnam Tour - 6 Nights / 7 Days tour package, budget Valley tour packages for Ho Chi Minh City at exciting price.";i:4;s:1482:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Ho Chi Minh City"        
		                 },
		      "description": "Accommodations in double/twin-shared basic with daily breakfast
Private cabin on shared cruise in Halong Bay
Airport transportation by air-conditional vehicle (only driver, no guide escorts)
Shuttle bus Hanoi – Halong - Hanoi
English speaking tour guide, different guide in different city. Station guide on cruise in Halong Bay
Group tour in Hanoi and Saigon
Meals as mentioned in the program (local food, set menu, no drinks) L=Lunch, D=Dinner
Cyclo trip for 1 hour around Hanoi Old Quarter
Water during tour days
All entrance fees and sightseeing as mentioned in the programAirfare (international & domestic) and airport tax
Vietnam Visa Stamp fee: USD 25/person (one month, single entry, paid directly at Immigration office at arrival airport) +Vietnam Visa Approval Letter
Meals as not mentioned in the program
Early check-in and late check-out
Hotel/Room upgrade
Festivity surcharge & festivity compulsory service by hotel(s) if any
Tips, drinks, personal expenses and others, optional cost
Any services not mentioned in the program (phone call, laundry etc.)",
		      "name": "Vietnam Tour",
		      "telephone": "+91-9970119645"
		    }
		    </script>
			";i:5;N;}