a:6:{i:0;s:11250:"				<div class="h1"><h1>Mauritius with Dubai Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.decenttravelenterprises.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.decenttravelenterprises.com/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Mauritius with Dubai Package</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.decenttravelenterprises.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mauritius with Dubai Package - 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="106726"/>
						</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_16/469503/176953.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/469503/176953.jpg"  width="150" height="150"    alt="Mauritius with Dubai Package" title="Mauritius with Dubai Package" /></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.decenttravelenterprises.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mauritius with Dubai Package - 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="106726"/>
						</form>
						</div>
						
						";i:1;s:67:"Book Mauritius with Dubai Package - 7 Nights / 8 Days Tour Packages";i:2;s:122:"book mauritius with dubai package - 7 nights / 8 days tour packages, safari tour packages, dubai, port louis tour packages";i:3;s:179:"Book Mauritius with Dubai Package - 7 Nights / 8 Days tour packages from Decent Travel Enterprises - Get attractive 7 Nights / 8 Days Safari  tour packages for  Dubai, Port Louis.";i:4;s:417:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai, Port Louis"        
		                 },
		      "description": "",
		      "name": "Mauritius with Dubai Package",
		      "telephone": "+91-9494675564"
		    }
		    </script>
			";i:5;N;}