a:6:{i:0;s:48220:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Sai Baba Darshan Shirdi Package 2D/1N</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.saishraddhatours.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.saishraddhatours.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
																
					<b class="ffv p2px">&rsaquo;</b> Sai Baba Darshan Shirdi Package 2D/1N</p>
					</div>
					</div>
					</div>
					<script>jQuery('#breadcrumbA').append(jQuery('#append2PageTittle').html());jQuery('#append2PageTittle').remove()</script>
									<section id="middle"><br />
				<div class="wrap packages" id="bodyFormatNT">
				<div class="row1 dt columns12"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls"><!--MIDDLE ROW1 COL-2 STARTS-->				
								
						<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">
					
											<p class="mb5px"><b>Tour Code :</b> SHIR101</p>
												<p class="mb5px"><b>Duration :</b> 
						1 Nights / 2 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Ahmednagar, Shirdi</p>
												<p class="mb5px"><b>Price (Starting From) :</b> 
						INR 3425 Per Person						</p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.saishraddhatours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Sai Baba Darshan Shirdi Package 2D/1N - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="16601"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_8/236813/28244.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/236813/28244.jpg"  width="150" height="150"    alt="Sai Baba Darshan Shirdi Package 2D/1N" title="Sai Baba Darshan Shirdi Package 2D/1N" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
											<div class="mt7px dif">* Mentioned prices may vary depending upon date of travel, hotel availability, surge pricing and seasonal rush.</div><br />
														<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								Any Food Other Than Breakfast.<br />
Anything Which Is Not In Include List.								</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> Pune - Shirdi (220Km/ 5Hr)
										</p>
										<p class="aj">Arrive Pune Airport/Station, Proceed Towards Shirdi. On Rout We Are Going To Visit Ranjangaon Ganpati (One Of The Ashtavinayaka), Shani Shinganapur, Overnight At Shirdi.</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> Shirdi - Pune (220Km/ 5Hr)
										</p>
										<p class="aj">After Taking Saibaba Darshan In The Morning Return Back To Pune Airport & Trip Conclude.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Any Food Other Than Breakfast.</li><li>
Anything Which Is Not In Include List.</li></ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Departure Cities with rates</p>
								</div>
								Min 4 Pax Is Necessary To Avail This Package.
Rs700/Person Extra For Bhimashankar (Optional).								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								Thank You For Exploring Saishraddha Tours For The Best Travel Experiences. We Offer You A Delightful All Efforts To Ensure That You Have A Warm And A Delightful Holiday Experience. We Devote Keen Attention To Every Minute Detail Of Your Tour. At The Same Time We Request You To Follow The Below Terms And Conditions So That We Are Successful In Our Earnest Attempt To Give You A Hassle Free And An Enjoyable Tour.<br><br>
Brief Description And Commencement:<br>These Terms And Conditions Be Called Saishraddha Tours (India And World Tours) Terms And Conditions 2013-14. They Extend To India And World Tours Organised By Saishraddha Tours. They Shall Come In Force From 01 September 2013.<br>Definitions: In These Terms And Conditions Unless The Context Otherwise Requires:<br>Guest(S) Means The Total Number Of People Who Have Registered Their Names And Booked The Tour By Having Paid Full Payment For Indian / World Tours Organized By Saishraddha Tours (Which Expression Shall, Unless It Be Repugnant To The Context Or Meaning Thereof Be Deemed To Mean And Include Their Respective Heirs, Executors And Administrators)<br>Company Means Saishraddha Tours.<br>Tour/S Means Any India And/Or World Tours Organized By Saishraddha Tours.<br>First Day Of The Tour Shall Start At Any Time (I.E. In The Morning/Afternoon/Evening) At The First Destination Depending On The Arrival Of The Respective Flight/Train/Cruise Or Any Mode Of Transport, Same Shall Be In Case Of The Last Day Of The Tour. In Other Words, A ‘day’ Shall Mean A Part Of The Day Or 24 Hours Or Its Part Thereof.<br>Panoramic City Tour: City Tour Includes All Places As Mentioned In The Tour Program And Unless Specifically Mentioned, It Is A Panoramic View Or A Photo Stop.<br>Tour Manager / Tour Assistant By Whatever Designation Called Means A Person Designated By The Company To Help / Guide / Assist The Guests In And/Or During India And/ Or World Tours Organised By Saishraddha Tours.<br>Force Majeure Means An Event Or Circumstance Not Within The Reasonable Control, Directly Or Indirectly, Of Saishraddha Tours In Its Ability To Perform Its Obligations / Responsibilities Regarding The Tour Including (I) War, Hostilities Invasion, Act Of Foreign Enemies; (Ii) Rebellion, Revolution, Insurrection Or Military Or Usurped Power Or Civil War; (Iii) Epidemic, Explosion, Fire, Flood, Earthquake Or Other Exceptional Natural Calamity And Act Of God; (Iv) Ionizing Radiation Or Contamination By Radioactivity From Any Nuclear Fuel, Or From Any Nuclear Waste From The Combustion Of Nuclear Fuel, Radioactive Toxic Explosive, Or Other Hazardous Properties Of Any Explosive Nuclear Assembly Or Nuclear Component Of Such Assembly; (V) Riot, Commotion Or Disorder; (Vi) Any Act Or Omission Of Any Government Instrumentality; (Vii) A Change In Legal Requirements; (Viii) Strikes Lock Outs Or Other Industrial Disturbances; And (Ix) Abnormal Weather Or Sea Conditions Including Tempest, Lightning, Hurricane, Typhoon, Rain And Temperatures.<br><br>Brochure Means Tariff Rates And Tour Related Information For The Respective Years Brought Out / Published By Saishraddha Tours.<br>Independent Contractor Means A Person And/Or Organization Selected By Saishraddha Tours To Render Services Including Transport, Hotel, Restaurants, Sightseeing To The Tourist (S) And/Or To Saishraddha Tours.<br>Meal Means Breakfast, Lunch, Dinner And/Or Any Other Snacks Supplied.<br>Jain Food Means Food Without Onion And Garlic Served At The Time Of Tour Group Meals Not Necessarily Before Sunset.<br>The Masculine Gender, Shall Also Include Feminine Gender And Vice Versa, The Singular Shall Include Plural And Vice Versa And Shall Include Grammatical Variations Thereof.<br>Each Of These Terms And Conditions Shall Be Severable And If Any Provision Thereof Is Declared Invalid, Illegal Or Unenforceable, Then Remaining Provisions Nevertheless Shall Have Full Force And Effect.<br>Group Tours Mean Where The Services Provided Are Similar To All The Travellers In That Group.<br><br>
Brochure<br>Brochure Means Tariff Rates And Tours Related Information Published By The Company From Time To Time For The Respective Years. After Arrival Of New Brochure All Old Tariff Cards And Tours Related Information Stands Cancelled Unless Specified.<br>Company Reserves The Right To Change Or Modify Information Related To Tour Or Tariffs; Also Hotels Can Be Changed Even After The Tour Has Been Booked By The Guest. The Company Shall Inform The Guest At The Earliest About The Changes In Their Respective Program.<br><br>
Liberty Of Activity<br>Company As An Organization Is Coordinating With Various Independent Service Providers For Conducting The Tour. Company Takes Utmost Precaution To Ensure That The Tour Is Comfortable. Also, Guests Are Updated From Time To Time Through Different Media Of Communication In Case Of Changes.<br>Though We Take Maximum Care, Neither Do We Have Control On The Modes Of Transport Like Airlines, Railways, Cruises, Coaches, Buses Etc Nor On Hotels, Restaurants Or Any Other Services.<br>Thus, As A Company We Shall Not Be Responsible For Any Kind Of Damage To The Person Or To The Property Because Of These Independent Vendors.<br><br>
Booking Criteria:<br>Guest’s Interest To Participate In The Tour<br>Payment Of The Registration Amount Only Shows That The Guest Is Interested In Going For The Tour. All The Services Like Travel Tickets, Visas, Hotel Accommodation Etc Shall Be Confirmed Only On Receipt Of The Full And Final Payment.<br><br>
Confirmation Of Booking<br>Guest Signature On The Tour Booking Form Clearly Indicates That S/He Has Accepted The Terms And Conditions Mentioned In The Brochure. Also, In Case If A Single Guest Is Signing A Booking Form On Behalf Of The Entire Family, It Means That The Person Signing Is Authorized By Other Members And They Will Abide By The Terms And Conditions.<br>Non-Payment Of Full Tour Cost Before Departure<br>Company Reserves The Right To Cancel And Forfeit The Paid Amount In Case Of Non-Payment Of Full Tour Cost Before Departure.<br><br>
Change In Tour<br>If A Guest Wishes To Cancel A Booked Tour And Join Any Other Available Tour, Then Cancellation Charges For The Previously Booked Tour And New Tour Cost Plus New Discounts For The New Tour Shall Be Applicable To The Guest.<br>If The Guest Wishes To Make Individual Bookings After The Initial Booking On A Particular Package And/Or Wishes To Make Amendments Such As Change Of Destination, Departure Dates, Addition Of Deletion Of Services, Change In Passenger Numbers Etc. S/He Has To Make A Written Request And Obtain An Acknowledgement From The Travel Advisor. There Will Be An Amendment Fee Of Rs 300/- On Every Service Once All Services Are Confirmed. The Amendment May Invite Further Cost Which Will Have To Be Borne By The Guest. All Such Requests Can Be Accepted Only If They Are Available With The Company.<br><br>
Criteria For Operating A Group Tour<br>For Operating A Group Tour, There Must Be Minimum 20 Guests Booked On The Same Tour And The Same Date. In An Event Of Cancellation Of Tour Because Of Non-Fulfilment Of Minimum Criteria, Guests Shall Be Intimated In Advance Through Sms, Telephone Or Email.<br>In Case, If The Tour Does Not Materialize And Still The Guest Wishes To Continue With The Same Tour, On The Same Date, The Tour Shall Be Operated On Individual Basis Without Tour Manager And On Map Basis.<br><br>
Request For Special Services<br>As A Company Operating Group Tours We Always Give Equal Attention To Each And Every Tour Member And The Entire Group. At The Time Of Booking, If The Guest Informs About Requirement Of Special Assistance, The Company May Not Be Able To Guarantee It. For Eg. It May Not Be Possible To Provide Wheel Chair As All Coaches Are Not Equipped With These Facilities. Also, We Would Advise Our Special Guests To Be Accompanied By A Family Member Who Can Take Care Of Him/Her Throughout The Tour.<br><br>
Medical Fitness Of The Guest<br>It Is Assumed That The Guests Booking The Tour Are Medically Fit To Travel On Tour And Also That S/He Is Aware About The Tour Program And The Different Activities That Shall Be Undertaken During The Tour. In Case Of Any Health Related Issues On Tour, Guests Are Expected To Be Equipped To Handle It On Their Own. Tour Manager Can Give Assistance In Such Cases But It Will Not Be Possible To Give Complete Attention.<br><br>
Guest Undergoing Medical Treatment<br>In Case If A Medically Unfit Guest Books A Tour And The Company Is Not Informed Of The Same, The Company Reserves The Right To Cancel The Booking In Order To Safeguard The Interest Of Other Guests. In Case, If The Guest Wishes To Travel In A Separate Vehicle, It Can Be Done By Paying Additional Cost For It.<br><br>
Guest Who Have Not Booked<br>All The Services Are Paid Services Like Hotel, Transport, Restaurants Etc. Hence Guest’s, Relatives, Friends, Acquaintances Who Have Not Booked The Tour Shall Not Be Allowed To Use The Services Confirmed For The Booked Guest.<br><br>
Guest Payment/Tour Payment By Guest:<br>Registration Amount:<br>The Registration Amount Paid At The Time Of Booking, Is Non-Refundable And Interest Free. Guests Have To Pay The Full Tour Cost As Per The Guidelines Given In The Brochure. Participation On Tour Shall Be Confirmed Only After The Guest Makes The Full Payment.<br>In Case A Cheque Paid By The Guest In Favour Of The Company Is Dishonored, A Charge Of Rs 200/- Per Cheque Must Be Paid By The Guest.<br>If A Guest Books A Tour Just 30 Days Prior To The Departure, S/He Should Make A Payment Of The Entire Amount. Also, The Amount Should Be Paid By Demand Draft Or Cash.<br><br>
Cost Of Tour<br>When The Tour Cost Is Quoted, The Foreign Exchange Component Is Calculated As Per The Prevailing Rate Of That Day. The Company Reserves The Right To Alter The Cost Of The Tour Before The Departure; Accordingly The Guest Will Have To Make The Full Payment Before Tour Departure. Tour Costs Does Not Include Government Taxes Or Any Other Tax Raised By Independent Contractors Like Airlines Which Are To Be Paid By The Guest As Per Actuals.<br><br>
Discounts For Tour<br>Guests Can Avail Early Booking Discounts Declared By The Company Which Are Valid For The Declared Period Only And Are Applicable For Limited Seats Or For Particular Dates As Specified. Company Reserves All Rights To Make Changes In The Discount Policy At Any Point Of Time Without Assigning Any Reason.<br><br>
Additional Taxes By Airlines, Visa And Government<br>Airline Is An Independent Vendor And The Company Does Not Have Any Control On Their Operations, Neither On The Increase In Air Fare, Fuel Nor Any Other Taxes Like Yq & Yr Etc. They Have To Be Paid By The Guest Before The Tour Departure. Air Ticket Cancellation Charges Plus Deposit Forfeit Charges Are As Applicable Under The Rules Of The Concerned Airline. These Are To Be Paid By The Guest Immediately In The Event Of Cancellation Of The Tour.<br>Hike In Visa Fee/Vfs Fee Or Increase In Government Tax Are Not Under The Company’s Control. Therefore, Any Such Charges Shall Be Paid By The Guest.<br><br>
Cost Of Tours Other Than Mumbai To Mumbai Tours (World Tours)<br>Tour Cost Is Fixed Taking Into Consideration Mumbai To Mumbai Departures. However, For Convenience If The Guest Wishes To Board Flight From Airports Other Than Mumbai, S/He Shall Bear The Extra Charges. Also, If S/He Reaches The Destination Before The Group, S/He Shall Pay For The Transfers, Hotel Stay And Meal Charges As Per Actuals.<br><br>
Reimbursement To The Company<br>For Any Reason If The Company Bears Any Cost On Behalf Of The Guest, S/He Must Reimburse The Amount To The Company Within The Designated Time.<br><br>
Documentation Required For A Tour:<br><br>Passport<br>For A Guest Travelling Abroad, Passport Is An Official Document And Also An Identity. Visa (Visitor Intending To Stay Abroad) Is Also A Must To Enter A Particular Country. Passport Copies Are Required For Many Purposes Other Than For Processing The Visa. Therefore, The Guest Must Keep Multiple Copies Of Each Passport With Him/Her.<br>The Passport Should Be Valid For Minimum 180 Days From The Date Of Departure From India And From The Date Of Arrival/Conclusion Date Of The Tour In India. For A Few Countries This Requirement Is Of 270 Days. All Travelers Booking Tours For Europe Sector Should Ensure That The Passport Validity Is 10 Years. Passport Should Have Sufficient Blank Pages That Are Not Damaged/Stapled/Torn For Recording Visas Of Various Countries.<br><br>
Visa (World Tours)<br>Visa Permits Guest To Enter Another Country And For Tourists Generally Short Term Visa Is Granted By The Respective Consulates. The Company Is A Visa Facilitator And Generally Assists Guests In Preparing Visa Documents, Submitting It And Collecting Passport From The Consulate. Consulates May Call The Guest For A Personal Interview Even After All Relevant Documents Have Been Submitted. Also, The Company Is Not Responsible For Any Kind Of Error Caused By The Consulate. Issue Of Visa Is At The Sole Discretion Of The Respective Consulate; The Company Does Not Have A Hold On The Decision Of The Consulate And Cannot Object To It Either.<br>The Company Generally Guides Tourists For Uk Visa Documentation And/Or For Obtaining Interview Date For Usa Visa Process. The Visa Fees Charged To The Tourists Shall Be At The Rates Prevailing As On The Date Of Submission Of Documents To The Consulate. No Consulate Generally Gives Any Reason For Not Granting The Visa. In Such A Case, The Passport Is Returned Without Visa. The Company Therefore Shall Not Provide Any Reason As To Why A Person Is Not Granted Visa. The Company Also Cannot Give Any Reason Why A Particular Person Was Granted Visa As It Is At The Discretion Of Consulate Of Respective Countries. Visa Fees Are To Be Paid By The Guest In Both These Cases. For A Few Countries Visa Can Be Issued On Arrival At The Country’s Respective Destination. Immigration Reserves The Right To Change The On-Arrival Visa Procedure At Any Time. On Receipt Of The Visa, Guests Are Required To Check Validity, Signatures And The Photographs Placed On The Visa Copies. In Case Of Visa Rejection, Guest Shall Pay The Applicable Charges And Also Tour Cancellation Charges.<br><br>Requirement Of Photo Identity On Tour<br>For All Travel, Including A Tour In India, The Guest Is Required To Carry Photo Identity (Pan Card, Official Documents Issued By Government Bodies Etc. And For Students - College/School Id Card Of The Present Year).<br>Responsibility Of The Guest While On Tour<br>Guest Is Solely Responsible To Get All The Required Clearance Like Passport, Visa Confirmed Air Tickets, Insurance Etc. Guest Should Ensure That S/He Collects All The Required Travel Documents Before The Start Of The Tour.<br>Guest Should Keep Certified True Copies And Photo Copies Of All Travel And Statutory Clearance Documents Viz. Passports, Visas, Confirmed Travel Tickets, Insurance Including Medical Insurance Certificates, Any Other Document Used To Confirm The Services Of Tour Including An Arrangement With Independent Contractor And Other Statutory Certificates, Used By Him/Her While On Tour.<br>Passport Loss On Tour<br>Guest Should Take Utmost Care To Ensure That The Passport Is Not Lost. It Is The Identity Of An Individual And Loss Of This Document Results In Time Consuming And Costly Formalities Like Launching An Fir, Obtaining A Landing Certificate Etc. The Tour Manager Will Assist The Guest With These Formalities But Cannot Stay Back As S/He Has To Continue The Tour With Rest Of The Group Members.<br><br>
Travel Insurance:<br>Insurance Is Not Included In The Tour Cost Unless Specified Or Required By The Specific Consulates For Issuance Of Visa. Usually, Overseas Mediclaim Insurance Covers Hospitalization, Medical Emergencies And Loss Of Passport; Hence The Company Strongly Recommends That Guests Buy The Insurance. Guest Should Settle All Insurance Claims With The Insurance Company. Company Shall Not Be Responsible For Settlement Of Any Claims For The Guest As Insurance Is A Separate Service. The Company Does Not Have Any Control On These Service Providers.<br><br>
Changes In Itinerary<br> The Company Reserves The Rights To Modify Or Alter The Tour Itinerary In Case Of Force Majeure Conditions. Changes Shall Be Informed To Guests At The Earliest. Guests Shall Pay Any Additional Charges Applicable In Such Cases.<br>Other Than Force Majeure For Any Other Unavoidable Circumstance, If The Company Curtails Or Cancels A Certain Day’s Sightseeing, Refund For The Concerned Portion Of The Sightseeing/Tour Shall Be Given To The Guests. The Company Will Not Be Responsible For Any Other Kind Of Refund.<br>Guests Joining/Leaving The Tour At Locations Other Than Specified Pick Up And Drop Points (World Tours)<br>Guests May Join Our Tour At The First Destination As Per Their Convenience. In Such A Case Guests Must Possess All Air Tickets Of The Family, Visas And Insurance Documents And Are Required To Join The Group At The First Destination Of The Tour. Such Guests Should Furnish All Information Such As Flight Details, Local Contact Details, Email Address Etc To The Travel Advisor 15 Days Prior To Departure.<br>Guests Who Wish To Take A Deviation From The Original Group Tour Schedule<br>If A Guest Who Has Booked A Group Tour Wishes To Deviate From The Tour Schedule Before Or After The Tour, S/He Can Do So By Paying An Additional Cost.<br>In Individual Bookings, Guests On An Indian Tour Can Coordinate With The Driver Of The Car/Coach. Guests On World Tour Can Coordinate With Ground Handling Agents To Plan Next Day’s Visit And Sightseeing Programme. The Car/Coach Has Specific Time Limits Within Which It Operates.<br><br>
Transport:<br>Seating Arrangement In The Coach Shall Be Strictly On First Come First Serve Basis. In The Coach, Seating Allotment Shall Start From Seat Number 5 Onwards As 1St And 2Nd Seat Is Reserved For The Tour Managers And The 3Rd And 4Th Seat Is Reserved As Premium Seat Which If Available Can Be Booked By The Guests At An Additional Cost. Company Reserves The Right To Allocate Premium Seats.<br>There Is A Strict “no Smoking”, “no Alcohol” And “no Eating” Policy In The Coach. Guests Are Advised Not To Keep Valuables In The Coach While Sightseeing. The Company Shall Not Be Responsible For Loss Of Valuables From The Coach. If The Coach Is Accidently Or Otherwise Damaged By The Guest, S/He Will Be Required To Pay Compensation For The Same.<br><br>
Coach/Bus During World Tours:<br>The Company Provides Air-Conditioned/Air-Cooled, Luxury Coaches. Seating And Size Of The Coach Generally Depends On The Number Of Travelers And The Sector/Destination.<br><br>
Coach/Bus During Indian Tours:<br>The Company Provides Air-Conditioned/Air-Cooled, Luxury Coaches. Seating And Size Of The Coach Generally Depends On The Number Of Travelers And The Sector/Destination. For A Few Sectors In India Smaller Vehicles Or Mini Coaches Will Be Provided.<br><br>
Hotel Arrangements:<br>
Company Selects Hotels Mostly At Comfortable Locations. Guests Are Generally Provided Twin Sharing Accommodation In Standard Rooms. Third Bed Is A Roll Away Mattress. Other Facilities Like Heaters / Coolers Are Provided As Per The Weather Condition.<br>Please Note That For A Family Of 4 We Strongly Recommend 2 Rooms.<br>Triple Rooms Are Not Larger Than Twin Rooms And The Third Bed Is Often A Roll-Away Mattress Put In A Twin Bedded Room.<br><br>
Check-In And Check-Out Time:<br>Guests Are Required To Follow Check-In And Check-Out Time Of Respective Hotels.
In India Tours, Hotels Generally Have A Check-In Time Of 1200Hrs And A Check-Out Time Of 1000Hrs. In World Tours, Hotels Generally Have A Check-In Time Of 1500Hrs And Check-Out Time Of 1200Hrs. If Guests Want Any Change Therein, It Should Be Arranged On Their Own.<br><br>
Room Sharing On Tour:<br>If There Are Two/Three Single Guests Travelling On The Same Tour And Are Ready To Share A Hotel Room They Can Do So With Each Other’s Consent. The Company Shall Not Be Responsible For Any Misunderstanding Or Any Incidence Of Missing Items Or Any Other Such Concerns.<br>Single Occupancy:<br>Guests Who Are Paying For Single Occupancy Shall Get Single Bedded Rooms That Are Usually Away From The Twin Bedded Rooms.<br><br>
Guest Wanting To Avail Additional Facilities:<br>For Availing Any Additional Facility Like Laundry, Telephone, Mini-Bar, Snacks, Food, Alcohol, Optional Activities In The Hotels, Excess Baggage, Personal Shopping, Pay Toilet Etc, The Guest Is Required To Bear The Expenses.<br><br>
Meals Served On Tour:<br>As The Company Is Operating Group Tours Menu Is Preset. Sometimes Packed Meals Are Served.Menu Is Mostly Vegetarian With A Few Non Vegetarian Items. For Individual Bookings Any Meal Included In The Package Will Be Indicated In The Service Vouchers. In Case Guest Misses Any Meal For Any Reason, No Refund Will Be Given. The Company Has No Control Over The Nature Of Meals Provided By The Concerned Independent Supplier(S).<br>Tour Manager On Tour:<br>Tour Managers/Assistants/Escorts Will Be Assisting Travelers Throughout The Tour And They Will Not Be Responsible For Loss Of Any Guest’s Baggage Or Any Kind Of Personal Belongings. Guests Will Be Solely Responsible For Their Bags And Belongings. Guests Should Follow Information And Instructions Given By Tour Managers. The Company Is Not Responsible For The Consequences That May Result From Not Following Such Instructions.<br>Guest Baggage:<br>Guests Are Responsible For The Transit Of Their Own Baggage. Any Porter Charges Or Tips For Services Rendered To Carry Baggage To The Rooms Will Be Paid By Guests To The Service Provider Directly.<br><br>
Cancellation Policy:<br>Cancellation By Guest -<br>If The Guest Decides To Cancel The Tour For Any Reason Whatsoever Then S/He Shall Give A Written Application To The Company Within Specified Time Limit Along With Original Receipt Issued By The Company. Such Cancellation Will Attract Cancellation Charges Stated Hereunder.<br>Cancellation Charges Will Be Calculated On Gross Tour Cost And The Cancellation Charges Shall Depend On Date Of Departure And Date Of Cancellation.<br>Cancellation Charges For Any Type Of Transport Ticket Are Applicable As Per The Rules Of The Concerned Authority.<br>Air Tickets Issued On Special Fares Are Non Refundable And Guest Shall Bear Cancellation Charges.<br>Any Refund Payable To The Guest Will Be Paid After The Company Receives Refund From The Respective Authorities. The Company Deducts Processing Charges From The Refund To Be Paid To The Guest.<br>No Of Days Prior To Departure - % Of Cancellation Charges Per Person.<br><br>
More Than 60 Days - 5% Or Rs.1000/-Whichever Is More - Registration Amount<br>60 To 46 Days - 15% - 15%<br>45 To 31 Days - 25% - 25%<br>30 To 15 Days - 50% - 50%<br>14 To 4 Days - 60% - 60%<br>3 To 1 Day - 80% - 80%<br>On The Day/On Tour - 100% - 100%<br>Note: Charges Are Levied On The Gross Tour Price And Not The Discounted Price. - - 
For Indian Tours, Cancellation Charges Do Not Include Air Ticket Cancellation And They Will Be Levied Separately. - - 
When The Company Cancels A Tour<br><br>In Case If A Tour Is Cancelled From The Company’s End,Then The Full Refund Of The Amount Paid By The Guest Will Be Made Within 7 Days Of Cancellation Of The Tours. Alternatively,The Guest Can Take Any Other Tour Option Suggested By The Travel Advisor Or Can Utilize The Tour Amount Paid In Any Of The Company’s Future Tour Within One Year’s Time.<br><br>
Miscellaneous:<br>Information Of Privacy<br>Any Information Furnished By The Guest To The Tour Manager And/Or The Company, Is Subject To Disclosure Thereof As Required By Law Or By An Order By Court Or The Rules, Regulations And Enquiry By Any Government / Statutory Authority. The Company Shall Not Disclose Any Data Of Its Own Under Any Circumstances To Any Guests Including Any Kind Of Clarification On Itinerary, Tour Costs, Cancellation Charges Etc.
Rules Laid Down By Government For Nri (Non Resident Indian) Guest<br>All Guests Staying Abroad Including Nris Or Foreigners Should Abide By All The Laws, Rules, Regulations Of Government Of India And/ Or The Country Concerned While Undertaking The Tour.<br>On Tour Shopping<br>Though Shopping Is An Integral Part Of All Tours, Saishraddha Tours Neither Recommends Nor Promotes Any Specific Shops. The Company Does Not Take Any Responsibility In Case Of Any Fault In The Shopped Items.<br><br>
Valuables Should Be Avoided On Tour<br>The Company Strongly Advises Guests Not To Carry Valuables While Travelling On Tour. If Any Such Item Is Carried, It Must Be With The Guest And Not Left Either At The Hotel Lobby Or In The Coach. Also, It Is Strongly Recommended Not To Keep Valuables Inside Hotel Room, Instead They Can Be Kept In Safe Deposit Lockers. The Company Is Not Responsible For Loss Of Valuables.<br><br>
Video Shooting/Photographs Taken On Tour<br>The Company Reserves The Right To Use Photographs / Video Clips Given By The Guests And/Or Taken On Tour, For Promotion Of The Company’s Business Without Obtaining Prior Permission Of The Concerned Guests.<br><br>
Grievances<br>If Guest Has Any Claim, Grievance And/Or Complaint With Respect To The Services Provided By Any Of The Independent Contractors, Guest Should Immediately Notify It To The Independent Contractor In Writing, And A Copy Of The Letter Should Be Handed Over To The Tour Manager.<br><br>
Paid Toilets<br>In Some Places/Destinations/Countries, There Are Paid Toilet Halts, The Expenses Of Which Are To Be Borne By The Guest.<br><br>
Jurisdiction<br>All Disputes Pertaining To The Tour And Any Claim Arising Therein Shall Be Subject To The Court Of Jurisdiction At Pune Only.<br><br>
Refund :<br>Refunds If Any, For Variation/Modification/Amendments/Alteration And/Or Cancellations Etc. Of Any Tour Will Be Paid Directly To The Guest By ‘a/C Payee’ Cheque, In Indian Rupees At The Prevailing Rate Of Exchange On The Date Of The Cheque, As Per Reserve Bank Of India Rules And Regulations, Irrespective Of Whether The Tour Payments In Part Or Whole Were Made In Foreign Currency.<br><br>
No Refund Will Be Payable -<br>For Any Missed / Unused Services Of The Tour Including The Meals Due To Whatsoever Reason.<br>Where Full Deposit Is Required To Be Paid In Advance To The Concerned Authorities To Enable Company To Confirm The Reservation<br>If Services Of The Tour Are Modified, Varied, Amended, Cancelled Or Not Utilized.<br>If Any Guest Decides And/Or Is Required To Cancel The Tour Due To Any Changes Made In The Rules By The Concerned Government.<br>Where Airfares Are Contracted In Bulk For Airport To Airport Departures<br>If The Tour Is Indefinitely Postponed Due To Natural Calamity, Riots, Political Calamities Or Any Other Unforeseen Calamities.<br>Refund Is Not Applicable For Sectors On Indian/World Tours Wherein Air Tickets Are Non Refundable And Date Change Is Not Allowed.<br>For All Card Payments:Payment Received By Card And If There Is Any Refund,Such Refund Will Be Done Through The Respective Card Financial Institution And Credited To The Same Card.The Charges For Transaction To Be Borne By Guest.<br><br>
Rights Of The Company<br>The Company Reserves The Right To:<br>Take Bookings For Group Tour And Individual Tour
Cancel Bookings Even After The Acceptance Of The Payment Without Assigning Any Reason. In Such Case Company Shall Refund The Money To The Guest.<br>Dismiss Any Guest From The Tour For Misbehavior Especially If It Affects The Group And Physical Or Verbal Assault To The Tour Manager.<br><br>
Withdraw Discounts At Any Point Of Time<br>Change The Routing Of Air Travel<br>Change Hotel And/Or Tour Programme Due To Unavoidable Circumstances<br><br>
Liabilities And Responsibilities Of The Company<br>The Liability Of The Company Is Restricted Only To Make Reservations In Accordance With The Guests’ Requirements And No Further. The Company Is Not Liable For Any Loss Of Person Or Property Caused Or Damaged Or Suffered By The Tourist On Account Of Deficiency In Services By Any Independent Contractor. Any Gesture Of Courtesy Extended By The Company To The Tourist To Minimize Such Loss Or Damage Will Not Constitute An Admission Of Such Liability Or A Waiver. The Company Shall In No Circumstances Whatsoever Be Liable To The Tourist Or Any Other Person For Any Loss Or Expenses Because:<br>Taking Care Of The Valuables Is The Sole Responsibility Of The Guest<br>Train/Flight Delays, On Account Of Any Reason Due To Rescheduling/Cancellation Of Train / Flights / Inter-Connection, Meals Not Being Served Etc Is Not In Control Of The Company<br>Any Change Due To Force Majeure Including Weather Condition/Strike/War/Vip Movement And Security, Heavy Rush At Sightseeing Places, Road Traffic Congestion Etc., Are Not In The Control Of The Company<br>Allocation Of Seats, And Food Service In The Aircraft Because The Airline Reserves The Right Of Allocation<br>Celebrity Assigned For The Tour As An Entertainer Not Turning Up On The Tour Due To The Reasons Beyond The Control Of The Company.<br>Any Personal Injury, Sickness, Accident, Loss, Delay, Discomfort, Consequential Loss And/Or Damage Or Any Damage To Baggage Or Personal Effects Howsoever Caused;<br>Any Injury, Loss, Personal Harm, Death Or Damage Caused To Any Person Or Property By The Act Or Default Of The Management / Employees / Agents Of Any Independent Contractor.<br>Any Damages, Additional Expenses Or Any Consequential Losses Suffered By The Guest Due To Cancellation, Amendment And Or Alteration Of Any Of The Services Of The Tour Mentioned In The Itinerary / Brochure By The Company After The Registration / Booking By The Tourist. Each Of These Conditions Shall Be Severable From Other If Any Provision Declared Invalid, Illegal Or Unenforceable, Then Remaining Provisions Nevertheless Have Full Force & Effect.								</div>
														
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="https://www.saishraddhatours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Sai Baba Darshan Shirdi Package 2D/1N - 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="16601"/>
						</form>
						</div>
						
										</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by City</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-bangkok.htm" title="Packages in Bangkok">Bangkok</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-pahalgam.htm" title="Packages in Pahalgam">Pahalgam</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-jammu.htm" title="Packages in Jammu">Jammu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-amritsar.htm" title="Packages in Amritsar">Amritsar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-katra.htm" title="Packages in Katra">Katra</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-nainital.htm" title="Packages in Nainital">Nainital</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-dubai.htm" title="Packages in Dubai">Dubai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-jhansi.htm" title="Packages in Jhansi">Jhansi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-pune.htm" title="Packages in Pune">Pune</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-gulmarg.htm" title="Packages in Gulmarg">Gulmarg</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-khajuraho.htm" title="Packages in Khajuraho">Khajuraho</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-baramulla.htm" title="Packages in Baramulla">Baramulla</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-kumarakom.htm" title="Packages in Kumarakom">Kumarakom</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-bur-bubai.htm" title="Packages in Bur Dubai">Bur Dubai</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-varanasi.htm" title="Packages in Varanasi">Varanasi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-shirdi.htm" title="Packages in Shirdi">Shirdi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-agra.htm" title="Packages in Agra">Agra</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-ahmednagar.htm" title="Packages in Ahmednagar">Ahmednagar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-ganderbal.htm" title="Packages in Ganderbal">Ganderbal</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-leh-ladakh.htm" title="Packages in Leh Ladakh">Leh Ladakh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-anantnag.htm" title="Packages in Anantnag">Anantnag</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/packages-in-kalimpong.htm" title="Packages in Kalimpong">Kalimpong</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
										
				</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<p class="b dif rHead">Packages by Category</p>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/family-holidays-catid.htm" title="Family Packages">Family</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/food-drink-holidays-catid.htm" title="Food and Drink Packages">Food and Drink</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="https://www.saishraddhatours.com/group-holidays-catid.htm" title="Group Packages">Group</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/caving-holidays-catid.htm" title="Caving Packages">Caving</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="https://www.saishraddhatours.com/cruise-holidays-catid.htm" title="Cruise Packages">Cruise</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</div>
				</section>
				
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
				";i:1;s:76:"Book Sai Baba Darshan Shirdi Package 2D/1N - 1 Nights / 2 Days Tour Packages";i:2;s:148:"book sai baba darshan shirdi package 2d/1n - 1 nights / 2 days tour packages, religious & pilgrimage tour packages, ahmednagar, shirdi tour packages";i:3;s:197:"Book Sai Baba Darshan Shirdi Package 2D/1N - 1 Nights / 2 Days tour packages from Saishraddha Tours - Get attractive 1 Nights / 2 Days Religious & Pilgrimage  tour packages for  Ahmednagar, Shirdi.";i:4;s:497:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Ahmednagar, Shirdi"        
		                 },
		      "description": "Any Food Other Than Breakfast.
Anything Which Is Not In Include List.",
		      "name": "Sai Baba Darshan Shirdi Package 2D/1N",
		      "telephone": "+91-8007232900"
		    }
		    </script>
			";i:5;N;}