a:6:{i:0;s:25062:"				<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-->				
									<div class="h1"><h1>Family Golden Safari Tour Package</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.trip2thar.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.trip2thar.com/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Family Golden Safari Tour Package</p> 
										<div class="fo dt w100"> 
					<div class="dtc vat ttw-detail pr20px pr">					
												<ul class="lsn gallery-slide" id="bxlider_ins">
																	<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/272182.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/272182.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/272182.jpg"  alt="Family Golden Safari Tour Package" title="Family Golden Safari Tour Package" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																				<li>
										<div class="imgFrame m0a dib bdr">
										<div class="imgFrame picBg dtc ac vam lh0">	<a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/271643.jpg">
										<div class="imgWidth" style="background-image: url(https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/271643.jpg);background-size:cover;background-position:center;"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/271643.jpg"  alt="Family Golden Safari Tour Package" title="Family Golden Safari Tour Package" class="imga"  />									</div></a>
										</div>
										</div>
										</li>
																	</ul>
							
							<ul class="lsn" id="bxslider-pager"><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/272182.jpg"></a></li><li data-slideIndex=""><a href=""><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/271643.jpg"></a></li></ul>					
					<script>
					var $j = jQuery.noConflict();
					var realSlider= $j("ul#bxlider_ins").bxSlider({
					      speed:500,
					      pager:false,
					      auto: true,
					      slideWidth: 450,
					      slideMargin: 0,
					      nextText:'',
					      prevText:'',
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					        changeRealThumb(realThumbSlider,newIndex);
					        
					      }
					      
					    });
					    
					    var realThumbSlider=$j("ul#bxslider-pager").bxSlider({
					      minSlides: 4,
					      maxSlides: 4,
					      slideWidth: 200,
					      slideMargin: 5,
					      moveSlides: 1,
					      pager:false,
					      speed:1000,
					      infiniteLoop:true,
					      hideControlOnEnd:true,
					      nextText:'<span></span>',
					      prevText:'<span></span>',
					      onSlideBefore:function($slideElement, oldIndex, newIndex){
					
					      }
					    });
					    
					    linkRealSliders(realSlider,realThumbSlider);
					    
					    if($j("#bxslider-pager li").length<5){
					      $j("#bxslider-pager .bx-next").hide();
					    }
					
					// sincronizza sliders realizzazioni
					function linkRealSliders(bigS,thumbS){
					  
					  $j("ul#bxslider-pager").on("click","a",function(event){
					    event.preventDefault();
					    var newIndex=$j(this).parent().attr("data-slideIndex");
					        bigS.goToSlide(newIndex);
					  });
					}
					
					//slider!=$thumbSlider. slider is the realslider
					function changeRealThumb(slider,newIndex){
					  
					  var $thumbS=$j("#bxslider-pager");
					  $thumbS.find('.active').removeClass("active");
					  $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");
					  
					  if(slider.getSlideCount()-newIndex>=4)slider.goToSlide(newIndex);
					  else slider.goToSlide(slider.getSlideCount()-4);
					
					}
					
					</script>
					</div>
			        <div class="dtc">
			        <p class="b xlarge mb10px">Family Golden Safari Tour Package</p>
					
											<p class="mb5px"><b>Duration :</b> 
						3 Nights / 4 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Jaisalmer</p>
												<div class="fo mt20px mb20px xxlarge">
						<p class="xxlarge b dif mb2px">Price</p>
						<p class="xxsmall">On Request</p>
						</div>
												<div class="mt12px mb7px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.trip2thar.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Family Golden Safari Tour Package - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px ts0 xxlarge dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="179809"/>
						</form>
						
												</div>
											<br/>
					</div>       
					</div>
											<div class="mt30px mb30px">
						<div class="b xxlarge mb10px">
								   					Overview
		   											</div>					
						<p class="aj">It's a perfect family holiday package which includes one day and two night stay in the Golden City of Rajasthan. The package include one night stay in 3 star hotel of your choice. Day tour of Jaisalmer sightseeing covering Jaisalmer fort, Patwon Ki Haveli, Gadi sagar lake and more.. and ofcourse the famous Sam Sand dunes experience with night stay in camp. <br />
