a:6:{i:0;s:12316:"				<div class="h1"><h1>Kashmir Splendors 4Night/5Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.chaturveditravels.com/" title="Home">Home</a> 
				
								
				<b class="ffv p2px">&rsaquo;</b>Kashmir Splendors 4Night/5Days Tour</p>
				<br />
				
								
						<script language="javascript"> 
							function topDestinationToggle(showHideDiv, switchTextDiv) {
							var ele = document.getElementById(showHideDiv);
							var text = document.getElementById(switchTextDiv);
							if(ele.style.display == "block") {
								ele.style.display = "none";
							  text.innerHTML = "View More &#9660;";
							}
							else {
							  ele.style.display = "block";
							  text.innerHTML = "View Less &#9650;";
							}
							}
		                </script>
											<script type="text/javascript">			
					(function($){	
					  $(function(){
						$('[id^=detailslider]').each(function(){
							$(this).DG_Slider({
								auto: true, mode:'fade', pager:true, pagerType:'short',controls:true
							});
						})
				
						$('a[rel=gall]').fancybox()
					  });	
					}(jQuery))
					</script>
					
					<br />
					<div class="data">
					<table class="w100 formTable bdr0 imgWidth">
					<tr>
					<td class="p10px">
					<table class="w100 packageForm">
											<tr>
						<td class="b p5px w125px vat">Tour Code </td>
						<td class="p5px pl0px vat">CTT14/SRINAGAR PACKA</td>
						</tr>
												<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, Pahalgam, Gulmarg</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 14999 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir Splendors 4Night/5Days Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="27763"/>
						</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_8/229281/56072.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_8/229281/56072.jpg"  width="150" height="150"    alt="kashmir splendours" title="kashmir splendours" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Any Airfare, Train Fare, Overland Journey Which Is Not Mentioned In The Itinerary.<br />
Any Personal Nature Items Like Laundry, Bar Bills, Table Bills, Camera Fee, Tips Or Any Other Item.<br />
Guide / Entry Fees / Boatings / Horse Ridings / Gondola Ride In Gulmarg Etc. During Sight Seeings<br />
Any Medical / Rescue Evacuation Due To Mishaps.<br />
Optional Activities Mentioned In The Itinerary<br />
Any Other Things That Is Not Included In The “Package Cost Includes” Column.<b><b>Note:<br />
Any Changes In Govt. Taxes, Hotel Tariff, Etc Will Be Intimated Before Confirming The Package.<br />
Cost Incidental To Any Change In The Itinerary/ Stay On Account Of Flight Cancellation Due To Bad Weather, Ill Health, Roadblocks And/Or Any Factors Beyond Control.<br />
Government Service Tax @ 3.09 Extra<br />
Every Passenger Is Traveling On His Own Responsibility. The Company Will Not Be Responsible For Any Loss Of Luggage Or Any Accidents. We Are Not Responsible For Theft Or Damage To Your Luggage.<br />
Also Note That Video & Audio Systems Are Prohibited In Commercial Vehicles As Per Law And We Do Not Guarantee For It Always.<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">On arrival at the Srinagar Airport, you will be welcomed by our representative who will assist and escort you to your waiting vehicle. From the airport it is a 35 minutes drive through the heart of New Srinagar city. The drive takes you past the Abdullah bridge which connects the banks of the Jehlum river, snaking its way towards the North-Western frontier of Kashmir. Arrive and  check in at hotel / Houseboat. <br />
Later some half a day of local sightseeing of Srinagar which include the Mughal Gardens, visiting Nishat Bagh built by Asaf Khan, the brother -in- law of Jehangir in 1632 AD, and Shalimar Bagh built by Jehangir for his wife empress Nur Jahan. Built in between a period of 14 years the two gardens are a heritage left behind by the erstwhile Mughals, whose taste for laying exquisite gardens was fascinating. All the gardens are situated on the banks of the Dal Lake with the Zabarwan hills in the background . <br />
Rest of the will be at your leisure for individual activities. overnight stay at Srinagar.<br />
</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 - Gulmarg (56 KM / 2HRS)
								</p>
								<p class="aj">After breakfast check out from hotel & drive to Gulmarg(Meadow of Flowers) 2730 mts. above the sea level. The drive past colorful villages and rice fields, gives you an insight of the rich cultural past of Kashmir. We arrive at a small picturesue market town of Tangmarg and drive ahead on a scenic drive of 14 kilometers to Gulmarg.<br />
Gulmarg has one of the best ski slopes in the world and highest golf course with 18 holes. If weather permits one can also have the view of Nanga Parbat, the naked mountain that is over 26,000 feets and dominates the entire region,<br />
Arrive in Gulmarg early in the afternoon and check in at the hotel. Later we will begin a short tour around the meadow familarising ourselves with the beauty. In Gulmarg we will board the Gondola cable car system, and ascend towards the Afarwatt Mountain range. The 08 minutes of ropeway will take you past colorful shepherd hutments to the lower ridge of the Afarwatt peak. From here you can click lots of photos of the nearby mountain ranges that stand tall like sentinels guarding the rich natural beauty of Kashmir valley. We descend back to Gulmarg base after an hour or so and later do some horse-riding to the strawberry valley.Rest of the day free at leisure for individual activities. Overnight stay at Gulmarg.<br />
Day 03: Gulmarg - Pahalgam (151 KM /5 HRS)<br />
After breakfast check out from hotel & drive towards Pahalgam on the National Highway 1A. This road connects the Valley to the rest of the country. We drive past the saffron fields of Pampore, the marvellous ruins of Avantipura and the village of Bijbehara which remains famous as the bread basket of Kashmir. You can even sample a few exotic breads sold by vendors near the road. We switch the the national highway at Khanabal and drive through the second largest city of Anantnag. From here the road turns scenic as we drive parallel on the Lidder river flowing from the opposite direction.Arrive Pahalgam and check in at the hotel and later do some nature walks to unwind ourselves. Overnight stay at Pahalgam.</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> Pahalgam - Srinagar (96 KM / 3 HRS)
								</p>
								<p class="aj">After breakfast , check out from hotel & half a day sightseeing by driving to the picturesque Chandanwari and Betaab valley or ride by horseback across the wildlife sanctuary towards Baisaran meadows. After complete sightseeing drive to Srinagar. Arrive Srinagar , check in at the hotel / houseboats , In the evening you can go for shopping around the local flea markets and also do window shopping or enjoy yet another short ride of the famous shikara. Overnight stay at Srinagar.</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 - Departure
								</p>
								<p class="aj">After morning breakfast, Check out from hotel & drive to the airport. On the way to the airport you can make a brief stopover for some last minute shopping in the city center. drop at airport for you’re onwards journey.</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>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Any Airfare, Train Fare, Overland Journey Which Is Not Mentioned In The Itinerary.</li><li>
Any Personal Nature Items Like Laundry, Bar Bills, Table Bills, Camera Fee, Tips Or Any Other Item.</li><li>
Guide / Entry Fees / Boatings / Horse Ridings / Gondola Ride In Gulmarg Etc. During Sight Seeings</li><li>
Any Medical / Rescue Evacuation Due To Mishaps.</li><li>
Optional Activities Mentioned In The Itinerary</li><li>
Any Other Things That Is Not Included In The “Package Cost Includes” Column.Note:</li><li>
Any Changes In Govt. Taxes, Hotel Tariff, Etc Will Be Intimated Before Confirming The Package.</li><li>
Cost Incidental To Any Change In The Itinerary/ Stay On Account Of Flight Cancellation Due To Bad Weather, Ill Health, Roadblocks And/Or Any Factors Beyond Control.</li><li>
Government Service Tax @ 3.09 Extra</li><li>
Every Passenger Is Traveling On His Own Responsibility. The Company Will Not Be Responsible For Any Loss Of Luggage Or Any Accidents. We Are Not Responsible For Theft Or Damage To Your Luggage.</li><li>
Also Note That Video & Audio Systems Are Prohibited In Commercial Vehicles As Per Law And We Do Not Guarantee For It Always.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>* Some Advance Percentage of total booking amount * Airfare/Transport fare to be paid full at one time in advance.~^#^~* Upon cancellation, refund will be made after deducting the Retention Amount. * Retention Amount varies as per the number of days left before your package start date. ~^#^~												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.chaturveditravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Kashmir Splendors 4Night/5Days Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="button p7px pl12px pr12px c5px b large dib mt10px">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="27763"/>
						</form>
						</div>
						
						";i:1;s:74:"Book Kashmir Splendors 4Night/5Days Tour - 4 Nights / 5 Days Tour Packages";i:2;s:139:"book kashmir splendors 4night/5days tour - 4 nights / 5 days tour packages, valley tour packages, srinagar, pahalgam, gulmarg tour packages";i:3;s:199:"Book Kashmir Splendors 4Night/5Days Tour - 4 Nights / 5 Days tour packages from Chaturvedi Travels and Tours - Get attractive 4 Nights / 5 Days Valley  tour packages for  Srinagar, Pahalgam, Gulmarg.";i:4;s:1526:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Srinagar, Pahalgam, Gulmarg"        
		                 },
		      "description": "Any Airfare, Train Fare, Overland Journey Which Is Not Mentioned In The Itinerary.
