a:6:{i:0;s:12497:"				<div class="h1"><h1>Kashmir Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.trishmitours.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.trishmitours.co.in/packages.htm" title="Packages">Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Kashmir Package</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Duration </td>
						<td class="p5px pl0px vat">
						4 Nights / 5 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Srinagar</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 38264 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.trishmitours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="132214"/>
						</form>
						</p>
						</td>
						</tr>
											</table>
					</td>
											<td class="p10px vat imgWidth150 w150px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w150px h150px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/367374/210225.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/367374/210225.jpg"  width="150" height="150"    alt="Kashmir Package" title="Kashmir Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Personal expenses such as laundry, telephone calls, tips & gratuity, mineral water, soft & hard drinks, porterage<br />
Anything not mentioned in the inclusions<br />
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary<br />
Entrance Fees & Guide charges<br />
Any cost arising due to natural calamities like, landslides, road blockage, political disturbances (strikes), etc (to be borne by the client, who is directly<br />
payable on the spot)<br />
Any increase in Airlines taxes or fuel price at the time of departure, leading to increase in cost on surface transportation & land arrangements, which may<br />
come into effect prior to departure<br />
Still camera/ video camera charger<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> Arrive Srinagar
								</p>
								<p class="aj">Arrive Srinagar, pride of the beautiful valley of Kashmir famous for its lakes dotted with Shikaras and the<br />
Mughal Gardens . Transfer to Hotel. Excursion to the Mughal gardens built by Emperor Jehangir. Also visit<br />
to the Shalimar bagh & Nishat bagh other beautiful gardens located on the eastern side of the Dal<br />
lake.shikara ride to Nehru Park in the evening. Overnight in the Hotel.</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> Srinagar - Pahalgam - Srinagar
								</p>
								<p class="aj">After breakfast drive to Pahalgam, ‘Valley of Shepherds’ (94 km/ 03 hrs). Enroute you will have an rare<br />
opportunity to visit the Saffron fields., Avantipura Ruins, Avantipura cricket bat factory & Anantnag<br />
Sulpher Springs. Enjoy the bounty of Nature at Pahalgam, located on the bank of beautiful Lidder River.<br />
Day is free to explore Lidder valley at your own 1.Option 1. You can enjoy leisurely walks in pine forest<br />
along River Lidder and enjoy picnic on riverside. 2.Option 2. You can enjoy pony ride to Baisaran meadow,<br />
surrounded by thickly wooded pine forest and snow-capped mountains. This grassy glen offers a<br />
panoramic view of Pahalgam town and Lidder Valley. Return to Srinagar. Over night at hotel.</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 - Srinagar
								</p>
								<p class="aj">After breakfast depart for a full day excursion to Gulmarg, Meadow of Flowers ( 56 km /2 hrs) situated at<br />
an altitude of 2730 meters, full day at leisure to take the leisurely walks on the lush green meadows of<br />
flowers with a backdrop of the snow capped mountains. Enjoy pony ride or Gondola ride (rope way) to<br />
Khillanmarg at your own cost. Return to srinagar. Over night at hotel.</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
								</p>
								<p class="aj">Morning breakfast and visit Betaab Valley and Chandanwari as well as take a horse riding trip to Baisaran<br />
meadows.(at your own cost). After sightseeing around the mountain valley for most of the day, we will<br />
drive back to Srinagar and transfer to the hotel/ houseboat for overnight stay in Sirnagar.</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> Departure
								</p>
								<p class="aj">Morning brekafast and checkout from the hotel and transfer to sirnagar airport</p>
								</td>
								</tr>
								</table>					
								</div>						<br />
												 <p class="headHr p7px b pl10px xlarge">Tour Detail</p>
			             <div class="data p15px aj">
										
						<p class="large b mb5px dif">Inclusions :</p>
						<ul>
															<li>Hotel</li>
																		<li>Meals</li>
																		<li>Sightseeing</li>
																<li>Sightseeing as per the itinerary</li><li>
012 Breakfast, 012 Lunch or 012 Dinner at the hotels mentioned</li><li>
Accommodation for 12 nights 13 days on double sharing basis</li><li>
All Transfers, excursions & sightseeing as per the itinerary by private TOYOTA Innova in Deluxe Package</li><li>
Below 5 Yrs Child sharing same bed with parents will be Complimentary.</li><li>
Parking and all transport related expense including Driver Services</li><li>
All toll taxes, parking fees, Fuel and driver's allowances</li><li>
Welcome drink on arrival</li><li>
All Transport & Hotels Related Taxes</li><li>
GST & all Government Taxes</li><li>
A 24 - hour helpline.</li><li>
Assistance on Arrival.</li><li>
No Hidden Cost</li>
													</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Personal expenses such as laundry, telephone calls, tips & gratuity, mineral water, soft & hard drinks, porterage</li><li>
Anything not mentioned in the inclusions</li><li>
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary</li><li>
Entrance Fees & Guide charges</li><li>
Any cost arising due to natural calamities like, landslides, road blockage, political disturbances (strikes), etc (to be borne by the client, who is directly</li><li>
payable on the spot)</li><li>
Any increase in Airlines taxes or fuel price at the time of departure, leading to increase in cost on surface transportation & land arrangements, which may</li><li>
come into effect prior to departure</li><li>
Still camera/ video camera charger</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<p><strong>IMPORTANT NOTE</strong>

<ul>
	<li>Rates are not valid for Festive peak season.</li>
	<li>Rates are based on Hotels Subject to Availability at the time of making Reservation. In case of unavailability in mentioned hotels,alternate accommodation will be arranged in a similar category hotel.</li>
	<li>Rates are subject to change if there is any Fair &amp; Festival, Major conference, events in travel destination</li>
	<li>Early check in / late checks out is subject to availability of rooms.</li>
	<li>Cancellation charges would be as per the company policy.</li>
	<li>Vehicle confirmed will be as per Itinerary and not at disposal. AC will work only in the plains and will be switched off during hill drives.</li>
	<li>All sightseeing mentioned are subject to weather conditions, political conditions &amp; traffic conditions in the destination.</li>
	<li>Any sightseeing missed due to natural calamities / weather conditions is non-refundable.</li>
	<li>All entrances fees will be on direct payment basis as per Itinerary</li>
	<li>It is not advisable to travel in night, if necessary supplement charge applicable</li>
</ul>

<p><strong>CANCELLATION POLICY</strong>

<ul>
	<li>10% of full tour cost - 60 days prior to arrival.</li>
	<li>25% of full tour cost - 30 days prior to arrival.</li>
	<li>50% of full tour cost - between 15 &amp; 29 days prior to tour.</li>
	<li>75% of full tour cost - between 14 &amp; 7 days prior to tour</li>
	<li>100% - within 7 days prior to tour.</li>
</ul>						
    	<p class="h dif xlarge b mb5px">Moon Valley Houseboat - SRINAGAR</p>
    	<div class="otherDetails aj">Fulfill your dream of floating on the water by staying at Moon Valley Houseboat in Srinagar. Surrounded by<br>
the magnificent snow clad mountains, this three-room houseboat gives an entire view of the serene lake.<br>
Distance from Hotel</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Dal Lake</td>
				<td class="headHr p5px b">Shalimar Bagh</td>
				<td class="headHr p5px b">Shankaracharya Temple</td>
			</tr>
			<tr>
				<td class="data p5px">8</td>
				<td class="data p5px">11</td>
				<td class="data p5px">6</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.trishmitours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="132214"/>
						</form>
						</div>
						
						";i:1;s:54:"Book Kashmir Package - 4 Nights / 5 Days Tour Packages";i:2;s:106:"book kashmir package - 4 nights / 5 days tour packages, hill station tour packages, srinagar tour packages";i:3;s:140:"Trishmi Tours LLP offers Kashmir Package - 4 Nights / 5 Days tour package, budget Hill Station tour packages for Srinagar at exciting price.";i:4;s:1081:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar"        
		                 },
		      "description": "Personal expenses such as laundry, telephone calls, tips & gratuity, mineral water, soft & hard drinks, porterage
Anything not mentioned in the inclusions
Additional sightseeing or extra usage of vehicle, other than mentioned in the itinerary
Entrance Fees & Guide charges
Any cost arising due to natural calamities like, landslides, road blockage, political disturbances (strikes), etc (to be borne by the client, who is directly
payable on the spot)
Any increase in Airlines taxes or fuel price at the time of departure, leading to increase in cost on surface transportation & land arrangements, which may
come into effect prior to departure
Still camera/ video camera charger",
		      "name": "Kashmir Package",
		      "telephone": "+91-9619101033"
		    }
		    </script>
			";i:5;N;}