1import{j as e}from"./vendor-C_lr6Peh.js";import{aX as j,aw as A,e5 as L,dX as w,dS as h,B as g,k as r,A as x,S as H}from"./index-CCfJC9m9.js";import{c as I,a as W,g as B,b as z}from"./city-data-DqRGZ1rN.js";import{w as F}from"./wedding-style-data-CH1Ot0Tr.js";import{P as v}from"./PublicFooter-CYqs3qwh.js";import{M as _}from"./map-pin-wEsb6qZq.js";import{S as O}from"./sun-BtdWXo1O.js";import{C as E}from"./camera-BcpTBW_k.js";import{C as J}from"./clock-NeT8qJCP.js";import{m as l}from"./framer-motion-BelE6YLj.js";import{C as D}from"./calendar-DTAYBCHu.js";import"./index-CWhaPmf2.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};n.SENTRY_RELEASE={id:"0ccb255495e39d589ace3c3ce0094401fe4fff85"};var o=new n.Error().stack;o&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[o]="48566ad4-175a-4b86-8845-494dc1fe1906",n._sentryDebugIdIdentifier="sentry-dbid-48566ad4-175a-4b86-8845-494dc1fe1906")}catch{}})();const R="/assets/amalfi-coast-italy-dKQamoNj.jpg",Q="/assets/aspen-co-jH0hoTge.jpg",V="/assets/atlanta-ga-CwNJOWtB.jpg",G="/assets/austin-tx-_TJ88HOL.jpg",Z="/assets/bali-indonesia-BRWd3Oqn.jpg",X="/assets/barcelona-spain-CD8jGxJh.jpg",Y="/assets/boston-ma-mpMaFE1q.jpg",K="/assets/cabo-san-lucas-mexico-BmHzZltr.jpg",U="/assets/cancun-mexico-BfB_roJW.jpg",ee="/assets/charleston-sc-CKKN5IqE.jpg",te="/assets/charlotte-nc-CE5JhvM8.jpg",se="/assets/chicago-il-D1r-PWyZ.jpg",ae="/assets/dallas-tx-Bh9_CsQx.jpg",ie="/assets/denver-co-BO8I7B-s.jpg",ne="/assets/detroit-mi-CDWjlvnG.jpg",oe="/assets/dublin-ireland-Rq1HaxQd.jpg",re="/assets/hill-country-tx-BMb_ECvF.jpg",le="/assets/honolulu-hi-CLD4miNI.jpg",de="/assets/houston-tx-Bft1oSgI.jpg",ce="/assets/kansas-city-mo-CkqgBeZK.jpg",he="/assets/lake-como-italy-bwzRvZjb.jpg",ge="/assets/las-vegas-nv-Dtrog-yr.jpg",me="/assets/lisbon-portugal-F3kFXnIO.jpg",pe="/assets/london-england-CLZM3wZt.jpg",ue="/assets/los-angeles-ca-0ggqZ3O5.jpg",xe="/assets/maui-hi-CXnNGOgO.jpg",_e="/assets/mexico-city-mexico-CgliPSjR.jpg",ye="/assets/miami-fl-CmLwwfWq.jpg",be="/assets/minneapolis-mn-2ce1ecxc.jpg",fe="/assets/montego-bay-jamaica-DfJ9B_LU.jpg",je="/assets/napa-valley-ca-CSYl2BHq.jpg",we="/assets/nashville-tn-BPLb7op0.jpg",ve="/assets/new-orleans-la-B84VWwuk.jpg",Ne="/assets/new-york-ny-CMyLZCvB.jpg",ke="/assets/orlando-fl-hbMt4jEQ.jpg",Ie="/assets/palm-springs-ca-DLO7lld_.jpg",Ce="/assets/paris-france-T9T8I2N4.jpg",Se="/assets/park-city-ut-KhIc_Hlj.jpg",Pe="/assets/philadelphia-pa-uNQF64xE.jpg",Te="/assets/phoenix-az-C0bQgg3v.jpg",Me="/assets/pittsburgh-pa-D771JHJo.jpg",$e="/assets/portland-or-WCPX0DTB.jpg",qe="/assets/punta-cana-dominican-republic-BgiEPqqw.jpg",Ae="/assets/raleigh-nc-BRHvK8a6.jpg",Le="/assets/san-diego-ca-DoPXSoUP.jpg",He="/assets/san-francisco-ca-C02cA-X3.jpg",We="/assets/santa-barbara-ca-DslyDMiF.jpg",Be="/assets/santorini-greece-B0Xlfod9.jpg",ze="/assets/savannah-ga-Cv1q7J1L.jpg",Fe="/assets/scottsdale-az-fbvoFl_9.jpg",Oe="/assets/seattle-wa-To0kjPL_.jpg",Ee="/assets/sedona-az-DRzcdJ1v.jpg",Je="/assets/st-louis-mo-B5BZ2aho.jpg",De="/assets/tampa-fl-Bt9oqz8j.jpg",Re="/assets/tulum-mexico-D0vVHsAb.jpg",Qe="/assets/tuscany-italy-BkGC71Cc.jpg",Ve="/assets/washington-dc-JLqySxpN.jpg",Ge=[{question:"How early should the wedding party start getting ready?",answer:"For a 5:00 PM ceremony, hair and makeup typically start 5â6 hours beforehand for a party of 6â8. Plan roughly 45 minutes per person for hair and 45 minutes per person for makeup, with the bride or lead partner going last so they peak at the right moment. Add an extra 30â45 minutes of buffer if your getting-ready location is more than 15 minutes from the ceremony venue."},{question:"What time should a wedding ceremony start?",answer:"Most ceremonies start between 3:30 and 5:30 PM, and the right time is set by working backward from sunset: photographers want the ceremony finished 60â90 minutes before golden hour so portraits happen in the best light. In summer, when sunset can run past 8:30 PM, a 5:00â6:00 PM start works well; in late fall and winter, with sunsets before 5:30 PM, ceremonies often move up to 2:00â3:30 PM. Hot climates push later regardless of season to dodge peak afternoon heat."}
1,{question:"How many hours of wedding photography do I need?",answer:"Eight hours is the standard package and covers the end of getting ready through the first hour of open dancing for a single-venue wedding. Six hours fits smaller weddings that skip getting-ready coverage or a formal exit. Ten or more hours makes sense for large guest lists, multiple venues, long travel gaps, or a staged grand exit. Work backward from the moments you actually want photographed, then add a 30-minute buffer."},{question:"How long should a wedding reception be?",answer:"Four to six hours, with five being the sweet spot for most weddings: roughly one hour of cocktails, two hours for dinner and toasts, and two hours of dancing. Shorter than four hours feels rushed once dinner service is accounted for; longer than six and the dance floor usually thins out. If your venue bills by the hour, protect the dancing block first, since that is what guests remember."},{question:"How much buffer time should I leave between the ceremony and cocktail hour?",answer:"If guests can walk straight from ceremony to cocktail hour at the same venue, 5â10 minutes is plenty. If there's a transition â even a short shuttle ride â leave at least 30 minutes so the last guest arrives before the first round of drinks runs dry. Couples doing a receiving line or post-ceremony family photos should budget 45â60 minutes before joining cocktail hour themselves."},{question:"Does sunset time really change my timeline that much?",answer:"Yes â sunset is the single biggest variable in any wedding day timeline. Photographers schedule the entire afternoon backwards from it, which is why a June wedding in Minneapolis (sunset around 9:03 PM) and a January wedding in Miami (sunset around 5:48 PM) need genuinely different schedules even if everything else is identical. Aim to hit golden hour 30â60 minutes before sunset for couple's portraits."},{question:"Should we do a first look or save it for the aisle?",answer:"A first look frees up 60â90 minutes of daylight by letting you finish couple's, wedding party, and family photos before the ceremony â which means you actually get to attend cocktail hour. Couples who want the traditional aisle reveal should plan a longer cocktail hour (90 minutes minimum) and accept that most portraits will happen in fading light or after sunset."},{question:"How does climate affect when we should schedule the ceremony?",answer:"In hot, humid destinations like Phoenix, Palm Springs, Houston, or New Orleans, couples routinely push ceremonies to 5:30â6:30 PM in summer to avoid 95°+ afternoons. In cooler climates like Napa, Sonoma, the Pacific Northwest, or coastal New England, a 4:00â5:00 PM ceremony works year-round. Outdoor ceremonies in any climate should sit at least 90 minutes before sunset so guests aren't squinting into the sun."},{question:"How much travel time should I budget between venues?",answer:"Always pad real driving estimates by 50% on a wedding day â traffic, late guests, and slow-loading shuttles are universal. In dense cities like Manhattan or San Francisco, a 15-minute drive can become 45 minutes during rush hour. For destination weddings at a single estate or villa, you can collapse most transition buffers to 5â10 minutes since guests don't have to leave the property."}],Ze=[480,900,1400],N="(max-width: 640px) 100vw, (max-width: 1280px) calc(100vw - 3rem), 1280px";function k(n,o){return Ze.map(c=>`/city-heroes/${n}-${c}.${o} ${c}w`).join(", ")}function Xe(n,o){return`Scenic view of ${n}, ${o} â a popular wedding destination`}const Ye={fetchpriority:"high"},d={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.5}}},y=Object.values(I),b=z(),Ke=Object.values(F),Ue=Object.assign({"../attached_assets/city-heroes/amalfi-coast-italy.jpg":R,"../attached_assets/city-heroes/aspen-co.jpg":Q,"../attached_assets/city-heroes/atlanta-ga.jpg":V,"../attached_assets/city-heroes/austin-tx.jpg":G,"../attached_assets/city-heroes/bali-indonesia.jpg":Z,"../attached_assets/city-heroes/barcelona-spain.jpg":X,"../attached_assets/city-heroes/boston-ma.jpg":Y,"../attached_assets/city-heroes/cabo-san-lu
1cas-mexico.jpg":K,"../attached_assets/city-heroes/cancun-mexico.jpg":U,"../attached_assets/city-heroes/charleston-sc.jpg":ee,"../attached_assets/city-heroes/charlotte-nc.jpg":te,"../attached_assets/city-heroes/chicago-il.jpg":se,"../attached_assets/city-heroes/dallas-tx.jpg":ae,"../attached_assets/city-heroes/denver-co.jpg":ie,"../attached_assets/city-heroes/detroit-mi.jpg":ne,"../attached_assets/city-heroes/dublin-ireland.jpg":oe,"../attached_assets/city-heroes/hill-country-tx.jpg":re,"../attached_assets/city-heroes/honolulu-hi.jpg":le,"../attached_assets/city-heroes/houston-tx.jpg":de,"../attached_assets/city-heroes/kansas-city-mo.jpg":ce,"../attached_assets/city-heroes/lake-como-italy.jpg":he,"../attached_assets/city-heroes/las-vegas-nv.jpg":ge,"../attached_assets/city-heroes/lisbon-portugal.jpg":me,"../attached_assets/city-heroes/london-england.jpg":pe,"../attached_assets/city-heroes/los-angeles-ca.jpg":ue,"../attached_assets/city-heroes/maui-hi.jpg":xe,"../attached_assets/city-heroes/mexico-city-mexico.jpg":_e,"../attached_assets/city-heroes/miami-fl.jpg":ye,"../attached_assets/city-heroes/minneapolis-mn.jpg":be,"../attached_assets/city-heroes/montego-bay-jamaica.jpg":fe,"../attached_assets/city-heroes/napa-valley-ca.jpg":je,"../attached_assets/city-heroes/nashville-tn.jpg":we,"../attached_assets/city-heroes/new-orleans-la.jpg":ve,"../attached_assets/city-heroes/new-york-ny.jpg":Ne,"../attached_assets/city-heroes/orlando-fl.jpg":ke,"../attached_assets/city-heroes/palm-springs-ca.jpg":Ie,"../attached_assets/city-heroes/paris-france.jpg":Ce,"../attached_assets/city-heroes/park-city-ut.jpg":Se,"../attached_assets/city-heroes/philadelphia-pa.jpg":Pe,"../attached_assets/city-heroes/phoenix-az.jpg":Te,"../attached_assets/city-heroes/pittsburgh-pa.jpg":Me,"../attached_assets/city-heroes/portland-or.jpg":$e,"../attached_assets/city-heroes/punta-cana-dominican-republic.jpg":qe,"../attached_assets/city-heroes/raleigh-nc.jpg":Ae,"../attached_assets/city-heroes/san-diego-ca.jpg":Le,"../attached_assets/city-heroes/san-francisco-ca.jpg":He,"../attached_assets/city-heroes/santa-barbara-ca.jpg":We,"../attached_assets/city-heroes/santorini-greece.jpg":Be,"../attached_assets/city-heroes/savannah-ga.jpg":ze,"../attached_assets/city-heroes/scottsdale-az.jpg":Fe,"../attached_assets/city-heroes/seattle-wa.jpg":Oe,"../attached_assets/city-heroes/sedona-az.jpg":Ee,"../attached_assets/city-heroes/st-louis-mo.jpg":Je,"../attached_assets/city-heroes/tampa-fl.jpg":De,"../attached_assets/city-heroes/tulum-mexico.jpg":Re,"../attached_assets/city-heroes/tuscany-italy.jpg":Qe,"../attached_assets/city-heroes/washington-dc.jpg":Ve}),p=Object.fromEntries(Object.entries(Ue).map(([n,o])=>[(n.split("/").pop()||"").replace(/\.jpg$/,""),o]));function gt(){const[n,o]=j("/wedding-timeline/:slug"),[c]=j("/wedding-timeline"),u=o?.slug||"",t=I[u],C=n||c;if(A(t?{title:L(t.city,t.stateAbbr),description:t.longIntro,canonical:`/wedding-timeline/${t.slug}`,ogImage:"https://colara.co/og-image.png"}:{title:"Wedding Timeline Generator by City & Sunset",description:`A free AI wedding timeline generator that builds a minute-by-minute day-of schedule from your ceremony time, venue, and city â tuned to local sunset windows, photographer-tested portrait blocks, and the seasonal quirks of ${b} wedding destinations.`,canonical:"/wedding-timeline"}),!C)return null;if(!t){const s={"@context":"https://schema.org","@type":"CollectionPage",name:"Wedding Timeline by City",description:`AI-powered wedding timeline generator with local tips for ${b} popular wedding destinations â US cities and international locations.`,url:"https://colara.co/wedding-timeline",breadcrumb:{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://colara.co"},{"@type":"ListItem",position:2,name:"Wedding Timeline by City",item:"https://colara.co/wedding-timeline"}]}},a=Ge,q={"@context":"https://schema.org","@type":"FAQPage",mainEntity:a.map(i=>({"@type":"Question",name:i.question,acceptedAnswer:{"@type":"Answer",text:i.answer}}))};return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(w,{pageHasMain:!0}
1),e.jsxs("main",{id:"main-content",tabIndex:-1,className:"focus:outline-none",children:[e.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:h(s)}}),e.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:h(q)}}),e.jsx("section",{className:"pt-28 pb-16 px-6",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("p",{className:"text-xs uppercase tracking-[0.2em] text-primary mb-4",children:"Free Wedding Tools"}),e.jsx("h1",{className:"font-display text-3xl sm:text-4xl lg:text-5xl font-normal text-foreground mb-4",children:"AI Wedding Timeline Generator"}),e.jsxs("p",{className:"text-muted-foreground/80 max-w-2xl mx-auto leading-relaxed",children:["A free AI wedding timeline generator that builds a minute-by-minute day-of schedule from your ceremony time, venue, and city â tuned to local sunset windows, photographer-tested portrait blocks, and the seasonal quirks of ",b," popular wedding destinations."]}),e.jsx("div",{className:"mt-6 flex items-center justify-center gap-3",children:e.jsx(g,{asChild:!0,variant:"terracotta",size:"lg",className:"gap-2","data-testid":"button-hub-generate",children:e.jsxs(r,{href:"/generate",children:["Generate a Free Timeline ",e.jsx(x,{className:"w-4 h-4"})]})})})]}),e.jsxs("div",{className:"max-w-3xl mx-auto mb-12 text-foreground/85 leading-relaxed space-y-4 text-[15px]","data-testid":"text-hub-intro",children:[e.jsx("p",{children:'Most "wedding timeline templates" online are generic spreadsheets â a 2:00 PM first look, a 4:30 ceremony, a 6:00 reception, copied verbatim from one couple to the next. Our AI wedding timeline generator does the opposite: it asks for your ceremony start, getting-ready location, photo priorities, and venue address, then runs the schedule backwards from your local sunset and forwards from your hair and makeup call time. The output is a minute-by-minute plan you can edit, share with your photographer or planner, and send for approval â all in about 30 seconds, no signup required.'}),e.jsx("p",{children:"Why a city-aware generator instead of a static template? Because a wedding day timeline isn't a list you can copy from one couple to the next â it's a series of small decisions about light, distance, and weather that shift dramatically depending on where you're getting married. A 5:30 PM ceremony in Charleston in June leaves you almost three hours of golden portrait light afterward; the same start time in Seattle in October means you're already losing the sun by the first reading."}),e.jsx("p",{children:"The biggest variable is sunset. Photographers plan the entire afternoon backwards from it, which means a June wedding in Minneapolis (sunset around 9:03 PM) and a January wedding in Miami (sunset around 5:48 PM) need genuinely different timelines even if everything else about the day is identical. Climate matters almost as much: Phoenix and Palm Springs couples routinely push first looks to 4 PM to avoid 105° afternoons, while Napa and Sonoma couples lean into long, cool evening cocktail hours that wouldn't survive humidity in Houston or New Orleans."}),e.jsx("p",{children:"Venue density and traffic also reshape the schedule in ways that aren't obvious until you live there. Manhattan and San Francisco couples lose 30â45 minutes to crosstown transitions that simply don't exist for couples marrying at a single Tuscany villa or a Hill Country ranch. The city guides below bake all of this in â local sunset windows, typical ceremony times, photo location distances, and the seasonal quirks couples in each city actually run into. Pick yours to start with a timeline that already understands your zip code."})]}),e.jsx("div",{className:"grid sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:y.map(i=>e.jsxs(r,{href:`/wedding-timeline/${i.slug}`,className:"group block rounded-lg overflow-hidden border border-border/60 hover:border-primary/40 hover:shadow-md transition-all","data-testid":`link-city-${i.slug}`,title:`${i.city} wedding timeline guide`,"aria-label":`${i.city}, ${i.state} wedding timeline guide`,children:[e.jsx("div",{className:"relative aspect-[4/3] bg-muted overflow-hidden",children:p[i.slug]?e.jsx("img",{src:p[i.slug],alt:`${i.city}, ${i.state}`,loading:"lazy",decoding:"async",className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"}):e.jsx("div",{className:"w-full h-full flex items-center justify-center",children:e.jsx(_,{className:"w-6 h-6 text-muted-foreground
1/40"})})}),e.jsxs("div",{className:"px-3 py-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground leading-tight",children:i.city}),e.jsx("p",{className:"text-xs text-muted-foreground",children:i.state})]})]},i.slug))}),e.jsxs("div",{className:"max-w-3xl mx-auto mt-20",children:[e.jsx("h2",{className:"font-display text-2xl font-normal text-center mb-8","data-testid":"text-hub-faq-heading",children:"Wedding Timeline FAQs"}),e.jsx("div",{className:"space-y-6",children:a.map((i,m)=>e.jsxs("div",{className:"border-b border-border/30 pb-6 last:border-b-0","data-testid":`hub-faq-item-${m}`,children:[e.jsx("h3",{className:"font-display text-lg text-foreground mb-2","data-testid":`text-hub-faq-question-${m}`,children:i.question}),e.jsx("p",{className:"text-sm text-muted-foreground/80 leading-[1.8]","data-testid":`text-hub-faq-answer-${m}`,children:i.answer})]},m))})]})]})})]}),e.jsx(v,{})]})}const S={"@context":"https://schema.org","@type":"WebPage",name:`Wedding Timeline for ${t.city}, ${t.state}`,description:`Create a customized wedding day timeline for ${t.city}, ${t.state}. AI-powered scheduling considering local sunset times and venues.`,url:`https://colara.co/wedding-timeline/${t.slug}`},P={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://colara.co"},{"@type":"ListItem",position:2,name:"Wedding Timelines by City",item:"https://colara.co/wedding-timeline"},{"@type":"ListItem",position:3,name:`${t.city}, ${t.stateAbbr}`,item:`https://colara.co/wedding-timeline/${t.slug}`}]},T={"@context":"https://schema.org","@type":"SoftwareApplication",name:"Colara Wedding Timeline Generator",applicationCategory:"BusinessApplication",operatingSystem:"Web",description:`Free AI-powered wedding day timeline generator customized for ${t.city}, ${t.state}. Considers local sunset times, popular venues, and ${t.stateAbbr} seasonal weather.`,url:`https://colara.co/wedding-timeline/${t.slug}`,offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},creator:{"@type":"Organization",name:"Colara",url:"https://colara.co"},areaServed:{"@type":"City",name:t.city,containedInPlace:{"@type":"AdministrativeArea",name:t.state}}},f=W(t),M={"@context":"https://schema.org","@type":"FAQPage",mainEntity:f.map(s=>({"@type":"Question",name:s.question,acceptedAnswer:{"@type":"Answer",text:s.answer}}))}
1,$=[{icon:O,title:"Best Season",content:t.seasonTip},{icon:_,title:"Venue Scene",content:t.venueNote},{icon:E,title:"Golden Hour",content:t.sunsetNote},{icon:J,title:"Local Tip",content:t.localTip}];return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(w,{pageHasMain:!0}),e.jsxs("main",{id:"main-content",tabIndex:-1,className:"focus:outline-none",children:[e.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:h(S)}}),e.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:h(P)}}),e.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:h(T)}}),e.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:h(M)}}),p[t.slug]&&e.jsx("section",{className:"pt-24 px-6",children:e.jsx("div",{className:"max-w-5xl mx-auto",children:e.jsxs("picture",{children:[e.jsx("source",{type:"image/avif",srcSet:k(t.slug,"avif"),sizes:N}),e.jsx("source",{type:"image/webp",srcSet:k(t.slug,"webp"),sizes:N}),e.jsx("img",{src:p[t.slug],alt:Xe(t.city,t.state),loading:"eager",decoding:"async",...Ye,width:1280,height:560,
1className:"w-full aspect-[16/7] object-cover rounded-lg border border-border/40","data-testid":`img-city-hero-${t.slug}`})]})})}),e.jsx("section",{className:"pt-12 pb-16 px-6",children:e.jsxs(l.div,{className:"max-w-4xl mx-auto text-center",variants:d,initial:"hidden",animate:"visible",children:[e.jsx("p",{className:"text-xs uppercase tracking-[0.2em] text-[#755847] mb-4","data-testid":"text-city-overline",children:"Wedding Timeline"}),e.jsxs("h1",{className:"font-display text-3xl sm:text-4xl lg:text-5xl font-normal text-foreground mb-4","data-testid":"text-city-title",children:["Wedding Timeline for ",t.city,", ",t.state]}),e.jsxs("p",{className:"text-lg text-muted-foreground font-light max-w-2xl mx-auto mb-3",children:["Plan your ",t.city," wedding with a professional day-of timeline built by AI"]}),e.jsxs("p",{className:"text-muted-foreground/80 leading-[1.8] max-w-3xl mx-auto",children:["Our AI timeline generator considers ",t.city,"'s unique sunset times, local venue logistics, and seasonal weather patterns to build a minute-by-minute wedding day schedule customized for ",t.stateAbbr," ","weddings."]})]})}),e.jsx("section",{className:"pb-16 px-6",children:e.jsxs(l.div,{className:"max-w-3xl mx-auto",variants:d,initial:"hidden",whileInView:"visible",viewport:{once:!0},children:[e.jsxs("h2",{className:"font-display text-2xl font-normal text-center mb-6","data-testid":"text-long-intro-heading",children:["What Makes a ",t.city," Wedding Distinctive"]}),e.jsx("p",{className:"text-base text-foreground/80 leading-[1.9] text-pretty","data-testid":"text-long-intro",children:t.longIntro})]})}),e.jsx("section",{className:"pb-16 px-6",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsxs("div",{className:"grid md:grid-cols-2 gap-6",children:[e.jsxs(l.div,{className:"border border-border/60 rounded-lg p-6",variants:d,initial:"hidden",whileInView:"visible",viewport:{once:!0},children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(D,{className:"w-4 h-4 text-primary"}),e.jsx("h3",{className:"font-display text-lg text-foreground","data-testid":"text-best-months-label",children:"Best Months"})]}),e.jsx("p",{className:"text-sm text-muted-foreground/80","data-testid":"text-best-months",children:t.bestMonths})]}),e.jsxs(l.div,{className:"border border-border/60 rounded-lg p-6",variants:d,initial:"hidden",whileInView:"visible",viewport:{once:!0},children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(H,{className:"w-4 h-4 text-primary"}),e.jsx("h3",{className:"font-display text-lg text-foreground","data-testid":"text-avg-size-label",children:"Average Wedding Size"})]}),e.jsx("p",{className:"text-sm text-muted-foreground/80","data-testid":"text-avg-size",children:t.avgWeddingSize})]})]})})}),e.jsx("section",{className:"pb-16 px-6",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsxs("h2",{className:"font-display text-2xl font-normal text-center mb-8","data-testid":"text-planning-heading",children:["Planning Your ",t.city," Wedding Timeline"]}),e.jsx("div",{className:"space-y-6",children:$.map((s,a)=>e.jsx(l.div,{className:"border-b border-border/30 pb-6 last:border-b-0",variants:d,initial:"hidden",whileInView:"visible",viewport:{once:!0},children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(s.icon,{className:"w-5 h-5 text-primary mt-0.5 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-display text-lg text-foreground mb-2","data-testid":`text-section-title-${a}`,children:s.title}),e.jsx("p",{className:"text-sm text-muted-foreground/80 leading-[1.8]","data-testid":`text-section-content-${a}`,children:s.content})]})]})},a))})]})}),e.jsx("section",{className:"pb-16 px-6",children:e.jsxs(l.div,{className:"max-w-3xl mx-auto",variants:d,initial:"hidden",whileInView:"visible",viewport:{once:!0},children:[e.jsxs("h2",{className:"font-display text-2xl font-normal text-center mb-8","data-testid":"text-faq-heading",children:[t.city," Wedding Timeline FAQs"]}),e.jsx("div",{className:"space-y-6",children:f.map((s,a)=>e.jsxs("div",{className:"border-b border-border/30 pb-6 last:border-b-0","data-testid":`faq-item-${a}`,children:[e.jsx("h3",{className:"font-display text-lg text-foreground mb-2","data-testid":`text-faq-question-${a}`,children:s.question}
1),e.jsx("p",{className:"text-sm text-muted-foreground/80 leading-[1.8]","data-testid":`text-faq-answer-${a}`,children:s.answer})]},a))})]})}),e.jsx("section",{className:"pb-16 px-6",children:e.jsxs(l.div,{className:"max-w-4xl mx-auto",variants:d,initial:"hidden",whileInView:"visible",viewport:{once:!0},children:[e.jsxs("h2",{className:"font-display text-2xl font-normal text-center mb-8","data-testid":"text-venues-heading",children:["Popular ",t.city," Wedding Venues"]}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-3",children:t.popularVenues.map((s,a)=>e.jsxs("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 px-4 py-3 border border-border/60 rounded-lg hover:border-primary/40 hover:bg-primary/5 transition-colors","data-testid":`link-venue-${a}`,children:[e.jsx(_,{className:"w-4 h-4 text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm text-foreground/80",children:s.name})]},a))})]})}),e.jsx("section",{className:"pb-24 px-6",children:e.jsxs("div",{className:"max-w-2xl mx-auto text-center",children:[e.jsxs("h2",{className:"font-display text-2xl font-normal mb-4","data-testid":"text-cta-heading",children:["Generate Your ",t.city," Wedding Timeline"]}),e.jsxs("p",{className:"text-muted-foreground/80 mb-8 text-sm",children:["Enter your wedding details and our AI will build a minute-by-minute schedule considering ",t.city,"'s sunset times and local logistics."]}),e.jsx(g,{asChild:!0,variant:"terracotta",size:"lg",className:"gap-2","data-testid":"button-city-generate",children:e.jsxs(r,{href:"/generate",children:["Generate a Free Timeline ",e.jsx(x,{className:"w-4 h-4"})]})})]})}),(()=>{const s=B(t.slug,3);return s.length===0?null:e.jsx("section",{className:"pb-16 px-6",children:e.jsxs(l.div,{className:"max-w-3xl mx-auto",variants:d,initial:"hidden",whileInView:"visible",viewport:{once:!0},children:[e.jsx("h2",{className:"font-display text-2xl font-normal text-center mb-6","data-testid":"text-sibling-cities-heading",children:"Planning a wedding nearby?"}),e.jsx("ul",{className:"space-y-3 text-base text-foreground/85 leading-[1.8] list-disc pl-6",children:s.map(a=>e.jsxs("li",{"data-testid":`sibling-city-${a.slug}`,children:["Planning a wedding in ",a.city,"?"," ",e.jsxs(r,{href:`/wedding-timeline/${a.slug}`,className:"text-primary underline underline-offset-2 hover:opacity-80","data-testid":`link-sibling-city-${a.slug}`,children:["See our ",a.city," wedding timeline guide"]}),"."]},a.slug))})]})})})(),e.jsx("section",{className:"pb-16 px-6",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsx("h2",{className:"font-display text-xl font-normal text-center mb-6","data-testid":"text-other-cities",children:"Wedding Timelines for Other Cities"}),e.jsx("div",{className:"flex flex-wrap gap-2 justify-center",children:y.filter(s=>s.slug!==u).slice(0,12).map(s=>e.jsx(g,{asChild:!0,variant:"outline",size:"sm","data-testid":`button-city-${s.slug}`,children:e.jsxs(r,{href:`/wedding-timeline/${s.slug}`,children:[s.city,", ",s.stateAbbr]})},s.slug))}),e.jsx("div",{className:"text-center mt-6",children:e.jsx(g,{asChild:!0,variant:"ghost",size:"sm",className:"gap-2","data-testid":"link-city-hub",children:e.jsxs(r,{href:"/wedding-timeline",children:["Browse all ",y.length," cities ",e.jsx(x,{className:"w-4 h-4"})]})})})]})}),e.jsx("section",{className:"pb-16 px-6",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsx("h2",{className:"font-display text-xl font-normal text-center mb-6","data-testid":"text-city-plan-by-style",children:"Plan by Wedding Style"}),e.jsxs("div",{className:"flex flex-wrap gap-2 justify-center",children:[Ke.map(s=>e.jsx(g,{asChild:!0,variant:"outline",size:"sm","data-testid":`link-city-style-${s.slug}`,children:e.jsx(r,{href:`/wedding-style/${s.slug}`,children:s.name})},s.slug)),e.jsx(g,{asChild:!0,variant:"outline",size:"sm","data-testid":"link-city-photo-hub",children:e.jsx(r,{href:"/wedding-photography-timeline",children:"Photography timelines"})})]})]})}),e.jsx("section",{className:"pb-16 px-6 border-t border-border/40",children:e.jsxs("div",{className:"max-w-5xl mx-auto pt-12",children:[e.jsx("h2",{className:"font-display text-lg font-normal text-center mb-6 text-foreground
1/70",children:"More wedding planning resources"}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center items-center text-sm",children:[e.jsx("a",{href:"/blog/wedding-timeline-in-30-seconds",className:"text-[#755847] hover:underline underline-offset-4","data-testid":"link-blog-timeline",children:"Build your wedding timeline in 30 seconds"}),e.jsx("span",{className:"hidden sm:block text-muted-foreground/70",children:"·"}),e.jsx("a",{href:"/blog/what-your-photographer-wishes-you-knew-about-family-photos",className:"text-[#755847] hover:underline underline-offset-4","data-testid":"link-blog-photos",children:"What your photographer wishes you knew about family photos"}),e.jsx("span",{className:"hidden sm:block text-muted-foreground/70",children:"·"}),e.jsx("a",{href:"/blog/wedding-timeline-that-actually-works",className:"text-[#755847] hover:underline underline-offset-4","data-testid":"link-blog-timeline-works",children:"A wedding timeline that actually works"})]})]})})]}),e.jsx(v,{})]})}export{I as cities,gt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.