a:6:{i:0;s:10803:"				<div class="h1"><h1>New York, Nigara Falls with Washington DC Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.stardestinationtours.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.stardestinationtours.in/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>New York, Nigara 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">New York, New York City, Philadelphia, Washington DC</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.stardestinationtours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="New York, Nigara 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="83309"/>
						</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_15/439456/147437.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_15/439456/147437.jpg"  height="150"  width="150"    alt="New York, Nigara Falls with Washington DC Tour" title="New York, Nigara 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 Motorcoach 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.stardestinationtours.in/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="New York, Nigara 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="83309"/>
						</form>
						</div>
						
						";i:1;s:85:"Book New York, Nigara Falls with Washington DC Tour - 7 Nights / 8 Days Tour Packages";i:2;s:177:"book new york, nigara falls with washington dc tour - 7 nights / 8 days tour packages, heritage tour packages, new york, new york city, philadelphia, washington dc tour packages";i:3;s:216:"Star Destination Tours offers New York, Nigara Falls with Washington DC Tour - 7 Nights / 8 Days tour package, budget Heritage tour packages for New York, New York City, Philadelphia, Washington DC at exciting price.";i:4;s:470:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New York, New York City, Philadelphia, Washington DC"        
		                 },
		      "description": "",
		      "name": "New York, Nigara Falls with Washington DC Tour",
		      "telephone": "+91-9888421743"
		    }
		    </script>
			";i:5;N;}