a:6:{i:0;s:14224:"				<div class="h1"><h1>Mumbai Goa Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.softprotravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.softprotravels.co.in/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Mumbai Goa 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">Mumbai, Goa City</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.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mumbai Goa 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="98111"/>
						</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_17/484941/165913.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484941/165913.jpg"  width="150" height="150"    alt="Mumbai Goa Tour" title="Mumbai Goa 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 in Mumbai
								</p>
								<p class="aj">On your arrival in Mumbai Airport meet our tour representative who further escorts you to your pre-booked hotel. Check-in and relax in your hotel. Rest of the time is to be spent at leisure. In the evening take a stroll around the locale if you wish to. Return to your hotel by evening, have dinner and stay overnight.<br />
<br />
Mumbai was given the name City of Dreams owing to tremendous opportunity it holds, mainly in Hindi cinema. The city is the capital of Maharashtra and overlooks the gamboling waves of Arabian Sea. Its cityscape might remind you of that of New York. But along with the bustling nooks, Mumbai has clung on to its heritage and history and takes immense pride in all of that. It is unarguable that this very city gives a cut-throat competition to even the most developed cities worldwide, let alone of India.</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> Mumbai
								</p>
								<p class="aj">Have your breakfast in the morning and proceed for Mumbai sightseeing session, which includes Elephanta Caves, Prince of Wales Museum, Hanging Garden, Juhu Beach, Gateway of India and Marine Drive.<br />
<br />
Elephanta cave is located in Gharapuri (The City of Caves), approximately ten kilometers away from Mumbai Harbor. The caves consists mainly of two groups- Hindu Caves (consisting if five caves) and Buddhist Caves (consisting of two caves). This rock-cut architecture adopted for the caves is datable to a time between 5th and 8th century. However an apt date of its construction is yet a mystery but historians have concluded them to the time when Mauryan rulers were defeated by Badami Chalukyas in 635 AD. Back then, the Elephanta was the capital of Konkan Mauryas and was called Puri or Purika. The caves today are a UNESCO World Heritage Site.<br />
<br />
Prince of Wales Museum is also known as Chhatrapati Shivaji Maharaj Vastu Sangrahalaya. It was founded in 20th century in order to commemorate the visit of Prince Wales. There are about 50000 exhibits inside the museum divided into three categories- Art, Archeology and Natural History. Artifacts and relics of Indus Valley Civilization, Guptas, Mauryas, Rashtrakutas, Chalukyas and others are put here for public display. Other than this, you can behold beautiful prints, illustration of different wildlife species, paintings, manuscripts etc.<br />
<br />
Just a few kilometers away from the museum is where the landmark of Mumbai stands, The Gateway of India. This structure was built in order to commemorate the visit of Their Majesties King George V and Queen Mary in 1911. Take a leisure stroll in the Hanging Garden, which is perched at the top of Malabar Hill, overlooking the beautiful Arabian Sea. This manicured terrace garden is festooned with a huge variety of plants and flower species. Juhu Beach, the popular beach of Mumbai is thronged with visitors. Some of Mumbai’s best street food and restaurants are located here. Marine drive is located in the heart of Mumbai, just beside a busy road. But the horns and screeches of city’s road don’t really interrupt the serenity that is attained here while sipping a cup of coffee and just simply unwinding.<br />
<br />
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 3:</b> Mumbai - Goa
								</p>
								<p class="aj">Have your breakfast and check-out from your hotel. You get a timely transfer to Mumbai Airport in order to catch your flight for Goa. On arriving Goa, meet our tour representative and get shifted to your pre-booked hotel. Check-in at your hotel and relax. Rest of the day is to be spent at leisure.<br />
<br />
Goa and its beaches pull huge crowd from different corners of the world. The state is a popular destination of India, especially for beach-persons and party-animals. But that is not all what Goa is about; its shopping scenario, biodiversity, architecture, heritage and culture happen to be assets of equal share. It is known for its laid-back vibe, but with all the amenities one could think of, even the ones unthinkable.<br />
<br />
Stay overnight 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> North Goa
								</p>
								<p class="aj">Have your breakfast and head towards the popular beaches of Goa, such as Calangute, Dauna Paula, Miramar and Baga Beach. Old Goa churches and Fort Aguada can also be visited.<br />
<br />
Aguada Fort was constructed in 1613 for the purpose of safeguarding from Marathas and Dutch. Even today the structure is well-preserved and overlooks a beautiful vista of sea and expanse of woods.<br />
<br />
Old Goa sightseeing session consists of Cidade De Goa, Basilica Bom Jesus, Church and Convent of Francis of Assisi, Church of Saint Cajetan, Church of Saint Monica, Museum of Christian Art, Solar Souto Maior, Foutanhas and Panjim.<br />
<br />
The Basilica of Bom Jesus houses the moral remains of St. Francis Xavier, a missionary who traveled across Asia to spread the knowledge until he died in 1552. St. Francis Xavier is regarded as the Patron Saint of Goa. The Church of St. Francis of Assisi was built in 1521 by the Portuguese rulers and marks the brilliance of architecture. In the Museum of Christian Art, you can witness a collection of Rosaries and items made of gold and precious stones. Solar Souto Maior is a reflection of Goa’s rich heritage, dating back to 1585 but has been restored and renovated. Here, you can witness a treasure trove of artifacts.<br />
<br />
You may choose to take a stroll and shop in the busy streets of Panjim. This is the capital of Goa and has local as well as branded showrooms for the shopaholics. Also, foodies can find a myriad of restaurants giving cut-throat competition to each other in sense of taste, ambience and décor.<br />
<br />
In the afternoon, have lunch in Panjim. As per our recommendations, you must try Goan Cuisine from the Mandovi Hotel, Continental from The Vinete, Indian cuisine from Delhi Darbar and Chinese and oriental from Goan Chin. Kindly note, the cost of lunch is not included in the price of the tour.<br />
<br />
After lunch, visit Baga Beach which is filled with exuberance and youthful vibe. You may shop, relax or indulge in water-sports activities here.<br />
<br />
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> South Goa
								</p>
								<p class="aj">On this day of the tour have your breakfast and get ready to visit the beaches of South Goa. Attractions to be visited today consist of Mangueshi Temple, Shanta Durga Temple, Colva Beach, among others.<br />
<br />
Mangueshi Temple is a popular temple of Goa and also one of the largest in the state. It is dedicated to Bhagavan Manguesh, an incarnation of Hindu Lord Shiva. Other shrines inside the temple is of Goddess Parvati , Lord Ganesha, Nandikeshvar, Gajana, Gramapurusha Deva Sharma, Bhagvati, Lakshminarayan and others.<br />
<br />
Shanta Durga Temple has its history dating back to 1730, when the foundation stone was laid. The shrine was earlier built of laterite mud and was later renovated in 1966. Main deity of the temple, Goddess Shantadurga mediates between Lord Shiva and Lord Vishnu.<br />
<br />
Also visit Margao, the headquarters of South Goa district. It also happens to be commercial and industrial center. Margao’s colonial quarter Largo De lgreja is a historical church square, surrounded by old buildings that have their own charm. It is surrounded by old buildings from three sides and the Church of Holy Spirit on the other. The church is one of Goa’s grandest churches datable to 1564, when it was built. Its architecture epitomizes Indian Baroque style of architecture, with interiors having regal feel throughout.<br />
<br />
To learn more about the rural lifestyle of Goa, Ancestral Goa is a perfect place to be in. The laterite sculpture of Saint Mirabai is indeed the tallest laterite sculpture of India. Ethnicity and history is exhibited through its art galleries, artifacts center and open air museum.<br />
<br />
After this, proceed to Menezes Braganza House in Chandor. It was built in 17th century and is located on one side of the village square, however now divided into two houses with same entrance. On its east is a small chapel that has relics of St. Francis Xavier. The interior reminds us of a beautiful past. On its westward is where you can find the claimed first private library of Goa.</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.softprotravels.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Mumbai Goa 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="98111"/>
						</form>
						</div>
						
						";i:1;s:54:"Book Mumbai Goa Tour - 5 Nights / 6 Days Tour Packages";i:2;s:119:"book mumbai goa tour - 5 nights / 6 days tour packages, beach and islands tour packages, mumbai, goa city tour packages";i:3;s:157:"Softpro Tour & Travel offers Mumbai Goa Tour - 5 Nights / 6 Days tour package, budget Beach and Islands tour packages for Mumbai, Goa City at exciting price.";i:4;s:403:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Mumbai, Goa City"        
		                 },
		      "description": "",
		      "name": "Mumbai Goa Tour",
		      "telephone": "+91-7896768942"
		    }
		    </script>
			";i:5;N;}