a:6:{i:0;s:36479:"				<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-->				
									<div class="h1"><h1>Canadian Tourist Capitals end in Buffalo Package for 9 Days (Europamundo Package)</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.maataratours.com/" title="Home">Home</a>
					
										
					<b class="ffv p2px">&rsaquo;</b>Canadian Tourist Capitals end in Buffalo Package for 9 Days (Europamundo Package)</p> 
									
						<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>Tour Code :</b> 85940</p>
												<p class="mb5px"><b>Duration :</b> 
						8 Nights / 9 Days 
						</p>
												<p class="mb5px"><b>Destination Covered :</b> Quebec, Toronto, Ottawa, Buffalo</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.maataratours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Canadian Tourist Capitals end in Buffalo Package for 9 Days (Europamundo 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="110502"/>
						</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_17/497806/182193.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/497806/182193.jpg"  width="150" height="150"    alt="Canadian Tourist Capitals end in Buffalo Package for 9 Days (Europamundo Package)" title="Canadian Tourist Capitals end in Buffalo Package for 9 Days (Europamundo 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>
													
								Terms of Europamundo: Travel by bus with English speaking guide, basic travel insurance, and breakfast buffet.<br />
Includes arrival transfer<br />
City tour in: MONTREAL, QUEBEC, OTTAWA, TORONTO<br />
<br />
Cancellation Policy<br />
Booking Policy are as follows<br />
A non-refundable, non- transferable deposit of EUR 100 per person is required to guarantee the booking.<br />
Final payment for your vacation is due 30 days prior to the departure<br />
The customer may cancel the services requested or booked at any time, whereby they are entitled to a refund for the amounts paid, but must compensate the agency Via.com a sum of INR 2500 per person), except in cases of force majeure, The processing costs plus the cost of cancellation, if these have been incurred, once the journey has been confirmed by Europa Mundo and regardless of the departure date.<br />
<br />
Cancellation Policy<br />
Before departure, Cancellation fee per person<br />
31 days or more- Euro 100 will be charged<br />
less than 30 days- Euro 100 + 10% of the total tour cost<br />
Less than 10 days- Euro 100 + 25% of the total tour cost<br />
Less than 3 days- Euro 100 + 35% of the total tour cost<br />
Less than 1 day- 100% of the total tour cost<br />
No shows at the start, without prior cancellation, will not be entitled to any refund except through force majeure, which will be examined on a case by case basis).Airfare not included<br />
Visa charges are additional.<br />
Any expenses of personal nature such as porterage, laundry, wines, mineral/bottled water, food and drink<br />
not in the regular menus provided by us, mini bar and telephone calls.<br />
Any other items not mentioned in the Inclusion<br />
City bed taxes if applicable as per the city of visit.<br />
Expenses which are personal in nature tips, Laundry, drinks etc.<br />
Extras in hotels, optional activities, and usually drinks during meals.<br />
Government Service tax 5.0 %								</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> Montreal
										</p>
										<p class="aj">TODAY'S HIGHLIGHTS: Arrival Reception. Transfer to hotel and free time. You will receive information about the start of the circuit during the afternoon, or you can check the informative panels in the hotel reception area.</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> Montreal
										</p>
										<p class="aj">Morning sightseeing tour of MONTREAL included after breakfast. We will visit, among other places, the Olympic Village from the 1976 Olympics, the Parc Mont Royal, St. Joseph Oratory, the Port of Montreal and the Cathedral. Free afternoon to stroll around Old Montreal and its shops and restaurants where you will have a chance to taste its renowned cuisine. In the afternoon, you will have the option to enjoy the light show at Notre Dame Basilica. Sojourn.</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> Montreal -6ÂºC Light Snow - Quebec -4ÂºC Light Snow
										</p>
										<p class="aj">We will depart for QUEBEC after breakfast. Arrival and sightseeing tour to visit its more important sites such as: the<br />
Package cost Budget<br />
1 Person 180710<br />
Per Person(min 2 pax required) 116277<br />
Destination No of Nights Budget<br />
Montreal 2 Hotel Faubourg Montreal / similar hotels<br />
Quebec 2 Budget<br />
Ottawa 1 Novotel Ottawa Hotel / similar hotels<br />
Toronto 2 Howard Johnson Hotel<br />
Toronto Yorkville / similar hotels<br />
Buffalo 1 Adams Mark Buffalo / similar hotels<br />
Notre Dame Basilica, the Chateaux Frontenac, the Place Royale, Sainte Anne de Beaupr and the Citadelle. Free afternoon in the city to explore Old Quebec, with its typical restaurants and taverns full of French savour. Sojourn.</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> Quebec
										</p>
										<p class="aj">After breakfast. Free day in the city for personal activities and to explore all its corners. You will have the option to visit the Montmorency Falls, the Sugar Shack and Laurier Quebec shopping mall.</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> Quebec-- St Agata Des Mont-Mt Tremblant-Ottawa
										</p>
										<p class="aj">Right after breakfast, a stage full of Canadian landscapes will begin. We will visit the Laurentian Hills where we will make a stop in the charming town of Sta Agathe des Monts and will continue to Mount Tremblant, with its world-famous ski station. From there, we will continue to OTTAWA, capital city of Canada. Arrival and sojourn.</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> Ottawa- Thousand Islands-Toronto
										</p>
										<p class="aj">Tour of the city after breakfast. We will visit the Citadel, the Canal Rideau and the Parliament Buildings where we will watch the Changing of the Guard (only July and August). We will then continue to Gananoque where we will take a sightseeing cruise offering spectacular river landscapes of St. Lawrence and the 1000 islands. After disembarking, we will continue south arriving at our hotel in Toronto late in the afternoon.</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> Toronto
										</p>
										<p class="aj">After breakfast, we include a sightseeing tour during which we will visit Chinatown, City Hall, the Financial District, Eaton Center, Casa Loma and the city's most important tourist sites. In the afternoon, you will have the option to visit the CN Tower, shop at Eaton Center or walk around the Underground City with 25 km of shopping gallerias right under the financial district. In the evening, you will have a chance to visit Queens Quay, a lively leisure area full of restaurants.Sojourn.</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> Toronto-Niagara Falls-Buffalo
										</p>
										<p class="aj">After breakfast, we will go to the beautiful town of NIAGARA ON THE LAKE. After strolling around for some time, we will continue to Niagara Falls. Once there, we will take photos of the Floral Clock before we get on the Hornblower Niagara Cruise, a small boat that will take us to the foot of the famous falls. We will later have some free time to enjoy the Clifton Hill attractions. We will cross over to the United States in the afternoon and we sojourn at our hotel in BUFFALO.</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> Buffalo
										</p>
										<p class="aj">After breakfast, end of our services.</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>Hotel</li>
																						<li>Sightseeing</li>
																			</ul>
								</div>
																<div class="data mt20px p15px">
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Exclusions</p>
								</div>
								
								<ul><li>Airfare not included</li><li>
Visa charges are additional.</li><li>
Any expenses of personal nature such as porterage, laundry, wines, mineral/bottled water, food and drink</li><li>
not in the regular menus provided by us, mini bar and telephone calls.</li><li>
Any other items not mentioned in the Inclusion</li><li>
City bed taxes if applicable as per the city of visit.</li><li>
Expenses which are personal in nature tips, Laundry, drinks etc.</li><li>
Extras in hotels, optional activities, and usually drinks during meals.</li><li>
Government Service tax 5.0 %</li></ul>
								</div>
																<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Rate Card</p>
								</div>
								
    	<p class="h dif xlarge b mb5px">Preview of the Prices</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">Package cost</td>
				<td class="data p5px">Budget</td>
			</tr>
			<tr>
				<td class="data p5px">1 Person</td>
				<td class="data p5px">180710</td>
			</tr>
			<tr>
				<td class="data p5px">Per Person(min 2 pax required)</td>
				<td class="data p5px">116277</td>
			</tr>
		</table></div><br>
    	<p class="h dif xlarge b mb5px">Hotels Used / Similar</p>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="data p5px">Destination</td>
				<td class="data p5px">No of Nights</td>
				<td class="data p5px">Budget</td>
			</tr>
			<tr>
				<td class="data p5px">Montreal</td>
				<td class="data p5px">2</td>
				<td class="data p5px">Hotel Faubourg Montreal / similar hotels</td>
			</tr>
			<tr>
				<td class="data p5px">Quebec</td>
				<td class="data p5px">2</td>
				<td class="data p5px">Budget</td>
			</tr>
			<tr>
				<td class="data p5px">Ottawa</td>
				<td class="data p5px">1</td>
				<td class="data p5px">Novotel Ottawa Hotel / similar hotels</td>
			</tr>
			<tr>
				<td class="data p5px">Toronto</td>
				<td class="data p5px">2</td>
				<td class="data p5px">Howard Johnson Hotel Toronto Yorkville / similar hotels</td>
			</tr>
			<tr>
				<td class="data p5px">Buffalo</td>
				<td class="data p5px">1</td>
				<td class="data p5px">Adams Mark Buffalo / similar hotels</td>
			</tr>
		</table></div><br>								</div>
									
								<div class="data mt20px p15px">            
								<div class="mb7px"> 
								<p class="b xlarge mb10px dib">Terms &amp; Conditions</p>
								</div>				
								<ul>
	<li>Passport Copies for all the bookings made is mandatory and requires to send us the first page and last page.</li>
	<li>Payment for all bookings must reach our office prior to commencement date of cancellation as applicable.</li>
	<li>The services provided by Europamundo Vacaciones S.L. are overland.</li>
	<li>Europamundo Vacaciones S.L.is not responsible for the consequences or circumstances arising from services that are not provided by our company flight problems,loss of or damage to luggage on flights, problems at borders/customs or those relating to documentation,etc.).</li>
	<li>Non Admittance of Passengers-A moderate degree of physical health and physical ability is required to participate in our tours.In the event of any passenger with special physical or mental needs,or in cases where a passenger is over 75 years of age is travelling alone,Europamundo must be informed in writing at the time of booking, which will be analysed on a case by case basis,and it is possible that Europamundo may request a medical report.In cases in which the customer accepts the tour,Europamundo cannot assume any responsibility in relation to the difficulty or impossibility that the said passenger may encounter in undertaking the activities planned for the tour package, nor can they assume any responsibility for providing assistance for their adaptation to, or continuation of, the trip. No reservations will be accepted and Europamundo reserves the right to suspend any tour for passengers whose physical and/or mental conditions make their participation in it very difficult or dangerous to themselves or others.Europamundo likewise reserves the right to exclude passengers who significantly disrupt the smooth-running of the trip.</li>
	<li>Documentation- All passengers must bring their valid documentation passport, visas, health certificates, etc.), with the problems and disadvantages that may arise from non-compliance with this norm being their full responsibility.The interruption of the services taken out is not considered Cancellation for force majeure where the passenger is not carrying the required documentation or in instances where the traveller is denied passage through any border for this reason.It should be pointed out that we often note that the European border authorities often deny transit to passengers who they believe have acquired the trip for purposes other than tourism immigrants).</li>
	<li>Europamundo cannot undertake any arrangements or make any reimbursement for services that cannot be used in such cases.Cancelling a tour before it starts due to a rejected visa application is, however, considered to be through force majeure provided that this is documented or noted in the passport, and that we are notified within 72 hours following the refusal).</li>
	<li>Guaranteed Departures- All our tours have guaranteed departures, although in extremely limited cases, it could transpire that Europamundo is unable to operate a given departure.In this case, and by way of compensation, Europamundo will provide the same trip on an earlier or later date than the one chosen or another trip with similar features vis-a-vis duration and route, and offer, by way of compensation, a reduction of 50% on the value of the aforementioned journey.</li>
	<li>Cancellations of guaranteed departures may arise without compensation or liability on behalf of Europamundo) in cases of exceptional unforeseen circumstances - among others - wartime conflicts, terrorist attacks, natural disasters, epidemics and economic circumstances that generate a very significant drop in the expected sales.</li>
	<li>Meeting Point or Departure Point- Unless otherwise stated, the starting point for the beginning of a tour is the hotel, if this was booked as an additional night or as a stop-over or end-point for another Europamundo itinerary.It is very important that travellers check the place of departure on their travel pass.No shows at that place on the date and time confirmed can involve losing the purchased services without any right to a refund of the same, with a lack of punctuality incurring the same consequences,both at the beginning of a tour and during the course of the same.</li>
	<li>Additional Nights- The prices listed for Additional Nights are only valid for travellers who purchase tours with Europamundo,provided that these nights immediately precede or are a direct extension of our tour.Given that Europamundo has no places reserved in hotels for these additional nights, we cannot guarantee either the rate which in periods of high hotel occupancy or difficulty may vary), or the hotel that is booked, which in many cases will be confirmed at the last minute.</li>
	<li>Transfer Policy- They transfers included for the trip are specified on a tour by tour basis. In the event that transfers are included, which could be private or shared with other passengers, these may be provided from hotel to hotel or from the airport in the city where the passenger will join the tour to the hotel or vice versa) at the beginning or end of the trip, with the right to the aforementioned transfer being lost where the passenger has arranged nights in between through a different travel company or where the airport / port is located at a distance of over 40 km. In the event that the traveller themselves request a change to this service, responsibility for this transfer is linked to the correct information on the number of the flight / train / hotel, with it being the passenger or travel agents responsibility, in this case, to pass on this information.</li>
	<li>Shared Bookings- Europamundo will accept shared bookings for individual travellers on all our tours at an additional cost of 35 Euros. No reservations will be accepted for sharing on nights that are added on to the tours. In cases where a section of the trip is taken, shared reservations are accepted only if the length of the section includes at least 7 nights in hotels.</li>
	<li>Double Bedrooms and Triple Bedrooms- Europamundo cannot guarantee that all the rooms in the hotels will have double beds and it is possible that, in some hotels, the room will be a twin two single beds). In many hotels there are no triple rooms, with these actually being a double room of one or two beds) with an additional bed which in some cases might be a folding one). The conditions and comfort are lower than in the doubles. We do not recommend booking triple rooms for three adults; we would only suggest this for families travelling with a child.</li>
	<li>Children under 3 years of age go Free they do not have the right to a seat in the coach or to a bed in the hotel)</li>
	<li>Children from 3 to 8 years of age are entitled to a discount of 40% with a minimum of one adult per child)</li>
	<li>Children from 9 to 15 years of age are entitled to a 10% discount on the value of the trip.</li>
	<li>Europamundo will not accept any liability for the loss or theft of luggage occurring at the hotels or where bags are left in the hold of the coaches overnight. Europamundo cannot accept responsibility for the loss or theft of baggage, money, jewellery, electronic items or valuables, even when this occurs in the rooms of the hotels or if the items have been deposited in the safe-deposit box. In the event that passengers travel with luggage that has a higher value than is covered in the included policy, we recommend making a declaration for these items before commencing  tour and taking out additional insurance. Changes in Prices- In countries where our catalogues publish the prices for European tours in dollars, the published prices have been calculated at the rates of exchange prevailing at the time that the catalogue was created November 2015) and these will not be modified if the average monthly comparison in the month before that in which the booking was made, for the dollar against the Euro, was not less than 1.12 USD / Euro and not more than 1.28 USD / Euro.In the event of variations above or below the specified values, the prices of this manual will be altered increased or decreased) by the same proportion.</li>
	<li>Prices in 2017- In the event that customers wish to take a trip during 2017 which start after the dates specified in this catalogue,Europamundo will uphold the price indicated in this brochure if passengers make a firm booking with the deposit being received before the 15th of January 2017.This booking does not allow changes to the itinerary, alterations to the departure date or name changes</li>
