PageSourceSearch

https://beautyartpro.eu/_next/static/chunks/6555-bb7cfe098f02e052.js

js beautyartpro.eu collected 2026-10-07 03:35:58 UTC 69,952 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6555],{16786:(e,t,l)=>{l.d(t,{Nw:()=>p,$W:()=>S,Be:()=>A,GR:()=>y});var r=l(95104),a=l(55404),n=l(37789),s=l(67935);function i(e){let{value:t,type:l}=e,a=(0,s.rI)(t)?t:(0,s.vL)(t);return a?(0,r.jsx)(n.default,{value:a,type:l}):null}var o=l(28998);function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";try{let l=decodeURIComponent(e.split("?")[0].split("#")[0].split("/").pop()||"").replace(/\.[a-z0-9]{2,5}$/i,"").replace(/-e\d{8,}$/i,"").replace(/-scaled$/i,"").replace(/-\d{2,4}x\d{2,4}$/i,"").replace(/-\d{1,2}$/,"").replace(/[-_]+/g," ").replace(/\s+/g," ").trim();if(l.replace(/[^a-zA-ZÀ-ÿ ]/g,"").trim().length<4||/^[0-9a-f]{16,}$/i.test(l.replace(/\s/g,"")))return t;return l.charAt(0).toUpperCase()+l.slice(1)}catch(e){return t}}var c=l(92753),u=l(37255),x=l(81108);let m={presets:c.rn,defaultId:c.SO},p=["Reviews","FeatureGrid","CtaBanner","Gallery","HeroBanner","SplitFeature","Steps","Stats","Team","Faq","Banner","PricingList","IconFeatures","Timeline","BigQuote","ContactBlock","Heading","Text","ImageBlock","Button","Card","Quote","Testimonial","Stat","List","Callout","Logos","Price","Video","Accordion","Map","Columns","Section","Spacer","Divider"],g=e=>"center"===e?"text-center":"right"===e?"text-right":"text-left",b={sm:"0.75rem",md:"1.5rem",lg:"2.5rem",xl:"4rem"},h={sm:"0.5rem",md:"1rem",lg:"2rem",xl:"4rem"},f={sm:"6px",md:"10px",lg:"16px",xl:"24px",full:"9999px"},v={narrow:"32rem",normal:"48rem",wide:"72rem",full:"100%"};function y(e,t,l){let a=null==e?void 0:e._style;if(!(a&&Object.values(a).some(e=>""!==e&&void 0!==e&&!1!==e)))return t;let n={};if(a.bg&&(n.backgroundColor=a.bg),a.bgImage){let e=/^https?:\/\//i.test(a.bgImage)?a.bgImage.replace(/["')]/g,""):"";e&&(n.backgroundImage='url("'.concat(e,'")'),n.backgroundSize="cover",n.backgroundPosition="center")}a.color&&(n.color=a.color),a.border&&(n.border="1px solid ".concat(a.border)),a.pad&&b[a.pad]&&(n.padding=b[a.pad]),a.mt&&h[a.mt]&&(n.marginTop=h[a.mt]),a.mb&&h[a.mb]&&(n.marginBottom=h[a.mb]),a.radius&&f[a.radius]&&(n.borderRadius=f[a.radius]),a.maxW&&v[a.maxW]&&(n.maxWidth=v[a.maxW]),a.shadow&&(n.boxShadow="0 20px 40px -12px rgba(0,0,0,0.5)"),"fade"===a.anim?n.animation="fade-in 0.6s ease both":"up"===a.anim&&(n.animation="slide-up 0.6s ease both");let s="";return"center"===a.align?s="mx-auto text-center":"right"===a.align?s="ml-auto text-right":"left"===a.align&&(s="mr-auto text-left"),a.hideMobile&&(s+=" max-lg:hidden"),a.hideDesktop&&(s+=" lg:hidden"),(0,r.jsx)("div",{className:s,style:n,"data-cms-textcolor":a.color?"":void 0,children:t},l)}function j(e,t){let l=Array.isArray(e)?e:[],n=S.components;return l.map((e,l)=>{let s=(null==e?void 0:e.type)?n[e.type]:void 0;if(!s||"function"!=typeof s.render)return null;try{var i;let n=(null==(i=e.props)?void 0:i.id)||l;return(0,r.jsx)(a.Fragment,{children:y(e.props||{},s.render({...e.props||{},_presets:t}))},n)}catch(e){return null}})}let N=e=>String(null!=e?e:"").split("\n").map(e=>e.trim()).filter(Boolean),w={eyebrow:{type:"text",label:"Eyebrow (small label)"},title:{type:"text"},subtitle:{type:"text"}},k={type:"select",label:"Align",options:[{label:"Center",value:"center"},{label:"Left",value:"left"}]};function C(e,t,l){let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"center";return e||t||l?(0,r.jsxs)("div",{className:"flex flex-col gap-3 mb-8 ".concat("left"===a?"items-start text-left":"items-center text-center"),children:[e?(0,r.jsx)("span",{className:"text-brand-gold text-xs case-label tracking-[0.2em]",children:e}):null,t?(0,r.jsx)("h2",{className:"font-heading text-2xl sm:text-4xl text-foreground leading-tight",children:t}):null,l?(0,r.jsx)("p",{className:"text-foreground/60 max-w-2xl text-sm sm:text-base",children:l}):null]}):null}let S={components:{Reviews:{label:"Reviews",fields:{...w,count:{type:"select",label:"How many to show",options:[{label:"3",value:"3"},{label:"6",value:"6"},{label:"9",value:"9"},{label:"12 (max)",value:"12"}]},sort:{type:"select",label:"Sort by",options:[{label:"Most recent",value:"newest"},{label:"Highest rated",value:"highest"}]},minRating:{type:"select",label:"Minimum rating",options:[{label:"All reviews",value:"
10"},{label:"4 stars and up",value:"4"},{label:"5 stars only",value:"5"}]},align:k},defaultProps:{eyebrow:"Testimonials",title:"What our clients say",subtitle:"Real words from real visits.",count:"3",sort:"newest",minRating:"5",align:"center"},render:e=>{let{eyebrow:t,title:l,subtitle:a,count:n,sort:s,minRating:i,align:o}=e;return(0,r.jsx)(x.default,{eyebrow:t,title:l,subtitle:a,count:Number(n),sort:s,minRating:Number(i),align:o})}},FeatureGrid:{label:"Feature grid",fields:{...w,items:{type:"textarea",label:"Cards - one per line:  Title | Description | /link (link optional)"},align:k},defaultProps:{eyebrow:"What we offer",title:"Our services",subtitle:"A curated selection crafted around you.",items:"Art of Looking | Lashes, brows & a flawless finish | /service-prices\nArt of PMU | Permanent makeup, done beautifully | /service-prices\nArt of Facials | Glow, care & radiance | /service-prices\nArt of Body | Restorative body treatments | /service-prices",align:"center"},render:e=>{let{eyebrow:t,title:l,subtitle:a,items:n,align:s}=e,i=N(n).map(e=>{let[t,l,r]=String(e).split("|");return{t:(t||"").trim(),d:(l||"").trim(),h:(r||"").trim()}});return(0,r.jsxs)("section",{className:"w-full py-12",children:[C(t,l,a,s),(0,r.jsx)("div",{className:"grid gap-5 [grid-template-columns:repeat(auto-fit,minmax(220px,1fr))]",children:i.map((e,t)=>{let l=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("h3",{className:"font-heading text-lg text-foreground",children:e.t}),e.d?(0,r.jsx)("p",{className:"text-foreground/60 text-sm mt-2 leading-relaxed",children:e.d}):null,e.h?(0,r.jsx)("span",{className:"inline-flex items-center gap-1 text-brand-gold text-xs mt-4 group-hover:gap-2 transition-all",children:"Explore →"}):null]});return e.h?(0,r.jsx)("a",{href:e.h,className:"group block rounded-2xl border border-brand-gold/15 bg-card p-6 hover:border-brand-gold/40 transition-colors",children:l},t):(0,r.jsx)("div",{className:"rounded-2xl border border-brand-gold/15 bg-card p-6",children:l},t)})})]})}},CtaBanner:{label:"CTA banner",fields:{...w,buttonLabel:{type:"text",label:"Button label"},buttonHref:{type:"text",label:"Button link"},preset:{type:"preset",label:"Button style (from Theme)"}},defaultProps:{eyebrow:"Ready when you are",title:"Book your appointment",subtitle:"Reserve your moment with us - we can’t wait to see you.",buttonLabel:"Book now",buttonHref:"/booking",preset:""},render:e=>{let{eyebrow:t,title:l,subtitle:a,buttonLabel:n,buttonHref:s,preset:i,_presets:o}=e,d=o||m,u=(0,c.m)({preset:i||void 0},d.presets,d.defaultId);return(0,r.jsx)("section",{className:"w-full py-12",children:(0,r.jsxs)("div",{className:"max-w-3xl mx-auto flex flex-col items-center text-center gap-4",children:[t?(0,r.jsx)("span",{className:"text-brand-gold text-xs case-label tracking-[0.2em]",children:t}):null,l?(0,r.jsx)("h2",{className:"font-heading text-2xl sm:text-4xl text-foreground leading-tight",children:l}):null,a?(0,r.jsx)("p",{className:"text-foreground/60 max-w-2xl text-sm sm:text-base",children:a}):null,n?(0,r.jsx)("a",{href:s||"#",style:(0,c.I4)(u),className:"cms-btn inline-flex items-center justify-center font-semibold mt-2 ".concat((0,c.Ix)(u)),children:n}):null]})})}},Gallery:{label:"Gallery",fields:{title:{type:"text"},images:{type:"textarea",label:"Image URLs - one per line"}},defaultProps:{title:"",images:""},render:e=>{let{title:t,images:l}=e,a=N(l);return(0,r.jsxs)("section",{className:"w-full py-12",children:[t?(0,r.jsx)("h2",{className:"font-heading text-2xl sm:text-4xl text-foreground text-center mb-8 leading-tight",children:t}):null,a.length?(0,r.jsx)("div",{className:"grid gap-3 [grid-template-columns:repeat(auto-fit,minmax(150px,1fr))]",children:a.map((e,t)=>(0,r.jsx)("img",{src:e,alt:d(e),className:"w-full aspect-square object-cover rounded-xl"},t))}):(0,r.jsx)("div",{className:"grid place-items-center py-10 rounded-xl border border-dashed border-brand-gold/30 text-foreground/40 text-sm",children:"Add image URLs, one per line"})]})}},HeroBanner:{label:"Hero banner",fields:{...w,buttonLabel:{type:"text",label:"Button label"},buttonHref:{type:"text",label:"Button link"}
1,preset:{type:"preset",label:"Button style (from Theme)"},image:{type:"image",label:"Background image (optional)"},align:k},defaultProps:{eyebrow:"Welcome",title:"Beauty, crafted with care",subtitle:"Discover treatments designed around you.",buttonLabel:"Book now",buttonHref:"/booking",preset:"",image:"",align:"center"},render:e=>{let{eyebrow:t,title:l,subtitle:a,buttonLabel:n,buttonHref:s,preset:i,image:o,align:u,_presets:x}=e,p=x||m,g=(0,c.m)({preset:i||void 0},p.presets,p.defaultId);return(0,r.jsxs)("section",{className:"relative w-full overflow-hidden rounded-2xl",children:[o?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("img",{src:o,alt:d(o),className:"absolute inset-0 w-full h-full object-cover"}),(0,r.jsx)("div",{className:"absolute inset-0 bg-black/50"})]}):null,(0,r.jsxs)("div",{className:"relative flex flex-col gap-4 ".concat("left"===u?"items-start text-left":"items-center text-center"," px-6 py-20 sm:py-28 ").concat(o?"text-white":""),children:[t?(0,r.jsx)("span",{className:"text-brand-gold text-xs case-label tracking-[0.2em]",children:t}):null,l?(0,r.jsx)("h1",{className:"font-heading text-3xl sm:text-5xl leading-tight max-w-3xl",children:l}):null,a?(0,r.jsx)("p",{className:"".concat(o?"text-white/80":"text-foreground/60"," max-w-2xl text-sm sm:text-lg"),children:a}):null,n?(0,r.jsx)("a",{href:s||"#",style:(0,c.I4)(g),className:"cms-btn inline-flex items-center justify-center font-semibold mt-3 ".concat((0,c.Ix)(g)),children:n}):null]})]})}},SplitFeature:{label:"Split feature",fields:{image:{type:"image"},imageSide:{type:"select",label:"Image side",options:[{label:"Left",value:"left"},{label:"Right",value:"right"}]},eyebrow:{type:"text",label:"Eyebrow"},title:{type:"text"},text:{type:"richtext"},buttonLabel:{type:"text",label:"Button label"},buttonHref:{type:"text",label:"Button link"},preset:{type:"preset",label:"Button style (from Theme)"}},defaultProps:{image:"",imageSide:"left",eyebrow:"Our philosophy",title:"Crafted around you",text:"Every treatment is tailored to your needs, using premium products and meticulous technique.",buttonLabel:"Learn more",buttonHref:"/contact",preset:""},render:e=>{let{image:t,imageSide:l,eyebrow:a,title:n,text:s,buttonLabel:i,buttonHref:o,preset:x,_presets:p}=e,g=p||m,b=(0,c.m)({preset:x||void 0},g.presets,g.defaultId),h=(0,r.jsx)("div",{className:"w-full aspect-[4/3] rounded-2xl overflow-hidden bg-card border border-brand-gold/10",children:t?(0,r.jsx)("img",{src:t,alt:d(t),className:"w-full h-full object-cover"}):(0,r.jsx)("div",{className:"w-full h-full grid place-items-center text-foreground/40 text-sm",children:"Add an image"})}),f=(0,r.jsxs)("div",{className:"flex flex-col gap-4 justify-center",children:[a?(0,r.jsx)("span",{className:"text-brand-gold text-xs case-label tracking-[0.2em]",children:a}):null,n?(0,r.jsx)("h2",{className:"font-heading text-2xl sm:text-4xl text-foreground leading-tight",children:n}):null,s?(0,r.jsx)("div",{className:"text-foreground/70 text-sm leading-relaxed",dangerouslySetInnerHTML:{__html:(0,u.z)(String(s))}}):null,i?(0,r.jsx)("a",{href:o||"#",style:(0,c.I4)(b),className:"cms-btn inline-flex items-center justify-center font-semibold mt-2 self-start ".concat((0,c.Ix)(b)),children:i}):null]});return(0,r.jsx)("section",{className:"w-full py-12",children:(0,r.jsx)("div",{className:"grid gap-8 [grid-template-columns:repeat(auto-fit,minmax(280px,1fr))] items-center",children:"right"===l?(0,r.jsxs)(r.Fragment,{children:[f,h]}):(0,r.jsxs)(r.Fragment,{children:[h,f]})})})}},Steps:{label:"Steps",fields:{...w,steps:{type:"textarea",label:"Steps - one per line:  Title | Description"},align:k},defaultProps:{eyebrow:"How it works",title:"Your visit, step by step",subtitle:"",steps:"Book | Choose your service and time online.\nRelax | Arrive and unwind - we take care of the rest.\nGlow | Leave feeling refreshed and radiant.",align:"center"},render:e=>{let{eyebrow:t,title:l,subtitle:a,steps:n,align:s}=e,i=N(n).map(e=>{let[t,l]=String(e).split("|");return{t:(t||"").trim(),d:(l||"").trim()}});return(0,r.jsxs)("section",{className:"w-full py-12",children:[C(t,l,a,s),(0,r.jsx)("div",{className:"grid gap-5 [grid-template-columns:repeat(auto-fit,minmax(220px,1fr))]",children:i.map((e,t)=>(0,r.jsxs)("div",{className:"rounded-2xl border border-brand-gold/15 bg-card p-6",children:[(0,r.jsx)("div",{className:"text-brand-gold font-heading text-2xl mb-3",children:String(t+1).padStart(2,"0")}),(0,r.jsx)("h3",{className:"font-heading text-lg text-foreground",children:e.t}
1),e.d?(0,r.jsx)("p",{className:"text-foreground/60 text-sm mt-2 leading-relaxed",children:e.d}):null]},t))})]})}},Stats:{label:"Stats",fields:{...w,stats:{type:"textarea",label:"Stats - one per line:  Value | Label"},align:k},defaultProps:{eyebrow:"",title:"",subtitle:"",stats:"10+ | Years of expertise\n5,000+ | Happy clients\n4.9★ | Average rating\n20+ | Signature treatments",align:"center"},render:e=>{let{eyebrow:t,title:l,subtitle:a,stats:n,align:s}=e,i=N(n).map(e=>{let[t,l]=String(e).split("|");return{v:(t||"").trim(),l:(l||"").trim()}});return(0,r.jsxs)("section",{className:"w-full py-12",children:[C(t,l,a,s),(0,r.jsx)("div",{className:"grid gap-6 [grid-template-columns:repeat(auto-fit,minmax(130px,1fr))] text-center",children:i.map((e,t)=>(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"font-heading text-3xl sm:text-4xl text-brand-gold",children:e.v}),(0,r.jsx)("div",{className:"text-foreground/60 text-sm mt-1",children:e.l})]},t))})]})}},Team:{label:"Team",fields:{...w,members:{type:"textarea",label:"Members - one per line:  Name | Role | imageURL"},align:k},defaultProps:{eyebrow:"Our team",title:"Meet the artists",subtitle:"",members:"Camille | Lead Artist | \nL\xe9a | PMU Specialist | \nIn\xe8s | Facialist | ",align:"center"},render:e=>{let{eyebrow:t,title:l,subtitle:a,members:n,align:s}=e,i=N(n).map(e=>{let[t,l,r]=String(e).split("|");return{n:(t||"").trim(),r:(l||"").trim(),img:(r||"").trim()}});return(0,r.jsxs)("section",{className:"w-full py-12",children:[C(t,l,a,s),(0,r.jsx)("div",{className:"grid gap-6 [grid-template-columns:repeat(auto-fit,minmax(170px,1fr))]",children:i.map((e,t)=>(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"w-full aspect-square rounded-2xl overflow-hidden bg-card border border-brand-gold/10 mb-3",children:e.img?(0,r.jsx)("img",{src:e.img,alt:e.n,className:"w-full h-full object-cover"}):(0,r.jsx)("div",{className:"w-full h-full grid place-items-center text-foreground/30 text-xs",children:"Photo"})}),(0,r.jsx)("div",{className:"font-heading text-foreground",children:e.n}),e.r?(0,r.jsx)("div",{className:"text-brand-gold/80 text-xs mt-0.5",children:e.r}):null]},t))})]})}},Faq:{label:"FAQ",fields:{...w,faqs:{type:"textarea",label:"FAQs - one per line:  Question | Answer"},align:k},defaultProps:{eyebrow:"FAQ",title:"Frequently asked questions",subtitle:"",faqs:"Do I need to book ahead? | Yes, we recommend booking online to secure your preferred time.\nWhere are you located? | See our contact page for the address and directions.\nDo you offer gift cards? | Absolutely - ask us in studio or online.",align:"center"},render:e=>{let{eyebrow:t,title:l,subtitle:a,faqs:n,align:s}=e,i=N(n).map(e=>{let[t,...l]=String(e).split("|");return{q:(t||"").trim(),a:l.join("|").trim()}});return(0,r.jsxs)("section",{className:"w-full py-12",children:[C(t,l,a,s),(0,r.jsx)("div",{className:"max-w-2xl mx-auto divide-y divide-brand-gold/10",children:i.map((e,t)=>(0,r.jsxs)("details",{className:"group py-4",children:[(0,r.jsxs)("summary",{className:"cursor-pointer list-none flex items-center justify-between gap-4 text-foreground font-medium",children:[(0,r.jsx)("span",{children:e.q}),(0,r.jsx)("span",{className:"text-brand-gold text-lg transition-transform group-open:rotate-45",children:"+"})]}),e.a?(0,r.jsx)("p",{className:"text-foreground/60 text-sm mt-3 leading-relaxed",children:e.a}):null]},t))})]})}},Banner:{label:"Banner",fields:{text:{type:"text"},buttonLabel:{type:"text",label:"Button label"},buttonHref:{type:"text",label:"Button link"},preset:{type:"preset",label:"Button style (from Theme)"}},defaultProps:{text:"✨ New clients get 10% off their first visit",buttonLabel:"Claim offer",buttonHref:"/booking",preset:""},render:e=>{let{text:t,buttonLabel:l,buttonHref:a,preset:n,_presets:s}=e,i=s||m,o=(0,c.m)({preset:n||void 0},i.presets,i.defaultId);return(0,r.jsx)("section",{className:"w-full py-4",children:(0,r.jsxs)("div",{className:"rounded-2xl border border-brand-gold/20 bg-brand-gold/[0.06] px-6 py-4 flex flex-col sm:flex-row items-center justify-center gap-3 text-center",children:[t?(0,r.jsx)("span",{className:"text-foreground text-sm font-medium",children:t}):null,l?(0,r.jsx)("a",{href:a||"#",style:(0,c.I4)(o),className:"cms-btn inline-flex items-center justify-center font-semibold ".concat((0,c.Ix)(o)),children:l}):null]})})}},PricingList:{label:"Pricing list",fields:{...w,items:{type:"textarea",label:"Rows - one per line:  Name | Price | Description (optional)"},align:k},defaultProps:{eyebrow:"Pricing",title:"Our prices",subtitle:"",items:"Classic Lashes | CHF 90 | Full set, natural look\nHybrid Lashes | CHF 120 | Mixed volume\nBrow Lamination | CHF 70 | Includes tint\nDeep Facial | CHF 130 | 60 minutes",align:"center"},render:e=>
1{let{eyebrow:t,title:l,subtitle:a,items:n,align:s}=e,i=N(n).map(e=>{let[t,l,r]=String(e).split("|");return{n:(t||"").trim(),p:(l||"").trim(),d:(r||"").trim()}});return(0,r.jsxs)("section",{className:"w-full py-12",children:[C(t,l,a,s),(0,r.jsx)("div",{className:"max-w-2xl mx-auto divide-y divide-brand-gold/10",children:i.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-baseline justify-between gap-4 py-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-foreground font-medium",children:e.n}),e.d?(0,r.jsx)("div",{className:"text-foreground/50 text-xs mt-0.5",children:e.d}):null]}),(0,r.jsx)("div",{className:"text-brand-gold font-heading whitespace-nowrap",children:e.p})]},t))})]})}},IconFeatures:{label:"Icon features",fields:{...w,items:{type:"textarea",label:"Features - one per line:  Emoji | Title | Description"},align:k},defaultProps:{eyebrow:"Why us",title:"The experience",subtitle:"",items:"✨ | Premium products | Only the best for your skin\n\uD83C\uDFAF | Expert artists | Trained & certified\n\uD83D\uDC9B | Personal care | Tailored to you\n\uD83D\uDD52 | Easy booking | Reserve online 24/7",align:"center"},render:e=>{let{eyebrow:t,title:l,subtitle:a,items:n,align:s}=e,i=N(n).map(e=>{let[t,l,r]=String(e).split("|");return{ic:(t||"").trim(),t:(l||"").trim(),d:(r||"").trim()}});return(0,r.jsxs)("section",{className:"w-full py-12",children:[C(t,l,a,s),(0,r.jsx)("div",{className:"grid gap-6 [grid-template-columns:repeat(auto-fit,minmax(190px,1fr))]",children:i.map((e,t)=>(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"text-3xl mb-3",children:e.ic}),(0,r.jsx)("h3",{className:"font-heading text-foreground",children:e.t}),e.d?(0,r.jsx)("p",{className:"text-foreground/60 text-sm mt-1 leading-relaxed",children:e.d}):null]},t))})]})}},Timeline:{label:"Timeline",fields:{...w,items:{type:"textarea",label:"Milestones - one per line:  Title | Description"},align:k},defaultProps:{eyebrow:"Our journey",title:"",subtitle:"",items:"2015 | Opened our first studio\n2019 | Grew the team of artists\n2023 | Launched signature treatments\nToday | Serving thousands of happy clients",align:"left"},render:e=>{let{eyebrow:t,title:l,subtitle:a,items:n,align:s}=e,i=N(n).map(e=>{let[t,l]=String(e).split("|");return{t:(t||"").trim(),d:(l||"").trim()}});return(0,r.jsxs)("section",{className:"w-full py-12",children:[C(t,l,a,s),(0,r.jsx)("div",{className:"max-w-2xl mx-auto",children:i.map((e,t)=>(0,r.jsxs)("div",{className:"relative pl-6 pb-6 border-l border-brand-gold/20 last:border-transparent last:pb-0",children:[(0,r.jsx)("span",{className:"absolute -left-[5px] top-1 h-2.5 w-2.5 rounded-full bg-brand-gold"}),(0,r.jsx)("div",{className:"text-foreground font-medium",children:e.t}),e.d?(0,r.jsx)("div",{className:"text-foreground/60 text-sm mt-1",children:e.d}):null]},t))})]})}},BigQuote:{label:"Big quote",fields:{quote:{type:"textarea"},author:{type:"text"}},defaultProps:{quote:"Beauty begins the moment you decide to be yourself.",author:"- The studio"},render:e=>{let{quote:t,author:l}=e;return(0,r.jsx)("section",{className:"w-full py-16",children:(0,r.jsxs)("div",{className:"max-w-3xl mx-auto text-center",children:[(0,r.jsxs)("p",{className:"font-heading text-2xl sm:text-4xl text-foreground leading-snug",children:["“",t,"”"]}),l?(0,r.jsx)("p",{className:"text-brand-gold text-xs mt-6 tracking-widest case-label",children:l}):null]})})}},ContactBlock:{label:"Contact block",fields:{...w,address:{type:"text"},phone:{type:"text"},email:{type:"text"},hours:{type:"textarea",label:"Hours (one per line)"},align:k},defaultProps:{eyebrow:"Visit us",title:"Get in touch",subtitle:"",address:"",phone:"",email:"",hours:"Mon–Sat: 10:00 – 19:00\nSun: Closed",align:"center"},render:e=>{let{eyebrow:t,title:l,subtitle:a,address:n,phone:s,email:o,hours:d,align:c}=e,u=N(d);return(0,r.jsxs)("section",{className:"w-full py-12",children:[C(t,l,a,c),(0,r.jsxs)("div",{className:"grid gap-6 [grid-template-columns:repeat(auto-fit,minmax(190px,1fr))] text-center",children:[n?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-brand-gold text-xs case-label tracking-widest mb-1",children:"Address"}
1),(0,r.jsx)("div",{className:"text-foreground/70 text-sm whitespace-pre-line",children:n})]}):null,s||o?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-brand-gold text-xs case-label tracking-widest mb-1",children:"Contact"}),s?(0,r.jsx)("div",{className:"text-foreground/70 text-sm",children:(0,r.jsx)(i,{type:"phone",value:String(s)})}):null,o?(0,r.jsx)("div",{className:"text-foreground/70 text-sm",children:(0,r.jsx)(i,{type:"email",value:String(o)})}):null]}):null,u.length?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-brand-gold text-xs case-label tracking-widest mb-1",children:"Hours"}),u.map((e,t)=>(0,r.jsx)("div",{className:"text-foreground/70 text-sm",children:e},t))]}):null]})]})}},Heading:{label:"Heading",fields:{text:{type:"text"},level:{type:"select",options:[{label:"Large (H1)",value:"h1"},{label:"Medium (H2)",value:"h2"},{label:"Small (H3)",value:"h3"}]},align:{type:"select",options:[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}]},accent:{type:"select",options:[{label:"Gold",value:"gold"},{label:"White",value:"white"},{label:"Muted",value:"muted"}]}},defaultProps:{text:"Your heading",level:"h2",align:"center",accent:"gold"},render:e=>{let{text:t,level:l,align:a,accent:n}=e,s="h1"===l?"text-4xl md:text-6xl":"h3"===l?"text-2xl md:text-3xl":"text-3xl md:text-5xl";return(0,r.jsx)(l||"h2",{className:"font-heading ".concat(s," ").concat((e=>"gold"===e?"text-brand-gold":"muted"===e?"text-foreground/60":"text-foreground")(n)," ").concat(g(a)," leading-tight py-2"),children:t})}},Text:{label:"Text",fields:{text:{type:"richtext"},align:{type:"select",options:[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}]}},defaultProps:{text:"Add your text here.",align:"left"},render:e=>{let{text:t,align:l}=e;return(0,r.jsx)("p",{className:"text-foreground/70 leading-relaxed whitespace-pre-line ".concat(g(l)),dangerouslySetInnerHTML:{__html:(0,u.z)(String(null!=t?t:""))}})}},ImageBlock:{label:"Image",fields:{url:{type:"image"},alt:{type:"text"},rounded:{type:"select",options:[{label:"Square",value:"none"},{label:"Rounded",value:"lg"}]}},defaultProps:{url:"",alt:"",rounded:"lg"},render:e=>{let{url:t,alt:l,rounded:a}=e;return t?(0,r.jsx)("img",{src:t,alt:l||"",className:"w-full h-auto object-cover ".concat("lg"===a?"rounded-xl":"")}):(0,r.jsx)("div",{className:"w-full aspect-video grid place-items-center rounded-xl border border-dashed border-brand-gold/30 text-foreground/40 text-sm",children:"Add an image URL"})}},Button:{label:"Button",fields:{label:{type:"text"},href:{type:"text"},preset:{type:"preset",label:"Style (from Theme)"},align:{type:"select",options:[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}]}},defaultProps:{label:"Book now",href:"/booking",preset:"",align:"center"},render:e=>{let{label:t,href:l,preset:a,align:n,_presets:s}=e,i=s||m,o=(0,c.m)({preset:a||void 0},i.presets,i.defaultId);return(0,r.jsx)("div",{className:"flex ".concat((e=>"center"===e?"justify-center":"right"===e?"justify-end":"justify-start")(n)," py-2"),children:(0,r.jsx)("a",{href:l||"#",style:(0,c.I4)(o),className:"cms-btn inline-flex items-center justify-center font-semibold ".concat((0,c.Ix)(o)),children:t})})}},Spacer:{label:"Spacer",fields:{size:{type:"select",options:[{label:"Small",value:"sm"},{label:"Medium",value:"md"},{label:"Large",value:"lg"},{label:"Extra large",value:"xl"}]}},defaultProps:{size:"md"},render:e=>{let{size:t}=e;return(0,r.jsx)("div",{className:"sm"===t?"h-6":"lg"===t?"h-20":"xl"===t?"h-32":"h-12"})}},Divider:{label:"Divider",fields:{},defaultProps:{},render:()=>(0,r.jsx)("div",{className:"mx-auto my-6 h-px w-24 bg-brand-gold/40"})},Columns:{label:"Columns",fields:{columns:{type:"columns"},ratio:{type:"select",label:"Column widths",options:[{label:"Equal",value:"equal"},{label:"1 : 2",value:"1-2"},{label:"2 : 1",value:"2-1"},{label:"1 : 3",value:"1-3"},{label:"3 : 1",value:"3-1"},{label:"1 : 2 : 1",value:"1-2-1"},{label:"2 : 1 : 1",value:"2-1-1"},{label:"1 : 1 : 2",value:"1-1-2"}]},gap:{type:"select",options:[{label:"None",value:"none"},{label:"Small",value:"sm"},{label:"Medium",value:"md"},{label:"Large",value:"lg"}]},valign:{type:"select",options:[{label:"Top",value:"top"},{label:"Middle",value:"center"},{label:"Bottom",value:"bottom"}]},stack:{type:"select",label:"On mobile",options:[{label:"Stack",value:"stack"},{label:"Stay side by side",value:"row"}]}},defaultProps:{columns:[[],[]],ratio:"equal",gap:"md",valign:"top",stack:"stack"},render:e=>{let{columns:t,ratio:l,gap:a,valign:n,stack:s,_presets:i}=e,o=Array.isArray(t)?t:[];if(!o.length)return null;let d=function(e,t){let l=e&&({"1-2":"1fr 2fr","2-1":"2fr 1fr","1-3":"1fr 3fr","3-1":"3fr 1fr","1-2-1":"1fr 2fr 1fr","2-1-1":"2fr 1fr 1fr","1-1-2":"1fr 1fr 2fr"})[e];return l&&l.split(" ").length===t?l:"repeat(".concat(t,", minmax(0, 1fr))")}(l,o.length);return(0,r.jsx)("div",{className:"grid ".concat("row"===s?"[grid-template-columns:var(--gtc)]":"grid-cols-1 md:[grid-template-columns:var(--gtc)]"," ").concat("none"===a?"gap-0":"sm"===a?"gap-4":"lg"===a?"gap-12":"gap-8"," ").concat("center"===n?"items-center":"bottom"===n?"items-end":"items-start"," py-2"),style:{"--gtc":d},children:o.map((e,t)=>(0,r.jsx)("div",{className:"min-w-0",children:j(e,i)},t))})}},Section:{label:"Section",fields:{content:{type:"blocks"},bg:{type:"select",options:[{label:"None",value:"none"},{label:"Dark",value:"dark"},{label:"Panel",value:"panel"},{label:"Gold tint",value:"tint"}]},pad:{type:"select",options:[{label:"Small",value:"sm"},{label:"Medium",value:"md"},{label:"Large",value:"lg"},{label:"Extra large",value:"xl"}]}
1,align:{type:"select",options:[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}]}},defaultProps:{content:[],bg:"panel",pad:"lg",align:"left"},render:e=>{let{content:t,bg:l,pad:a,align:n,_presets:s}=e;return(0,r.jsx)("div",{className:"my-2 ".concat("center"===n?"text-center":"right"===n?"text-right":""," ").concat("none"!==l?"rounded-2xl ".concat("sm"===a?"p-5":"xl"===a?"p-12":"lg"===a?"p-8":"p-6"):"py-4"," ").concat("dark"===l?"bg-card border border-border":"panel"===l?"bg-muted/60 border border-brand-gold/10":"tint"===l?"bg-brand-gold/5 border border-brand-gold/15":""),children:j(t,s)})}},Quote:{label:"Quote",fields:{text:{type:"textarea"},author:{type:"text"},align:{type:"select",options:[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}]}},defaultProps:{text:"A few words that capture the experience.",author:"Happy client",align:"center"},render:e=>{let{text:t,author:l,align:a}=e;return(0,r.jsxs)("figure",{className:"py-6 ".concat("center"===a?"text-center":g(a)),children:[(0,r.jsxs)("blockquote",{className:"font-heading text-2xl md:text-3xl text-foreground leading-snug",children:["“",t,"”"]}),l?(0,r.jsx)("figcaption",{className:"mt-3 text-sm case-label tracking-wider text-brand-gold/80",children:l}):null]})}},List:{label:"List",fields:{items:{type:"textarea",label:"Items (one per line)"},style:{type:"select",options:[{label:"Bullet",value:"bullet"},{label:"Numbered",value:"number"},{label:"Checkmark",value:"check"}]},align:{type:"select",options:[{label:"Left",value:"left"},{label:"Center",value:"center"}]}},defaultProps:{items:"First point\nSecond point\nThird point",style:"check",align:"left"},render:e=>{let{items:t,style:l,align:a}=e,n=String(t||"").split("\n").map(e=>e.trim()).filter(Boolean);return n.length?(0,r.jsx)("number"===l?"ol":"ul",{className:"space-y-2 py-2 text-foreground/75 ".concat("number"===l?"list-decimal pl-6":"bullet"===l?"list-disc pl-6":""," ").concat("center"===a?"text-center":""),children:n.map((e,t)=>(0,r.jsxs)("li",{className:"check"===l?"list-none flex items-start gap-2":"",children:["check"===l?(0,r.jsx)("span",{className:"text-brand-gold mt-0.5",children:"✓"}):null,(0,r.jsx)("span",{children:e})]},t))}):null}},Card:{label:"Card",fields:{image:{type:"image"},title:{type:"text"},text:{type:"textarea"},href:{type:"text",label:"Link (optional)"}},defaultProps:{image:"",title:"Card title",text:"A short supporting description for this card.",href:""},render:e=>{let{image:t,title:l,text:a,href:n}=e,s=(0,r.jsxs)(r.Fragment,{children:[t?(0,r.jsx)("img",{src:t,alt:l||"",className:"w-full aspect-[4/3] object-cover"}):null,(0,r.jsxs)("div",{className:"p-5",children:[l?(0,r.jsx)("h3",{className:"font-heading text-xl text-foreground mb-2",children:l}):null,a?(0,r.jsx)("p",{className:"text-foreground/65 text-sm leading-relaxed whitespace-pre-line",children:a}):null]})]}),i="block overflow-hidden rounded-xl border border-brand-gold/15 bg-card/60";return n?(0,r.jsx)("a",{href:n,className:i+" transition hover:border-brand-gold/40",children:s}):(0,r.jsx)("div",{className:i,children:s})}},Callout:{label:"Callout",fields:{title:{type:"text"},text:{type:"textarea"},tone:{type:"select",options:[{label:"Gold",value:"gold"},{label:"Dark",value:"dark"},{label:"Outline",value:"outline"}]}},defaultProps:{title:"Good to know",text:"Highlight an important note for your visitors here.",tone:"gold"},render:e=>{let{title:t,text:l,tone:a}=e,n={gold:"bg-brand-gold/10 border-brand-gold/30",dark:"bg-card/70 border-border",outline:"bg-transparent border-brand-gold/40"};return(0,r.jsxs)("div",{className:"rounded-xl border px-5 py-4 my-2 ".concat(n[a]||n.gold),children:[t?(0,r.jsx)("p",{className:"font-heading text-lg text-brand-gold mb-1",children:t}):null,l?(0,r.jsx)("p",{className:"text-foreground/75 text-sm leading-relaxed whitespace-pre-line",children:l}):null]})}},Video:{label:"Video",fields:{url:{type:"text",label:"YouTube / Vimeo URL"},caption:{type:"text"}},defaultProps:{url:"",caption:""},render:e=>{let{url:t,caption:l}=e,a=function(e){if(!e)return null;let t=e.match(/(?:youtu\.be\/|youtube\.com\/(?:watch\?v=|embed\/|v\/|shorts\/))([\w-]{11})/);if(t)return"https://www.youtube.com/embed/".concat(t[1]);let l=e.match(/vimeo\.com\/(?:video\/)?(\d+)/);return l?"https://player.vimeo.com/video/".concat(l[1]):null}(String(t||""));return a?(0,r.jsxs)("figure",{className:"w-full",children:[(0,r.jsx)("div",{className:"aspect-video overflow-hidden rounded-xl border border-brand-gold/15",children:(0,r.jsx)("iframe",{src:a,title:l||"Video",className:"w-full h-full",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,loading:"lazy",referrerPolicy:"str
1ict-origin-when-cross-origin"})}),l?(0,r.jsx)("figcaption",{className:"mt-2 text-center text-xs text-foreground/50",children:l}):null]}):(0,r.jsx)("div",{className:"w-full aspect-video grid place-items-center rounded-xl border border-dashed border-brand-gold/30 text-foreground/40 text-sm",children:"Paste a YouTube or Vimeo link"})}},Accordion:{label:"FAQ / Accordion",fields:{items:{type:"textarea",label:"One per line: Question | Answer"}},defaultProps:{items:"What are your opening hours? | We are open Monday to Saturday.\nDo I need an appointment? | Walk-ins are welcome, but booking ahead is recommended."},render:e=>{let{items:t}=e,l=String(t||"").split("\n").map(e=>e.trim()).filter(Boolean).map(e=>{let t=e.indexOf("|");return t>=0?[e.slice(0,t).trim(),e.slice(t+1).trim()]:[e,""]});return l.length?(0,r.jsx)("div",{className:"space-y-2 py-2",children:l.map((e,t)=>{let[l,a]=e;return(0,r.jsxs)("details",{className:"group rounded-xl border border-brand-gold/15 bg-card/40 px-4 py-3",children:[(0,r.jsxs)("summary",{className:"cursor-pointer list-none font-heading text-foreground flex items-center justify-between gap-2",children:[l,(0,r.jsx)("span",{className:"text-brand-gold text-xl leading-none transition-transform group-open:rotate-45",children:"+"})]}),a?(0,r.jsx)("p",{className:"mt-2 text-foreground/65 text-sm leading-relaxed whitespace-pre-line",children:a}):null]},t)})}):null}},Map:{label:"Map",fields:{query:{type:"text",label:"Address or place"},height:{type:"select",options:[{label:"Short",value:"sm"},{label:"Medium",value:"md"},{label:"Tall",value:"lg"}]}},defaultProps:{query:"",height:"md"},render:e=>{let{query:t,height:l}=e,a=String(t||"").trim();if(!a)return(0,r.jsx)("div",{className:"w-full aspect-video grid place-items-center rounded-xl border border-dashed border-brand-gold/30 text-foreground/40 text-sm",children:"Enter an address"});let n="https://www.google.com/maps?q=".concat(encodeURIComponent(a),"&output=embed");return(0,r.jsx)("div",{className:"relative w-full ".concat("sm"===l?"h-56":"lg"===l?"h-[28rem]":"h-80"," overflow-hidden rounded-xl border border-brand-gold/15"),children:(0,r.jsx)(o.default,{src:n,title:"Map",address:a})})}},Stat:{label:"Stat",fields:{value:{type:"text"},label:{type:"text"},align:{type:"select",options:[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}]}},defaultProps:{value:"500+",label:"Happy clients",align:"center"},render:e=>{let{value:t,label:l,align:a}=e;return(0,r.jsxs)("div",{className:"py-4 ".concat(g(a)),children:[(0,r.jsx)("div",{className:"font-heading text-4xl md:text-5xl text-brand-gold leading-none",children:t}),l?(0,r.jsx)("div",{className:"mt-2 text-xs case-label tracking-wider text-foreground/60",children:l}):null]})}},Testimonial:{label:"Testimonial",fields:{quote:{type:"textarea"},name:{type:"text"},role:{type:"text"},image:{type:"image"}},defaultProps:{quote:"An amazing experience from start to finish.",name:"Client name",role:"",image:""},render:e=>{let{quote:t,name:l,role:a,image:n}=e;return(0,r.jsxs)("figure",{className:"rounded-2xl border border-brand-gold/15 bg-card/40 p-6",children:[(0,r.jsxs)("blockquote",{className:"text-lg text-foreground/90 leading-relaxed",children:["“",t,"”"]}),(0,r.jsxs)("figcaption",{className:"mt-4 flex items-center gap-3",children:[n?(0,r.jsx)("img",{src:n,alt:l||"",className:"h-10 w-10 rounded-full object-cover"}):null,(0,r.jsxs)("div",{children:[l?(0,r.jsx)("div",{className:"text-sm font-medium text-brand-gold",children:l}):null,a?(0,r.jsx)("div",{className:"text-xs text-foreground/50",children:a}):null]})]})]})}},Logos:{label:"Logo strip",fields:{urls:{type:"textarea",label:"Image URLs, one per line"},hoverColor:{type:"select",label:"Colour on hover",options:[{label:"Grey until hovered",value:"on"},{label:"Always full colour",value:"off"}]}},defaultProps:{urls:"",hoverColor:"on"},render:e=>{let{urls:t,hoverColor:l}=e,a=String(t||"").split("\n").map(e=>e.trim()).filter(Boolean);return a.length?(0,r.jsx)("div",{className:"flex flex-wrap items-center justify-center gap-8 py-4",children:a.map((e,t)=>(0,r.jsx)("img",{src:e,alt:"",className:"h-8 md:h-10 w-auto object-contain transition ".concat("off"===l?"opacity-100":"opacity-70 grayscale hover:grayscale-0 hover:opacity-100")},t))}):(0,r.jsx)("div",{className:"w-full grid place-items-center rounded-xl border border-dashed border-brand-gold/30 text-foreground
1/40 text-sm py-8",children:"Add logo image URLs (one per line)"})}},Price:{label:"Price row",fields:{name:{type:"text"},price:{type:"text"},description:{type:"text"}},defaultProps:{name:"Service name",price:"",description:""},render:e=>{let{name:t,price:l,description:a}=e;return(0,r.jsxs)("div",{className:"py-2.5 border-b border-brand-gold/10",children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,r.jsx)("span",{className:"font-heading text-foreground text-lg",children:t}),(0,r.jsx)("span",{className:"flex-1 self-center border-b border-dotted border-brand-gold/25"}),l?(0,r.jsx)("span",{className:"text-brand-gold font-medium whitespace-nowrap",children:l}):null]}),a?(0,r.jsx)("p",{className:"text-foreground/55 text-sm mt-1 max-w-prose",children:a}):null]})}}}},A={content:[],root:{},zones:{}}},28998:(e,t,l)=>{l.d(t,{default:()=>d});var r=l(95104),a=l(55404),n=l(13839),s=l(26250),i=l(1e3),o=l(33357);function d(e){let{src:t,title:l,address:d}=e,c=(0,s.c)("MapEmbed"),{marketing:u}=(0,o.uC)(),[x,m]=(0,a.useState)(!1);return x||u?(0,r.jsx)("iframe",{title:l,src:t,width:"100%",height:"100%",style:{border:0},allowFullScreen:!0,loading:"lazy",referrerPolicy:"no-referrer-when-downgrade",className:"absolute inset-0 h-full w-full"}):(0,r.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-4 p-6 text-center",children:[(0,r.jsx)(n.A,{className:"h-6 w-6 text-brand-gold","aria-hidden":"true"}),d?(0,r.jsx)(i.L,{variant:"body",className:"text-foreground/70",children:d}):null,(0,r.jsx)("button",{type:"button",onClick:()=>m(!0),className:"inline-flex min-h-[44px] items-center justify-center border border-brand-gold px-6 text-brand-gold transition-colors hover:bg-brand-gold hover:text-background",children:(0,r.jsx)(i.L,{variant:"nav",as:"span",className:"text-inherit",children:c("show")})}),(0,r.jsx)(i.L,{variant:"subtext",className:"max-w-sm text-foreground/50",children:c("notice")})]})}},33357:(e,t,l)=>{l.d(t,{PD:()=>o,XM:()=>c,pX:()=>s,qH:()=>d,uC:()=>u});var r=l(55404);let a="cookie-consent",n="cookie-consent-change",s="open-cookie-preferences";function i(){try{let e=window.localStorage.getItem(a);if(!e)return null;let t=JSON.parse(e);if(t&&"boolean"==typeof t.marketing)return{v:1,functional:!0,marketing:t.marketing,ts:t.ts||Date.now()}}catch(e){}return null}function o(){return null!==i()}function d(e){let t={v:1,functional:!0,marketing:e,ts:Date.now()};try{window.localStorage.setItem(a,JSON.stringify(t))}catch(e){}try{let t="https:"===window.location.protocol?"; Secure":"";document.cookie="".concat("cookie_consent","=").concat(e?"all":"functional","; Max-Age=").concat(31536e3,"; Path=/; SameSite=Lax").concat(t)}catch(e){}return window.__cookieConsent=t,window.dispatchEvent(new CustomEvent(n,{detail:t})),t}function c(){window.dispatchEvent(new Event(s))}function u(){let[e,t]=(0,r.useState)(null);return(0,r.useEffect)(()=>{let e=()=>t(i());return e(),window.__cookieConsent=i(),window.openCookiePreferences=c,window.addEventListener(n,e),window.addEventListener("storage",e),()=>{window.removeEventListener(n,e),window.removeEventListener("storage",e)}},[]),{consent:e,decided:null!==e,marketing:(null==e?void 0:e.marketing)===!0}}},37255:(e,t,l)=>{l.d(t,{z:()=>n});let r=new Set(["b","strong","i","em","u","a","br"]);function a(e){return e.replace(/&(?!(?:#\d+|#x[0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*);)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function n(e){let t;if(!e)return"";let l=e.replace(/<!--[\s\S]*?-->/g,"");l=l.replace(/<(script|style|noscript|template|iframe|object|embed)[\s\S]*?<\/\1\s*>/gi,"");let n="",s=0,i=/<\/?([a-zA-Z][a-zA-Z0-9]*)((?:[^>"']|"[^"]*"|'[^']*')*)>/g;for(;null!==(t=i.exec(l));){n+=a(l.slice(s,t.index)),s=t.index+t[0].length;let e=t[1].toLowerCase(),i="/"===t[0][1];if(r.has(e)){if(i){n+="</".concat(e,">");continue}if("br"===e){n+="<br>";continue}if("a"===e){let e=function(e){var t,l,r;let a=e.match(/\bhref\s*=\s*("([^"]*)"|'([^']*)'|([^\s>]+))/i);if(!a)return null;let n=(null!=(r=null!=(l=null!=(t=a[2])?t:a[3])?l:a[4])?r:"").trim();if(!n)return null;let s=n.toLowerCase().replace(/&#x?[0-9a-f]+;?/gi,"").replace(/\s+/g,"");return!/^(https?:|mailto:)/.test(s)||/[\s"'<>`]/.test(n)?null:n.replace(/&/g,"&amp;").replace(/"/g,"&quot;")}(t[2]||"");n+=e?'<a href="'.concat(e,'" target="_blank" rel="noopener noreferrer nofollow">'):"<a>";continue}n+="<".concat(e,">")}}return n+a(l.slice(s))}},39044:(e,t,l)=>{l.d(t,{v:()=>s});var r=l(55404);let a=JSON.parse('[{"id":1,"author":"A. Client","rating":5,"date":"2026-05-15","text":"Wonderful experience from start to finish. The team was warm, professional, and the result exceeded my expectations. Highly recommended.","language":"en","service":"Lashes","original_date":"2 weeks ago","author_meta":"Verified visit"},{"id":2,"author":"M. Visitor","rating":5,"date":"2026-05-08","text":"A relaxing, immaculate space and truly skilled hands. I felt looked after the whole time and left delighted with the outcome.","language":"en","service":"Brows","original_date":"3 weeks ago","author_meta":"Verified visit"},{"id":3,"author":"S. Guest","rating":5,"date":"2026-04-29","text":"Attentive, precise and genuinely caring. The booking was easy and the appointment ran perfectly on time. I will definitely be back.","language":"en","service":"Facials","original_date":"1 month ago","author_meta":"Verified visit"},{"id":4,"author":"L. Client","rating":5,"date":"2026-04-12","text":"Beautiful, natural results and a lovely atmosphere. The staff took the time to understand exactly what I wanted. Five stars.","language":"en","service":"PMU","original_date":"1 month ago","author_meta":"Verified visit"}]');var n=l(92076);function s(){let[e,t]=(0,r.useState)(n.$?[]:a);return(0,r.useEffect)(()=>{let e=!0;return fetch("/api/reviews/public").then(e=>e.ok?e.json():null).then(l=>{e&&l&&Array.isArray(l.reviews)&&l.reviews.length&&t(l.reviews.filter(e=>!1!==e.visible))}).catch(()=>{}),()=>{e=!1}},[]),e}},45832:(e,t,l)=>{l.d(t,{A:()=>I});var r=l(95104),a=l(55404),n=l(95284),s=l(36447),i=l(61660),o=l(77202),d=l(65331),c=l(72919),u=l(3976),x=l(12904),m=l(7138),p=l(73913),g=l(78864),b=l(90551),h=l(59878),f=l(23480),v=l(58558),y=l(82287),j=l(54675),N=l(60210),w=l(16786),k=l(37255);let C=(0,n.default)(()=>Promise.all([l.e(3616),l.e(9569)]).then(l.bind(l,98655)),{loadableGenerated:{webpack:()=>[98655]},ssr:!1});function S(){try{return crypto.randomUUID()}catch(e){return"b-"+Math.random().toString(36).slice(2,10)}}function A(e){let t={...e.props,id:S()};for(let e of Object.keys(t)){let l=t[e];Array.isArray(l)&&(t[e]=l.map(e=>Array.isArray(e)?e.map(e=>A(e)):e&&"object"==typeof e&&"type"in e?A(e):e))}return{type:e.type,props:t}}let L="cms-block-clipboard";function P(){try{let e=localStorage.getItem(L);return e?JSON.parse(e):null}catch(e){return null}}function I(e){let{items:t,onChange:l,keyboard:n=!1,presets:f}=e,[v,y]=(0,a.useState)(null),[j,N]=(0,a.useState)([]),[k,I]=(0,a.useState)([]),[T,D]=(0,a.useState)(null),[E,M]=(0,a.useState)(null),[R,F]=(0,a.useState)(null),[H,z]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=()=>z(!!P());return e(),window.addEventListener("cms-clip",e),window.addEventListener("storage",e),()=>{window.removeEventListener("cms-clip",e),window.removeEventListener("storage",e)}},[]);let[q,O]=(0,a.useState)([]),[W,U]=(0,a.useState)(!1),[G,$]=(0,a.useState)(""),[V,Q]=(0,a.useState)(null);(0,a.useEffect)(()=>{n&&fetch("/api/cms/saved-blocks",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(e=>{Array.isArray(null==e?void 0:e.items)&&O(e.items)}).catch(()=>{})},[n]);let Y=e=>{O(e),fetch("/api/cms/saved-blocks",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:e})}).catch(()=>{})},[J,Z]=(0,a.useState)([]);(0,a.useEffect)(()=>{f||fetch("/api/cms/theme",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(e=>{(null==e?void 0:e.presets)&&Z(e.presets)}).catch(()=>{})},[f]);let X=null!=f?f:J,K=(0,a.useCallback)(e=>{N(e=>[...e.slice(-49),t]),I([]),l(e)},[t,l]),ee=(0,a.useCallback)(()=>{N(e=>
1e.length?(I(e=>[t,...e].slice(0,50)),l(e[e.length-1]),e.slice(0,-1)):e)},[t,l]),et=(0,a.useCallback)(()=>{I(e=>e.length?(N(e=>[...e.slice(-49),t]),l(e[0]),e.slice(1)):e)},[t,l]);(0,a.useEffect)(()=>{if(!n)return;let e=e=>{if(!(()=>{let e=document.activeElement;return!!e&&("INPUT"===e.tagName||"TEXTAREA"===e.tagName||e.isContentEditable)})()&&(e.metaKey||e.ctrlKey)){let t=e.key.toLowerCase();"z"!==t||e.shiftKey?"z"===t&&e.shiftKey||"y"===t?(e.preventDefault(),et()):"d"===t&&null!=v&&(e.preventDefault(),ea(v)):(e.preventDefault(),ee())}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[n,ee,et,v,t]);let el=()=>null!=V?V:null!=v&&v<t.length?v+1:t.length,er=(e,l)=>{let r=w.$W.components[l];if(!r)return;let a={type:l,props:{...r.defaultProps,id:S()}};K([...t.slice(0,e),a,...t.slice(e)]),y(e),Q(null)},ea=e=>{K([...t.slice(0,e+1),A(t[e]),...t.slice(e+1)]),y(e+1)},en=(e,l)=>{let r=e+l;if(r<0||r>=t.length)return;let a=[...t];[a[e],a[r]]=[a[r],a[e]],K(a),y(r)},es=(e,l,r)=>K(t.map((t,a)=>a===e?{...t,props:{...t.props,[l]:r}}:t)),ei=(0,a.useCallback)((e,l)=>{if(e===l||e===l-1)return;let r=[...t],[a]=r.splice(e,1);r.splice(l>e?l-1:l,0,a),K(r),y(l>e?l-1:l)},[t,K]),eo=e=>(0,r.jsxs)("li",{className:"list-none",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>Q(V===e?null:e),"aria-label":"Insert block here",className:"group/g w-full flex items-center gap-1 h-3 "+(V===e?"opacity-100":"opacity-0 hover:opacity-100 focus:opacity-100"),children:[(0,r.jsx)("span",{className:"h-px flex-1 bg-brand-gold/30"}),(0,r.jsx)(s.A,{className:"h-3 w-3 text-brand-gold"}),(0,r.jsx)("span",{className:"h-px flex-1 bg-brand-gold/30"})]}),V===e&&(0,r.jsx)("div",{className:"grid grid-cols-2 gap-1 p-1.5 mt-1 rounded-lg border border-brand-gold/30 bg-card",children:w.Nw.filter(e=>{var t;return((null==(t=w.$W.components[e])?void 0:t.label)||e).toLowerCase().includes(G.trim().toLowerCase())}).map(t=>{var l;return(0,r.jsxs)("button",{type:"button",onClick:()=>er(e,t),className:"inline-flex items-center gap-1 rounded-md border border-brand-gold/15 px-2 py-1.5 text-[11px] text-foreground hover:bg-card hover:border-brand-gold/40",children:[(0,r.jsx)(s.A,{className:"h-3 w-3 text-brand-gold/70 shrink-0"}),(0,r.jsx)("span",{className:"truncate",children:(null==(l=w.$W.components[t])?void 0:l.label)||t})]},t)})})]},"gap-"+e);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 mb-2",children:[(0,r.jsx)("button",{onClick:ee,disabled:!j.length,"aria-label":"Undo",className:"inline-flex items-center justify-center h-7 w-7 rounded-lg text-foreground/60 hover:text-brand-gold hover:bg-card disabled:opacity-30 transition-colors",children:(0,r.jsx)(i.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("button",{onClick:et,disabled:!k.length,"aria-label":"Redo",className:"inline-flex items-center justify-center h-7 w-7 rounded-lg text-foreground/60 hover:text-brand-gold hover:bg-card disabled:opacity-30 transition-colors",children:(0,r.jsx)(o.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,r.jsxs)("p",{className:"text-[10px] uppercase tracking-wider text-foreground/40",children:["Add block",null!=v&&v<t.length?(0,r.jsxs)("span",{className:"text-foreground/30 normal-case",children:[" \xb7 after #",v+1]}):null]}),H&&(0,r.jsxs)("button",{onClick:()=>{let e=P();if(!e)return;let l=el();K([...t.slice(0,l),A(e),...t.slice(l)]),y(l),Q(null)},title:"Paste copied block",className:"inline-flex items-center gap-1 rounded-md border border-brand-gold/30 px-2 py-1 text-[10px] text-brand-gold hover:bg-card",children:[(0,r.jsx)(d.A,{className:"h-3 w-3"})," Paste"]})]}),w.Nw.length>8&&(0,r.jsx)("input",{value:G,onChange:e=>$(e.target.value),placeholder:"Search blocks…",className:"w-full mb-2 bg-card border border-brand-gold/20 rounded-lg px-2.5 py-1.5 text-xs text-foreground outline-none focus:border-brand-gold/50"}),(0,r.jsx)("div",{className:"grid grid-cols-2 gap-1.5 mb-4",children:w.Nw.filter(e=>{var t;return((null==(t=w.$W.components[e])?void 0:t.label)||e).toLowerCase().includes(G.trim().toLowerCase())}).map(e=>{var t;return(0,r.jsxs)("button",{onClick:()=>er(el(),e),className:"inline-flex items-center gap-1.5 rounded-lg border border-brand-gold/20 px-2.5 py-2 text-xs text-foreground hover:bg-card hover:border-brand-gold/40 transition-colors",children:[(0,r.jsx)(s.A,{className:"h-3.5 w-3.5 text-brand-gold/70 shrink-0"})," ",(0,r.jsx)("span",{className:"truncate",children:(null==(t=w.$W.components[e])?void 0:t.label)||e})]},e)})}),n&&q.length>0&&(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsxs)("button",{onClick:()=>U(e=>!e),className:"w-full flex items-center justify-between text-[10px] uppercase tracking-wider text-foreground
1/40 hover:text-brand-gold mb-2",children:[(0,r.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,r.jsx)(c.A,{className:"h-3 w-3"})," Saved sections (",q.length,")"]}),(0,r.jsx)("span",{children:W?"▾":"▸"})]}),W&&(0,r.jsx)("ul",{className:"space-y-1",children:q.map(e=>(0,r.jsxs)("li",{className:"flex items-center gap-1 rounded-lg border border-brand-gold/15 bg-background px-2 py-1.5",children:[(0,r.jsx)("button",{onClick:()=>(e=>{let l=el();K([...t.slice(0,l),A(e),...t.slice(l)]),y(l),Q(null)})(e.block),className:"flex-1 text-left text-xs text-foreground truncate hover:text-brand-gold",title:"Insert this saved section",children:e.name}),(0,r.jsx)("button",{onClick:()=>{let t;return t=e.id,Y(q.filter(e=>e.id!==t))},"aria-label":"Delete saved section",className:"p-1 text-foreground/40 hover:text-red-300",children:(0,r.jsx)(u.A,{className:"h-3.5 w-3.5"})})]},e.id))})]}),(0,r.jsx)("p",{className:"text-[10px] uppercase tracking-wider text-foreground/40 mb-2",children:"Blocks"}),0===t.length&&(0,r.jsx)("p",{className:"text-foreground/40 text-xs py-4 text-center",children:"No blocks yet - add one above."}),(0,r.jsxs)("ul",{className:"space-y-1.5",children:[t.map((e,l)=>{let a=w.$W.components[e.type],s=v===l;return[eo(l),(0,r.jsx)("li",{onDragOver:e=>{null!==T&&(e.preventDefault(),M(l))},onDrop:e=>{e.preventDefault(),null!==T&&ei(T,l),D(null),M(null)},className:"relative "+(E===l&&null!==T?"before:content-[''] before:absolute before:-top-0.5 before:left-0 before:right-0 before:h-0.5 before:bg-brand-gold before:rounded-full":""),children:(0,r.jsxs)("div",{className:"rounded-lg border transition-colors "+(s?"border-brand-gold/50 bg-card":"border-brand-gold/10 bg-background")+(T===l?" opacity-40":""),children:[(0,r.jsxs)("div",{className:"flex items-center gap-1 px-2 py-1.5",children:[(0,r.jsx)("span",{draggable:!0,onDragStart:e=>{D(l),e.dataTransfer.effectAllowed="move"},onDragEnd:()=>{D(null),M(null)},"aria-label":"Drag to reorder",className:"cursor-grab active:cursor-grabbing text-foreground/30 hover:text-brand-gold shrink-0",children:(0,r.jsx)(x.A,{className:"h-4 w-4"})}),(0,r.jsx)("button",{onClick:()=>y(s?null:l),className:"flex-1 text-left text-xs text-foreground truncate",children:(null==a?void 0:a.label)||e.type}),(0,r.jsx)("button",{onClick:()=>en(l,-1),disabled:0===l,"aria-label":"Move up",className:"p-1 text-foreground/40 hover:text-brand-gold disabled:opacity-25",children:(0,r.jsx)(m.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("button",{onClick:()=>en(l,1),disabled:l===t.length-1,"aria-label":"Move down",className:"p-1 text-foreground/40 hover:text-brand-gold disabled:opacity-25",children:(0,r.jsx)(p.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("button",{onClick:()=>ea(l),"aria-label":"Duplicate",className:"p-1 text-foreground/40 hover:text-brand-gold",children:(0,r.jsx)(g.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("button",{onClick:()=>(e=>{var l=t[e];try{localStorage.setItem(L,JSON.stringify(l)),window.dispatchEvent(new Event("cms-clip"))}catch(e){}z(!0)})(l),"aria-label":"Copy to clipboard",title:"Copy (paste on any page)",className:"p-1 text-foreground/40 hover:text-brand-gold",children:(0,r.jsx)(b.A,{className:"h-3.5 w-3.5"})}),n&&(0,r.jsx)("button",{onClick:()=>(e=>{let l=window.prompt("Name this saved section")||"";l.trim()&&Y([...q,{id:S(),name:l.trim().slice(0,60),block:A(t[e])}])})(l),"aria-label":"Save as reusable section",title:"Save to your reusable sections",className:"p-1 text-foreground/40 hover:text-brand-gold",children:(0,r.jsx)(h.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("button",{onClick:()=>{K(t.filter((e,t)=>t!==l)),y(null)},"aria-label":"Delete",className:"p-1 text-foreground/40 hover:text-red-300",children:(0,r.jsx)(u.A,{className:"h-3.5 w-3.5"})})]}),s&&a&&(0,r.jsxs)("div",{className:"px-2.5 pb-2.5 pt-1 space-y-2.5 border-t border-brand-gold/10",children:[Object.entries(a.fields).map(t=>{let[a,n]=t;return(0,r.jsx)(B,{name:a,field:n,value:e.props[a],presets:X,onChange:e=>es(l,a,e),onPickImage:()=>F({idx:l,field:a})},a)}),0===Object.keys(a.fields).length&&(0,r.jsx)("p",{className:"text-foreground
1/40 text-[11px]",children:"This block has no content options."}),(0,r.jsx)(_,{value:e.props._style,onChange:e=>es(l,"_style",e),onPickImage:()=>F({idx:l,field:"__style_bg__"})})]})]})},e.props.id||l)]}),eo(t.length),null!==T&&t.length>0&&(0,r.jsx)("li",{onDragOver:e=>{e.preventDefault(),M(t.length)},onDrop:e=>{e.preventDefault(),null!==T&&ei(T,t.length),D(null),M(null)},className:"h-6 rounded-lg border border-dashed transition-colors "+(E===t.length?"border-brand-gold bg-brand-gold/10":"border-brand-gold/15")})]}),R&&(0,r.jsx)(C,{open:!0,onClose:()=>F(null),onSelect:e=>{if("__style_bg__"===R.field){let l=t[R.idx].props._style||{};es(R.idx,"_style",{...l,bgImage:e})}else es(R.idx,R.field,e);F(null)}})]})}function B(e){let{name:t,field:l,value:a,onChange:n,onPickImage:s,presets:i=[]}=e,o=l.label||t.replace(/([A-Z])/g," $1").replace(/^./,e=>e.toUpperCase()),d="w-full bg-card border border-brand-gold/20 rounded-lg px-2.5 py-1.5 text-xs text-foreground outline-none focus:border-brand-gold/50";return(0,r.jsxs)("label",{className:"block",children:[(0,r.jsx)("span",{className:"block text-[10px] uppercase tracking-wide text-foreground/40 mb-1",children:o}),"preset"===l.type?(0,r.jsxs)("select",{value:String(null!=a?a:""),onChange:e=>n(e.target.value),className:d,children:[(0,r.jsx)("option",{value:"",children:"Default (Theme)"}),i.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]}):"richtext"===l.type?(0,r.jsx)(q,{value:String(null!=a?a:""),onChange:n}
1):"columns"===l.type?(0,r.jsx)(T,{value:a,onChange:n,presets:i}):"blocks"===l.type?(0,r.jsx)("div",{className:"rounded-lg border border-brand-gold/15 bg-background p-2",children:(0,r.jsx)(I,{items:Array.isArray(a)?a:[],onChange:n,presets:i})}):"textarea"===l.type?(0,r.jsx)("textarea",{value:String(null!=a?a:""),onChange:e=>n(e.target.value),rows:3,className:d+" resize-y"}):"select"===l.type?(0,r.jsx)("select",{value:String(null!=a?a:""),onChange:e=>n(e.target.value),className:d,children:l.options.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}):"image"===l.type?(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("input",{value:String(null!=a?a:""),onChange:e=>n(e.target.value),placeholder:"Image URL",className:d}),(0,r.jsx)("button",{type:"button",onClick:s,"aria-label":"Pick from media library",className:"shrink-0 inline-flex items-center justify-center h-[30px] w-9 rounded-lg border border-brand-gold/20 text-brand-gold/80 hover:bg-card",children:(0,r.jsx)(f.A,{className:"h-4 w-4"})})]}):(0,r.jsx)("input",{value:String(null!=a?a:""),onChange:e=>n(e.target.value),className:d})]})}function T(e){let{value:t,onChange:l,presets:a}=e,n=Array.isArray(t)&&t.length?t:[[],[]];return(0,r.jsxs)("div",{className:"space-y-2",children:[n.map((e,t)=>(0,r.jsxs)("div",{className:"rounded-lg border border-brand-gold/15 bg-background p-2",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,r.jsxs)("span",{className:"text-[10px] uppercase tracking-wide text-foreground/40",children:["Column ",t+1]}),n.length>1&&(0,r.jsx)("button",{type:"button",onClick:()=>l(n.filter((e,l)=>l!==t)),"aria-label":"Remove column",className:"text-foreground/40 hover:text-red-300",children:(0,r.jsx)(u.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)(I,{items:Array.isArray(e)?e:[],onChange:e=>l(n.map((l,r)=>r===t?e:l)),presets:a})]},t)),n.length<4&&(0,r.jsxs)("button",{type:"button",onClick:()=>l([...n,[]]),className:"w-full inline-flex items-center justify-center gap-1.5 rounded-lg border border-dashed border-brand-gold/25 px-2.5 py-1.5 text-xs text-foreground/70 hover:bg-card hover:border-brand-gold/40 transition-colors",children:[(0,r.jsx)(s.A,{className:"h-3.5 w-3.5"})," Add column"]})]})}let D=[["","-"],["sm","S"],["md","M"],["lg","L"],["xl","XL"]],E=[["","-"],["sm","S"],["md","M"],["lg","L"],["xl","XL"],["full","Full"]],M=[["","-"],["narrow","Narrow"],["normal","Normal"],["wide","Wide"],["full","Full"]],R=[["","-"],["left","Left"],["center","Center"],["right","Right"]],F=[["","None"],["fade","Fade in"],["up","Slide up"]];function _(e){let{value:t,onChange:l,onPickImage:n}=e,[s,i]=(0,a.useState)(!1),o=t||{},d=(e,t)=>l({...o,[e]:t}),c="w-full bg-card border border-brand-gold/20 rounded-lg px-2 py-1.5 text-xs text-foreground",u=Object.values(o).some(e=>""!==e&&void 0!==e&&!1!==e);return(0,r.jsxs)("div",{className:"mt-1 border-t border-brand-gold/10 pt-2",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>i(e=>!e),className:"w-full flex items-center justify-between text-[10px] uppercase tracking-wide text-foreground/50 hover:text-brand-gold transition-colors",children:[(0,r.jsxs)("span",{children:["Style",u?" •":""]}),(0,r.jsx)("span",{children:s?"▾":"▸"})]}),s&&(0,r.jsxs)("div",{className:"mt-2 space-y-2",children:[(0,r.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,r.jsx)(z,{label:"Background",val:o.bg,onChange:e=>d("bg",e)}),(0,r.jsx)(z,{label:"Text",val:o.color,onChange:e=>d("color",e)}),(0,r.jsx)(z,{label:"Border",val:o.border,onChange:e=>d("border",e)})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"block text-[10px] uppercase tracking-wide text-foreground/40 mb-1",children:"Backgroun
1d image"}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("input",{value:o.bgImage||"",onChange:e=>d("bgImage",e.target.value),placeholder:"Image URL",className:"w-full bg-card border border-brand-gold/20 rounded-lg px-2.5 py-1.5 text-xs text-foreground outline-none focus:border-brand-gold/50"}),n&&(0,r.jsx)("button",{type:"button",onClick:n,"aria-label":"Pick from media library",className:"shrink-0 inline-flex items-center justify-center h-[30px] w-9 rounded-lg border border-brand-gold/20 text-brand-gold/80 hover:bg-card",children:(0,r.jsx)(f.A,{className:"h-4 w-4"})}),o.bgImage&&(0,r.jsx)("button",{type:"button",onClick:()=>d("bgImage",""),"aria-label":"Clear",className:"shrink-0 text-foreground/40 hover:text-red-300 text-sm px-1",children:"\xd7"})]})]}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,r.jsx)(H,{t:"Padding",children:(0,r.jsx)("select",{className:c,value:o.pad||"",onChange:e=>d("pad",e.target.value),children:D.map(e=>{let[t,l]=e;return(0,r.jsx)("option",{value:t,children:l},t)})})}),(0,r.jsx)(H,{t:"Radius",children:(0,r.jsx)("select",{className:c,value:o.radius||"",onChange:e=>d("radius",e.target.value),children:E.map(e=>{let[t,l]=e;return(0,r.jsx)("option",{value:t,children:l},t)})})}),(0,r.jsx)(H,{t:"Margin top",children:(0,r.jsx)("select",{className:c,value:o.mt||"",onChange:e=>d("mt",e.target.value),children:D.map(e=>{let[t,l]=e;return(0,r.jsx)("option",{value:t,children:l},t)})})}),(0,r.jsx)(H,{t:"Margin bottom",children:(0,r.jsx)("select",{className:c,value:o.mb||"",onChange:e=>d("mb",e.target.value),children:D.map(e=>{let[t,l]=e;return(0,r.jsx)("option",{value:t,children:l},t)})})}),(0,r.jsx)(H,{t:"Max width",children:(0,r.jsx)("select",{className:c,value:o.maxW||"",onChange:e=>d("maxW",e.target.value),children:M.map(e=>{let[t,l]=e;return(0,r.jsx)("option",{value:t,children:l},t)})})}),(0,r.jsx)(H,{t:"Align",children:(0,r.jsx)("select",{className:c,value:o.align||"",onChange:e=>d("align",e.target.value),children:R.map(e=>{let[t,l]=e;return(0,r.jsx)("option",{value:t,children:l},t)})})}),(0,r.jsx)(H,{t:"Animation",children:(0,r.jsx)("select",{className:c,value:o.anim||"",onChange:e=>d("anim",e.target.value),children:F.map(e=>{let[t,l]=e;return(0,r.jsx)("option",{value:t,children:l},t)})})})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1.5",children:[(0,r.jsxs)("label",{className:"flex items-center gap-1.5 text-[11px] text-foreground/70",children:[(0,r.jsx)("input",{type:"checkbox",checked:!!o.shadow,onChange:e=>d("shadow",e.target.checked)})," Shadow"]}),(0,r.jsxs)("label",{className:"flex items-center gap-1.5 text-[11px] text-foreground/70",children:[(0,r.jsx)("input",{type:"checkbox",checked:!!o.hideMobile,onChange:e=>d("hideMobile",e.target.checked)})," Hide on mobile"]}),(0,r.jsxs)("label",{className:"flex items-center gap-1.5 text-[11px] text-foreground/70",children:[(0,r.jsx)("input",{type:"checkbox",checked:!!o.hideDesktop,onChange:e=>d("hideDesktop",e.target.checked)})," Hide on desktop"]}),u&&(0,r.jsx)("button",{type:"button",onClick:()=>l({}),className:"ml-auto text-[11px] text-foreground/40 hover:text-red-300",children:"Clear styles"})]})]})]})}function H(e){let{t,children:l}=e;return(0,r.jsxs)("label",{className:"block",children:[(0,r.jsx)("span",{className:"block text-[10px] uppercase tracking-wide text-foreground/40 mb-1",children:t}),l]})}function z(e){let{label:t,val:l,onChange:a}=e;return(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"block text-[10px] uppercase tracking-wide text-foreground/40 mb-1",children:t}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("input",{type:"color",value:/^#/.test(l||"")?l:"#888888",onChange:e=>a(e.target.value),className:"h-7 w-8 bg-transparent rounded cursor-pointer"}),l?(0,r.jsx)("button",{type:"button",onClick:()=>a(""),title:"Clear",className:"text-[11px] text-foreground/40 hover:text-red-300",children:"\xd7"}):(0,r.jsx)("span",{className:"text-[9px] text-foreground/30",children:"auto"})]})]})}function q(e){let{value:t,onChange:l}=e,n=(0,a.useRef)(null);(0,a.useEffect)(()=>{n.current&&(n.current.innerHTML=(0,k.z)(t||""))},[]);let s=()=>{n.current&&l((0,k.z)(n.current.innerHTML))},i=e=>e.preventDefault(),o=e=>{try{document.execCommand("styleWithCSS",!1,"false"),document.execCommand(e)}catch(e){}s()},d="inline-flex items-center justify-center h-7 w-7 rounded-md text-foreground
1/70 hover:text-brand-gold hover:bg-card transition-colors";return(0,r.jsxs)("div",{className:"rounded-lg border border-brand-gold/20 bg-card overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center gap-0.5 px-1 py-1 border-b border-brand-gold/10",children:[(0,r.jsx)("button",{type:"button",onPointerDown:i,onClick:()=>o("bold"),className:d,"aria-label":"Bold",children:(0,r.jsx)(v.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("button",{type:"button",onPointerDown:i,onClick:()=>o("italic"),className:d,"aria-label":"Italic",children:(0,r.jsx)(y.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("button",{type:"button",onPointerDown:i,onClick:()=>o("underline"),className:d,"aria-label":"Underline",children:(0,r.jsx)(j.A,{className:"h-3.5 w-3.5"})}),(0,r.jsx)("button",{type:"button",onPointerDown:i,onClick:()=>{let e=window.prompt("Link URL (https:// or mailto:)","https://")||"";if(/^(https?:|mailto:)/i.test(e.trim()))try{document.execCommand("createLink",!1,e.trim())}catch(e){}s()},className:d,"aria-label":"Add link",children:(0,r.jsx)(N.A,{className:"h-3.5 w-3.5"})})]}),(0,r.jsx)("div",{ref:n,contentEditable:!0,suppressContentEditableWarning:!0,onInput:s,onBlur:s,className:"px-2.5 py-1.5 text-xs text-foreground min-h-[60px] outline-none leading-relaxed [&_a]:text-brand-gold [&_a]:underline"})]})}},68281:(e,t,l)=>{l.d(t,{v:()=>d});var r=l(95104),a=l(1e3),n=l(49543),s=l(26250),i=l(23131),o=l(93453);function d(e){let{review:t,className:l}=e,d=(0,s.c)("Services"),c=(0,s.c)("Common"),u=(0,i.Ym)(),x=new Date(t.date).toLocaleDateString(u,{year:"numeric",month:"short"});return(0,r.jsxs)("div",{className:"group bg-muted/50 border border-brand-gold/10 p-8 flex flex-col justify-between hover:border-brand-gold/30 hover:bg-card transition-all duration-500 ".concat(l),children:[(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{className:"flex justify-between items-start",children:[(0,r.jsx)("div",{className:"flex text-brand-gold gap-1",children:[void 0,void 0,void 0,void 0,void 0].map((e,l)=>(0,r.jsx)(n.A,{className:"w-4 h-4 ".concat(l<t.rating?"fill-current":"opacity-30")},l))}),(0,r.jsx)("div",{className:"flex flex-wrap gap-2 justify-end",children:t.service.split(",").slice(0,2).map((e,t)=>{let l=e.trim(),n=d.has("names.".concat(l))?d("names.".concat(l)):"Beauty Services"===l?c("beautyServices"):l;return(0,r.jsx)(a.L,{variant:"subtext",as:"span",className:"text-brand-gold/60 text-[10px] bg-brand-gold/10 px-2 py-1",children:n},t)})})]}),t.text&&(0,r.jsx)(a.L,{variant:"subtext",as:"div",className:"text-foreground/80 leading-relaxed font-light",children:(0,r.jsx)(o.MarkdownRenderer,{content:t.text})})]}),(0,r.jsxs)("div",{className:"mt-8 flex items-center justify-between border-t border-brand-gold/10 pt-6",children:[(0,r.jsx)(a.L,{variant:"label",as:"span",className:"text-foreground group-hover:text-foreground transition-colors duration-500",children:t.author}),(0,r.jsx)(a.L,{variant:"label",className:"text-foreground/40 group-hover:text-foreground/60 transition-colors duration-500",children:x})]})]})}},81108:(e,t,l)=>{l.d(t,{default:()=>s});var r=l(95104),a=l(39044),n=l(68281);function s(e){let{eyebrow:t,title:l,subtitle:s,align:i="center",count:o=3,sort:d="newest",minRating:c=0}=e,u=(0,a.v)(),x=Math.max(1,Math.min(12,Math.floor(Number(o)||3))),m=Number(c)||0,p=u.filter(e=>e.rating>=m).slice().sort((e,t)=>"highest"===d&&t.rating-e.rating||new Date(t.date).getTime()-new Date(e.date).getTime()).slice(0,x),g=u.length?u.reduce((e,t)=>e+t.rating,0)/u.length:5;return(0,r.jsxs)("section",{className:"w-full py-16",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 mb-14 ".concat("left"===i?"items-start text-left":"items-center text-center"),children:[t?(0,r.jsx)("span",{className:"text-brand-gold text-xs case-label tracking-[0.2em]",children:t}):null,l?(0,r.jsx)("h2",{className:"font-heading text-2xl sm:text-4xl text-foreground leading-tight",children:l}):null,s?(0,r.jsx)("p",{className:"text-foreground/60 max-w-2xl text-sm sm:text-base",children:s}):null,(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-2",children:[(0,r.jsx)("span",{className:"font-heading text-xl text-foreground",children:g.toFixed(1)}),(0,r.jsx)("span",{className:"inline-flex gap-0.5 text-brand-gold text-lg","aria-label":"".concat(g.toFixed(1)," out of 5"),children:[0,1,2,3,4].map(e=>(0,r.jsx)("span",{className:e<Math.round(g)?"":"text-brand-gold/25",children:"★"},e))})]})]}),p.length?(0,r.jsx)("div",{className:"grid gap-8 [grid-template-columns:repeat(auto-fit,minmax(260px,1fr))]",children:p.map(e=>(0,r.jsx)(n.v,{review:e,className:"bg-background"},e.id))}
1):(0,r.jsx)("p",{className:"text-center text-foreground/40 text-sm",children:"No reviews to show yet."})]})}},92753:(e,t,l)=>{l.d(t,{I4:()=>u,Ix:()=>x,SO:()=>a,Tr:()=>d,m:()=>c,rn:()=>n});let r={bg:"#C6A15B",fg:"#0b0b0b",border:"",radius:"full",size:"lg"},a="primary",n=[{id:"primary",name:"Primary",bg:"#C6A15B",fg:"#0b0b0b",border:"",radius:"full",size:"lg"},{id:"outline",name:"Outline",bg:"transparent",fg:"#C6A15B",border:"#C6A15B",radius:"full",size:"lg"},{id:"dark",name:"Dark",bg:"#161310",fg:"#EDE6D6",border:"#C6A15B",radius:"md",size:"lg"}],s={none:"0px",md:"8px",lg:"14px",full:"9999px"},i={sm:"px-5 h-10 text-sm",md:"px-8 h-12 text-sm",lg:"px-10 h-14 text-base"},o=/^#[0-9a-fA-F]{3,8}$/;function d(e){let t=(e,t)=>"transparent"===e||e&&o.test(e)?e:t;return{bg:t(null==e?void 0:e.bg,r.bg),fg:t(null==e?void 0:e.fg,r.fg),border:(null==e?void 0:e.border)===""?"":t(null==e?void 0:e.border,""),radius:["none","md","lg","full"].includes(null==e?void 0:e.radius)?e.radius:r.radius,size:["sm","md","lg"].includes(null==e?void 0:e.size)?e.size:r.size}}function c(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a;if(null==e?void 0:e.custom)return d(e.custom);let n=(null==e?void 0:e.preset)||l,s=t.find(e=>e.id===n)||t[0];return s?d(s):r}function u(e){return{backgroundColor:e.bg,color:e.fg,border:e.border?"1px solid ".concat(e.border):"1px solid transparent",borderRadius:s[e.radius]||s.full}}function x(e){return i[e.size]||i.lg}},96204:(e,t,l)=>{l.d(t,{s:()=>s});var r=l(95104),a=l(55404),n=l(16786);function s(e){let{data:t,presets:l}=e,s=(null==t?void 0:t.content)||[];if(!Array.isArray(s)||0===s.length)return null;let i=n.$W.components;return(0,r.jsx)(r.Fragment,{children:s.map((e,t)=>{let s=(null==e?void 0:e.type)?i[e.type]:void 0;if(!s||"function"!=typeof s.render)return null;try{var o;return(0,r.jsx)(a.Fragment,{children:(0,n.GR)(e.props||{},s.render({...e.props||{},_presets:l}))},(null==e||null==(o=e.props)?void 0:o.id)||t)}catch(e){return null}})})}}}]);

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.