a:6:{i:0;s:11753:"				<div class="h1"><h1>Royal Rajasthan 3* Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.mehaitoursandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.mehaitoursandtravels.com/travel-packages.htm" title="Travel Packages">Travel Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Royal Rajasthan 3* 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">Duration </td>
						<td class="p5px pl0px vat">
						6 Nights / 7 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Jaipur, Jodhpur, Pushkar, Udaipur</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.mehaitoursandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Royal Rajasthan 3* 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="67701"/>
						</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/363303/123546.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/363303/123546.jpg"  width="150" height="150"    alt="Royal Rajasthan 3* Tour" title="Royal Rajasthan 3* Tour" /></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 at Jaipur
								</p>
								<p class="aj">Upon your arrival at the airport, meet our representative awaiting just outside the arrival hall, past the customs area & currency shops. Later set on a journey to your destination, the Pink City of Jaipur. On arrival in Jaipur you will be escorted to a hotel where you will stay for the night after which you will commence your sightseeing tour of the region.<br />
In the afternoon, tour the old walled city of Jaipur. Visit the unique Jantar Mantar Observatory- an assortment of architectural astronomical instruments. Built by Maharaja Jai Singh II it consists of fourteen major geometric devices for measuring time and predicting eclipses etc. Stunning City Palace will be the next destination on this city tour. City Palace is a complex of various palaces in Jaipur which is an erstwhile seat of Maharaja of the region. Also visit Chandra Mahal and Shri Govind Deo Temple before you return to your hotel in Jaipur for nights stay</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> Jaipur
								</p>
								<p class="aj">Enjoy a hearty breakfast at the hotel and leave for a half-day sightseeing tour to the hilltop fortress of Amber. A small trek up the hill will be covered while riding an elephant in the royal manner. The fort was built in 1592 under the reign of Raja Man Singh and was later modified by successive rulers for next 150 years. Today the structure stands with its beautifully carved ceilings, intricate patterns and stunning designs. In the afternoon take a stroll amid colorful bazaars of Jaipur and also visit a factory to see the famous block printing work. Evening in Jaipur will bring a drive to the fabulous white marble edifice of famous Laxmi Narayan Mandir</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> Jaipur - Jodhpur
								</p>
								<p class="aj">This morning leave for Jodhpur. The city painted in blue, Jodhpur is the renowned Blue City of Rajasthan. Featuring various forts, palaces and temples in the middle of stark landscape of Thar Desert, Jodhpur paints the region in the<br />
Package cost 3 Star<br />
Per Person(min 2 pax required) 17063.0<br />
Extra Adult 6510.0<br />
Per Person(min 4 pax required) 13073.0<br />
Per Person(min 6 pax required) 11305.0<br />
Child With Bed(5-12 yrs) 6510.0color of royalty. Visit the Mehrangarh Fort, which literally means "Majestic Fort", located at the very centre of the city. Close to the fort complex lies this white marble cenotaph, built in 1899, in commemoration of Maharaja Jaswant Singh II. At the foot of the fort, lies the "Jaswanth Thada", a richly carved white marble cenotaph. You also stroll down the markets of Jodhpur. O/N in Jodhpur</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> Jodhpur - Ranakpur - Udaipur
								</p>
								<p class="aj">Today set out on drive to Udaipur in the morning and en-route pay a visit to the famous Jain Temple of Ranakpur. This temple is unique as it has 200 pillars, each one carved differently and 29 halls adorned with beautiful carving and sculptures. Resume the drive thereafter and on arrival in Udaipur check-in a hotel for overnight stay.</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> Udaipur
								</p>
								<p class="aj">The breathtaking beauty of the lakes - Pichola & Fateh Sagar & the magnificent structures built around them, impress every visitor to Udaipur. The city has been voted the best tourist destination in the world in multiple traveller surveys.<br />
Wander through the opulent City Palace grounds and the museum. Overlooking Lake Pichola, City Palace complex has several beauteous structures showcasing a blend of Rajasthani and Mughal architectures. Visit the Jagdish temple on the shores of Lake Pichola a large Hindu temple dedicated to Lord Shiva. The temple situated on a raised terrain was built in 1651 and forms a beautiful pyramidal shape. A visit to the temple will not only be of religious experience, but will also impress you with the architectural brilliance of the age of royalty. Also explore other fascinating sites such as Gulab Bagh and Pratap Memorial before you retire to your room in the hotel late in the evening</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> Udaipur - Pushkar
								</p>
								<p class="aj">Leave for Pushkar. Pushkar is a sacred town for the Hindu and is situated about 11kms northwest of Ajmer. Visit Dargah Sharif at Ajmer on the way to Pushkar. The prime attractions are Brahma Temple which is the sole temple dedicated to Lord Brahma in the world, Pushkar Lake, Savitri Temple etc. Take a brief moment to explore Pushkar, one of the five sacred dhams (pilgrimage sites) of Hindus. Perched on the banks of River Pushkar it is one of the oldest cities of India and is laced with various temples. Take a holy dip in the Pushkar Lake and visit its 52 bathing Ghats and more than 500 temples, each having its own legends of miraculous powers and powers of healing and displaying variety of architectural styles. The cattle festival of Pushkar is one of its kinds which have made the city a renowned tourist destination in India. You can also visit the Rose Garden too in the evening. Explore the city and then check in your hotel for overnight stay</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 - Jaipur
								</p>
								<p class="aj">Today take up a drive back to Jaipur. Later in the evening you will be transferred to International Airport to catch onward flight back home</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>
															</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.mehaitoursandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Royal Rajasthan 3* 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="67701"/>
						</form>
						</div>
						
						";i:1;s:62:"Book Royal Rajasthan 3* Tour - 6 Nights / 7 Days Tour Packages";i:2;s:135:"book royal rajasthan 3* tour - 6 nights / 7 days tour packages, heritage tour packages, jaipur, jodhpur, pushkar, udaipur tour packages";i:3;s:188:"Book Royal Rajasthan 3* Tour - 6 Nights / 7 Days tour packages from Mehai Tours & Travels - Get attractive 6 Nights / 7 Days Heritage  tour packages for  Jaipur, Jodhpur, Pushkar, Udaipur.";i:4;s:428:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Jaipur, Jodhpur, Pushkar, Udaipur"        
		                 },
		      "description": "",
		      "name": "Royal Rajasthan 3* Tour",
		      "telephone": "+91-9982791007"
		    }
		    </script>
			";i:5;N;}