</ul>

<p><strong>Note:</strong>

<ul>
	<li>We are not holding any rooms or airline seats as of now and above mentioned is quote only , subject to availability at the time of confirmation .</li>
	<li>First preference will be given to mentioned hotels for reservation. In case of non-availability of these hotels we shall advise the similar or next available option with supplement cost .</li>
	<li>Itinerary provided is just suggestive and the sightseeing will be done as per availability.</li>
	<li>In case of no show or late cancellation after reconfirmation charges applicable as per the Hotels Policy and other vendors policy.</li>
</ul>								</div>
														
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.maataratours.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Canadian Tourist Capitals end in Buffalo Package for 9 Days (Europamundo 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="110502"/>
						</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.maataratours.com/packages-in-gangtok.htm" title="Packages in Gangtok">Gangtok</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-new-delhi.htm" title="Packages in New Delhi">New Delhi</a> <b class="alpha50 bn small">(7)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-darjeeling.htm" title="Packages in Darjeeling">Darjeeling</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-jaipur.htm" title="Packages in Jaipur">Jaipur</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-srinagar.htm" title="Packages in Srinagar">Srinagar</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-shimla.htm" title="Packages in Shimla">Shimla</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-alleppey.htm" title="Packages in Alleppey">Alleppey</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-manali.htm" title="Packages in Manali">Manali</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-baramulla.htm" title="Packages in Baramulla">Baramulla</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/packages-in-kochi.htm" title="Packages in Kochi">Kochi</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-paris.htm" title="Packages in Paris">Paris</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-rotorua.htm" title="Packages in Rotorua">Rotorua</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-auckland.htm" title="Packages in Auckland">Auckland</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-anantnag.htm" title="Packages in Anantnag">Anantnag</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-christchurch.htm" title="Packages in Christchurch">Christchurch</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-agra.htm" title="Packages in Agra">Agra</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-singapore-city.htm" title="Packages in Singapore">Singapore</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-munnar.htm" title="Packages in Munnar">Munnar</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-varanasi.htm" title="Packages in Varanasi">Varanasi</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-rishikesh.htm" title="Packages in Rishikesh">Rishikesh</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-pelling.htm" title="Packages in Pelling">Pelling</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-punakha.htm" title="Packages in Punakha">Punakha</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-ooty.htm" title="Packages in Ooty">Ooty</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-rome.htm" title="Packages in Rome">Rome</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-goa-city.htm" title="Packages in Goa City">Goa City</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-bali.htm" title="Packages in Bali">Bali</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-thimphu.htm" title="Packages in Thimphu">Thimphu</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-udaipur.htm" title="Packages in Udaipur">Udaipur</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-guwahati.htm" title="Packages in Guwahati">Guwahati</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="http://www.maataratours.com/packages-in-kufri.htm" title="Packages in Kufri">Kufri</a> <b class="alpha50 bn small">(2)</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.maataratours.com/beach-islands-holidays-catid.htm" title="Beach and Islands Packages">Beach and Islands</a> <b class="alpha50 bn small">(14)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/heritage-holidays-catid.htm" title="Heritage Packages">Heritage</a> <b class="alpha50 bn small">(22)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/valley-holidays-catid.htm" title="Valley Packages">Valley</a> <b class="alpha50 bn small">(15)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/forts-palaces-holidays-catid.htm" title="Forts and Palaces Packages">Forts and Palaces</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/hill-station-holidays-catid.htm" title="Hill Station Packages">Hill Station</a> <b class="alpha50 bn small">(13)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/wildlife-nature-holidays-catid.htm" title="Wildlife and Nature Packages">Wildlife and Nature</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/religious-pilgrimage-holidays-catid.htm" title="Religious & Pilgrimage Packages">Religious & Pilgrimage</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/lakes-rivers-holidays-catid.htm" title="Lakes & Rivers Packages">Lakes & Rivers</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/adventure-holidays-catid.htm" title="Adventure Packages">Adventure</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="http://www.maataratours.com/romantic-holidays-catid.htm" title="Romantic Packages">Romantic</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.maataratours.com/national-parks-holidays-catid.htm" title="National Parks Packages">National Parks</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.maataratours.com/water-sports-activity-holidays-catid.htm" title="Water Sports and Activity Packages">Water Sports and Activity</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>
				</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:120:"Book Canadian Tourist Capitals end in Buffalo Package for 9 Days (Europamundo Package) - 8 Nights / 9 Days Tour Packages";i:2;s:201:"book canadian tourist capitals end in buffalo package for 9 days (europamundo package) - 8 nights / 9 days tour packages, forts and palaces tour packages, quebec, toronto, ottawa, buffalo tour packages";i:3;s:242:"Maa Tara Tours & Travels offers Canadian Tourist Capitals end in Buffalo Package for 9 Days (Europamundo Package) - 8 Nights / 9 Days tour package, budget Forts and Palaces tour packages for Quebec, Toronto, Ottawa, Buffalo at exciting price.";i:4;s:2306:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Quebec, Toronto, Ottawa, Buffalo"        
		                 },
		      "description": "Terms of Europamundo: Travel by bus with English speaking guide, basic travel insurance, and breakfast buffet.
