a:6:{i:0;s:11185:"				<div class="h1"><h1>Mauritius with Dubai Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.hifiholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.hifiholidays.com/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Mauritius with Dubai 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">Dubai, Port Louis</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.hifiholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mauritius with Dubai 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="109164"/>
						</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_14/411823/180438.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/411823/180438.jpg"  width="150" height="150"    alt="Mauritius with Dubai Tour" title="Mauritius with Dubai 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
								</p>
								<p class="aj">On your arrival in Mauritius, you meet our tour representative and get transferred to the hotel. Rest of the day is free for exploring the nearby places on your own or taking a stroll in the beaches. Spend the time as per your own liking. The tropical paradise of Mauritius is an island country, which is known for its beauty and vibrancy. The clean sandy beaches, crystal clear seas and the luxurious environment every year attract crazy footfall and offer ample opportunities to the tourists. Stay overnight in 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> Port Louise- Pamplemousses Gardens
								</p>
								<p class="aj">In the morning, after buffet breakfast, you leave for Port Louis (Capital of Mauritius). The biggest harbor (Port Louis Harbor is a commercial harbor connected to Africa, Asia and Europe and other continents) of Mauritius is to be visited today. Later, you visit Natural History Museum- it houses some of the most extinct species of birds like Dodo. Then, you head to La Citadelle- a hill fort built of stone; you are then free to shop in Port Louise Market. After shopping, take a walk in Pamplemousses Gardens- where a several plant species from all around the world are planted. Dinner and Stay overnight in 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 3:</b> Chamarel – Grand Bassin
								</p>
								<p class="aj">Have buffet breakfast, and set yourself for sightseeing tour of Chamarel- an enchanting village and Grand Bassin, also known as Ganga Talao. When in Chamarel, visit the "Seven Coloured Earth"- it has sand dunes in 7 different colors that never erode, water streams, black river gorges and lush forest. Later, head to Grand Bassin- a sacred crater lake, it is one of the most popular Hindu religious sites out of India. There is also a temple nearby. Dinner and overnight stay in 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 4:</b> Ile-Aux-Cerfs
								</p>
								<p class="aj">Following your buffet breakfast on the 4th day, is the visit to Ile-Aux-Cerfs. Also known as deer Island, this is an enchanting island where you relax on the white sand beaches or enjoy the enthralling water sports activities such as swimming and snorkeling. It is recommended to not miss the undersea walk. Treat your eyes to the scenery spread all around and soak-in the serenity. Dinner and overnight stay in 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 5:</b> Mauritius- Dubai
								</p>
								<p class="aj">On day 5, you are free to explore the vicinity after having buffet breakfast. In the afternoon, you check out from the hotel and handover your luggage in the bell desk. You can spend your free time by indulging in shopping. Get your hands on some amazing handicrafts products like model boats or artificial flower. You can also buy good-quality textile, designer jewelery and more. By evening, you get assisted transfer to the airport to catch a flight to Dubai.</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> Dubai city tour
								</p>
								<p class="aj">Have breakfast and get ready for the city tour of Dubai. Today, you visit Jumeirah Mosque- Dubai's most photographed mosque that is made in modern Islamic architecture, World Trade Centre- a popular business complex that also has exhibition halls and residential apartments, the luxurious royal palaces and Dubai Museum- placed in Al Fahidi Fort, it houses ancient artifacts, life-size dioramas, equipments of pearl merchants and so on. You leave for desert safari in the evening. Some of the prime highlights of the safari include enjoying camel ride, heena painting on hands and enjoying belly dancing. In the night, savor barbecue dinner. Back to the hotel for 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 7:</b> Dhow Cruise
								</p>
								<p class="aj">Explore Dubai and go shopping after breakfast. Dubai is extremely popular for being 'the place' for shopaholics. Though the place is popular for excellent-quality gold but you can get your hands on anything and everything here such as shisha pies and shawls. In the evening, experience The City of Lights in the Dhow Cruise and treat your eyes to the colorful and very well-lit Dubai building, along the beach. Enjoy welcome drink. Have sumptuous dinner in the cruise comprising of popular delicacies from all around the world. Overnight stay in 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 8:</b> Departure
								</p>
								<p class="aj">After breakfast, you are free to explore the surrounding. If you want, you can simply relax in your hotel room. Later, post check-out formalities, get timely transfer to the Airport for your flight back home.</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.hifiholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mauritius with Dubai 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="109164"/>
						</form>
						</div>
						
						";i:1;s:64:"Book Mauritius with Dubai Tour - 7 Nights / 8 Days Tour Packages";i:2;s:130:"book mauritius with dubai tour - 7 nights / 8 days tour packages, beach and islands tour packages, dubai, port louis tour packages";i:3;s:190:"Book Mauritius with Dubai Tour - 7 Nights / 8 Days tour packages from Hifi Tour & Travel  Holidays - Get attractive 7 Nights / 8 Days Beach and Islands  tour packages for  Dubai, Port Louis.";i:4;s:414:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai, Port Louis"        
		                 },
		      "description": "",
		      "name": "Mauritius with Dubai Tour",
		      "telephone": "+91-9890797744"
		    }
		    </script>
			";i:5;N;}