a:6:{i:0;s:13149:"				<div class="h1"><h1>Vietnam & Cambodia 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>Vietnam & Cambodia 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">Siem Reap, Hanoi, Ho Chi Minh</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="Vietnam & Cambodia 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="56051"/>
						</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/107071.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/333350/107071.jpg"  height="150"  width="150"    alt="Vietnam & Cambodia 7N / 8D Tour" title="Vietnam & Cambodia 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> Hanoi
								</p>
								<p class="aj">Welcome aboard our exciting and comprehensive tour to Vietnam and Cambodia. Overnight in Hanoi the Capital City of Vietnam.<br />
Today start your fun filled tour of Vietnam and Cambodia. On arrival into Hanoi you will be greeted by your friendly Thomas Cook Tour Manager / local representative outside the baggage hall area at the airport and transfer you to your hotel. Hanoi - Vietnam’s capital, is a stylish and gracious city that retain an unique old world charm and some Asia’s most striking colonial architecture. Tonight enjoy a delicious Dinner at Local Indian Restaurant.<br />
Overnight at Sunway Hanoi Hotel or similar 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
								</p>
								<p class="aj">Hanoi a city of a 1000 years old capital. Visit the Ba Dinh Square and the Ho chi Minh Mausoleum.<br />
After Breakfast at your hotel, drive to the historic complex of Ba Dinh. Visit Ba Dinh Square, where The Late President Ho Chi Minh declared Vietnams Independence in 1945, Ho Chi Minh’s Mausoleum and continue to the One Pillar Pagoda, the must-see monument in Hanoi. It is an ancient Buddhist pagoda, built in the early 11th century in the reign of King Ly Thai Tong, all construction supported by only one pillar, resembling a Buddhist lotus. Tran Quoc Pagoda, Quan Thanh Temple. Post Lunch at a Indian Restaurant visit Van Mieu - Quoc Tu Giam - Temple of Literature built in 1070 during the dynasty of King Ly. Enjoy the Vietnamese traditional water puppet show and later dinner at Local Indian Restaurant.<br />
Overnight at Sunway Hanoi Hotel or similar 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 3:</b> Ho Chi Minh City
								</p>
								<p class="aj">Proceed to Ho Chi Minh City formerly know as Sai Gon City.<br />
After an breakfast at your hotel, check-out hotel and proceed to Ho Chi Minh City. On Arrival have Lunch at an Indian Restaurant. Later visit Cho Lon - a big market of Chinese products in Sai Gon, Thien Hau Pagoda and enjoy shopping at China Town. Tonight enjoy a hot sumptuous Dinner at Local Indian Restaurant.<br />
Overnight Hotel Continental or similar in Ho Chi Minh City.</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> Ho Chi Minh City
								</p>
								<p class="aj">Visit Chu Chi Tunnel and later enjoy an exciting city tour of Ho Chi Minh City including visit Reunification Palace and War Crime Museum.<br />
After a sumptuous breakfast at the hotel, proceed to Chu Chi Tunnel. Visit the underground village, which used to be a bitter battle ground for a long period during the Vietnam war. The amazing network of over 200 km of underground tunnels will offer you impression of the former fierce war in South Vietnam. Drive past rice field, potter’s kilns. Post Lunch at an Indian Restaurant proceed for an Historic City tour of Ho Chi Minh City. Visit the Reunification Palace, War Crime Museum, Notre Dame Cathedral and Old Post Office, former US Embassy, shopping at Ben Thanh Market. Tonight enjoy a hot sumptuous Dinner at Local Indian Restaurant.<br />
Overnight Hotel Continental or similar in Ho Chi Minh City.</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
								</p>
								<p class="aj">Onward to Siem Reap - the get-way to the Angkor Region. Proceed for an exciting City tour of Siem Reap including the Prasat Kravan and Ta Prohm.<br />
After a sumptuous breakfast at the hotel, check out and proceed to airport for your flight to Siem Reap. Arrive and proceed on an exciting city tour of Siem Reap; visit Prasat Kravan with its unique brick sculptures and Ta Prohm. One of the area’s most beautiful temples, Ta Prohm has been relatively untouched since it was discovered and retains much of its mystery. Visit Takeo, Chau Say Tevoda and Thommanon. Post Lunch, visit the Preah Khan temple, built by the King Jayavarman VII, is a place of towered enclosures and shoulders-hanging corridors. Continue your visits to Neak Pean, a fountain built in the middle of a pool and representing the paradisiacal Himalayan mountain-lake and visit the temple of Ta Som as well as Srah Srang - The Royal Baths, undoubtedly used in the past for ritual bathing. Tonight enjoy a hot sumptuous Dinner at Local Indian Restaurant.<br />
Overnight at Tara Angkor Hotel or similar 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
								</p>
								<p class="aj">Today enjoy the Temple Tour on the plains of Angkor.<br />
After a sumptuous breakfast at the hotel, we start with the most famous of all the temples on the plain of Angkor – the Angkor Wat. Angkor Wat is one of the world’s most stunning buildings. Angkor was the capital of Khmer. Its distinctive five towers are emblazoned on the Cambodian 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. After lunch, visit the ancient capital of Angkor Thom, South Gate of Angkor Thom. Also visit the Bayon Temple famous for its series of colossal human faces carved in stone, the Royal Enclosure, Phimeanakas, the Elephant Terrace, the Terrace of the Leper King and the largest as well as the most complete temple of Angkor Wat. In the evening, we enjoy the beautiful sunset at Phnom Bakeng hill top. Tonight enjoy a hot sumptuous Dinner at Local Indian Restaurant with traditional dance show.<br />
Overnight at Tara Angkor Hotel or similar 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 7:</b> Siem Reap
								</p>
								<p class="aj">Vist the Tonle Sap Lake - the Great Lake of Cambodia. Visit Les Artisansd’ Angkor - Chantiers Ecoles.<br />
After a sumptuous breakfast at the hotel, visit the Floating village of Chong Khneas, located 10 kilometers south of Siem Reap. Take a boat trip in a traditional wooden boat on the Tonle Sap Lake, the “Great Lake” of Cambodia, one of the largest in Asia. Later enjoy a lunch at a Local Indian Restaurant. We then visit “Les Artisans d’Angkor - Chantiers Ecoles” - an art school in Siem Reap and spend time at leisure at a Local Market. Tonight enjoy a hot sumptuous Dinner at Local Indian Restaurant.<br />
Overnight at Tara Angkor Hotel or similar 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 8:</b> Siem Reap
								</p>
								<p class="aj">Fly back home.<br />
Enjoy a sumptuous breakfast at your hotel. Later today, proceed to the airport as this fantastic tour comes to an end. Return home with wonderful memories of your tour.</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">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="Vietnam & Cambodia 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="56051"/>
						</form>
						</div>
						
						";i:1;s:70:"Book Vietnam & Cambodia 7N / 8D Tour - 7 Nights / 8 Days Tour Packages";i:2;s:148:"book vietnam & cambodia 7n / 8d tour - 7 nights / 8 days tour packages, forts and palaces tour packages, siem reap, hanoi, ho chi minh tour packages";i:3;s:189:"El Travel Elect Pvt. Ltd offers Vietnam & Cambodia 7N / 8D Tour - 7 Nights / 8 Days tour package, budget Forts and Palaces tour packages for Siem Reap, Hanoi, Ho Chi Minh at exciting price.";i:4;s:432:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Siem Reap, Hanoi, Ho Chi Minh"        
		                 },
		      "description": "",
		      "name": "Vietnam & Cambodia 7N / 8D Tour",
		      "telephone": "+91-9225503370"
		    }
		    </script>
			";i:5;N;}