a:6:{i:0;s:10793:"				<div class="h1"><h1>Best of Italy Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.northerntourandtravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.northerntourandtravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Best of Italy 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">Venice, Florence, Rome</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.northerntourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of Italy 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="46945"/>
						</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_12/334611/92141.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_12/334611/92141.jpg"  width="150" height="150"    alt="Best of Italy Tour" title="Best of Italy 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> Venice
								</p>
								<p class="aj">After arrival at the airport, meet our tour representative who helps you with an assisted transfer to the pre-booked hotel. Complete the check-in formalities. The rest of the day is free for you to indulge in the activities of your interest. Absorb the sights and sounds of the city. You can explore the nearby surroundings on-foot, can interact with the locals, taste the local renditions and more. Stay overnight.</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> Venice
								</p>
								<p class="aj">After breakfast on day 2, leave the comforts of your hotel room for half-day sightseeing in Murano, Burano and Torcello-the popular islands of the Venice lagoon. Go on-board a motor boat, first to Murano to watch the amazing glass-blowing display and the well-known Murano glass museum. Again board the motor boat to go to Burano to get your hands on lace, to view fishermen's houses in pastel colours and to visit the Lace Museum. The last visit is to Venice’s earliest civilization center, Torcello. Do not miss visiting the cathedral of Santa Maria Assunta, founded way back in the 7th century. The excavation site of the baptistery in Santa Fosca is the other attraction. Overnight stay in Venice.</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> Florence
								</p>
								<p class="aj">On the 3rd day of breakfast, check-out from your Venice hotel and get an assisted transfer to Florence. Once you arrive in Florence, check-in your hotel. Thereafter, you are free to indulge in leisure activities. You can simply relax in the room, can interact with the locals, can visit the attractions placed near your hotel, can admire the sights and sounds, can gorge on sumptuous Italian delicacies etc. Stay overnight in Florence.</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> Florence
								</p>
								<p class="aj">Post-breakfast in the hotel, embark on a hop-on hop-off tour of Florence on your own. Go aboard an open double-decker bus to explore the attractions of Florence. You visit popular attractions such as San Marco, Santa Croce, the Cathedral, Piazzale Michelangelo and so on. Once of the most beautiful cities in Italy, Florence was the centre of the Italian Renaissance.   The hop-on hop-off tour includes of 2 tours and ticket that you buy is valid for 48 hours:<br />
<br />
Florence Fiesole Tour<br />
<br />
This tour is about 2 hours. The bus departs after every hour from each stop. This tour offers you a chance to enjoy the sights of Florence and visit the popular museums. A visit to<br />
<br />
Fiesol, 3 km from Florence downtown is a must. This place is not only a treat to the eyes, but also houses a number of churches and museums.<br />
<br />
Florence City Tour<br />
<br />
For this tour of an hour bus departs every 30 minutes from each stop. Enjoy the sights and sounds of Florence. This bus runs on a 16-km route traversing through the city, including 15 stops, which starts from the Santa Maria Novella station up to Piazzale Michelangelo.<br />
<br />
Stay overnight in Florence.</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> Rome
								</p>
								<p class="aj">On day 5, once you have your breakfast at the hotel, check-out from the hotel to go the station to go aboard a train to Rome. Once you complete the check-in formalities at your pre-booked hotel in Rome. The rest of the day is at leisure. You are free to partake in the activities of your interest such as interacting with the locals, tasting the local renditions, indulging in shopping, explore the area on your own. Stay overnight in Rome.</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> Rome
								</p>
								<p class="aj">After breakfast, you have time to enjoy the facilities provided at the hotel. The afternoon is scheduled for Ancient Rome Walking tour, the ideal way to absorb the rich sights and sounds of the region. You are free to treat your eyes to the beauty spread all around and unwrap the 2000-yr old history of Rome. You visit the ancient sights of Rome, including Piazza Navona, the Colosseum, Roman Forum, Trevi Fountain, Pantheon and Capitoline Hill. You are accompanied by a professional archaeologist or an expert local guide who offers you details about all the monuments and sights you visit. Stay overnight in Rome.</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> Departue
								</p>
								<p class="aj">Today is the last day of your tour. Have your breakfast at the hotel. Assisted transfer to the airport to board your flight for returning back to 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.northerntourandtravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Best of Italy 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="46945"/>
						</form>
						</div>
						
						";i:1;s:57:"Book Best of Italy Tour - 6 Nights / 7 Days Tour Packages";i:2;s:128:"book best of italy tour - 6 nights / 7 days tour packages, forts and palaces tour packages, venice, florence, rome tour packages";i:3;s:189:"Book Best of Italy Tour - 6 Nights / 7 Days tour packages from A.G Northern Tour and Travels - Get attractive 6 Nights / 7 Days Forts and Palaces  tour packages for  Venice, Florence, Rome.";i:4;s:412:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Venice, Florence, Rome"        
		                 },
		      "description": "",
		      "name": "Best of Italy Tour",
		      "telephone": "+91-9086002323"
		    }
		    </script>
			";i:5;N;}