<br />
Sight Seen<br />
<br />
Jaisalmer Golden Fort<br />
Jaisalmer Fort is one of the largest fortifications in the world. It is situated in the city of Jaisalmer, in the Indian state of Rajasthan. It is a World Heritage Site It was built in 1156 AD by the Bhati Rajput ruler Rawal Jaisal, from whom it derives it name<br />
<br />
Jain Temple<br />
Jain Temples situated in the Jaisalmer fort are a must visit site in Jaisalmer, Rajasthan. You will find these temples to be very old and high pilgrimage as well as archeological value attached to them. These are a group of Jain temples dating back 12th and 15th centuries and are dedicated to various Jain Tirthankars (Hermits).<br />
<br />
Patwon Ji ki Haveli <br />
The Patwon Ji ki Haveli is an interesting piece of Architecture and is the most important among the havelis in Jaisalmer. This is precisely because of two things, first that it was the first haveli erected in Jaisalmer and second, that it is not a single haveli but a cluster of 5 small havelis.<br />
<br />
Nathmal Ji ki haveli<br />
Nathmal Ji ki haveli was commissioned to serve as the residence of Diwan Mohata Nathmal, the then Prime Minister of Jaisalmer. Maharawal Beri Sal commissioned the construction of this Haveli. The architects of this haveli were Hathi and Lulu who happened to be brothers.<br />
<br />
Salim Singh ki Haveli <br />
Salim Singh ki haveli has been built on the remains of an older haveli built in the late 17th century. The new building was built in the year 1815 and was occupied by the Mehta family of Jaisalmer. This haveli was commissioned by Salim Singh, the then Prime Minister of the kingdom when Jaisalmer was the capital.<br />
<br />
Mandir Palace<br />
Mandir Palace is an exquisitely carbed architectural marvel of ornate balconies,canopies and delicately carved screens that represent a high point of local craftsmanship in its finest and purest form.<br />
<br />
Gadsisar Lake<br />
Gadsisar Lake is one of the major tourist attractions of Jaisalmer. Just leave the madding crowd behind and venture towards the outskirts and you will find yourself next to the famous Gadsisar Lake. Contrary to the popular belief, it is not an oasis but a water conservation tank made around 1400 A.D. by the then maharaja of Jaisalmer, Maharwal Gadsi Singh. <br />
Outside City Monuments<br />
<br />
<br />
Amar Sagar<br />
Amar Sagar is a small and beautiful lake cum Oasis and is adjacent to a 17th Century palace called the Amar Singh Palace. Maharawal Akhai Singh built this palace in honor of one of his predecessors Amar Singh. Next to the palace are pavilions with a large stairs leading down to the Amar Sagar Lake.<br />
<br />
Bada Bagh<br />
The site has three different things to watch, a garden, a tank and a dam. In the vicinity itself you will find Govardhan Stambh (pillar). This pillar was constructed to commemorate the construction of the Dam and the tank. In the local dialect the Dam and the tank are known as Jait Bandh and the Jait Sar respectively.<br />
<br />
Khuldhara <br />
Kuldhara story is one of the weirdest and inspiring stories Iâ€™ve ever heard. About 15 Km. west of Jaisalmer a city in western Rajasthan lies the ruins of a village which was called Kuldhara. The first sight of Kuldhara village, more a town actually, sends one imagination running to the time it may have been inhabited.<br />
<br />
Tanot Mata Temple <br />
Located close to the Indian border with Pakistan in Jaisalmer. It is believed that during the Indo-Pakistan War of 1965, the Pakistani Army dropped many bombs at the temple but none of them met the target and many of the bombs aimed at the surrounding region of the temple did not explode at all. Now it is converted into museum that exhibits collections of the unexploded bombs that were dropped by Pakistan.<br />
<br />
<br />
Sight Seen<br />
<br />
Camel Safari<br />
An amazing safari experience in sam sand dunes desert. <br />
<br />
Jeep Safari<br />
The jeeps are used for the safari is generally 4 x 4 keeping the top open to enjoy the every bit of tour with jeep in Sam Sand Dunes. We promise you that this adventure will gift you memories to last a lifetime.<br />
<br />
Tent Accommodation <br />
Night stay accommodation facility in tents after the adventures day in Sam Sand Dunes, with cultural dance, folk sangeet and traditional Rajasthani dinner.</p>
						</div>
														<div class="mt30px b xlarge">
												   					Detailed Tour Itinerary
				   													</div>		   
								<br/>
																			<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 1											
											:</b> Arrival at Jaisalmer										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												On Arrival You Will Be Greet By Us in Our Cultural Way. Then We Move to Hotel.															
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 2											
											:</b> Next Morning										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Our affiliated guide will meet you and take you to the ride of city sight seen. Once you done with the city tour we will move to Sam dunes of Jaisalmer for world famous sunset Camel Safari.<br />