Includes arrival transfer
City tour in: MONTREAL, QUEBEC, OTTAWA, TORONTO

Cancellation Policy
Booking Policy are as follows
A non-refundable, non- transferable deposit of EUR 100 per person is required to guarantee the booking.
Final payment for your vacation is due 30 days prior to the departure
The customer may cancel the services requested or booked at any time, whereby they are entitled to a refund for the amounts paid, but must compensate the agency Via.com a sum of INR 2500 per person), except in cases of force majeure, The processing costs plus the cost of cancellation, if these have been incurred, once the journey has been confirmed by Europa Mundo and regardless of the departure date.

Cancellation Policy
Before departure, Cancellation fee per person
31 days or more- Euro 100 will be charged
less than 30 days- Euro 100 + 10% of the total tour cost
Less than 10 days- Euro 100 + 25% of the total tour cost
Less than 3 days- Euro 100 + 35% of the total tour cost
Less than 1 day- 100% of the total tour cost
No shows at the start, without prior cancellation, will not be entitled to any refund except through force majeure, which will be examined on a case by case basis).Airfare not included
Visa charges are additional.
Any expenses of personal nature such as porterage, laundry, wines, mineral/bottled water, food and drink
not in the regular menus provided by us, mini bar and telephone calls.
Any other items not mentioned in the Inclusion
City bed taxes if applicable as per the city of visit.
Expenses which are personal in nature tips, Laundry, drinks etc.
Extras in hotels, optional activities, and usually drinks during meals.
Government Service tax 5.0 %",
		      "name": "Canadian Tourist Capitals end in Buffalo Package for 9 Days (Europamundo Package)",
		      "telephone": "+91-7001746331"
		    }
		    </script>
			";i:5;N;}