a:6:{i:0;s:10990:"				<div class="h1"><h1>Majestic Dubai with Abu Dhabi Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.citizentoursntravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.citizentoursntravels.com/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Majestic Dubai with Abu Dhabi 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">
						5 Nights / 6 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Dubai, Abu Dhabi</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.citizentoursntravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai with Abu Dhabi 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="93765"/>
						</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_15/420481/160298.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/420481/160298.jpg"  width="150" height="150"    alt="Majestic Dubai with Abu Dhabi Tour" title="Majestic Dubai with Abu Dhabi 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> Arrive Dubai - Abu Dhabi
								</p>
								<p class="aj">As you arrive in Dubai, you are cordially greeted by our  representative who then escorts you to Abu Dhabi to your designated hotel. Perform Check in and relax and rejuvenate in the comfortable settings of your room. The evening is free at your leisure. Enjoy the wonderful city atmosphere of Abu Dhabi. You can indulge in some shopping and sightseeing. Return to your 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 2:</b> Abu Dhabi-City Tour and Ferrari World
								</p>
								<p class="aj">Enjoy your breakfast in the morning and proceed towards the city tour of Abu Dhabi as well as the Grand Mosque. Enjoy a thrilling visit to Ferrari World, which is one of the most exciting destinations with more than 20 exclusive rides as well as draws for tourists of all ages. There are speed thrill rides as well as world's most advanced simulators to keep you inspired and entertained. In addition to this, visitors can also enjoy the delicacies of Italian restaurants as well revel in amazing shopping experiences. Return to your 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 3:</b> Abu Dhabi-Dubai-Top of Burj Khalifa Tour
								</p>
								<p class="aj">Post breakfast, check out of the hotel and get transferred to your hotel in Dubai. Perform Check in and relax in the peaceful and comfortable surroundings of your room. The evening is marked for your visit to Burj Khalifa, The world's tallest tower. Reach the top of the building to experience the amazing skyline of Dubai. Marvel at the astonishing architecture and tremendous engineering feat of the building from such a soaring height. Return to your hotel for a comfortable and luxurious 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 4:</b> Dubai-Wild Wadi Water Park and Desert Safari Tour
								</p>
								<p class="aj">After breakfast, get transferred to Wild Wadi Water Park, an exciting water themed hotspot, situated between Burj Al Arab and Jumeirah Beach Hotel. Experience the excitement of Tantrum Alley, the tunnel of Doom, Burj-Surj, Breakers' Bay, Wipeout and Riptide Flow Riders and Juha journey etc. that takes you through the exciting twists and turns of the rides, leaving you completely thrilled. Get a hair-splitting experience of weightlessness on the "Jumeirah Sceirah" which is a speed slide that hurtles the visitor into a stupendous depth of 100 feet into the valley.<br />
<br />
The latter half of the day is spent in enjoying the desert safari along with a delicious BBQ dinner and the Belly Dance program towards evening. The desert tour starts off with a thrilling ride amidst the sand dunes. Catch all the experience of deserts, take stunning pictures and then proceed to Ali's camel farm for a short trip. Post this, proceed towards the desert camp. En route, watch the majestic sunset at a brief stopover. Move towards the camp where a warm welcome awaits you. Get treated with Arabic coffee, dates and tea and enjoy the amazing ambience as the charcoal fire and traditional oven is lit towards the preparation for the evening dinner. Relax in the Arabic tents with supreme comforts and chill besides the campfire. Also revel in the quintessential desert experience with a camel ride or get a henna tattoo. An exotic entertainment with Tanoura dance show and an attractive belly dance against the backdrop of the music of Arabia also waits you in the evening. The trip ends with a number of delicious courses including barbeques, meats and salads presented to you under the starlit sky along with enjoying amazing Arabic music. Post dinner, drive back to your 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 5:</b> Dubai-Aquaventure Water Park and Visit to Lost Chambers Aquarium
								</p>
								<p class="aj">Post breakfast, proceed for an exciting sojourn to Aquaventure Water Park. Set in a vast expanse of 42 acres, the park is a wonderful spot to have all the fun and adventure with family and friends. The park is full of most thrilling attractions such as speed slides, rivers, rapids, splashes children area, play area, lush tropical landscapes as well as a private beach.<br />
<br />
Visit to the Lost Chambers Aquarium, one of the most incredible destinations and a site to explore the mysterious ruins of Atlantis as well as nearly 65,000 different species of marine life. Moving through the maze of underwater halls and tunnels is a wonderfully rewarding experience, full of amazing encounters which will be forever etched in your memory. Return to your 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 6:</b> Depart Dubai
								</p>
								<p class="aj">The morning start off with breakfast. Thereafter, get transferred to Dubai International Airport to catch the 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.citizentoursntravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai with Abu Dhabi 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="93765"/>
						</form>
						</div>
						
						";i:1;s:73:"Book Majestic Dubai with Abu Dhabi Tour - 5 Nights / 6 Days Tour Packages";i:2;s:138:"book majestic dubai with abu dhabi tour - 5 nights / 6 days tour packages, forts and palaces tour packages, dubai, abu dhabi tour packages";i:3;s:180:"Citizen Tours and Travels offers Majestic Dubai with Abu Dhabi Tour - 5 Nights / 6 Days tour package, budget Forts and Palaces tour packages for Dubai, Abu Dhabi at exciting price.";i:4;s:422:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Dubai, Abu Dhabi"        
		                 },
		      "description": "",
		      "name": "Majestic Dubai with Abu Dhabi Tour",
		      "telephone": "+91-9737862113"
		    }
		    </script>
			";i:5;N;}