<br />
Night Stay at Royal Camp<br />
<br />
Once you done with safari we will check in to camp, Where you gain a delightful welcome in rajwada style. With the joyness of folk dance & Rajasthani traditional dinner. Overnight stay in tents, Sam Sand dunes, Jaisalmer.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 3											
											:</b> Next Morning										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												Early morning Jeep Safari, and delicious rajsthani breakfast.			
														   
											</div> 
											</div>
																						<div class="product-desc headVr bdr0 mb12px"> 
											<div class="sub-title p15px"><a href="javascript:void(0)" class="clickable db"><b class="dif mr2px">
																							Day 4											
											:</b> Departure										
											
											<span class="fr pr10px"><i class="fa fa-angle-down"></i></span></a></div>
																							<div class="fo product-detail p15px pt0px">
												After morning breakfast in camp we will proceed to railway station to board a train.<br />
We never say good buy but We always love to see you again...			
														   
											</div> 
											</div>
																			<script>
								jQuery(document).ready(function() {
									//jQuery('.product-detail').css('display','none');
								    jQuery(".sub-title").click(function() {
								        var $this = jQuery(this);
										  jQuery('.w-title').addClass('h15px',400);
								          $this.find('.w-title').removeClass('h15px',400);
										  jQuery('.product-detail').slideUp();
								          $this.next().slideDown();
								          if($this.find('i').hasClass('fa-angle-up')){
								          	$this.find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
								          } else {
								          	$this.find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
								          }
								        });
									});
								</script>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>MAP (Room + Breakfast + Lunch/Dinner)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>* Some Advance Percentage of total booking amount 
