a:6:{i:0;s:10913:"				<div class="h1"><h1>Majestic Dubai with Abu Dhabi Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.brijtours.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.brijtours.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Majestic Dubai with Abu Dhabi Package</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.brijtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai with Abu Dhabi 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="115183"/>
						</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_17/496456/187936.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/496456/187936.jpg"  width="150" height="150"    alt="Majestic Dubai with Abu Dhabi Package" title="Majestic Dubai with Abu Dhabi Package" /></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
								</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
								</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.brijtours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Majestic Dubai with Abu Dhabi 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="115183"/>
						</form>
						</div>
						
						";i:1;s:76:"Book Majestic Dubai with Abu Dhabi Package - 5 Nights / 6 Days Tour Packages";i:2;s:141:"book majestic dubai with abu dhabi package - 5 nights / 6 days tour packages, forts and palaces tour packages, dubai, abu dhabi tour packages";i:3;s:183:"Book Majestic Dubai with Abu Dhabi Package - 5 Nights / 6 Days tour packages from Brij Tours - Get attractive 5 Nights / 6 Days Forts and Palaces  tour packages for  Dubai, Abu Dhabi.";i:4;s:425:"
			<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 Package",
		      "telephone": "+91-8923464722"
		    }
		    </script>
			";i:5;N;}