a:6:{i:0;s:10281:"				<div class="h1"><h1>Mauritius 5Nights / 6Days Return Airfare Ex - Mumbai Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.highspiritadventures.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.highspiritadventures.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Mauritius 5Nights / 6Days Return Airfare Ex - Mumbai 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">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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mauritius 5Nights / 6Days Return Airfare Ex - Mumbai 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="74938"/>
						</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_15/445618/133589.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/445618/133589.jpg"  width="150" height="150"    alt="Mauritius 5Nights / 6Days Return Airfare Ex - Mumbai Tour" title="Mauritius 5Nights / 6Days Return Airfare Ex - Mumbai Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					4.5% Govt service tax<br />
Mauritius- Full day excursion to Ile Aux Cerfs<br />
Full day North Island Tour<br />
Full day South Island Tour<br />
Airport Transfers are on SIC basis<br />
All transfers and Sightseeings on SIC Basis<br />
<br />
<br />
Mauritius- Full day excursion to Ile Aux Cerfs<br />
Full day North Island Tour<br />
Full day South Island Tour<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 & welcome
								</p>
								<p class="aj">Day at leisure<br />
<br />
You have a free day today. After breakfast, you are free to visit places of your choice by yourself to make your trip memorable. While you are finalizing your travel plan, we would be happy to suggest the places you should visit on this day. Although you have an option to book it through us or visit these place by yourself.</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> Full day North Island Tour
								</p>
								<p class="aj">Post breakfast proceed for a full-day North Island tour Visit the capital city- Port Louis / view of the Citadel/ Champ de Mars/ Government House/ Harbour /Shopping in the local market. Drive through the city centre to reach "Caudan Waterfront" a commercial landmark of shops, restaurants, Craft market etc. Return back have dinner and stay remains at 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> Full day South Island Tour
								</p>
								<p class="aj">After breakfast, proceed for a full-day South Island tour. Visit the to the Glass Gallery shop, then proceed to Curepipe to the spectacular crater "Trou aux Cerfs" where one enjoys the extensive view of the island. Few minutes away there is Floreal a destination which includes a textile museum/ shopping centers/ café/ 12 duty free boutiques/Ship model factory-shops. Then you proceed to discover the unspoilt beauty of the forest where flows a sacred lake, the "Grand Bassin" (Ganga Talao) a place for pilgrimage. Enjoy the magnificent view of Black River Gorge on the way to Chamarel, the place where the seven colour earth is found. Return back to hotel have dinner and overnight stay at 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 4:</b> Day at leisure
								</p>
								<p class="aj">You have a free day today. After breakfast, you are free to visit places of your choice by yourself to make your trip memorable. While you are finalizing your travel plan, we would be happy to suggest the places you should visit on this day. Although you have an option to book it through us or visit these place by yourself.</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- Full day excursion to Ile Aux Cerfs
								</p>
								<p class="aj">After breakfast, depart in a coach for a full-day excursion to Ile Aux Cerfs, an emerald lagoon on the east coast. The island is known for its sandy beaches, beautiful lagoon and a wide range of facilities and activities. A swim and snorkeling in the lagoon are perfect ways to spend a day. These are optional tours at additional cost. You can also enjoy optional water sports such as banana boat ride, water skiing, parasailing and undersea walk at an additional cost. Return to the hotel in the evening. Dinner will be served in one of the restaurants at the hotel and stay overnight at hotel. Tip: Please carry swimming suits, towel & sun screen lotion.</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> Day at leisure
								</p>
								<p class="aj">You have a free day today. After breakfast, you are free to visit places of your choice by yourself to make your trip memorable. While you are finalizing your travel plan, we would be happy to suggest the places you should visit on this day. Although you have an option to book it through us or visit these place by yourself.<br />
<br />
Departure with sweet memories.<br />
This is your last day of the trip. After breakfast, check out from the hotel as per the timings mentioned in the voucher. We suggest that you should keep this day light and check your flight timings before hand. You will be transferred to airport from the pick up location as mentioned in the voucher (If Applicable).</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.highspiritadventures.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mauritius 5Nights / 6Days Return Airfare Ex - Mumbai 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="74938"/>
						</form>
						</div>
						
						";i:1;s:96:"Book Mauritius 5Nights / 6Days Return Airfare Ex - Mumbai Tour - 5 Nights / 6 Days Tour Packages";i:2;s:155:"book mauritius 5nights / 6days return airfare ex - mumbai tour - 5 nights / 6 days tour packages, beach and islands tour packages, port louis tour packages";i:3;s:194:"High Spirit Adventures offers Mauritius 5Nights / 6Days Return Airfare Ex - Mumbai Tour - 5 Nights / 6 Days tour package, budget Beach and Islands tour packages for Port Louis at exciting price.";i:4;s:753:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Louis"        
		                 },
		      "description": "4.5% Govt service tax
Mauritius- Full day excursion to Ile Aux Cerfs
Full day North Island Tour
Full day South Island Tour
Airport Transfers are on SIC basis
All transfers and Sightseeings on SIC Basis


Mauritius- Full day excursion to Ile Aux Cerfs
Full day North Island Tour
Full day South Island Tour",
		      "name": "Mauritius 5Nights / 6Days Return Airfare Ex - Mumbai Tour",
		      "telephone": "+91-8629029169"
		    }
		    </script>
			";i:5;N;}