a:6:{i:0;s:12170:"				<div class="h1"><h1>Matheran Weekend Special from Pune/ Mumbai Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.grabyourholidays.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.grabyourholidays.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Matheran Weekend Special from Pune/ 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">
						2 Nights / 3 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Raigad</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.grabyourholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Matheran Weekend Special from Pune/ 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="82947"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<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_16/457916/146940.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/146940.jpg"  width="150" height="150"    alt="Matheran Weekend Special from Pune/ Mumbai Tour" title="Matheran Weekend Special from Pune/ Mumbai Tour" /></a></p></div></li>
																		<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_16/457916/146938.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/146938.jpg"  width="150" height="150"    alt="Matheran Weekend Special from Pune/ Mumbai Tour" title="Matheran Weekend Special from Pune/ Mumbai Tour" /></a></p></div></li>
																		<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_16/457916/146939.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/146939.jpg"  width="150" height="150"    alt="Matheran Weekend Special from Pune/ Mumbai Tour" title="Matheran Weekend Special from Pune/ Mumbai Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Mathern is a beautiful hill station at an altitude of 800 meters above the sea level. It offers a relaxing place to the tourist from around the world and provides them an opportunity to spend some quality time with their loved ones. Some of the exotic places to visit in Matheran include Vantage Points, Panorama Point, Heart Point, Echo Point, Louisa Point, Visit Monkey Point, Sunset Point, Chhatrapati Shivaji's Fort, The Mall Road and the beautiful Lakes.Meals except given in inclusions<br />
Monuments Entrances Fee.<br />
Any domestic or international airfare<br />
Medical and insurance of any kind. Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities<br />
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks Meals, Tipping etc. Camera Fee at.<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> Pune/ Mumbai to Matheran
								</p>
								<p class="aj">We will pick you up from your own place and drive to Matheran. On arrival, check-in at the hotel. Later, we will visit Charlotte Lake and Hart Point. An overnight stay at the hotel.<br />
Charlotte Lake: Also named as Sharlott Lake, Charlotte Lake is a calm and picturesque spot in Matheran. Further, it is the main source of drinking water in the Matheran region. The lake remains dry in summer and splendid in monsoon season.<br />
Hart Point: Located at the north western edge of Matheran hill station, Hart Point offer stunning views of the greenish quite villages and the low lying lush plains. Surrounded by dense green woods, it offers a calm, cool and pure destination for meditation and relaxation.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_16/457916/146938.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/146938.jpg"  width="150" height="150"    alt="Matheran Weekend Special from Pune/ Mumbai Tour" title="Matheran Weekend Special from Pune/ Mumbai Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Matheran (Sightseeing)
								</p>
								<p class="aj">After breakfast, we will visit Rambagh Point, Prabal Fort and Shivaji's Ladder. An overnight stay at the hotel.<br />
Rambagh Point is one of the amazing picnic spots that offer splendour views of the pavement hilly ranges and surrounding areas. The place is perfect to see the beautiful sunset in the evening.<br />
Prabal Fort is the ruins located at the flat top of Prabhal hills in the western side of Matheran. Captured from Mughals by Chhatrapati Shivaji, the fort is known for its historical significance. Out of eleven towers, today only three or four towers are remaining as a symbol of grand ancient days of Maratha rulers.<br />
Shivaji's Ladder is the way down from one tree hill point to the Matheran valley. As the name suggested, it appear as steps like a ladder. Chhatrapati Shivaji, the great Maratha Emperor, was using this ladder as a way for his pleasure trips and hunting options in the Matheran hills.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_16/457916/146939.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/146939.jpg"  width="150" height="150"    alt="Matheran Weekend Special from Pune/ Mumbai Tour" title="Matheran Weekend Special from Pune/ Mumbai Tour" /></a></p></div></li>
									</ul>
									</div>
									</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> Matheran to Pune / Mumbai
								</p>
								<p class="aj">After breakfast, we will check out from the hotel and drive back to Pune/ Mumbai.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_16/457916/146940.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_16/457916/146940.jpg"  width="150" height="150"    alt="Matheran Weekend Special from Pune/ Mumbai Tour" title="Matheran Weekend Special from Pune/ Mumbai Tour" /></a></p></div></li>
									</ul>
									</div>
									</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>4 Star Hotel</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Meals except given in inclusions</li><li>
Monuments Entrances Fee.</li><li>
Any domestic or international airfare</li><li>
Medical and insurance of any kind. Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities</li><li>
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks Meals, Tipping etc. Camera Fee at.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p>* Rates are subject to availability.&nbsp;<br />
* Rates can change without prior notice.&nbsp;<br />
*&nbsp;Peak Season / Weekend Surcharges may be applicable at the time of confirmation

<p>note:&nbsp;&quot;Each clients travelling in India or abroad has to ensure they carry all the related travel documents like valid passports, visa or other valid ID and address proof. Due to lack of any of these documents no hotels will allow check-in. We will not be responsible for any such kind of lose in services and full retention will be charged&quot;.												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.grabyourholidays.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Matheran Weekend Special from Pune/ 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="82947"/>
						</form>
						</div>
						
						";i:1;s:86:"Book Matheran Weekend Special from Pune/ Mumbai Tour - 2 Nights / 3 Days Tour Packages";i:2;s:130:"book matheran weekend special from pune/ mumbai tour - 2 nights / 3 days tour packages, valley tour packages, raigad tour packages";i:3;s:180:"Book Matheran Weekend Special from Pune/ Mumbai Tour - 2 Nights / 3 Days tour packages from Grab Your Holidays - Get attractive 2 Nights / 3 Days Valley  tour packages for  Raigad.";i:4;s:1265:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Raigad"        
		                 },
		      "description": "Mathern is a beautiful hill station at an altitude of 800 meters above the sea level. It offers a relaxing place to the tourist from around the world and provides them an opportunity to spend some quality time with their loved ones. Some of the exotic places to visit in Matheran include Vantage Points, Panorama Point, Heart Point, Echo Point, Louisa Point, Visit Monkey Point, Sunset Point, Chhatrapati Shivaji's Fort, The Mall Road and the beautiful Lakes.Meals except given in inclusions
Monuments Entrances Fee.
Any domestic or international airfare
Medical and insurance of any kind. Any expenses arising out of unforeseen circumstances like flight delay/cancellation/hike in fare, strike or any other natural calamities
Personal nature Expenses i.e. Telephone Calls, Laundry, Soft / Hard Drinks Meals, Tipping etc. Camera Fee at.",
		      "name": "Matheran Weekend Special from Pune/ Mumbai Tour",
		      "telephone": "+91-8888872247"
		    }
		    </script>
			";i:5;N;}