a:6:{i:0;s:10432:"				<div class="h1"><h1>Grand East Coast USA Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.trippytripstravel.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.trippytripstravel.com/holiday-packages.htm" title="Holiday Packages">Holiday Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>Grand East Coast USA 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">
						3 Nights / 4 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Washington, New York, Niagara</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.trippytripstravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Grand East Coast USA 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="108195"/>
						</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_17/494778/179163.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/494778/179163.jpg"  width="150" height="150"    alt="Grand East Coast USA Tour" title="Grand East Coast USA 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> Arrival
								</p>
								<p class="aj">This morning, after Buffet Breakfast at the hotel 0800hrs, later proceed to Niagara Falls (U.S. Side) (Approx. 7hrs drive). Enjoy full day activities at Niagara Falls (U.S. Side Only) Enjoy the thrill of passing by the base of the falls on the (This tour starts from mid-May to mid Oct subject to weather condition) as millions of gallons of water cascade down around you. Stroll along Table Rock, view the thundering Horseshoe Falls and descend feel the thunder of the falls at the amazing Cave of the Winds. Learn more about the region's natural history at the Niagara Gorge Discovery Centre, meet the legends and marvel at the myths at the Niagara Adventure Theatre and watch IMAX Show and check out the antics of the sea lions and penguins at the Niagara Aquarium. You have time for an optional tour of scenic helicopter ride (at additional cost), admire unsurpassed panoramic views of the falls and Niagara's historic landmarks. Later in the evening, and enjoy the illuminated Niagara Falls at night tour. Enjoy dinner at an Indian restaurant. On your own. Later check into your hotel. Overnight at hotel in Niagara Falls (U.S. Side).</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> Washington D.C.
								</p>
								<p class="aj">Buffet Breakfast at the hotel, Drive to Washington D.C, (Approx. 7hrs drive). 000 hrs. this morning enjoy shopping The Corning Museum of Glass. Enjoy dinner at an Indian restaurant. On your own .Later check into your hotel. Overnight at hotel in Washington D.C</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> Washington D.C
								</p>
								<p class="aj">Buffet Breakfast at the hotel, later in the afternoon visit the world famous Smithsonian Museums. At Smithsonian see some of the largest collection of historic air and spacecraft in the world. It is also a vital center for research into the history, science, and technology of aviation and space flight. 1500hrs Continue on a guided tour of Washington D.C. Highlights include photo stop at Capitol Hill, through Pennsylvania Avenue to the Lafayette Park for a view of the grand neo-classical edifice of the White House. Other stops include the Washington Monument, World War II Memorial, Lincoln Memorial and the Jefferson Memorial. Enjoy dinner at an Indian restaurant. On your own, later check into your hotel. Overnight at Hotel in Washington D.C.</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> Departure
								</p>
								<p class="aj">Buffet Breakfast at the hotel 0800hrs Drive to Philadelphia. (Approximately 2hrs drive) 1000hrs On arrival enjoy 90-minute Duck tour of Philadelphia Enjoy a fun and exciting tour of Philadelphia on amphibious land and water duck tour, a thrilling way of touring this wonderful city. Discover some of the most interesting landmarks both on land and rolling along the Delaware River; a thrilling experience for the whole family. View the iconic liberty bell a symbol of American Independence. 1200hrs t drive to NY.</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>
															</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">Rate Card</p>
    	<div class="otherDetails aj">Super Luxury Services: "King's Choice" includes Sight Seeing + Snacks and Drinks for the entire journey + Free wifi, powerbanks, portable bluetooth speakers, E-Hookkah( served out of the car with 15 flavours to choose from) + 1 musical instrument (Guitar/Flute/Mouth Organ) + Video Shoot of the entire trip using Gopro camera ( underwater / Adventure Sports/ Documentary​ video/ Trip Music Video) Freely enjoy the moments of your trip instead of staying behind handling the camera.<br>
<br>
<br>
<br>
Luxury Service: Luxury Services: A budget friendly services package which includes Basic Service+Economy Service+ Free wifi,  Powerbank, Portable Bluetooth Speaker, E-Hookkah(served out of the car with 15 flavours to choose from).<br>
<br>
<br>
Economy Service: Covers your basic travel needs. includes Basic Service+Snacks and Drinks for the journey (To & From).</div><br>
		<div class="dynamic-data-container">
    	<table class="bdrAll" width="100%" cellpadding="5">
			<tr>
				<td class="headHr p5px b">SERVICE</td>
				<td class="headHr p5px b">Duration:</td>
				<td class="headHr p5px b">Charges:</td>
			</tr>
			<tr>
				<td class="data p5px">SUPER LUXURY SERVICE</td>
				<td class="data p5px">as per the tour duration</td>
				<td class="data p5px">2600/day (For a group of 4-6 people</td>
			</tr>
			<tr>
				<td class="data p5px">LUXURY SERVICE</td>
				<td class="data p5px">As per the tour duration</td>
				<td class="data p5px">1600/day (For a group of 4-6 people)</td>
			</tr>
			<tr>
				<td class="data p5px">ECONOMY SERVICE</td>
				<td class="data p5px">2 days. ( Onward and return journey</td>
				<td class="data p5px">1600/day (For a group of 4-6 people)</td>
			</tr>
		</table></div><br>						</div>
												
						<div class="ac mb10px">
						<form name="frmpackagedetail" id="frmpackagedetail" method="post" action="http://www.trippytripstravel.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="Grand East Coast USA 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="108195"/>
						</form>
						</div>
						
						";i:1;s:64:"Book Grand East Coast USA Tour - 3 Nights / 4 Days Tour Packages";i:2;s:133:"book grand east coast usa tour - 3 nights / 4 days tour packages, heritage tour packages, washington, new york, niagara tour packages";i:3;s:183:"Book Grand East Coast USA Tour - 3 Nights / 4 Days tour packages from TrippyTrip Travels - Get attractive 3 Nights / 4 Days Heritage  tour packages for  Washington, New York, Niagara.";i:4;s:426:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Washington, New York, Niagara"        
		                 },
		      "description": "",
		      "name": "Grand East Coast USA Tour",
		      "telephone": "+91-8808443322"
		    }
		    </script>
			";i:5;N;}