a:6:{i:0;s:10419:"				<div class="h1"><h1>Ashtavinayak Darshan Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.northindiatravel.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.northindiatravel.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Ashtavinayak Darshan 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">
						2 Nights / 3 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Mumbai, Pune</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.northindiatravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Ashtavinayak Darshan 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="43385"/>
						</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_11/307359/85964.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_11/307359/85964.jpg"  width="150" height="150"    alt="Ashtavinayak Darshan Package" title="Ashtavinayak Darshan 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 at Mumbai
								</p>
								<p class="aj">Mumbai is well connected with various parts of the country. Arrive at Mumbai city via railways, roadways or airways as by per your convenience. Once you reach Mumbai, our representative will guide you for the further journey. Board the bus and will precede our journey by taking the name of “Ganapati Bappa Moraya”. Proceed towards Mahad, a small and beautiful village in the Konkan region situated in the Raigad district. Vard Vinayak of Mahad satisfies all grants and desire all boons. In ancient times, this place was known as Mahadak or Bhadrak. The idol of Ganesha was found in an adjoining lake in an immersed position. In 1725 AD, Mr. Ramji Biwalkar built the Varda Vinayaka temple at Mahad.<br />
<br />
Proceed your journey to Pali to visit Ballaleshwar Ganpati. It is believed to save Ballala, a small boy who was beaten up by the local villagers, Ganesha himself appeared to save the boy. The myth also says that the idol of Ganesha was the same one that was thrown by Ballala’s father when he was worshipping it. Pali is a small village beautifully located between the river Amba and the fort Sarasgad. The idol is faced towards the west. After visiting Ballaleshwar temple, we are going to have delicious food prepared freshly by our members. <br />
<br />
After finishing lunch, we can continue our journey towards Ranjangaon. It is believed that Shiva worshipped Ganpati before fighting with the demon Tripurausra here. The idol faces to the east and is seated in cross leg position with its trunk pointed to left. The idol of Mahaganpati at Ranjangaon was originally hidden in the basement having 20 hands and 10 trunks called as Mahotak. Roam around the temple and shop some of the idols of Ganesha for your relatives and friends. Have evening snacks along with tea or coffee and then proceed journey to the hotel booked by us in Pune. Overnight facilities and dinner arrangement are arranged at the same hotel.<br />
</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> Theur - Siddhitek - Morgaon 
								</p>
								<p class="aj">Leave the hotel early in the morning to Theur, which is located in the Pune district of Haveli Taluka. The temple of Theur is dedicated to Chintamani, who drives all our perplexities and brings peace in our mind. The temple is faced toward the north direction. The idol of Ganesha has a left trunk with diamonds and carbuncle as its eyes. It is believed that Lord Brahma once felt confused and to rest his mind he called Lord Ganesha. Since then it is believed that Chintamani drives all your confusion by bringing peace of mind. Once done with Theur, we are going to continue our journey to Siddhtek after having lunch. <br />
<br />
Proceed to Siddhitek, a remote village situated near the Bhima River in the Karjat tehsil and in Ahemdnagar district of Maharashtra. The Siddhitek is considered as special, powerful and a unique deity. The temple is faced towards the north. It is believed that Lord Vishnu vanquished the two asuras namely Kaitabh and Madhu after appeasing Ganesha here. Besides these the two saints Shri Narayan Maharaj and Shri Morya Gosavi received enlightenment over here. Though the stomach of the idol is not wide, but Riddhi- Siddhi is seated on both thighs. Even the trunk of Ganesha is pointed to right, which is believed that devotes should be strict in worshipping Shir Siddhi Vinayak. To take Pradakishina of the temple, one has to take a round trip to the hillock that takes approximately 30 mins. <br />
<br />
Proceed to Moragoan temple called as Moreshwar or Mayureshwar that is situated on the river Karha. From the distance, the temple of Morogoan looks like a tiny fort that is situated in the Baramati district of Pune in Maharashtra. It is one of the most important temples on the Ashtavinayak Darshan. It is said that Ganesha riding on peacock had risen to slain demon Sindhu. Also, it is the only temple where you will see Nandi sitting in front of the entrance that is quiet unique. Nandi is usually observed in front of the Shiva temple only. After visiting Moregaoncha Ganpati, we halt at a hotel for evening snacks and tea or coffee. Overnight staying facilities are arranged in the same hotel of Pune. <br />
</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> Ozar - Lenyadri - Mumbai
								</p>
								<p class="aj">Proceed to Ozar situated on the bank of the River Kukdeshwar. It is a small village where Lord Vighneshwar resides. He is called as the Vighnharta that means Bappa who removes all obstacles that was achieved when he killed demon Vighnasura. After having lunch we can precede our journey to the final destination at Lenyadri. It is located to the Northern part of Pune on the bank of river Kukdi. The Puran of Ganesha calls Lenyadri as Lekhan or Jirnapur Parbat. The temple of Lenyadri is dedicated to Girijatmaj refers to son of Parvati. The temple is located on the mountain placed in the cave temple of Buddha. After having evening snacks, return back to Mumbai via Malshej Ghat. </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.northindiatravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Ashtavinayak Darshan 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="43385"/>
						</form>
						</div>
						
						";i:1;s:67:"Book Ashtavinayak Darshan Package - 2 Nights / 3 Days Tour Packages";i:2;s:133:"book ashtavinayak darshan package - 2 nights / 3 days tour packages, religious & pilgrimage tour packages, mumbai, pune tour packages";i:3;s:180:"Book Ashtavinayak Darshan Package - 2 Nights / 3 Days tour packages from MD Tour Travels - Get attractive 2 Nights / 3 Days Religious & Pilgrimage  tour packages for  Mumbai, Pune.";i:4;s:412:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Mumbai, Pune"        
		                 },
		      "description": "",
		      "name": "Ashtavinayak Darshan Package",
		      "telephone": "+91-9646469331"
		    }
		    </script>
			";i:5;N;}