a:6:{i:0;s:30427:"				<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>Rajasthan Incredible Tour</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.arihanttravellam.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.arihanttravellam.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
											
					<b class="ffv p2px">&rsaquo;</b>Rajasthan Incredible Tour</p> 
									
						<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">
					
											<p class="mb5px"><b>Duration :</b> 
						11 Nights / 12 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Ajmer, Bikaner, Chittorgarh, Jaipur, Jaisalmer, Jodhpur, Mount Abu, Pushkar, Udaipur</p>
												<p class="mb5px"><b>Price (Starting From) :</b> <span class="dif">On Request</span></p>
												<br />
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.arihanttravellam.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rajasthan Incredible Tour - Tour Package"/>
						<input type="hidden" name="allocate_type" value="tour"/>
						<a href="#" onclick="document.getElementById('frmpackagedetail').submit();" class="buttonBig p10px20px c5px b large dib">Book Your Tour</a>
						<input type="hidden" name="pkg_slno" value="50798"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" id="detailslider1">
															<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/379830/99832.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/379830/99832.jpg"  width="150" height="150"    alt="Rajasthan Incredible Tour" title="Rajasthan Incredible Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/379830/99833.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/379830/99833.jpg"  width="150" height="150"    alt="Rajasthan Incredible Tour" title="Rajasthan Incredible Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/379830/99834.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/379830/99834.jpg"  width="150" height="150"    alt="Rajasthan Incredible Tour" title="Rajasthan Incredible Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/379830/99835.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/379830/99835.jpg"  width="150" height="150"    alt="Rajasthan Incredible Tour" title="Rajasthan Incredible Tour" /></a></p></div></li>
																		<li class="bdr bw3px c5px p1px"><div class="dt"><p class="ac vam dtc w200px h200px"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_13/379830/99836.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/379830/99836.jpg"  width="150" height="150"    alt="Rajasthan Incredible Tour" title="Rajasthan Incredible Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
													<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Tour Detail</p>
								</div>
													
								RAJASTHAN INCREDIBLE<br />
<br />
Is the package in which you will cover all most all the beauty of Rajasthan, here you will get so much enough time to create all the memorable moments and also get enough time for relaxation.<br />
<br />
In this package you will be able to cover all the beautiful place of Rajasthan like, JAIPUR - AJMER - PUSHKAR - BIKANER - JAISALMER - JODHPUR - MOUNT ABU - NATHDWARA - CHITTORGARH - UDAIPUR , after cover all this place you will definitely find the most memorable days of your life,<br />
<br />
Here we will design & operate your package in such a way that you will complete your journey very comfortably, at the time of your arrival our expert will be there to pick you,<br />
<br />
Here you will get a private vehicle to cover all the things, which is in very good condition and also with well known driver who help you to cover all the things.<br />
<br />
Apart from this you will get accommodation facility at all the place. a very well luxurious hotel will be provided to you as per your budget in which you will find good comfort, also with very good quality food and very well mannered staff.<br />
<br />
Also the one more beauty of this package is that we can customize this package as per your budget, your time and as per your requirement. <br />
<br />
Just contact us once for more details & if any query.								</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> Jaipur
										</p>
										<p class="aj">Jaipur is remarkable for its marvelous architecture and town planning as it is for the lively spirit of the people who inhabit it. The city presents a unique synthesis of culture that has to be experienced in order to be appreciated. The old Jaipur painted in Pink, the lively spirit of fanfare, festivity and celebration of the people adequately match the colorful and intricately carved monuments.<br />
<br />
after arriving jaipur airport/railway station our expert is there to pick you. and help you to transfer to the hotel. just take a rest for while and then refresh to go towards jaipur interesting place. After taking some rest, head out to Chowki Dhani, a mock Rajasthani village that offers great food and great display of real Rajasthani culture. It is an ideal place for family outings. Enjoy the traditional side of Rajasthan in the form of music, dance and food. Later, return to the 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 2:</b> Jaipur
										</p>
										<p class="aj">After a scrumptious breakfast, head out for a sightseeing tour of Jaipur. Visit its historical monuments like Hawa Mahal, City Palace, Jantar Mantar and Amer Fort. Hawa Mahal is one of the most sought after landmarks of Jaipur and beckons tourists from all over the world. City Palace stands at the heart of the city and highlights a synthesis of Mughal and Rajput architectural grandeur. Jantar Mantar is yet another masterpiece. It was built to study astronomy and the movement of the stars. Amer Palace is a beautiful fort that sits atop a hill and overlooks the entire city. Other tourist attractions that you will see are Jaigarh Fort, Govind Deoji Mandir, Rambagh Palace, Nahargarh Fort, Kanak Valley and Laxmi Narayan 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 3:</b> JAIPUR TO AJMER - PUSHKAR
										</p>
										<p class="aj">Enjoy your breakfast and drive toward Pushkar. Enroute, visit Ajmer, which is known for the tomb of Khwaja Moinuddin Chishti, an eminent Sufi saint. Later, go for sightseeing in Pushkar and visit the famous Brahma Temple. Spend the night at a hotel in Pushkar.</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> Pushkar To Bikaner
										</p>
										<p class="aj">After a break fast check our from the hotel and Thereafter, embark on a journey towards Bikaner, which is surrounded by the desert from all sides. This region was discovered by Rao Bikaji – a Rathore prince in the year 1486.<br />
<br />
On arrival at this destination, check-in at the hotel and rest for sometime. Later, go for a sightseeing trip of this destination and visit its prominent, historic sites. Pay a visit to the Junagarh Fort, which has interiors decorated with paintings, carvings and mosaic work. A museum within the fort exhibits a huge collection of weapons and arms belonging to the bygone era. Thereafter, proceed towards Bhandasar Jain Temple, which is dedicated to Sumatinath – 5th Jain Tirthankara.<br />
<br />
Later, enjoy picturesque views of the desert and proceed towards the Camel Breeding Farm, where you can taste camel's milk and take a camel ride. Close to this farm lies a museum, which is also worth a visit.<br />
<br />
Later, return to the hotel and stay overnight.</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> Bikaner To Jaisalmer
										</p>
										<p class="aj">after break fast Check-out from the hotel and embark on a road journey to Jaisalmer. This place has been given the sobriquet – the Golden City as many of its buildings have been made using yellow sandstone. Home to numerous historical edifices, this destination witnesses a huge influx of tourists all year-round.<br />
<br />
On arrival at Jaisalmer, check-in at the hotel and unpack. Spend a peaceful night 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 6:</b> Jaisalmer
										</p>
										<p class="aj">Embark on a sightseeing tour of this destination. Visit the world-renowned Jaisalmer Fort, which is also referred to as the Crown of the City. This fort, constructed using sandstones, is 250 feet tall and is a prominent tourist attraction. There are 99 bastions in the fort, 92 of which were constructed between 1633 and 1647. Amalgamation of Rajput and Islamic architecture in the construction of this fort is sure to catch the attention of visitors. Patwon ki Haveli is another prominent site to visit at this destination. This haveli was constructed in the year 1805 by Guman Chand Patwa – a rich merchant of that time.<br />
<br />
Do not forget a visit to the sparkling Gadsisar Lake. In the evening, visit the famous Sam Sand Dunes (direct payment basis) and enjoy a camel cart ride to the Sunset Point (direct payment basis).<br />
<br />
Later, return to the hotel and stay overnight.</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> Jaisalmer To Jodhpur
										</p>
										<p class="aj">In the morning, after check-out from the hotel and drive towards Jodhpur. The city is referred to as the Blue City as there are a large number of blue-painted houses dotted across the region. There is a plethora of temples, forts and palaces in this city that deserve a visit. One of the most prominent attractions of the place is the Mehrangarh Fort, which is situated at a hill top.<br />
<br />
On arrival at this destination, check-in at the hotel and rest. You can spend the evening at leisure or can go out for sightseeing. Spend the night at the hotel 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 8:</b> Jodhpur To Mount Abu
										</p>
										<p class="aj">in the morning after break fast check our from the hotel and move towards one of the most beautiful and hot favorite tourist destination mount abu<br />
<br />
just arrive at the mount abu, check in to the hotel and just take a rest for a while and then refresh and Spend a leisurely evening and spend the night at Mount Abu.</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> Mount Abu
										</p>
										<p class="aj">After a refreshing breakfast, visit Shankar Math, Achalgarh, Guru Shikhar, Brahmakumari Peace Park, Delwara temple and Gaumukh Temple. In the evening, at around 4.30 pm, visit the Sunset Point and witness a beautiful sunset. Later, enjoy boating on Nakki Lake and then return to the hotel. Spend a comfortable night 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 10:</b> Mount Abu To Udaipur Via Nathdwara & Chittorgarh
										</p>
										<p class="aj">After break fast check out from the hotel and go ahead.<br />
On the route to Mount Abu from Chittorgarh, explore the town of Nathdwara. Located on the banks of the Banas River, this town in Rajsamand is popular for the Shrinathji Temple dedicated to Lord Krishna.<br />
<br />
after visited Temple go ahead towards Chittorgarh. You can plan a visit to the Chittorgarh Fort, known for its palaces, two towers and temples. This structure is around 180 metres high, spread across an area of over 619 acres. It was built in 8th century AD, and has survived a number of attacks and wars since then. Of all the structures here, the palaces belonging to Rani Padmini and Maharana Kumbha are the most exquisite ones. Vijay Stambh with its intricate carvings is another attraction of this place. This nine-storey tower was built to celebrate the victory of Maharana Kumbha over this fort. There is another tower named Kirti Stambh in the premises that was built in the 12th century by a Jain merchant, in the honour of Adinatha – the first Tirthankara.<br />
The Kalika Mata Temple, dedicated to Goddess Kali, is another important attraction of this place. It was built in the 8th century, and is considered as a symbol of valour and power by many people.<br />
Later in the evening, come back to udaipur and check in to hotel and relax and refresh and over night stay at hotel.</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> Udaipur
											</p>
											<p class="aj">On this day, pack your luggage and move ahead to the next destination - Udaipur, which is one of the most-visited places in India.<br />
Udaipur is also called the City of Lakes, and is popular among tourists for its beautiful palaces giving stunning views of tarns and the city. It was named after its founder - Maharana Udai Singh II. He was the 53rd ruler of the Mewar Dynasty, and found this city in the year 1559 as the capital of the Kingdom of Mewar.<br />
As you reach here, check-in at the designated hotel and take rest. Later, step out of the hotel for a sightseeing trip of Udaipur.<br />
During this excursion, you can visit tow beautiful lakes situated here, namely Lake Pichola and Fateh Sagar Lake. While the first is an artificial freshwater lake known for its two beautiful islands – Jag Mandir and Jag Niwas, the latter is located to its north and is famous for the observatory and park on its islands. Other two main lakes in the city are Udai Sagar Lake and Dhebar Lake.<br />
One of the most popular attractions in Udaipur is the majestic City Palace, which is a huge palace complex known for its grandeur and flamboyance. It has been featured prominently in several international movies, which have added more to its fame. You can also see Gulab Bagh - the largest garden in the city. It gets such as name because of the abundance of colourful roses.<br />
After a sightseeing tour of Udaipur, return to the 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 12:</b> Udaipur - Finish Journey
											</p>
											<p class="aj">At Morning after break fast check out from the hotel and  Transfer to Udaipur Airport / Railway Station and board your flight or train to go back to your sweet home. have a great and safe journey.</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 />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>Hotel</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.arihanttravellam.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rajasthan Incredible 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="50798"/>
						</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.arihanttravellam.com/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/packages-in-kullu.htm" title="Packages in Kullu">Kullu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/packages-in-thekkady.htm" title="Packages in Thekkady">Thekkady</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/packages-in-chandigarh-city.htm" title="Packages in Chandigarh City">Chandigarh City</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-dharamshala.htm" title="Packages in Dharamshala">Dharamshala</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-kovalam.htm" title="Packages in Kovalam">Kovalam</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-bikaner.htm" title="Packages in Bikaner">Bikaner</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-pelling.htm" title="Packages in Pelling">Pelling</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-udaipur.htm" title="Packages in Udaipur">Udaipur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-amritsar.htm" title="Packages in Amritsar">Amritsar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-mount-abu.htm" title="Packages in Mount Abu">Mount Abu</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-kanyakumari.htm" title="Packages in Kanyakumari">Kanyakumari</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-jaisalmer.htm" title="Packages in Jaisalmer">Jaisalmer</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-chittorgarh.htm" title="Packages in Chittorgarh">Chittorgarh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-ajmer.htm" title="Packages in Ajmer">Ajmer</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-kalimpong.htm" title="Packages in Kalimpong">Kalimpong</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-pushkar.htm" title="Packages in Pushkar">Pushkar</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.arihanttravellam.com/packages-in-jodhpur.htm" title="Packages in Jodhpur">Jodhpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></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.arihanttravellam.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.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.arihanttravellam.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.arihanttravellam.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.arihanttravellam.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(2)</b></span>
						
				</div>
				</div>
				</div>
				</div>
				
				
				</div>
				</div>
				
								
				</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:66:"Book Rajasthan Incredible Tour - 11 Nights / 12 Days Tour Packages";i:2;s:190:"book rajasthan incredible tour - 11 nights / 12 days tour packages, heritage tour packages, ajmer, bikaner, chittorgarh, jaipur, jaisalmer, jodhpur, mount abu, pushkar, udaipur tour packages";i:3;s:241:"Book Rajasthan Incredible Tour - 11 Nights / 12 Days tour packages from Arihant Travellam - Get attractive 11 Nights / 12 Days Heritage  tour packages for  Ajmer, Bikaner, Chittorgarh, Jaipur, Jaisalmer, Jodhpur, Mount Abu, Pushkar, Udaipur.";i:4;s:1770:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Ajmer, Bikaner, Chittorgarh, Jaipur, Jaisalmer, Jodhpur, Mount Abu, Pushkar, Udaipur"        
		                 },
		      "description": "RAJASTHAN INCREDIBLE

Is the package in which you will cover all most all the beauty of Rajasthan, here you will get so much enough time to create all the memorable moments and also get enough time for relaxation.

In this package you will be able to cover all the beautiful place of Rajasthan like, JAIPUR - AJMER - PUSHKAR - BIKANER - JAISALMER - JODHPUR - MOUNT ABU - NATHDWARA - CHITTORGARH - UDAIPUR , after cover all this place you will definitely find the most memorable days of your life,

Here we will design & operate your package in such a way that you will complete your journey very comfortably, at the time of your arrival our expert will be there to pick you,

Here you will get a private vehicle to cover all the things, which is in very good condition and also with well known driver who help you to cover all the things.

Apart from this you will get accommodation facility at all the place. a very well luxurious hotel will be provided to you as per your budget in which you will find good comfort, also with very good quality food and very well mannered staff.

Also the one more beauty of this package is that we can customize this package as per your budget, your time and as per your requirement. 

Just contact us once for more details & if any query.",
		      "name": "Rajasthan Incredible Tour",
		      "telephone": "+91-9033481665"
		    }
		    </script>
			";i:5;N;}