a:6:{i:0;s:18714:"						<section class="headBg theme2 ">
						<div class="wrap">
						<div class="page-title-inner fo"> 
						<div class="h1"><h1>Rajasthan Tour Package</h1></div>
						<p class="breadcrumb ar uu small"><a href="http://www.vermaexpress.com/" title="Home">Home</a>
						
													<b class="ffv p2px">&rsaquo;</b><a href="http://www.vermaexpress.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>
								
						<b class="ffv p2px">&rsaquo;</b> Rajasthan Tour Package</p>
						</div>
						</div>
						</section>
										<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-->				
								
						<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> 
						6 Nights / 7 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Jaipur, Mount Abu, 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.vermaexpress.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rajasthan Tour Package - 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="187144"/>
						</form>
						
												</p>
											</td>
											<td class="p10px vat imgWidth200 w200px lh0">
						<div class="demo-wrap">
						<ul class="lsn m0px p0px" >
															<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_2/40481/291485.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/40481/291485.jpg"  width="150" height="112"    alt="Rajasthan Tour Package" title="Rajasthan Tour Package" /></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>
													
								Date of Travel : 11/01/2019<br />
· Duration : 04 Nights / 5 Days<br />
· No. of Pax : 02 Adults <br />
· Pick up : Udaipur<br />
· Drop : Jaipur<br />
· Room : 01 Deluxe Room<br />
· Meal Plan : C.P <br />
· Vehicle : Ac Swift Dzire / Similar								</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> Arrive Udaipur
										</p>
										<p class="aj">Meet and Greet on arrival at Udaipur Railway Station / Airport and transfer to hotel. Check-in to hotel. Overnight stay at Udaipur.</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> Udaipur Local Sightseeing
										</p>
										<p class="aj">After breakfast start for Udaipur city tour. Visiting Fateh Sagar, Maharana Pratap Memorial, take a photo stop at Nehru Garden, Sehelion-KI-Bari - Queen’s resort for their friends, Sukhadia Circle (Drive Pass), Bhartiya Lok kala Museum - a museum of folk and art, it displays a rich collection of folk dresses, ornaments, puppets, masks, dolls. After that visit City Palace – The largest palace complex of Rajasthan, Jagdish Temple – built by Maharana Jagat Singh and is dedicated to Lord Vishnu & Gulab Bagh. Overnight stay at Udaipur. less</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> Udaipur to Mount Abu
										</p>
										<p class="aj">After breakfast transfer to Mount Abu. On arrival check-in to your hotel. In the Evening enjoy the sunset from Sunset View Point in Mount Abu. Overnight stay 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 4:</b> Mount Abu Local Sightseeing
										</p>
										<p class="aj">After breakfast start for Mount Abu city tour. Visiting Prajapita Brahmakumari, Adhar Devi Temple, Achalgarh, Guru Sikhar, Dilwara Jain Temple, Honeymoon Point, Art Gallery and Nakki Lake where you can enjoy boat ride in at your own cost. Overnight stay 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 5:</b> Mount Abu to Jaipur
										</p>
										<p class="aj">After breakfast transfer to Jaipur. On arrival check-in to your hotel. Jaipur – the capital of Rajasthan was given a colour coat of pink a century ago in honour of a visiting Prince and ever since, it has retained this colour. Built by Maharaja Jai Singh, the notable astronomer, this city is 260 years old. Visit Sisodiya Rani Temple, Laxmi Narayan Temple. Evening free and optional visit to Chokhi Dhani resort (Dinner Chargeable Extra on own)- built in ethnical rajsthani style and Specially in the evening they organize lot of activities like, camel ride, Puppet show, Snake charmer and handloom cloths etc. alongwith specialized Rajasthani /continental Dinner as well. Overnight Jaipur.</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
										</p>
										<p class="aj">Morning visit Amber Fort with an Elephant ride( at extra cost subject to availability) till the main entrance of the fort. Amber Fort was the ancient capital of the State. After photo stop at Jal Mahal, Visit Maharaja’s City Palace, the Observatory Visit the Sheesh Mahal or the Hall of Victory glittering with mirrors. Evening free for shopping on own. Return to hotel for the 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> Jaipur Depature
										</p>
										<p class="aj">After Breakfast Check Out from Hotel and Transfer to Jaipur Your Drop Point for Your Onward Journey.</p>
										</td>
										</tr>
										</table>					
										</div>								<br />
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Inclusions</p>
								</div>
												
								<ul>
																			<li>EP (No Meal)</li>
																						<li>Hotel</li>
																						<li>Meals</li>
																						<li>Sightseeing</li>
																				<li>2 Night accommodation in Jaipur.</li><li>
2 Night accommodation in Udaipur.</li><li>
2 Night accommodation in Mount Abu.</li><li>
Pick up from Udaipur & Drop at Jaipur.</li><li>
Fuel Charges.</li><li>
Intercity transfer & sightseeing as per the Itinerary.</li>
																	</ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Payments Terms</p>
								</div>
								
								<ul><li>· 50 % booking amount of total tour cost to initiate a booking . </li><li>
· 100 % amount of total tour cost after the hotel booking confirmation. </li><li>
· Full payment is required before 10 days of the travel date.</li><li>
· Rates mentioned above are valid for Indian nationals . </li><li>
· The quotations are given without holding any confirmed reservations either in the airlines/transport or in the hotels. Once the quotation is accepted by the guest and advance amount is deposited either in Cheque / cash to process the reservation, the booking is processed at our end. In case we are unable to provide the services then the deposited amount shall be refunded to the guest within 7 to 14 working days . </li><li>
· Base category rooms will be booked in Hotels unless and until specified in the quotation. In case the rooms are not available in selected hotel, rooms shall be booked in similar hotel or higher category rooms where you have to pay the differences. </li><li>
· Extra bed/mattress will be provided as per the hotel policy. If the hotel is giving an extra mattress instead of an extra bed it will be considered as an extra bed only. </li><li>
· Any date amendments in the air tickets will be considered as cancellation only and new tickets are issued under new applicable fare at the time of issuance of ticket and cancellation charges are applicable for the cancelled tickets as per airline policy. </li><li>
· Any amendments in the date or itinerary are to be intimated us in writing and amended confirmation depends on the availability of given hotels on requested dates. Cancellation policy shall be applicable in such case. </li><li>
· In a tour package, no refund shall be made for unutilized services. It is on guest’s discretion whether to take service or not. </li><li>
· Please carry your valid Identity proof card (passport in case of International travel) containing your photograph as it is required at the airport and during check in at hotels. Pan card is not a valid identity proof so please don’t carry that with you. </li><li>
· The check in and check-out time of most of the hotels is 02 PM to 12 PM and , The hotel does not provide breakfast on the day of arrival. </li><li>
· For early check in and late check outs payments are to be settled directly by the guest at the hotel. </li><li>
On accepting this quotation, you accept that you have read the complete package information and agree with booking terms & conditions, payment policy and cancellation policy. You accept the tour package and acknowledge that it fits into your budget and requirement.</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>· If customer will cancelled the package due to any reason ,then company will refund the amount within 14 to 28 working days after deduction 15 % cancellation and Goods service tax Charges .( saturday ,sunday will not be countable ) </li><li>
· If company will cancelled the trip due to insufficient booking ,then company will refund your full amount without any deduction within 7 to 14 working days. ( saturday ,sunday will not be countable ) </li><li>
· If hotel is booked by company then cancellation policy will be apply according to the Hotel policy . </li><li>
· If flight is booked by company then cancellation policy will be apply according to the Airlines policy .</li></ul>			
						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.vermaexpress.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Rajasthan 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="187144"/>
						</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.vermaexpress.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 "><a class="dif" href="http://www.vermaexpress.com/packages-in-rome.htm" title="Packages in Rome">Rome</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.com/packages-in-paris.htm" title="Packages in Paris">Paris</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.com/packages-in-kuala-lumpur.htm" title="Packages in Kuala Lumpur">Kuala Lumpur</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.com/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.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 "><a class="dif" href="http://www.vermaexpress.com/packages-in-bangkok.htm" title="Packages in Bangkok">Bangkok</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.com/packages-in-brussels.htm" title="Packages in Brussels">Brussels</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.com/packages-in-london.htm" title="Packages in London">London</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.com/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</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.vermaexpress.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.vermaexpress.com/packages-in-pattaya.htm" title="Packages in Pattaya">Pattaya</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.vermaexpress.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.vermaexpress.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(1)</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:61:"Book Rajasthan Tour Package - 6 Nights / 7 Days Tour Packages";i:2;s:136:"book rajasthan tour package - 6 nights / 7 days tour packages, forts and palaces tour packages, jaipur, mount abu, udaipur tour packages";i:3;s:181:"Book Rajasthan Tour Package - 6 Nights / 7 Days tour packages from Verma Express - Get attractive 6 Nights / 7 Days Forts and Palaces  tour packages for  Jaipur, Mount Abu, Udaipur.";i:4;s:635:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Jaipur, Mount Abu, Udaipur"        
		                 },
		      "description": "Date of Travel : 11/01/2019
· Duration : 04 Nights / 5 Days
· No. of Pax : 02 Adults 
· Pick up : Udaipur
· Drop : Jaipur
· Room : 01 Deluxe Room
· Meal Plan : C.P 
· Vehicle : Ac Swift Dzire / Similar",
		      "name": "Rajasthan Tour Package",
		      "telephone": "+91-9801025048"
		    }
		    </script>
			";i:5;N;}