a:6:{i:0;s:9355:"				<div class="h1"><h1>Hong Kong with Disneyland Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.softprotravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.softprotravels.co.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Hong Kong with Disneyland 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Hong Kong</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.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Hong Kong with Disneyland 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="98159"/>
						</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_17/484941/165961.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484941/165961.jpg"  width="150" height="150"    alt="Hong Kong with Disneyland Tour" title="Hong Kong with Disneyland 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> Arrival in Hong Kong
								</p>
								<p class="aj">After arriving in Hong-Kong, meet our tour representative who helps you with an assisted transfer to your hotel. The rest of the day is free. Indulge in the activities of your interest such as tasting the local cuisine, shopping at the market, exploring the nearby area on-foot and so on. Hong Kong is a heady mix of commercial modernization and traditional vibrant culture and receives tourists in huge numbers, each year. Stay overnight.</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> Hong Kong
								</p>
								<p class="aj">Post-breakfast, leave the hotel for half-day sightseeing tour of Hong Kong. The list of the attractions of the day includes the Man Mo Temple- one of the oldest temples that is dedicated to the God of Literature (Man) and the God of War (Mo), Victoria Peak- the highest mountain of the island offering some amazing views, Aberdeen fishing village-a traditional fishing village with floating restaurants and seafood markets, Repulse Bay- a crescent-shaped beach with sea on one side and towering buildings on the other and Stanley market- a typical traditional open-air market.<br />
<br />
The second half of the day is for visiting Ocean Park- a theme-based park that has a reef aquarium, a zoo, an amusement park with rides and Dolphin shows. In the evening, back to the hotel for an overnight stay.</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> Hong Kong
								</p>
								<p class="aj">On day 3 of the tour, after breakfast, you are free to spend the day as per your liking. You can explore the remaining attractions on your own, can visit the markets for shopping or can simply relax in your hotel. You may visit attractions like Madam Tussauds Wax Museum, Man Mo temple, Hong Kong Space and Heritage Museum, Victoria Park, Po Lin Monastery and so on. Overnight stay.</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> Hong Kong
								</p>
								<p class="aj">After breakfast, day is free for leisure activities. Taste the local delicacies from the local restaurants serving authentic taste of Hong Kong. If you wish to splurge in shopping, there are high-end branded shops as well as popular street markets. Get your hands on jewellery, accessories, umbrellas, clothes, watches, sun glasses, electronic gadgets and so on. Do not forget to collect souvenirs for your loved ones back home. The street markets of Hong Kong such as Ladies Market, Wan Chi Markets and Costume Markets offer bargaining opportunities. Stay overnight.</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> Hong Kong - Disneyland
								</p>
								<p class="aj">On the 5th day, after breakfast, complete the check- out formalities and get an assisted transfer to Disneyland. This day of the tour is going to be unforgettable for you and your loves ones. Have a fun-filled and exciting at the Hong Kong Disneyland, that also has a beautiful Sleeping Beauty Castle as one of the highlights. The whole place is divided into different theme-based sections such as Main Street USA, Mystic Point, Grizzly Gulch, Toy Story Land, Tomorrow land, Fantasy land and Adventure Land.<br />
<br />
Enjoy some amazing rides and get yourself clicked with popular Disney characters like Donald Duck, Mickey Mouse and Minnie Mouse and so on. There are several eating joints to binge on tasty food. Do not forget to shop for some amazing Disney stuff. The musical lightshow at the closing time is the main highlight. Overnight at Disneyland.</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.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Hong Kong with Disneyland 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="98159"/>
						</form>
						</div>
						
						";i:1;s:69:"Book Hong Kong with Disneyland Tour - 5 Nights / 6 Days Tour Packages";i:2;s:118:"book hong kong with disneyland tour - 5 nights / 6 days tour packages, heritage tour packages, hong kong tour packages";i:3;s:171:"Book Hong Kong with Disneyland Tour - 5 Nights / 6 Days tour packages from Softpro Tour & Travel - Get attractive 5 Nights / 6 Days Heritage  tour packages for  Hong Kong.";i:4;s:411:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Hong Kong"        
		                 },
		      "description": "",
		      "name": "Hong Kong with Disneyland Tour",
		      "telephone": "+91-7896768942"
		    }
		    </script>
			";i:5;N;}