a:6:{i:0;s:17475:"				<div class="h1"><h1>Rajasthan Culture Tour with Maharaja Style</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.avashshergilltravel.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.avashshergilltravel.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Rajasthan Culture Tour with Maharaja Style</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">
						15 Nights / 16 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">New Delhi, Jaipur, Jodhpur, Mandawa, Pushkar, Udaipur, Agra, Ranakpur</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat"><span class="dif">On Request</span></td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.avashshergilltravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rajasthan Culture Tour with Maharaja Style - 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="49557"/>
						</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_12/357911/96787.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/357911/96787.jpg"  width="150" height="150"    alt="Rajasthan Culture Tour with Maharaja Style" title="Rajasthan Culture Tour with Maharaja Style" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</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> Arrival Delhi
								</p>
								<p class="aj">Arrive Delhi, meet assist at the airport and transfer to hotel. Overnight stay in Delhi.</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> Delhi
								</p>
								<p class="aj">After breakfast proceed for sightseeing tour of Old & New Delhi: OLD DELHI - A sight-seeing tour of Old Delhi would entail visiting the Raj Ghat - the memorial site where Mahatma Gandhi was cremated; Jama Masjid - the largest mosque in India. NEW DELHI - An extensive sight-seeing tour of New Delhi would include a visit to the Humayun's Tomb, the Qutub Minar, a drive along the ceremonial avenue - Rajpath, past the imposing India Gate, Parliament House, the President's Residence and would end with a drive through the Diplomatic Enclave. Overnight stay at the Delhi 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> Delhi - Agra (200 Kms / 4 hrs By Surface) 
								</p>
								<p class="aj">This morning after breakfast check out the hotel and drive to Agra. After fresh than visit the the world famous Taj Mahal, built by the Mughal Emperor Shahjehan in 1630 for his queen Mumtaz Mahal to enshrine her mortal remains. Also visit Agra Fort, containing the Pearl Mosque - the rusty and majestic red- sandstone fort of Agra stands on the banks of the river Yamuna and the construction was started by Emperor Akbar in 1566. At the Diwan-I-Khas (hall of private audience) where marble pavilions with floral inlays lend an ethereal ambience, the Emperor sat on his gem-studded peacock Throne and met foreign ambassadors and rulers of friendly kingdoms. Also visit Itmad-up-Dau’s tomb, built by Noorjehan in memory of her father. Overnight stay at the Agra 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> Fatehpur Sikri - Jaipur (250 Kms / 5 hrs By Surface)
								</p>
								<p class="aj">This morning after breakfast drive to Jaipur enroute visiting Fatehpur Sikri, built by Emperor Akbar in 1569 to commemorate the birth of his son and later abandoned due to scarcity of water. Visit the remains, it fortifications within the city including Jama Masjid, Tomb of Salim Chisti, Panch Mahal and other palaces. On arrival transfer to hotel. Overnight stay at 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 5:</b> Jaipur
								</p>
								<p class="aj">This morning after breakfast excursion to Amber Fort. Elephant ride ascent to the fort.<br />
AMBER FORT PALACE - Amber is the classic romantic Rajasthani fort palace. Its construction was started by Man Singh I in 1592, and completed by his descendent Jai Singh I. Its forbidding exterior belies an inner paradise where a beautiful fusion of Mughal and Hindu styles finds it's ultimate expression. Continue sight-seeing. CITY PALACE - A delightful blend of Mughal and traditional Rajasthani architecture, the City Palace sprawls over one-seventh of the area in the walled city. It houses the Chandra Mahal, Shri Govind Dev Temple and the City Palace, Museum. JANTAR MANTAR - This is the largest and the best preserved of the five observatories built by Jai Singh II in different parts of the country. This observatory consisting of outsized astronomical instruments is still in use. Jaipur HAWA MAHAL - The ornamental facade of this "Palace of Winds" is a prominent landmark in Jaipur. Their five-story structures of sandstone plastered pink encrusted with fine trelliswork and elaborate balconies. The palace has 953 niches and windows. Built in 1799 by Pratap Singh, the Mahal was a royal grandstand for the palace women. Overnight stay at the Jaipur 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 6:</b> Jaipur - Pushkar (130 Kms / 3 hrs By Surface) 
								</p>
								<p class="aj">This morning after breakfast drive to Pushkar. Arrive and check In the Hotel After fresh and visit the Pushkar temples, though few are as ancient as you might expect at such an important pilgrimage site, since many were deserted by Aurangzeb and subsequently rebuilt. The most famous is the Brahma Temple, said to be one of the few temples in the world dedicated to this deity and visit the Pushkar lake. Overnight stay at the Pushkar 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 7:</b> Pushkar - Udaipur (250 kms / 5 hrs By Surface)
								</p>
								<p class="aj">This morning after breakfast drive to Udaipur- an oasis in the desert state of Rajasthan. Arrive Udaipur and transfer to hotel. Overnight Stay at the Udaipur 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 8:</b> Udaipur
								</p>
								<p class="aj">This morning after breakfast city sightseeing tour of Udaipur. The city is built in 1559 A.D. by Maharaja Udai Singh and has been described as the most romantic spot on the continent of India by Col. James Todd. Visit the City Palace museum, the Jagdish temple, Sahelion Ki Bari (Queen’s resort for their friends) Bhartiya Lok Kala Mandir (Folk art museum) and the Pratap Memorial. Rest of the day at leisure. Overnight stay at the Udaipur 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 9:</b> Udaipur - Ranakpur - Jodhpur (300 Kms / 6 hrs by Surface)
								</p>
								<p class="aj">This morning after breakfast drive to Jodhpur. Enroute visit the Ranakpur Jain Temple . On arrival transfer to hotel. Overnight stay at the Jodhpur 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 10:</b> Jodhpur - Jaisalmer (200 Kms / 4 hrs By Surface)
								</p>
								<p class="aj">This morning after breakfast Check out the hotel and proceed for city sightseeing tour of Jodhpur. Jodhpur - the stronghold of the fierce Rathore clan was founded in 1459 by Prince Jodha. Visit the Mehrangarh Fort, situated on a low sandstone hill. Within the fort, visit Moti Mahal and Phool Mahal. Also visit Jaswant Thada, an imposing marble cenotaph, built in memory of Maharaja Jaswant singh II around 1899 and Umaid Public gardens, than after drive to Jaisalmer. Overnight stay at the Jaisalmer.</p>
								</td>
								</tr>
								</table>					
								</div><div id="show_more_content" style="display:none;">
									<div class="data">
									<table class="w100 formTable bdr0 imgWidth">
									<tr>
									<td class="p10px vat">
									<p class="b large mb5px"><b class="dif">Day 11:</b> Jaisalmer
									</p>
									<p class="aj">This morning after breakfast and city sightseeing tour of Jaisalmer. Throbbing in the heart of the Thar, the burnished sandstone, is an intricately molded wonderland in place of a barren land, today stands a city of gilded magic. The origins of Jaisalmer go back to the 12th century, when Rawal Jaisal abandoned his old fort at Ludarwa and laid the foundation of a new city. Visit the magnificient fort, the Patwon Ki Haveli ( Mansion) and Salim singh Ki Haveli, with their carved balconies and brackets which are supreme examples of the art. Evening camel ride to visit Sam Dunes. Overnight stay at 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 12:</b> Jaisalmer - Bikaner (320 Kms / 6 hrs by Surface)
									</p>
									<p class="aj">This morning after breakfast drive to Bikaner. On arrival transfer to the hotel. Overnight stay at 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 13:</b> Bikaner
									</p>
									<p class="aj">This morning after breakfast city sightseeing tour. Bikaner is named after its founder Rao Bikaji in 1488. But long before this, the city was trade center on the caravan routes from Africa and West Asia. Bikaner’s dominant features are rippling sands and abundant sunshine. The city stands on an elevation, enclosed by a 7 Kms wall, which can be entered from 5 gate. Bikaner City is bolstered by imposing walls and has a 16th century fort housing old palaces, temples and mosque. Founded by Raja Rai Singh the fort is distinguished by its long range of 37 pavilions, a line of balconies and aerial windows of varying designs. Also visit Lallgarh Palace, the museum, Bhanda Sagar Jain and Deshnoke Rat temple. Overnight stay at 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 14:</b> Bikaner - Mandawa (180 Kms / 4 hrs By Surface)
									</p>
									<p class="aj">This morning after breakfast drive to Mandawa, on arrival transfer to the hotel. Later visit Mandawa, founded 1755 by Thakur Nawal Singh and still the home of his descendants, has beautiful frescoes, havelis and mansions. Mandawa castle one of the finest castles of Rajasthan, is now a hotel and house of collection of armories, costumes of ancestors, canons from 1820 ancient coins, numismatic collection and many other interesting items, preserved in a museum. Overnight stay at 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 15:</b> Mandawa - Delhi (230 kms / 5 hrs by Surface)
									</p>
									<p class="aj">This morning after breakfast drive to Delhi and check in the hotel and evening free with your own activity. Overnight stay at 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 16:</b> Delhi & Departure
									</p>
									<p class="aj">This morning after breakfast and transfer to the International Airport and catch the flight for your own destinations.</p>
									</td>	
									</tr>
									</table>				
									</div>					
							</div>							<p class="mt10px ac"><a class="buttonBig p5px10px dib b" id="more_button" href="javascript:topDestinationToggle('show_more_content','more_button');" >View More &#9660;</a></p>
													<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>
															</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.avashshergilltravel.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rajasthan Culture Tour with Maharaja Style - 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="49557"/>
						</form>
						</div>
						
						";i:1;s:83:"Book Rajasthan Culture Tour with Maharaja Style - 15 Nights / 16 Days Tour Packages";i:2;s:192:"book rajasthan culture tour with maharaja style - 15 nights / 16 days tour packages, heritage tour packages, new delhi, jaipur, jodhpur, mandawa, pushkar, udaipur, agra, ranakpur tour packages";i:3;s:230:"Avash Shergill Travel offers Rajasthan Culture Tour with Maharaja Style - 15 Nights / 16 Days tour package, budget Heritage tour packages for New Delhi, Jaipur, Jodhpur, Mandawa, Pushkar, Udaipur, Agra, Ranakpur at exciting price.";i:4;s:482:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New Delhi, Jaipur, Jodhpur, Mandawa, Pushkar, Udaipur, Agra, Ranakpur"        
		                 },
		      "description": "",
		      "name": "Rajasthan Culture Tour with Maharaja Style",
		      "telephone": "91-8699559635"
		    }
		    </script>
			";i:5;N;}