a:6:{i:0;s:10768:"				<div class="h1"><h1>New York, Niagara Falls with Washington DC Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.travelbhai.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.travelbhai.co.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>New York, Niagara Falls with Washington DC 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">
						7 Nights / 8 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Washington, New York, New York City, Philadelphia</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.travelbhai.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="New York, Niagara Falls with Washington DC 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="53623"/>
						</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/397474/104239.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_14/397474/104239.jpg"  width="150" height="150"    alt="New York, Niagara Falls with Washington DC Tour" title="New York, Niagara Falls with Washington DC 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> New York City
								</p>
								<p class="aj">After reaching the airport in New York City, meet our representative who’ll escort you to one of our listed hotels. Check-in at the hotel to relax in the cozy comfort of its room. Spend the entire day at leisure. In the evening take a leisurely walk for the independent exploring of the town.</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> New York City
								</p>
								<p class="aj">Next morning after breakfast, embark to explore the New York City nicknamed as ‘BIG APPLE’. The city is one of the most exciting cities of the world that features a lively atmosphere along with fascinating sights and great shops. The prime tourist attractions of New York City include Broadway, Greenwich Village, City Hall, The Empire State Building, Bustling Chinatown, Wall Street and Trinity Church. In the evening enjoy a lavish dinner in a fine restaurant present in the city along with enjoying famous Broadway Show.</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> New York City - Corning - Niagara Falls
								</p>
								<p class="aj">Next morning, depart to Manhattan and while crossing New Jersey traversing the Pocono Mountain land into Upstate New York finally arriving Corning in the afternoon. Later in the afternoon, cross the border using the Rainbow Bridge, proceeding to the Canadian side of the Niagara Rivers in the Province of Ontario. Enjoy a comfortable night stay in Niagara 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 4:</b> Niagara Falls
								</p>
								<p class="aj">On the following day enjoy a sightseeing tour to the Niagara Falls to behold the view of this spectacular fall. Spend afternoon at leisure you may board the "People Mover" to visit the prime attractions like Great Gorge Adventure, Niagara Parks Greenhouse, Butterfly Conservatory, Botanical Gardens or you may enjoy the aerial cable car ride.<br />
<br />
NOTE:<br />
<br />
It is to be taken as a note that operation of the Maid of the Mist cruise is significantly subjected to the favorable weather and/or river conditions. During the bad weather conditions a walking tour through the scenic tunnels will be substituted.</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> Niagara Falls - Philadelphia
								</p>
								<p class="aj">In the morning after breakfast, head to southeast crossing the Appalachian Mountains and finally landing in the Susquehanna River valley. After exploring the place for a while leave for the beautiful city of Philadelphia for a sumptuous dinner and a comfortable 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> Philadelphia - Washington DC Area
								</p>
								<p class="aj">The "City of Brotherly Love" Philadelphia is the birthplace of American independence. Today the tour to the city will make you visit the historical landmarks. Later after the visit, leave for Washington DC the capital and the seat of Government. After reaching Washington DC, check-in at one of our listed hotels. Later in the evening you may go for an optional outing featuring dinner and visiting the prime monuments and memorials placed in and around the city.</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> Washington DC Area
								</p>
								<p class="aj">Today after breakfast, set off  for a half day guided tour to various tourist destinations like Vietnam, The Korean, Arlington National cemetery, National WWII and the other prime sights. Indulge in a photo op around the White House and Capitol Hill. Enjoy a leisurely afternoon. In the later part of the day engage yourself in independent activities suggested by the tour director.</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> Washington DC
								</p>
								<p class="aj">In the morning after breakfast, the guests can head off on their Individual schedules. The transfer to Reagan and Dulles international airports are included within the trip. For the guests who are willing to extend their vacations along with extra nights and explore the Washington DC further. If you intend to return to New York City, then board the Motor coach to get transferred to the Newark International 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">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.travelbhai.co.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="New York, Niagara Falls with Washington DC 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="53623"/>
						</form>
						</div>
						
						";i:1;s:86:"Book New York, Niagara Falls with Washington DC Tour - 7 Nights / 8 Days Tour Packages";i:2;s:184:"book new york, niagara falls with washington dc tour - 7 nights / 8 days tour packages, forts and palaces tour packages, washington, new york, new york city, philadelphia tour packages";i:3;s:212:"Travel Bhai offers New York, Niagara Falls with Washington DC Tour - 7 Nights / 8 Days tour package, budget Forts and Palaces tour packages for Washington, New York, New York City, Philadelphia at exciting price.";i:4;s:468:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Washington, New York, New York City, Philadelphia"        
		                 },
		      "description": "",
		      "name": "New York, Niagara Falls with Washington DC Tour",
		      "telephone": "+91-9811617033"
		    }
		    </script>
			";i:5;N;}