a:6:{i:0;s:10625:"				<div class="h1"><h1>Mauritius 6Nights / 7Days 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 6Nights / 7Days 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">
						6 Nights / 7 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 6Nights / 7Days 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="74932"/>
						</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/133579.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/445618/133579.jpg"  width="150" height="150"    alt="Mauritius 6Nights / 7Days Tour" title="Mauritius 6Nights / 7Days 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 />						<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> 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 4:</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 5:</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 6:</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 7:</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 6Nights / 7Days 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="74932"/>
						</form>
						</div>
						
						";i:1;s:69:"Book Mauritius 6Nights / 7Days Tour - 6 Nights / 7 Days Tour Packages";i:2;s:128:"book mauritius 6nights / 7days tour - 6 nights / 7 days tour packages, beach and islands tour packages, port louis tour packages";i:3;s:182:"Book Mauritius 6Nights / 7Days Tour - 6 Nights / 7 Days tour packages from High Spirit Adventures - Get attractive 6 Nights / 7 Days Beach and Islands  tour packages for  Port Louis.";i:4;s:618:"
			<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",
		      "name": "Mauritius 6Nights / 7Days Tour",
		      "telephone": "+91-8629029169"
		    }
		    </script>
			";i:5;N;}