* Airfare/Transport fare to be paid full at one time in advance.</li></ul>						
								</div>
														<div class="data mt20px p15px">            
						<div class="mb7px"> 
						<p class="b xlarge mb10px dib">Cancellation &amp; Refund Policy</p>
						</div>
						
						<ul><li>* 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.</li></ul>						
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.trip2thar.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Family Golden Safari Tour 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="179809"/>
						</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="http://www.trip2thar.com/packages-in-jaisalmer.htm" title="Packages in Jaisalmer">Jaisalmer</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/packages-in-jodhpur.htm" title="Packages in Jodhpur">Jodhpur</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/packages-in-udaipur.htm" title="Packages in Udaipur">Udaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/packages-in-mysore.htm" title="Packages in Mysore">Mysore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/packages-in-kumbhalgarh.htm" title="Packages in Kumbhalgarh">Kumbhalgarh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/packages-in-ooty.htm" title="Packages in Ooty">Ooty</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/packages-in-bangalore.htm" title="Packages in Bangalore">Bangalore</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/packages-in-mount-abu.htm" title="Packages in Mount Abu">Mount Abu</a> <b class="alpha50 bn small">(1)</b></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="http://www.trip2thar.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="http://www.trip2thar.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/jeep-safari-holidays-catid.htm" title="Jeep Safari Packages">Jeep Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/climbing-holidays-catid.htm" title="Climbing Packages">Climbing</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/diving-holidays-catid.htm" title="Diving Packages">Diving</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/safari-holidays-catid.htm" title="Safari Packages">Safari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.trip2thar.com/honeymoon-holidays-catid.htm" title="Honeymoon Packages">Honeymoon</a> <b class="alpha50 bn small">(1)</b></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 Jaisalmer</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='http://www.trip2thar.com/tour-packages/golden-tour.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/271639.jpg"  alt="Golden Tour" title="Golden Tour"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.trip2thar.com/tour-packages/golden-tour.htm" title="Golden Tour"><h3>Golden Tour</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> : 
								5 Nights / 6 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Jaisalmer, Jodhpur, Kumbhalgarh, Mount A..</p>
															<div class="mt10px small">
							<form name="pkg_179805" id="pkg_179805" method="post" action="http://www.trip2thar.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.trip2thar.com/tour-packages/golden-tour.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Golden 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="179805"/>
							</form>
							</div>
							</div>
							</div>
							</div>
							</li>
												
							<li>
							<div class="bdr">
							<div class="cp" onclick="location.href='http://www.trip2thar.com/tour-packages/honey-moonin-sam-sand-dunes-package.htm'">
															<div class="picBg ac vam lh0"><img src="https://ttw.wlimg.com/package-images/photo-big/dir_19/545134/271640.jpg"  alt="Honey Moon in Sam Sand Dunes Package" title="Honey Moon in Sam Sand Dunes Package"  class="bdr p1px"  /></div>
															
							<div class="headHr bdr0 p7px b ml2px mr2px mt1px large tp-head"><a href="http://www.trip2thar.com/tour-packages/honey-moonin-sam-sand-dunes-package.htm" title="Honey Moon in Sam Sand Dunes Package"><h3>Honey Moon In Sam Sand Dunes Package</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> : 
								2 Nights / 3 Days 
								</p>
																<p class="mt2px"><b class="alpha50">Destinations Covered</b> :  Jaisalmer, Jodhpur</p>
															<div class="mt10px small">
							<form name="pkg_179806" id="pkg_179806" method="post" action="http://www.trip2thar.com/enquiry-form-10002.htm">
							<a class="theme1 dib p5px10px ts0 b c5px lh15em" href="http://www.trip2thar.com/tour-packages/honey-moonin-sam-sand-dunes-package.htm" title="View Details">View Details</a> 
							<input type="hidden" name="subject" value="Honey Moon in Sam Sand Dunes 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="179806"/>
							</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:72:"Book Family Golden Safari Tour Package - 3 Nights / 4 Days Tour Packages";i:2;s:121:"book family golden safari tour package - 3 nights / 4 days tour packages, heritage tour packages, jaisalmer tour packages";i:3;s:164:"Book Family Golden Safari Tour Package - 3 Nights / 4 Days tour packages from Trip 2 Thar - Get attractive 3 Nights / 4 Days Heritage  tour packages for  Jaisalmer.";i:4;s:4923:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Jaisalmer"        
		                 },
		      "description": "It's a perfect family holiday package which includes one day and two night stay in the Golden City of Rajasthan. The package include one night stay in 3 star hotel of your choice. Day tour of Jaisalmer sightseeing covering Jaisalmer fort, Patwon Ki Haveli, Gadi sagar lake and more.. and ofcourse the famous Sam Sand dunes experience with night stay in camp. 

Sight Seen

Jaisalmer Golden Fort
Jaisalmer Fort is one of the largest fortifications in the world. It is situated in the city of Jaisalmer, in the Indian state of Rajasthan. It is a World Heritage Site It was built in 1156 AD by the Bhati Rajput ruler Rawal Jaisal, from whom it derives it name

