a:6:{i:0;s:18940:"				<div class="h1"><h1>8N/9D Brazil - Argentina Package</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.bellatours.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.bellatours.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>8N/9D Brazil - Argentina 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">
						8 Nights / 9 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Rio De Janeiro, Buenos Aires</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price (Starting From) </td>
						<td class="p5px pl0px vat">
						INR 103580 Per Person						</td>
						</tr>
												<tr>
						<td class="b p5px dif w125px vat">Special Offer </td>
						<td class="p5px pl0px dif vat">Special Offer 	<br />
1st 50 people get BELLA TOURS bag</td>
						</tr>
												<tr>
						<td></td>
						<td>
						<p>
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bellatours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="8N/9D Brazil - Argentina 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="92655"/>
						</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_14/397488/158977.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397488/158977.jpg"  width="150" height="150"    alt="8N/9D Brazil - Argentina Package" title="8N/9D Brazil - Argentina Package" /></a></p></div></li>
															</ul>
						</div>
						</td>
											</tr>
					</table>
					</div>
					<br />
					
					3 Nights in Rio de Janeiro<br />
2 Nights in Iguazu Falls<br />
3 Nights in Buenos Aires<br />
Meals : 8 Breakfasts, 1 Lunch, 2 Dinners<br />
Rio - Full day tour to Sugar Loaf and Corcovado Mountain with lunch, Samba Show with dinner<br />
Iguazu - Tour to Brazilian Falls, Tour to Argentine Falls<br />
Buenos Aires - City Tour, Tango Show with dinner, Tigre & Delta Tour<br />
All airport - hotel - airport transfers & sightseeing on SIC<br />
{Note: - Kindly be on time for SIC transfer as coach will not wait for more than the confirmed pick up time and there will be no refund provided for missed transfers}Special Offer 	<br />
1st 50 people get BELLA TOURS bagAirfare & Taxes<br />
Visa & Insurances charges<br />
Any up gradation in hotel room category & Any meals other than specified above<br />
Any sightseeing other than mentioned above<br />
Any Entrance fees or Fees for video or camera permit<br />
Any item of personal nature like tips, laundry, telephone calls, etc.<br />
Service tax will be applicable on total invoice15-0731-12<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 in Rio de Janeiro
								</p>
								<p class="aj">Welcome to South America. Arrive at Rio de Janeiro and transfer to hotel. Rest of the day at leisure. Overnight stay in Rio de Janeiro.</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> Rio de Janeiro - Full day tour to Sugar Loaf and Corcovado Mountain
								</p>
								<p class="aj">After breakfast, proceed to visit two of the most famous sights in Rio de Janeiro are at your fingertips on this day-long tour. Sugar Loaf and Corcovado Mountains, including the impressive Christ Redeemer statue overlooking the city should definitely be at the top of your list, and Gray Line rio de Janeiro is the perfect guide for your day. First thing in the morning, you’ll be picked up from your hotel and taken through downtown Rio for a panoramic tour. See the Sambrodome, stop at the Metropolitan Cathedral and discover the Cinelandia Square and its wealth of historical buildings. The Municipal Theater, National Library, and National Museum of Fine Arts are all on your way as well as you head toward toward the Urca neighborhood, home of Sugar Loaf Mountain. Ride the iconic cable cars all the way up the mountain, stopping at Urca Hill and its vantage point overlooking Guanabara Bay and its islands, the Rio-Niteroi Bridge and Corcovado Mountain. Finish your ascent to the top of Sugar Loaf, enjoying gorgeous views of the Copacabana beach and Santa Cruz Fortress. Enjoy a lunch before you head over to the base of Corcovado Mountain via the Cosme Vehlo Train. Ride through the lush and dense Tijuca rainforest to the towering Christ Redeemer statue. Standing guard over the city of Rio, the statue has a fascinating history. Overnight stay in Rio de Janeiro.</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> Rio de Janeiro - Samba Show with dinner
								</p>
								<p class="aj">Today you will have an entire day at leisure to enjoy this wonderful city and beaches. In the evening pick up from your hotel and transfer to Brazilian Restaurant.  Following dinner, transfer to Platform 1 Samba Show... an experience of live music, brilliant costumes, rhythmic drumming and unbelievable dancing! Come and enjoy the most famous spectacle of the authentic Brazilian folklore! It is in the Platform Show that you will feel the effervescent rhythm of Samba, that you will hear the most famous songs of this musical genre. It was inside of the cariocas' joints, with the beat of forks and glasses or "batucadas" on matchboxes that the most beautiful Samba songs were written.  Night in Rio makes the heart beat faster. Music and joy, key ingredients to a good nightlife, go together with a permanent parade of artists in the show houses. Overnight stay in Rio de Janeiro.</p>
								</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 <? echo $p_class; ?>"><a rel="gall" data-fancybox="showZoomImage" href="https://ttw.wlimg.com/package-images/photo-big/dir_14/397488/158977.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397488/158977.jpg"  width="150" height="150"    alt="8N/9D Brazil - Argentina Package" title="8N/9D Brazil - Argentina Package" /></a></p></div></li>
									</ul>
									</div>
									</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> Rio de Janeiro - Iguazu Falls - Tour to Brazilian Falls
								</p>
								<p class="aj">After breakfast Transfer to the airport for your flight to Iguazu Falls. Reception at the Airport and direct transfer to the National Park. (ARRIVAL MUST TO BE BEFORE NOON)<br />
The Brazilian side of the falls is located 24 kilometers from downtown Foz do Iguaçu. Arrival to the Visitors Center, at the entrance of the Iguassu National Park, about 10 kilometers from the city center. After passing through the Center, the visits continue, now inside the National Park, along a paved road that will take us to the magnificent Iguassu Falls. There, happens the walking tour along the catwalk measuring one kilometer of easy hike. Along this easy trek, there are several gorgeous panoramic views of the falls and other main falls. Overnight stay in Iguazu falls.</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> Iguazu Falls - Tour to Argentine Falls
								</p>
								<p class="aj">After breakfast, early in the Morning, get your cameras ready because a memorable experience awaits you as you explore this natural wonder of the world. The 200,000 year old falls span across the border of Argentina, Brazil and Paraguay and are known to pour over 400,000 gallons of water a second onto the rocks below! We will travel outside the city of Iguassu to the national park where we will spend the day exploring the falls and learning about the history and culture.  We will explore the three tiers of the park to see the falls from different vantages. The lower path leads to the base of the falls where the intense crash of the falls releases a thick mist into the air. The upper path leads to incredible panoramic views of the falls from an extensive footbridge, also an unforgettable experience. You will be guided throughout the tour but will have lots of free time to take pictures, enjoy the nature and see the falls at your own pace.  At the end of the tour we will all meet back up for transportation back to the hotel. Overnight stay in Iguazu falls.</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> Iguazu Falls - Buenos Aires
								</p>
								<p class="aj">Today morning check out from the hotel & Transfer to the airport for your flight to Buenos Aires. Arrival and transfer to your hotel. Rest of the day at leisure. Overnight stay in Buenos Aires.</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> Buenos Aires - City Tour - Tango Show with dinner
								</p>
								<p class="aj">After breakfast pick up from your hotel lobby to see Buenos Aires.We will see the symbol of our city - The Obelisk, visit different city squares such as Plaza de Mayo, Plaza San Martín, and Plaza Congreso, and ride along several avenues such as Corrientes Ave., May Ave, 9 of July Ave., among others. The tour will take you to such historical neighborhoods as La Boca, San Telmo, and Montserrat, as well as the elegant neighborhoods of Palermo and Recoleta, and the modern Puerto Madero. We will visit some parks such as Lezama and Tres de Febrero, as well as the famous Football Stadium. After the tour return to the Hotel to rest and later get ready to go and enjoy of a beautiful Tango show. Fuel your passion with a night of tango in Buenos Aires, complete with a beginner’s tango lesson, dinner, and a magnificent floor show: Sabor A Tango is the best way to live the tango experience in all its glory. Over 27,000 square feet of the building are devoted entirely to the performance of Tango. Deep in the heart of Buenos Aires, the venue offers guests a professional dance floor and stage where renowned Tango artists make their appearance. Or take a lesson in the “El Patio de la Morocha” hall, which is specially devoted to the “Milonga Italia Unita." It houses Tango lessons for beginners. Enjoy dinner in between dances. The restaurant serves up some of the best Argentine and International cuisine in the city. Overnight stay in Buenos Aires.</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> Buenos Aires - Tigre & Delta Tour
								</p>
								<p class="aj">Breakfast. Pick up from your Hotel Lobby to leave Buenos Aires City heading for the town of Tigre, one hour away, where we will board a tourist boat to navigate along Delta and its islands. The life of the "isleños" (people who live on the islands of the Delta) is very special. We will learn about their customs, culture and ways of life. On the way back to Buenos Aires city we will drive by the elegant residences of the well-off, located in the northern suburbs, and the San Isidoro neighborhood. Additionally, you will also get a glimpse of the Presidential Residence (Quinta de Olivos) as we pass it by. Afternoon at leisure.Overnight stay in Buenos Aires.</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> Buenos Aires - Departure
								</p>
								<p class="aj">After breakfast it’s time to check out.Transfer to the airport for your onward flight or 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>3 Star Hotel</li>
																		<li>Sightseeing</li>
																		<li>Transport</li>
																		<li>Transfers</li>
																		<li>Airport Pickup-Drop</li>
															</ul>
						<br />
												<p class="large b mb5px dif">Exclusions :</p> <ul><li>Airfare & Taxes</li><li>
Visa & Insurances charges</li><li>
Any up gradation in hotel room category & Any meals other than specified above</li><li>
Any sightseeing other than mentioned above</li><li>
Any Entrance fees or Fees for video or camera permit</li><li>
Any item of personal nature like tips, laundry, telephone calls, etc.</li><li>
Service tax will be applicable on total invoice</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. ~^#^~						
    	<p class="h dif xlarge b mb5px">Hotel Details:-</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">City</td>
				<td class="headHr p5px b">Standard</td>
				<td class="headHr p5px b">Deluxe</td>
				<td class="headHr p5px b">Premium</td>
			</tr>
			<tr>
				<td class="data p5px">Rio de Janeiro</td>
				<td class="data p5px">Augustos Copacabana or similar</td>
				<td class="data p5px">Golden Tulip Regente or similar</td>
				<td class="data p5px">Windsor Atlantica or similar</td>
			</tr>
			<tr>
				<td class="data p5px">Iguazu Falls</td>
				<td class="data p5px">Orquideas Palace or similar</td>
				<td class="data p5px">Esturion or similar</td>
				<td class="data p5px">Sheraton Iguazu or similar</td>
			</tr>
			<tr>
				<td class="data p5px">Buenos Aires</td>
				<td class="data p5px">Two Buenos Aires or similar</td>
				<td class="data p5px">Loi Suites Esmeralda or similar</td>
				<td class="data p5px">Melia Buenos Aires or similar</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Price per person in USD:-</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">Category</td>
				<td class="headHr p5px b">Twin</td>
				<td class="headHr p5px b">Triple</td>
				<td class="headHr p5px b">Single</td>
			</tr>
			<tr>
				<td class="data p5px">Standard</td>
				<td class="data p5px">1652</td>
				<td class="data p5px">1529</td>
				<td class="data p5px">2520</td>
			</tr>
			<tr>
				<td class="data p5px">Deluxe</td>
				<td class="data p5px">1868</td>
				<td class="data p5px">1643</td>
				<td class="data p5px">2723</td>
			</tr>
			<tr>
				<td class="data p5px">Premium</td>
				<td class="data p5px">2515</td>
				<td class="data p5px">2294</td>
				<td class="data p5px">4213</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.bellatours.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="8N/9D Brazil - Argentina 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="92655"/>
						</form>
						</div>
						
						";i:1;s:71:"Book 8N/9D Brazil - Argentina Package - 8 Nights / 9 Days Tour Packages";i:2;s:143:"book 8n/9d brazil - argentina package - 8 nights / 9 days tour packages, hill station tour packages, rio de janeiro, buenos aires tour packages";i:3;s:186:"Book 8N/9D Brazil - Argentina Package - 8 Nights / 9 Days tour packages from Bella Tours - Get attractive 8 Nights / 9 Days Hill Station  tour packages for  Rio De Janeiro, Buenos Aires.";i:4;s:1404:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Rio De Janeiro, Buenos Aires"        
		                 },
		      "description": "3 Nights in Rio de Janeiro
2 Nights in Iguazu Falls
3 Nights in Buenos Aires
Meals : 8 Breakfasts, 1 Lunch, 2 Dinners
Rio - Full day tour to Sugar Loaf and Corcovado Mountain with lunch, Samba Show with dinner
Iguazu - Tour to Brazilian Falls, Tour to Argentine Falls
Buenos Aires - City Tour, Tango Show with dinner, Tigre & Delta Tour
All airport - hotel - airport transfers & sightseeing on SIC
{Note: - Kindly be on time for SIC transfer as coach will not wait for more than the confirmed pick up time and there will be no refund provided for missed transfers}Special Offer 	
1st 50 people get BELLA TOURS bagAirfare & Taxes
Visa & Insurances charges
Any up gradation in hotel room category & Any meals other than specified above
Any sightseeing other than mentioned above
Any Entrance fees or Fees for video or camera permit
Any item of personal nature like tips, laundry, telephone calls, etc.
Service tax will be applicable on total invoice15-0731-12",
		      "name": "8N/9D Brazil - Argentina Package",
		      "telephone": "+91-9819406969"
		    }
		    </script>
			";i:5;N;}