a:6:{i:0;s:11368:"				<div class="h1"><h1>MT001 Magnificent Mauritius Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.sanskrutivacations.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.sanskrutivacations.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>MT001 Magnificent Mauritius 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.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="MT001 Magnificent Mauritius 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="85349"/>
						</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/393874/149994.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/393874/149994.jpg"  width="150" height="150"    alt="MT001 Magnificent Mauritius Tour" title="MT001 Magnificent Mauritius 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">Upon arrival in Mauritius you will be met by our representative and transferred to the hotel. Enjoy a fabulous dinner and spend a comfortable 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 2:</b> Ile Aux Cerfs
								</p>
								<p class="aj">After breakfast, depart for a full-day excursion to Ile Aux Cerfs (by coach), which is an emerald lagoon on the east coast. From the jetty, speed Boat your way to the island. Once you reach Ile Aux Cerfs, enjoy the day indulging in beach activities and water sports like Undersea Walk, banana boat, para sailing and speed boat. In the evening, return to your hotel and enjoy a delectable dinner followed by a comfortable 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> Ile Aux Cerfs
								</p>
								<p class="aj">After breakfast, spend the day at leisure or enjoy an optional full-day catamaran cruise. You opt to also do the Blue Submarine Safari with Transfers included. Another great option is to enjoy a Full day Sea Hover Adventure at the West and South West coast of Mauritius including a visit to Crystal rock and BBQ Lunch on Benitiers Island. There is no place for hesitation! This is a great fun sea excursion to enjoy with family or friends, taking you to a new level of entertainment in a complete safety. In the evening, savor a delicious dinner and spend a comfortable 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> North Island
								</p>
								<p class="aj">After breakfast, depart for a full day North Island tour. On this tour you will visit the capital city - Port Louis, as well as Place d' Arms with its French colonial buildings, the eventful Champ de Mars race course, the exotic Caudan Waterfront and the mall. Incase you don?t want to do the normal stuff you can also opt to visit the crocodile Park & Giant Tortoises Park which is home to various species of animals, reptiles and plants is set in a beautiful rain forested valley with natural freshwater springs, full of prawns and fish. There is also a mini zoo of Mauritian fauna where you can find most of the Mauritian mammals and reptiles including skinks, phelsumas (geckos), giant tortoises, turtles, bats, deer, mongooses, monkeys, pigs, as well as domestic livestock such as goats, fat-tailed sheep and donkeys and carry on Gris Gris with views of thewild water, no reef. Afterwards, enjoy dinner and spend a comfortable 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> North Island
								</p>
								<p class="aj">After breakfast, enjoy a full day at Casela Bird park which is the world of Adventure which includes four thematic worlds: Safari, Nature, Mountain and Water. Mountain Kingdom: Canyoning, Via Ferrata, Zip Lines, Climbing Wall. Safari Kingdom: Quad, Photo-Safari, dedicated area for Big Cats, Elephants and suitable for safaris and interactions with Giraffes.<br />
Water Kingdom: Wave pool, Toboggans (children and adults), a lagoon as well as an artificial river.<br />
For Big Cats lovers, this is a dream come true! Far from the African savannah, experience the thrill of coming close to the King and other big cats! Included in the ticket price is the visit to the Big Cats Park where you would enjoy a close view of the lions, cheetahs and tigers. Segway and Quad Biking is also possible. Experience a one-on-one adventure with the Lions in Mauritius' unique lion?s park.<br />
The Interaction is a unique activity of one-on-one time with one of these impressive predators (Lions, Cheetahs) in their compound. All filled in the day in store for you. In the evening, savour a delicious dinner and spend a comfortable 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 6:</b> South Island
								</p>
								<p class="aj">After breakfast, depart for a full-day tour of South Island. On this tour you will visit important sights such as, the Trou aux Cerfs - the crater of an extinct volcano, Grand Bassin - a natural lake at the base of a volcanic crater and a well-known pilgrimage place for Hindus, and Chamarel (Coloured Earth) with its vibrant hues and waterfalls. For clients who want something different you can also opt to visit this national park at Mare des Anguilles, Chamouny, boasts of 35 coloured earths! The visit to the reserve includes: the visit of Green valleys, Plateaus, Hills, Lakes, Waterfalls, Rivers, Volcanic ashes, 23 Coloured Earth, endemic and Indigenous Flora and fauna and access to the many facilities of the reserve such as the Kids Garden, Cafeteria and the restaurant. The origin of the 23 Coloured Earth dates back to millions of years after the volcanic eruption of the Bassin Blanc! In the evening, enjoy a delicious dinner and spend a comfortable 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 7:</b> Departure
								</p>
								<p class="aj">After a hearty breakfast at the hotel, you will be transferred to the airport in time to board 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>Transfers</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.sanskrutivacations.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="MT001 Magnificent Mauritius 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="85349"/>
						</form>
						</div>
						
						";i:1;s:72:"Book MT001 Magnificent Mauritius Tour - 6 Nights / 7 Days Tour Packages";i:2;s:131:"book mt001 magnificent mauritius tour - 6 nights / 7 days tour packages, beach and islands tour packages, port louis tour packages";i:3;s:182:"Book MT001 Magnificent Mauritius Tour - 6 Nights / 7 Days tour packages from Sanskruti Vacations - Get attractive 6 Nights / 7 Days Beach and Islands  tour packages for  Port Louis.";i:4;s:415:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Port Louis"        
		                 },
		      "description": "",
		      "name": "MT001 Magnificent Mauritius Tour",
		      "telephone": "+91-9769880881"
		    }
		    </script>
			";i:5;N;}