Jain Temple
Jain Temples situated in the Jaisalmer fort are a must visit site in Jaisalmer, Rajasthan. You will find these temples to be very old and high pilgrimage as well as archeological value attached to them. These are a group of Jain temples dating back 12th and 15th centuries and are dedicated to various Jain Tirthankars (Hermits).

Patwon Ji ki Haveli 
The Patwon Ji ki Haveli is an interesting piece of Architecture and is the most important among the havelis in Jaisalmer. This is precisely because of two things, first that it was the first haveli erected in Jaisalmer and second, that it is not a single haveli but a cluster of 5 small havelis.

Nathmal Ji ki haveli
Nathmal Ji ki haveli was commissioned to serve as the residence of Diwan Mohata Nathmal, the then Prime Minister of Jaisalmer. Maharawal Beri Sal commissioned the construction of this Haveli. The architects of this haveli were Hathi and Lulu who happened to be brothers.

Salim Singh ki Haveli 
Salim Singh ki haveli has been built on the remains of an older haveli built in the late 17th century. The new building was built in the year 1815 and was occupied by the Mehta family of Jaisalmer. This haveli was commissioned by Salim Singh, the then Prime Minister of the kingdom when Jaisalmer was the capital.

Mandir Palace
Mandir Palace is an exquisitely carbed architectural marvel of ornate balconies,canopies and delicately carved screens that represent a high point of local craftsmanship in its finest and purest form.

Gadsisar Lake
Gadsisar Lake is one of the major tourist attractions of Jaisalmer. Just leave the madding crowd behind and venture towards the outskirts and you will find yourself next to the famous Gadsisar Lake. Contrary to the popular belief, it is not an oasis but a water conservation tank made around 1400 A.D. by the then maharaja of Jaisalmer, Maharwal Gadsi Singh. 
Outside City Monuments


Amar Sagar
Amar Sagar is a small and beautiful lake cum Oasis and is adjacent to a 17th Century palace called the Amar Singh Palace. Maharawal Akhai Singh built this palace in honor of one of his predecessors Amar Singh. Next to the palace are pavilions with a large stairs leading down to the Amar Sagar Lake.

Bada Bagh
The site has three different things to watch, a garden, a tank and a dam. In the vicinity itself you will find Govardhan Stambh (pillar). This pillar was constructed to commemorate the construction of the Dam and the tank. In the local dialect the Dam and the tank are known as Jait Bandh and the Jait Sar respectively.

Khuldhara 
Kuldhara story is one of the weirdest and inspiring stories Iâ€™ve ever heard. About 15 Km. west of Jaisalmer a city in western Rajasthan lies the ruins of a village which was called Kuldhara. The first sight of Kuldhara village, more a town actually, sends one imagination running to the time it may have been inhabited.

Tanot Mata Temple 
Located close to the Indian border with Pakistan in Jaisalmer. It is believed that during the Indo-Pakistan War of 1965, the Pakistani Army dropped many bombs at the temple but none of them met the target and many of the bombs aimed at the surrounding region of the temple did not explode at all. Now it is converted into museum that exhibits collections of the unexploded bombs that were dropped by Pakistan.


Sight Seen

Camel Safari
An amazing safari experience in sam sand dunes desert. 

Jeep Safari
The jeeps are used for the safari is generally 4 x 4 keeping the top open to enjoy the every bit of tour with jeep in Sam Sand Dunes. We promise you that this adventure will gift you memories to last a lifetime.

Tent Accommodation 
Night stay accommodation facility in tents after the adventures day in Sam Sand Dunes, with cultural dance, folk sangeet and traditional Rajasthani dinner.",
		      "name": "Family Golden Safari Tour Package",
		      "telephone": "+91-7014829265"
		    }
		    </script>
			";i:5;N;}