Any Personal Nature Items Like Laundry, Bar Bills, Table Bills, Camera Fee, Tips Or Any Other Item.
Guide / Entry Fees / Boatings / Horse Ridings / Gondola Ride In Gulmarg Etc. During Sight Seeings
Any Medical / Rescue Evacuation Due To Mishaps.
Optional Activities Mentioned In The Itinerary
Any Other Things That Is Not Included In The “Package Cost Includes” Column.<b><b>Note:
Any Changes In Govt. Taxes, Hotel Tariff, Etc Will Be Intimated Before Confirming The Package.
Cost Incidental To Any Change In The Itinerary/ Stay On Account Of Flight Cancellation Due To Bad Weather, Ill Health, Roadblocks And/Or Any Factors Beyond Control.
Government Service Tax @ 3.09 Extra
Every Passenger Is Traveling On His Own Responsibility. The Company Will Not Be Responsible For Any Loss Of Luggage Or Any Accidents. We Are Not Responsible For Theft Or Damage To Your Luggage.
Also Note That Video & Audio Systems Are Prohibited In Commercial Vehicles As Per Law And We Do Not Guarantee For It Always.",
		      "name": "Kashmir Splendors 4Night/5Days Tour",
		      "telephone": "+91-9826355115"
		    }
		    </script>
			";i:5;N;}