a:6:{i:0;s:11622:"				<div class="h1"><h1>Trip to  Maharashtra Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.saisaharatravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.saisaharatravels.com/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Trip to  Maharashtra 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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Lonavala</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.saisaharatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Trip to  Maharashtra 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="104481"/>
						</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_10/270877/174244.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_10/270877/174244.jpg"  width="150" height="150"    alt="Trip to  Maharashtra Tour" title="Trip to  Maharashtra Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Travel Period  -  Till 30th  Sept 2017<br />
No of People   - 02  Adult<br />
No of Rooms  - 01 Double room <br />
Transportation  - Vehicle on Private Basis <br />
Validity of Quote   -  Till Availability<br />
Lonavala Sightseeing Places<br />
Della Adventure, Pavana Lake, Lohagad Fort, Korigad Fort, Shooting Point, Pavana Lake, Reversing Station<br />
Lavasa Sightseeing Places<br />
Temghar Dam, Indoor Golf Recreational & Learning Center, Bamboosa, Lakeshore Watersports<br />
Mahabaleshwar Sightseeing Places<br />
Mahabaleshwar Hill Station, Mahabaleshwar Temple, Mapro Garden, Elphinstone Point, Lingmala Waterfall, Venna Lake, Connaught Peak, Elephant's Head Point<br />
Vehicle Type<br />
 4 Seater  Tata Indigo/ Toyato Eritga ( subject to availability)<br />
No. of Days  - 04 Days<br />
Kms. Limit -  870 KmsItems of personal nature like tips, laundry, telephone, beverages etc<br />
Entrance fee / Local Guide / at any place during the tour<br />
Meals not mentioned in the “Inclusions” section.<br />
Anything not mentioned in the package includes section.<br />
Additional sightseeing or usages of vehicle not mentioned in the itinerary<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 24/09/2017
								</p>
								<p class="aj">Pick up from Lonavala Railway Station & full day sightseeing local over night 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 2:</b> 25/09/2017
								</p>
								<p class="aj">Drive to visit Lavasa local sightseeing over night 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> 26/09/2017
								</p>
								<p class="aj">Drive to visit Mahabaleshwar local sightseeing over night 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 4:</b> 27/09/2017 Departure
								</p>
								<p class="aj">After sightseeing return back to Lonavala Railway Station tour end.</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>Sightseeing</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Items of personal nature like tips, laundry, telephone, beverages etc</li><li>
Entrance fee / Local Guide / at any place during the tour</li><li>
Meals not mentioned in the “Inclusions” section.</li><li>
Anything not mentioned in the package includes section.</li><li>
Additional sightseeing or usages of vehicle not mentioned in the itinerary</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><strong>Note:</strong>

<ul>
	<li>Hotel and rates are subject to availability.</li>
	<li>The rates are not valid for long weekend, Holidays and during any festivals.</li>
</ul>

<p><strong>Please Note :</strong>

<ul>
	<li>Early check in would be subject to availability and at sole discretion of hotel</li>
	<li>All booking vouchers and tickets will be provided 3 days before departure</li>
	<li>Extra Kms @ Rs.&nbsp; 9.25&nbsp;&nbsp; per Km (above&nbsp;&nbsp; 870&nbsp;&nbsp; Kms. Will be charged extra</li>
</ul>

<p><strong>Terms and Conditions:</strong>

<ul>
	<li>Above rate is calculated as per your tour program only and it will increase/decrease if there is any change in the tour plan. If you need any changes, please contact us.</li>
	<li>Discount Coupons and any other Promotional Discounts offered by the Company from time to time cannot be redeemed or combined with this customized package rate.</li>
	<li>Above rate does not include Monument entrance fees and any other expenses which are not mentioned in the inclusions. It is to be paid by the guest which is as actual.</li>
	<li>Kms and hours will be calculated from our garage to garage.</li>
	<li>One day means one calendar day ( i.e from midnight 12 to midnight 12)</li>
	<li>AC will not work in hill areas or stopped / parked vehicle.</li>
	<li>The selected hotel/STAR (*) rating of mentioned hotel is based on reputed websites like `Trip advisor` or hotel`s official website. We suggest to all our clients to check such hotels/websites before confirming the package/hotel. Sai Sahara Tours and Travels will not be held responsible for any deviations on expectations after check in at the hotel. If hotel does not provide services to the expectation of customer, Sai Sahara Tours and Travels shall not be held responsible for the same. We request all our customers to look at the reviews of hotel before booking the package.</li>
	<li>The rates are subject to availability of airfare, accommodation, class of booking on the airline and sightseeing tours at the time of booking. Any price increment&nbsp; in the mentioned things will be borne by the customer.</li>
	<li>All the sightseeing tours and excursions are organized by local companies of various destinations. The timings and days of operation are subject to alteration. Changes, if any, will be informed accordingly.</li>
</ul>						
    	<p class="h dif xlarge b mb5px">PACKAGE COST  - INR 25399/- Per Couple</p>
    	<div class="otherDetails aj">Hotels in this package:</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Destination</td>
				<td class="headHr p5px b">No. of Nights</td>
				<td class="headHr p5px b">Hotels</td>
				<td class="headHr p5px b">Plan</td>
			</tr>
			<tr>
				<td class="data p5px">Lonavala</td>
				<td class="data p5px">02</td>
				<td class="data p5px">3*Serenity Resort/Similar</td>
				<td class="data p5px">CP</td>
			</tr>
			<tr>
				<td class="data p5px">Mahabaleshwar</td>
				<td class="data p5px">01</td>
				<td class="data p5px">2*Cloud Green/Similar</td>
				<td class="data p5px">CP</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">PACKAGE COST  - INR  39599/- Per Couple</p>
    	<div class="otherDetails aj">Hotels in this package<br>
CP= Room+ Breakfast basis :   EP = Only Room basis</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Destination</td>
				<td class="headHr p5px b">No. of Nights</td>
				<td class="headHr p5px b">Hotels</td>
				<td class="headHr p5px b">Plan</td>
			</tr>
			<tr>
				<td class="data p5px">Lonavala</td>
				<td class="data p5px">02</td>
				<td class="data p5px">3*Citrus /Similar</td>
				<td class="data p5px">CP</td>
			</tr>
			<tr>
				<td class="data p5px">Mahabaleshwar</td>
				<td class="data p5px">01</td>
				<td class="data p5px">3*Citrus Chmaber/Similar</td>
				<td class="data p5px">CP</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.saisaharatravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Trip to  Maharashtra 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="104481"/>
						</form>
						</div>
						
						";i:1;s:64:"Book Trip to  Maharashtra Tour - 3 Nights / 4 Days Tour Packages";i:2;s:110:"book trip to  maharashtra tour - 3 nights / 4 days tour packages, valley tour packages, lonavala tour packages";i:3;s:153:"Sai Sahara Tours & Travels offers Trip to  Maharashtra Tour - 3 Nights / 4 Days tour package, budget Valley tour packages for Lonavala at exciting price.";i:4;s:1472:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Lonavala"        
		                 },
		      "description": "Travel Period  -  Till 30th  Sept 2017
No of People   - 02  Adult
No of Rooms  - 01 Double room 
Transportation  - Vehicle on Private Basis 
Validity of Quote   -  Till Availability
Lonavala Sightseeing Places
Della Adventure, Pavana Lake, Lohagad Fort, Korigad Fort, Shooting Point, Pavana Lake, Reversing Station
Lavasa Sightseeing Places
Temghar Dam, Indoor Golf Recreational & Learning Center, Bamboosa, Lakeshore Watersports
Mahabaleshwar Sightseeing Places
Mahabaleshwar Hill Station, Mahabaleshwar Temple, Mapro Garden, Elphinstone Point, Lingmala Waterfall, Venna Lake, Connaught Peak, Elephant's Head Point
Vehicle Type
 4 Seater  Tata Indigo/ Toyato Eritga ( subject to availability)
No. of Days  - 04 Days
Kms. Limit -  870 KmsItems of personal nature like tips, laundry, telephone, beverages etc
Entrance fee / Local Guide / at any place during the tour
Meals not mentioned in the “Inclusions” section.
Anything not mentioned in the package includes section.
Additional sightseeing or usages of vehicle not mentioned in the itinerary",
		      "name": "Trip to  Maharashtra Tour",
		      "telephone": "+91-9623788906"
		    }
		    </script>
			";i:5;N;}