a:6:{i:0;s:59659:"					<div id="append2PageTittle">
    				<div class="page-title-inner bread-right head-inner fo">
    				<div id="breadcrumb">
					<div class="h1"><h1>Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N</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> Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N</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> KASH001</p>
												<p class="mb5px"><b>Duration :</b> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Katra, Srinagar, Amritsar, Pahalgam, Anantnag, Baramulla, Ganderbal</p>
												<p class="mb5px"><b>Price (Starting From) :</b> 
						INR 18850 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="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N - 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="16566"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px 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 w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_8/236813/27508.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/236813/27508.jpg"  width="150" height="150"    alt="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N" title="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N" /></a></p></div></li>
																		<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/27509.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/236813/27509.jpg"  width="150" height="150"    alt="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N" title="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N" /></a></p></div></li>
																		<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/27510.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/236813/27510.jpg"  width="150" height="150"    alt="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N" title="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N" /></a></p></div></li>
																		<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/27512.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/236813/27512.jpg"  width="150" height="150"    alt="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N" title="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N" /></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 Air/Rail Fare Other Than Mention<br />
Cost Of Any Individual Airport / Railway Station Transfer<br />
Extra Stay Pre/Post Tour.<br />
Any Extra Expenses Incurred For Changing The Route Due To Any Unforeseen Circumstances, Forced Majuire Instances, Natural Calamities, Political Disturbances, Strikes Etc.<br />
Fur Coats/Jackets To Visit Snow Point Or Any Special Attire Required To Visit Any Particular Sightseeing Place.<br />
Anything Not Specifically Mentioned In 'Your Tour Price Includes Column'.13-0913-10								</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> Vaishnodevi - Katra
										</p>
										<p class="aj">Return Back From Vaishnodevi. Free Day For Relaxation Or Leisure Activity.</p>					
											<p><b>Meals : </b> Dinner</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> Katra - Jammu - Srinagar
										</p>
										<p class="aj">Today We Are Going To Srinagar By Air . After Reaching Srinagar, Proceed To Shankaracharya Hill And The Holy Temple. Enjoy Dal Lake Shikara Ride And Visit Island Of Char Chinar. Photograph Yourself In Kashmiri Outfits At Char Chinar. In The Afternoon Visit Nishat Bagh-'The Garden Of Pleasure' And Shalimar Bagh-'Abode Of Love'. Srinagar & Overnight Stay.</p>					
											<p><b>Meals : </b> Breakfast & Dinner</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> Srinagar - Gulmarg - Khilanmarg (Affarwat) - Srinagar
										</p>
										<p class="aj">Visit Gulmarg - Known As 'Meadow Of Flowers'. En-Route View The Apple Orchards. Pass By The Golf Course And Enjoy The Longest Cable Car Ride Up To The Affarwat Snow Point. Free Time To Play And Enjoy In The Snow.</p>					
											<p><b>Meals : </b> Breakfast & Dinner</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> Srinagar - Sonmarg 
										</p>
										<p class="aj">Today We Are Going To Visit Beautiful Sonmarg. Enjoy Ice Whole Day & Srinagar Halt.</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> Srinagar - Pahalgam
										</p>
										<p class="aj">Proceed To Pahalgam. En-Route Visit Avantipur Ruins, Cricket Bat Factory And Pass-By The Pampore Saffron Fields. Proceed Chandanwari For A Magnificent View Of Lidder Valley. Once Again You Can Photograph Yourself In Kashmiri Outfits At Various Photo Studios Of Pahalgam. N/S At Pahelgam.</p>					
											<p><b>Meals : </b> Breakfast & Dinner</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 6:</b> Pahalgam - Amritsar
										</p>
										<p class="aj">Full Day Journey For Amritsar. Night Halt At Amritsar.</p>					
											<p><b>Meals : </b> Breakfast & Dinner</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 7:</b> Amritsar Local Sightseening & Drop To Station
										</p>
										<p class="aj">Full Day Sightseeing At Amritsar. Drop To Airport/ Station At Late Night & Its Time To Say “see You Soon”</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Any Air/Rail Fare Other Than Mention</li><li>
Cost Of Any Individual Airport / Railway Station Transfer</li><li>
Extra Stay Pre/Post Tour.</li><li>
Any Extra Expenses Incurred For Changing The Route Due To Any Unforeseen Circumstances, Forced Majuire Instances, Natural Calamities, Political Disturbances, Strikes Etc.</li><li>
Fur Coats/Jackets To Visit Snow Point Or Any Special Attire Required To Visit Any Particular Sightseeing Place.</li><li>
Anything Not Specifically Mentioned In 'Your Tour Price Includes Column'.</li></ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Specific Departure Dates</p>
								</div>
								
								8 nov 13								</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.<br>They Extend To India And World Tours Organised By Saishraddha Tours. They Shall Come In Force From 01 September 2013.<br><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><br>
Company Means Saishraddha Tours.<br>Tour/S Means Any India And/Or World Tours Organized By Saishraddha Tours.
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>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><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>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>
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><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><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><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.<br>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:
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><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><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><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. India - World<br><br>
More Than 60 Days - 5% Or Rs.1000/-Whichever Is More - Registration Amount
60 To 46 Days - 15% - 15%
45 To 31 Days - 25% - 25%
30 To 15 Days - 50% - 50%
14 To 4 Days - 60% - 60%
3 To 1 Day - 80% - 80%
On The Day/On Tour - 100% - 100%<br><br>
Note: Charges Are Levied On The Gross Tour Price And Not The Discounted Price.<br>For Indian Tours, Cancellation Charges Do Not Include Air Ticket Cancellation And They Will Be Levied Separately.<br><br>
When The Company Cancels A Tour<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.<br>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><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.
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><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>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="Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N - 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="16566"/>
						</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-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-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-varanasi.htm" title="Packages in Varanasi">Varanasi</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-shirdi.htm" title="Packages in Shirdi">Shirdi</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-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="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><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 spanlist dn"><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 spanlist dn"><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="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>
				
										<br />
						<div class="row1"> 
						<div class="col-1"> 
						<div class="mt30px">
						<p class="xxlarge b pb10px bdrB db"> Similar Tour Packages for Katra, Srinagar, Amritsar, Pahalgam, Anantnag, Baramulla, Ganderbal</p>
						</div>
						<br/>
						<div class="cf_3img">
						<ul class="lsn m0px p0px fo idv_eqheight cols_similar">
											
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.saishraddhatours.com/tour-packages/kashmir-independence-day-dhamaka-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_8/236813/85369.jpg"  alt="Kashmir - Independence Day Dhamaka Package" title="Kashmir - Independence Day Dhamaka Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.saishraddhatours.com/tour-packages/kashmir-independence-day-dhamaka-package.htm" title="Kashmir - Independence Day Dhamaka Package"><h3>Kashmir - Independence Day Dhamaka Package</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 7990</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								4 Nights / 5 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Srinagar, Pahalgam, Gulmarg</p>
															<div class="mt10px small">
							<form name="pkg_43081" id="pkg_43081" method="post" action="https://www.saishraddhatours.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.saishraddhatours.com/tour-packages/kashmir-independence-day-dhamaka-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Kashmir - Independence Day Dhamaka Package - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="43081"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.saishraddhatours.com/tour-packages/marvelous-kashmir-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_8/236813/35232.jpg"  alt="Marvelous Kashmir Tour" title="Marvelous Kashmir Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.saishraddhatours.com/tour-packages/marvelous-kashmir-tour.htm" title="Marvelous Kashmir Tour"><h3>Marvelous Kashmir Tour</h3></a></div>
							<div class="bdrT p12px">
															<div class="xlarge dif pt5px pb5px"><b class="webrupee lh1em">INR 15850</b> <b class="xsmall alpha50">Per Person</b></div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								10 Nights / 11 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Jammu, Srinagar, Pune</p>
															<div class="mt10px small">
							<form name="pkg_19616" id="pkg_19616" method="post" action="https://www.saishraddhatours.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.saishraddhatours.com/tour-packages/marvelous-kashmir-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Marvelous Kashmir Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="19616"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='https://www.saishraddhatours.com/tour-packages/paradiseon-earth-with-katra-amritsar-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_8/236813/26409.jpg"  alt="Paradise on Earth with Katra & Amritsar Tour" title="Paradise on Earth with Katra & Amritsar Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="https://www.saishraddhatours.com/tour-packages/paradiseon-earth-with-katra-amritsar-tour.htm" title="Paradise on Earth with Katra & Amritsar Tour"><h3>Paradise On Earth With Katra & Amritsar To..</h3></a></div>
							<div class="bdrT p12px">
															<div class="b large dif pt5px pb5px">Price On Request</div>
																<p class="mt7px"><b class="alpha50">Duration</b> : 
								7 Nights / 8 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Jammu, Katra, Srinagar, Amritsar</p>
															<div class="mt10px small">
							<form name="pkg_16184" id="pkg_16184" method="post" action="https://www.saishraddhatours.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="https://www.saishraddhatours.com/tour-packages/paradiseon-earth-with-katra-amritsar-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Paradise on Earth with Katra & Amritsar Tour - Tour Package"/>
							<input type="hidden" name="allocate_type" value="tour"/>
							<button type="submit" class="theme2 p5px10px ts0 b dib c5px bdr0 lh15em">Book Your Tour</button>
							<input type="hidden" name="pkg_slno" value="16184"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
															
						</ul>
						</div>
						</div> 		  
						<br>
						</div>  
						<br />
										
				</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:88:"Book Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N - 6 Nights / 7 Days Tour Packages";i:2;s:209:"book kashmir - mata vaishnodevi & amritsar tour 8d/ 7n - 6 nights / 7 days tour packages, religious & pilgrimage tour packages, katra, srinagar, amritsar, pahalgam, anantnag, baramulla, ganderbal tour packages";i:3;s:258:"Book Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N - 6 Nights / 7 Days tour packages from Saishraddha Tours - Get attractive 6 Nights / 7 Days Religious & Pilgrimage  tour packages for  Katra, Srinagar, Amritsar, Pahalgam, Anantnag, Baramulla, Ganderbal.";i:4;s:980:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Katra, Srinagar, Amritsar, Pahalgam, Anantnag, Baramulla, Ganderbal"        
		                 },
		      "description": "Any Air/Rail Fare Other Than Mention
Cost Of Any Individual Airport / Railway Station Transfer
Extra Stay Pre/Post Tour.
Any Extra Expenses Incurred For Changing The Route Due To Any Unforeseen Circumstances, Forced Majuire Instances, Natural Calamities, Political Disturbances, Strikes Etc.
Fur Coats/Jackets To Visit Snow Point Or Any Special Attire Required To Visit Any Particular Sightseeing Place.
Anything Not Specifically Mentioned In 'Your Tour Price Includes Column'.13-0913-10",
		      "name": "Kashmir - Mata Vaishnodevi & Amritsar Tour 8D/ 7N",
		      "telephone": "+91-8007232900"
		    }
		    </script>
			";i:5;N;}