a:6:{i:0;s:16573:"				<div class="h1"><h1>American Sojourn Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.rajastravels.com/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.rajastravels.com/tour-packages.htm" title="Tour Packages">Tour Packages</a>  			
									
				<b class="ffv p2px">&rsaquo;</b>American Sojourn 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">
						9 Nights / 10 Days 
						</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Destination Covered </td>
						<td class="p5px pl0px vat">Los Angeles, Las Vegas, San Francisco, New York, Washington, Fresno, Buffalo, Washington D.C.</td>
						</tr>
												<tr>
						<td class="b p5px w125px vat">Price </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.rajastravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="American Sojourn 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="78681"/>
						</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_13/370602/138667.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_13/370602/138667.jpg"  height="150"  width="150"    alt="American Sojourn Tour" title="American Sojourn Tour" loading="lazy" /></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 in Los Angeles
								</p>
								<p class="aj">As you reach the lovely iconic city of the US, Los Angeles, our tour representative meets you and helps you with an assisted transfer to the hotel. After completing the check-in formalities, you are free to explore the city on your own. Following the rule of 'live and let live', the city is a mix of relaxation, leisure and excitement at the same time. Savor sumptuous dinner.<br />
<br />
Stay overnight in Los Angeles.</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> Los Angeles- Las Vegas
								</p>
								<p class="aj">On the 2nd day of the tour, post breakfast, start the half-day guided sightseeing tour of Los Angeles including the prime attractions. The tour starts by driving past Beverly Hills- the hub of excitement and entertainment; the popular Sunset Boulevard street; the Mann's Chinese Theatre- a cinema palace of the famous Hollywood Walk of Fame, it is also known as TCL Chinese Theatre, Rodeo Drive- a street with 3-block setting that is known for being the center of luxury dining, shopping and luxurious accommodation experiences as well as options, and lastly, the very popular 'HOLLYWOOD' sign.<br />
<br />
Sightseeing is followed by a road journey to Las Vegas. As you reach, complete the check-in formalities. Continue with a city tour of Las Vegas attractions including the tall Stratosphere Tower with a height of 1,149 feet where you can relish rides, jumps and food at this site. The next attraction in line is Downtown Glitter Gulch- the street and the casino area where all of the city's action happens. Next is the wonderful Illumination tour and a show in Las Vegas at the Fremont Street Light Show. This night is going to be a memorable lifetime experience for you. Now, have dinner.<br />
<br />
Overnight stay in Las Vegas.</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> Las Vegas
								</p>
								<p class="aj">The 3rd day of the tour after breakfast is at leisure. Celebrated as the Gambler's Paradise, Vegas is a resort town famous for its endless entertainment, lively energy and 24-hour running casinos. You can indulge in the activities of your interest. The other option is an excursion to the Grand Canyon. This site is located at a distance of four and a half house away from Las Vegas. Covering an area of 10 miles with 277 miles of length, it is known for its striking natural formation of layered red rocks. Most of the canyon is a national park. Some of the popular activities that the visitors can indulge in here include mule rides, aerial tours, hiking, camping and rafting in River Colorado.<br />
<br />
After dinner, stay overnight in Las Vegas.</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> Las Vegas- Fresno
								</p>
								<p class="aj">After breakfast at the hotel, begin your journey for Fresno- famed to be the business, financial, cultural and entertainment hub of the San Joaquin Valley. As you arrive late afternoon, check-into the hotel. The evening is free. Explore this city on your own. Have sumptuous dinner at a delightful restaurant.<br />
<br />
Overnight stay in Fresno.</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> Fresno- San Francisco
								</p>
								<p class="aj">On the 5th day of the tour, post breakfast, start your road journey to San Francisco, famous for cable cars, year-long fog, a hilly landscape, vibrant Victorian houses and the iconic Golden Gate Bridge. After completing the check-in formalities, begin the sightseeing tour with a walk on Lombard Street, USA's most crooked street. Thereafter, start your drive past the Civic Centre. Stop at the Twin Peaks for a photograph opportunity. This place offers a lovely view of the legendary Bridge, looking stunning in its bright orange color. Next in line is a drive the Fisherman's Wharf, a famous destination of the city, via Ghirardelli Square with a historic waterfront. This is a public landmark, a popular square, popular amidst locals as well as tourists for delightful seafood, remarkable sights and unique shopping experiences. Indulge in shopping at the Pier 39, a lively market that has over 110 stores and wonderful attractions. In the evening, you can enjoy a cruise on the famous San Francisco bay.<br />
<br />
Dinner and overnight stay in San Francisco.</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> San Francisco-Buffalo- Niagara
								</p>
								<p class="aj">After breakfast on this day, board a flight to Buffalo. As you arrive at the Buffalo airport, hit the road for an assisted transfer to Niagara Falls. Complete the check-in formalities at the hotel. Linking the borders of Canada and the US, these waterfalls are one of the world's most- visited natural wonders. The view of the falls at night is even more mesmerizing with special light-effect added to the falls.<br />
<br />
Have your dinner. 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 7:</b> Niagara- Corning
								</p>
								<p class="aj">On the 7th day of the tour, have your breakfast and continue to the legendary Niagara Falls for experiencing and witnessing the wonderful whirlpool and rapids, cruising past falls on the Maid of the Mist. The cruise is operational from the last week of May as per the weather conditions. The tourists who book the cruise before this time, they are offered The View Mobile Tram ride.<br />
<br />
Later on, get transferred to Corning- one of the chief innovators in materials science in the world. The place produces some of the most stunning ceramic and glass products. On arrival, check-in at the hotel. Proceed for a visit to the Corning Glass Museum, dedicated to history, art and science of glass. Witness the live glassmaking demonstration and learn how to make glass. The museum has more than 40,000 glass objects on display. This visit is followed by dinner.<br />
<br />
Stay overnight in Corning</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> Corning- Washington D.C.
								</p>
								<p class="aj">After breakfast, day 8 of the tour is going to be super exciting especially for kids and chocolate lovers as today you embark on a Chocolate tour at the famed Hershey's Chocolate World. The tour starts with a visit to the tropical rainforest where cocoa is grown as well as harvested. During your visit to the Hershey's Chocolate factory you can also understand the process, from making up to delivering the best quality products, starting from bean to milk chocolates all around. You will hear, feel and smell chocolate.<br />
<br />
After this memorable tour, you head to the capital city of the United States, Washington D.C., a pleasure for sightseeing enthusiast as it is dotted with a number of important buildings and other architectural marvel. On reaching, complete the check-in formalities at a hotel.<br />
<br />
After dinner, stay overnight in the capital 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 9:</b> Washington D.C. - New York
								</p>
								<p class="aj">Have your breakfast in the morning, followed by a guided city tour of Washington D.C. the tour starts with a drive to the Capitol Hill for a memorable photo opportunity. Known to be the city's largest historic residential neighborhood, it is the center of entertainment and nightlife here. Later on, continue with driving through Pennsylvania Avenue, to the Lafayette Park where you can enjoy superb views of the White House. Do not forget to click some photographs here. During your road journey, have stoppages at different landmarks of Washington D.C. like the Washington Monument- an amazing viewpoint offering panoramic views of the city; the World War II Memorial – constructed in the commemoration of American soldiers and other people who lost their lives in World War II; the Lincoln Memorial- constructed in the commemoration of the 16th President of the US -Abraham Lincoln and lastly, Jefferson Memorial- a superb Classic Revival architecture, another popular presidential memorial.<br />
<br />
After sightseeing, continue drive towards the New York. After reaching, check- in. New York is fast-paced busy city, known as the world's center of fashion, art, finance and culture. A huge number of leisure and business visitors from all around the world come here every year. The evening is booked for relishing 'Big Apple' on an Illumination Tour, as you drive past superbly well-lit landmarks of the city, proving to be an unforgettable experience. After this, you some free time at hand at Times Square.<br />
<br />
Post dinner, stay overnight in New York.</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 10:</b> Departure
								</p>
								<p class="aj">Today is the last day of the tour. Start it with a sumptuous breakfast following it with sightseeing tour of New York. The tour starts with visit to the Statue of Liberty, at Liberty Island. A World Heritage Site, this colossal statue is a representation of human spirit. Continue with sightseeing as drive past the well-known landmarks of the New York city like the New York Exchange, the Wall Street, the popular Manhattan Bridge, World Trade Centre site, Brooklyn Bridge, through Soho right up to the Little Italy, the Fifth Avenue, the Broadway and then to the Madison Square Garden up to the Times Square, lying on the confluence of the Broadway and the 42nd Street, known as the 'Crossroads of the World'. This place is city's entertainment hub. Later, you are scheduled for memorable photo opportunities at popular points such as Trump Tower, the United Nations Headquarters and Rockefeller Centre.<br />
<br />
Get on-time transfer to the airport to board a flight for your onward destination.</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.rajastravels.com/enquiry-form-10002.htm">
						<input type="hidden" name="subject" value="American Sojourn 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="78681"/>
						</form>
						</div>
						
						";i:1;s:61:"Book American Sojourn Tour - 9 Nights / 10 Days Tour Packages";i:2;s:203:"book american sojourn tour - 9 nights / 10 days tour packages, forts and palaces tour packages, los angeles, las vegas, san francisco, new york, washington, fresno, buffalo, washington d.c. tour packages";i:3;s:233:"RAJAS TRAVELS offers American Sojourn Tour - 9 Nights / 10 Days tour package, budget Forts and Palaces tour packages for Los Angeles, Las Vegas, San Francisco, New York, Washington, Fresno, Buffalo, Washington D.C. at exciting price.";i:4;s:486:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "Los Angeles, Las Vegas, San Francisco, New York, Washington, Fresno, Buffalo, Washington D.C."        
		                 },
		      "description": "",
		      "name": "American Sojourn Tour",
		      "telephone": "+91-9820123553"
		    }
		    </script>
			";i:5;N;}