a:6:{i:0;s:12821:"				<div class="h1"><h1>Gorgeous Spain – 06 Nights & 07 Days Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.oppexholidays.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.oppexholidays.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Gorgeous Spain – 06 Nights & 07 Days 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">Barcelona, Valencia, Madrid</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 58299 Per Person						</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gorgeous Spain – 06 Nights & 07 Days 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="111912"/>
						</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_2/37817/183799.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_2/37817/183799.jpg"  width="150" height="150"    alt="Gorgeous Spain – 06 Nights & 07 Days Tour" title="Gorgeous Spain – 06 Nights & 07 Days Tour" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					Barcelona St George or Arc La Rambla or IBIS or Similar<br />
Port Aventura (Salou) Hotel Port Aventura or Similar<br />
Madrid Britannia Hotel or Similar<br />
MEALS: Breakfast at all hotels<br />
<br />
6 Nights’ accommodation in above mentioned Hotels<br />
Daily Breakfast<br />
Sightseeing & Transfers as per itineraryAirfare<br />
Visa<br />
Hotels not booked yet.<br />
Rates Subject to change without prior notice.<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> Barcelona
								</p>
								<p class="aj">Barcelona Airport arrival, transfer to your hotel and day free for leisure ( visit Beach today )<br />
Overnight at Barcelona 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 2:</b> Barcelona - Hot Airballon And Sea Aquarium
								</p>
								<p class="aj">We invite you to experience the adventure in the Vallès Oriental, at only 30 minutes away from Barcelona. Taking off from Cardedeu, you will discover from the air amazing panoramas and landscapes, flying over unique points of interest in the Montseny Natural Park region. By clear sky, you will have the opportunity to admire the Montserrat picks, Barcelona itself and the Mediterranean sea ....In the afternoon visit Aquarium de Barcelona which is the most important marine leisure and education centre in the world concerning the Mediterranean. A series of 35 tanks, 11000 animals, 450 different species, an underwater tunnel 80 metres long, six million litres of water and an immense Oceanarium (the only one in Europe), Overnight stay at hotel in Barcelona</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> Barcelona To Costa Caribe Aquantic Park
								</p>
								<p class="aj">Located right beside Port Aventura, Costa Caribe is Spain’s premier aquatic park, covering a huge area with splash pools, interactive water jets and free-fall water slides. Having undergone a renovation, the park now includes a dedicated children’s area with a large pool and a floating pirate ship — stuffed to the seams with Sesame Streetcharacters. Connected to the child pool is a full-sized adults-only pool, surrounded by Europe’s highest free-fall water slide, 6-lane racer slides and, of course, sun loungers for enjoying the park in a more leisurely fashion! Like Port Aventura, Costa Caribe has a wide range of eateries, with some five different cafes to choose from.<br />
Overnight at Hotel Port Aventura</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> Port Aventura Theme Park
								</p>
								<p class="aj">After Breakfast, visit the Europe’s secondlargest theme park, PortAventura which has something to offer all the family. Split into different zones (each based on towns in different parts of the world) each with roller coasters and rides, the vast adventure park boasts a more sedate area for younger kids, too. For a white-knuckle ride check out the Shambhala; it’s Europe’s highest roller coaster with a 256-feet (78-meter) drop! Furius Baco takes the accolade for one of the world’s fastest accelerator rides, and there are countless boat rides, water flumes, and white-water raft rides to add to the fun. Later in the evening transfer to Valencia.<br />
Overnight at Hotel Port Aventura</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> Madrid - Bullering
								</p>
								<p class="aj">After Breakfast transfer to Madrid via train Welcome to Madrid Arena, the Plaza Monumental de las Ventas del Espíritu Santo, the international centre of bullfighting. On your visit with Las Ventas Tour you will discover a place which is emblematic of the heart and soul of bullfighting, where the world’s finest matadors present their artistry and skill.We will guide around the key parts of the bullring, from the main entrance, to the tendidos, the callejón…. putting into context the three protagonists of this magnificent spectacle: the audience, the bullfighter and the bull.<br />
Overnight at hotel in Madrid</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> Madrid – City Tour
								</p>
								<p class="aj">Buffet breakfast. This morning's escorted sightseeing tour will allow you to get a glimpse of some of Madrid's most outstanding attractions, like the Puerta del Sol, the magnificent fountains of Neptune and Cibeles, the stately Alcala Gate, the busy Gran Via, the Plaza de España and the Plaza de Oriente. Free time for lunch on your own. Highly recommended this afternoon, is an optional tour to the Imperial former capital city of Toledo, where you will be escorted through its narrow cobblestone streets, soaking up the medieval atmosphere. Touring will include the interior of the magnificent Gothic cathedral and a visit to St. Tome Church, where El Greco's masterpiece painting is displayed. There will also be some time for shopping for the unique typical local artisans.<br />
Overnight stay in Madrid.</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> Depart For India
								</p>
								<p class="aj">Check out of the hotel as you will be transferred to the airport.</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">Exclusions :</p> <ul><li>Airfare</li><li>
Visa</li><li>
Hotels not booked yet.</li><li>
Rates Subject to change without prior notice.</li></ul><br />
											
						<p class="large b mb5px dif">Terms &amp; Conditions :</p>~^#^~~^#^~<ul>
	<li>The above is only an offer. In the event of Non availability of the specified hotel, alternate or similar hotels would be offered.</li>
	<li>Rates valid strictly for the requested period.</li>
	<li>RATES FOR PRIVATE SERVICES ARE BASED ON MINIMUM PAX TRAVELING. ANY</li>
	<li>CHANGE IN THRE NUMBER OF PAX WOULD LEAD TO CHANGE IN COST</li>
	<li>Any increase in the Airlines taxes /Hotel Surcharges from the time of Booking till the departure date must be borne by pax.</li>
	<li>No refund for unutilized service</li>
	<li>All Hotels, Itinerary, restaurants subject to change without notice.</li>
	<li>Rates valid only for the dates and period requested. Change in date would lead to change of Cost</li>
	<li>Rates are based on as on date&rsquo;s exchange rate. Should there be any major fluctuation OPPEX TRAVELS AND TOURS reserve the right to furnish a fresh quote.</li>
	<li>Rates do not include Event/ Peak Season surcharges. Would be advised at the time of booking.</li>
	<li>Any damage caused to hotel rooms/ Coach during your stay, shall be payable by the passengers. OPPEX TRAVELS AND TOURS will not be liable for the same.</li>
	<li>The Company shall not accept any liability or responsibility for any damages, loss, injury, accident, death, Flight Cancelation by Airline , breakdown, or irregularity, which may occur in carrying out the tour arrangement, weather conditions, strikes, wars, quarantine or any other cause whatsoever and all such loss or expense must be borne by pax.</li>
	<li>All Tours subject to OPPEX TRAVELS AND TOURS Tour conditions</li>
</ul>												</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.oppexholidays.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Gorgeous Spain – 06 Nights & 07 Days 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="111912"/>
						</form>
						</div>
						
						";i:1;s:82:"Book Gorgeous Spain – 06 Nights & 07 Days Tour - 6 Nights / 7 Days Tour Packages";i:2;s:166:"book gorgeous spain – 06 nights & 07 days tour - 6 nights / 7 days tour packages, water sports and activity tour packages, barcelona, valencia, madrid tour packages";i:3;s:242:"Oppex Travels & Tours ( a Division of Oppex Freight Systems offers Gorgeous Spain – 06 Nights & 07 Days Tour - 6 Nights / 7 Days tour package, budget Water Sports and Activity tour packages for Barcelona, Valencia, Madrid at exciting price.";i:4;s:816:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Barcelona, Valencia, Madrid"        
		                 },
		      "description": "Barcelona St George or Arc La Rambla or IBIS or Similar
Port Aventura (Salou) Hotel Port Aventura or Similar
Madrid Britannia Hotel or Similar
MEALS: Breakfast at all hotels

6 Nights’ accommodation in above mentioned Hotels
Daily Breakfast
Sightseeing & Transfers as per itineraryAirfare
Visa
Hotels not booked yet.
Rates Subject to change without prior notice.",
		      "name": "Gorgeous Spain – 06 Nights & 07 Days Tour",
		      "telephone": "+91-9821321975"
		    }
		    </script>
			";i:5;N;}