1import{t as y,r,j as e,G as b,w,S as f,x as j}from"./index-BljTCaTw.js";import{a as N,b as C,c as k,d as S,e as I}from"./avatar-jennifer-k-nk6jlKJQ.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const F=y("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),h=[{name:"Sarah M.",location:"Fleming Island",avatar:N,text:"I was nervous to try reformer Pilates as a complete beginner, but Fit & Flow made it so easy. The instructors break everything down and the small class sizes mean you actually get attention. The small-group format is a game-changer!",time:"2 weeks ago"},{name:"Lisa T.",location:"Orange Park",avatar:C,text:"I've been going to Fit & Flow for a few months now and I'm hooked. The reformer classes are challenging but never intimidating, and I've noticed a real difference in my core strength and posture. Julea and the team make everyone feel welcome.",time:"1 month ago"},{name:"Michelle R.",location:"Fleming Island",avatar:k,text:"The private sessions are worth every penny â you get totally customized instruction based on your body and your goals. The studio is clean, beautiful, and the vibe is always positive and encouraging.",time:"3 weeks ago"},{name:"Patricia W.",location:"Middleburg",avatar:S,text:"I'm in my 60s and was nervous about starting Pilates. The mat classes are the perfect entry point â low impact but you definitely feel it working. I wish I'd started years ago. The team here is wonderful.",time:"1 week ago"},{name:"Jennifer K.",location:"Fleming Island",avatar:I,text:"Fit & Flow has completely changed how I feel in my body. The reformer classes are incredible â challenging, efficient, and I leave feeling stronger every single time. The studio atmosphere is welcoming and the instructors truly care.",time:"5 days ago"}],v=()=>e.jsxs("svg",{viewBox:"0 0 24 24",className:"w-5 h-5",children:[e.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 01-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z",fill:"#4285F4"}),e.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),e.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),e.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]}),T=({onGetStarted:t})=>{r.useState(4.7),r.useState(14);const l=r.useRef(null),[i,g]=r.useState(!1),[u,p]=r.useState(!0),n=()=>{const a=l.current;a&&(g(a.scrollLeft>4),p(a.scrollLeft<a.scrollWidth-a.clientWidth-4))};r.useEffect(()=>{const a=l.current;if(a)return n(),a.addEventListener("scroll",n,{passive:!0}),window.addEventListener("resize",n),()=>{a.removeEventListener("scroll",n),window.removeEventListener("resize",n)}},[]);const o=a=>{var m;const s=l.current;if(!s)return;const c=((m=s.querySelector("[data-review-card]"))==null?void 0:m.offsetWidth)??340,d=24;s.scrollBy({left:a==="left"?-(c+d):c+d,behavior:"smooth"})};return e.jsxs("section",{className:"relative overflow-hidden bg-[#141414]",children:[e.jsx(b,{}),e.jsx("div",{className:"absolute inset-0 opacity-5",children:e.jsx("div",{className:"absolute inset-0",style:{backgroundImage:`url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E")`}})}),e.jsxs("div",{className:"relative z-10 container mx-auto px-4 py-20",children:[e.jsxs("div",{className:"text-center mb-12",children:[e.jsx("p",{className:"font-sub text-base md:text-lg uppercase tracking-wider text-primary mb-2 font-light",children:"Don't Just Take Our Word For It"}),e.jsx("h2",{className:"font-heading text-3xl sm:text-4xl md:text-5xl font-extrabold uppercase text-primary-foreground mb-3 leading-tight",children:"What Our Members Say"}),e.jsx("p",{className:"font-sub text-base font-light text-primary-foreground
6/60",children:"Real reviews from real members in Fleming Island & Clay County"})]}),e.jsx("div",{className:"flex flex-col gap-4 mb-12 md:hidden",children:h.slice(0,3).map(a=>e.jsx(x,{review:a},a.name))}),e.jsxs("div",{className:"relative mb-12 hidden md:block",children:[e.jsx("button",{onClick:()=>o("left"),className:`absolute -left-5 top-1/2 -translate-y-1/2 z-20 w-12 h-12 rounded-full bg-dark-bg/80 border border-primary/30 flex items-center justify-center transition-all duration-200 ${i?"opacity-100 hover:bg-primary/20 hover:border-primary cursor-pointer":"opacity-0 pointer-events-none"}`,"aria-label":"Scroll reviews left",children:e.jsx(F,{className:"w-6 h-6 text-primary"})}),e.jsx("div",{ref:l,className:"flex gap-6 overflow-x-auto scroll-smooth snap-x snap-mandatory pb-4 [&::-webkit-scrollbar]:hidden",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:h.map(a=>e.jsx("div",{"data-review-card":!0,className:"flex-shrink-0 w-[calc((100%-48px)/3)] snap-start",children:e.jsx(x,{review:a})},a.name))}),e.jsx("button",{onClick:()=>o("right"),className:`absolute -right-5 top-1/2 -translate-y-1/2 z-20 w-12 h-12 rounded-full bg-dark-bg/80 border border-primary/30 flex items-center justify-center transition-all duration-200 ${u?"opacity-100 hover:bg-primary/20 hover:border-primary cursor-pointer":"opacity-0 pointer-events-none"}`,"aria-label":"Scroll reviews right",children:e.jsx(w,{className:"w-6 h-6 text-primary"})})]}),e.jsxs("div",{className:"flex flex-col items-center gap-3 mb-10",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(v,{}),e.jsx("span",{className:"font-heading text-2xl font-bold text-primary-foreground",children:"4.7"}),e.jsx("div",{className:"flex items-center gap-0.5",children:[...Array(5)].map((a,s)=>e.jsx(f,{className:`w-5 h-5 ${s<4?"fill-yellow-400 text-yellow-400":"fill-yellow-400/60 text-yellow-400/60"}`},s))})]}),e.jsxs("p",{className:"font-sub text-sm text-primary-foreground/50",children:["Based on ",e.jsx("span",{className:"text-primary-foreground/70 font-medium",children:"14 Google Reviews"})]})]}),e.jsx("div",{className:"text-center",children:e.jsx(j,{onClick:t,variant:"dark"})})]})]})},x=({review:t})=>e.jsxs("div",{className:"bg-white rounded-lg p-6 shadow-lg h-full flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("img",{src:t.avatar,alt:t.name,className:"w-10 h-10 rounded-full object-cover"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"font-heading text-sm font-bold text-dark-bg",children:t.name}),e.jsxs("p",{className:"font-sub text-xs text-gray-400",children:[t.location," · ",t.time]})]}),e.jsx(v,{})]}),e.jsx("div",{className:"flex items-center gap-0.5 mb-3",children:[...Array(5)].map((l,i)=>e.jsx(f,{className:"w-4 h-4 fill-yellow-400 text-yellow-400"},i))}),e.jsx("p",{className:"font-sub text-sm text-gray-600 leading-relaxed flex-1",children:t.text})]});export{T 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.