a:6:{i:0;s:10188:"				<div class="h1"><h1>American Sojourn Tour</h1></div>
				<p class="breadcrumb ar uu small"><a href="http://www.softprotravels.co.in/" title="Home">Home</a> 
				
									<b class="ffv p2px">&rsaquo;</b><a href="http://www.softprotravels.co.in/holiday-packages.htm" title="Holiday Packages">Holiday 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">New York, Las Vegas, Los Angeles, San Francisco, Fresno, Buffalo, Niagara, Corning, Washington D.C.</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.softprotravels.co.in/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="98161"/>
						</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/484941/165963.jpg"><img src="https://ttw.wlimg.com/package-images/photo-small/dir_17/484941/165963.jpg"  width="150" height="150"    alt="American Sojourn Tour" title="American Sojourn 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 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>						<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.softprotravels.co.in/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="98161"/>
						</form>
						</div>
						
						";i:1;s:61:"Book American Sojourn Tour - 9 Nights / 10 Days Tour Packages";i:2;s:209:"book american sojourn tour - 9 nights / 10 days tour packages, forts and palaces tour packages, new york, las vegas, los angeles, san francisco, fresno, buffalo, niagara, corning, washington d.c. tour packages";i:3;s:247:"Softpro Tour & Travel offers American Sojourn Tour - 9 Nights / 10 Days tour package, budget Forts and Palaces tour packages for New York, Las Vegas, Los Angeles, San Francisco, Fresno, Buffalo, Niagara, Corning, Washington D.C. at exciting price.";i:4;s:492:"
			<script type="application/ld+json">
		    {
		      "@context": "https://schema.org",
		      "@type": "TouristAttraction",
		      "address": {
		        "@type": "PostalAddress",
		         "addressRegion": "New York, Las Vegas, Los Angeles, San Francisco, Fresno, Buffalo, Niagara, Corning, Washington D.C."        
		                 },
		      "description": "",
		      "name": "American Sojourn Tour",
		      "telephone": "+91-7896768942"
		    }
		    </script>
			";i:5;N;}