var __gh = require("react").createElement, __gf = require("react").Fragment; var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var stdin_exports={};__export(stdin_exports,{default:()=>stdin_default});module.exports=__toCommonJS(stdin_exports);var import_react3=__toESM(require("react"));var import_react=__toESM(require("react")),CP_TO_CITY={"01":"Vitoria-Gasteiz","02":"Albacete","03":"Alicante","04":"Almer\xEDa","05":"\xC1vila","06":"Badajoz","07":"Palma de Mallorca","08":"Barcelona","09":"Burgos",10:"C\xE1ceres",11:"C\xE1diz",12:"Castell\xF3n",13:"Ciudad Real",14:"C\xF3rdoba",15:"A Coru\xF1a",16:"Cuenca",17:"Girona",18:"Granada",19:"Guadalajara",20:"San Sebasti\xE1n",21:"Huelva",22:"Huesca",23:"Ja\xE9n",24:"Le\xF3n",25:"Lleida",26:"Logro\xF1o",27:"Lugo",28:"Madrid",29:"M\xE1laga",30:"Murcia",31:"Pamplona",32:"Ourense",33:"Oviedo",34:"Palencia",35:"Las Palmas",36:"Pontevedra",37:"Salamanca",38:"Santa Cruz de Tenerife",39:"Santander",40:"Segovia",41:"Sevilla",42:"Soria",43:"Tarragona",44:"Teruel",45:"Toledo",46:"Valencia",47:"Valladolid",48:"Bilbao",49:"Zamora",50:"Zaragoza",51:"Ceuta",52:"Melilla"};function cityFromCP(cp){let c=String(cp||"").replace(/\s/g,"");return/^\d{5}$/.test(c)?CP_TO_CITY[c.slice(0,2)]??null:null}var s=v=>v==null?"":String(v);function authErrorMessage(code,tr2){switch(code){case"EMAIL_EXISTS":return tr2("Ese email ya est\xE1 registrado");case"INVALID_CREDENTIALS":return tr2("Email o contrase\xF1a incorrectos");case"PASSWORD_TOO_SHORT":return tr2("La contrase\xF1a debe tener al menos 6 caracteres");case"NO_PASSWORD_SET":return tr2("Esta cuenta no tiene contrase\xF1a. Pide ayuda para restablecerla.");case"INVALID_EMAIL":return tr2("Email inv\xE1lido");case"NOMBRE_REQUIRED":return tr2("El nombre es obligatorio");default:return"Error: "+(code||tr2("No se pudo completar la autenticaci\xF3n"))}}function EcomAuthModal({open,initialMode="login",onClose,onAuthed,gufi,tr:tr2,notify,collectAddress=!1,enableMagic=!1,storeLogo,onOpenLegal,minPassword=8,ctokenKey="gufi_sf_ctoken"}){let[mode,setMode]=(0,import_react.useState)(initialMode),[busy,setBusy]=(0,import_react.useState)(!1),[error,setError]=(0,import_react.useState)(""),[magicSent,setMagicSent]=(0,import_react.useState)(""),[cpCity,setCpCity]=(0,import_react.useState)("");import_react.default.useEffect(()=>{open&&(setMode(initialMode),setError(""),setMagicSent(""),setCpCity(""))},[open,initialMode]);let resolveCid=()=>s(gufi?.context?.activeCompany?.id)||s(gufi?.context?.activeCompany?.company_id)||s(gufi?.siteInfo?.company_id)||typeof window<"u"&&window.location.pathname.match(/\/(?:app\/)?(\d+)\//)?.[1]||"",callAuto=async(name,input)=>{let cid=resolveCid();if(!cid)throw new Error("No companyId for auth call");let ctoken="";try{ctoken=localStorage.getItem(ctokenKey)||""}catch{}let resp=await fetch(`/api/public/${cid}/automation/${name}`,{method:"POST",headers:{"Content-Type":"application/json",...ctoken?{"x-gufi-ctoken":ctoken}:{}},body:JSON.stringify(input)}),json=null;try{json=await resp.json()}catch{}if(!resp.ok)throw new Error(json?.error||`HTTP ${resp.status}`);return json?.result??json},exchangeSession=async token=>{let slug=s(gufi?.siteInfo?.slug);if(!slug||!token)return;let res=await fetch(`/s/auth/${encodeURIComponent(slug)}/token-session`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token})});if(!res.ok){console.warn("[auth] canje de sesi\xF3n fall\xF3:",res.status);return}let data=await res.json().catch(()=>null);if(data?.ctoken)try{localStorage.setItem(ctokenKey,String(data.ctoken))}catch{}},switchMode=m=>{setMode(m),setError(""),setMagicSent("")},requestMagic=async email=>{if(!email){setError(tr2("Email obligatorio"));return}setError(""),setBusy(!0);try{let r=await callAuto("send_magic_link_email",{email});if(r?.ok===!1)throw new Error(r?.error||"MAGIC_FAILED");setMagicSent(email)}catch(err){setError(err?.message||tr2("No se pudo enviar el enlace"))}finally{setBusy(!1)}},handleSubmit=async e=>{if(e.preventDefault(),busy)return;let fd=new FormData(e.currentTarget),email=s(fd.get("email")).toLowerCase();if(mode==="magic"){await requestMagic(email);return}let password=s(fd.get("password")),nombre=s(fd.get("nombre")||email.split("@")[0]),acepta_marketing=fd.get("acepta_marketing")==="on",telefonoAlta=s(fd.get("telefono")).replace(/[\s\-.]/g,""),prefijoAlta=s(fd.get("telefono_prefijo")||"+34"),apellidosAlta=s(fd.get("apellidos")).trim(),cpAlta=s(fd.get("cp")).replace(/\D/g,"").slice(0,5),notasAlta=s(fd.get("notas")).trim(),piezasAlta=collectAddress?{numero_envio:s(fd.get("numero")),bloque_envio:s(fd.get("portal")),piso_envio:s(fd.get("piso")),puerta_envio:s(fd.get("puerta"))}:{},calle=s(fd.get("calle")),direccionAlta=collectAddress?[[calle,piezasAlta.numero_envio,piezasAlta.bloque_envio,piezasAlta.piso_envio,piezasAlta.puerta_envio].filter(Boolean).join(" "),[cpAlta,cityFromCP(cpAlta)].filter(Boolean).join(" ")].filter(Boolean).join(", "):"";if(!email||!password){setError(tr2("Email y contrase\xF1a obligatorios"));return}if(mode==="register"){if(password.lengthnull);if(chk?.exists===!0&&chk?.hasPassword===!1){setError(""),setMode("magic"),await requestMagic(email);return}}let msg=authErrorMessage(code,tr2);setError(msg),notify(msg)}finally{setBusy(!1)}},title=tr2(mode==="login"?"Bienvenido":mode==="magic"?"Entrar sin contrase\xF1a":"Crear cuenta"),sub=tr2(mode==="login"?"Accede a tu cuenta para ver tus pedidos y guardar tus datos.":mode==="magic"?"Te enviamos un enlace a tu email. Un clic y est\xE1s dentro \u2014 sin recordar nada.":"\xDAnete para disfrutar de env\xEDos m\xE1s r\xE1pidos y seguimiento de pedidos.");return __gh("div",{className:`AM ${open?"o":""}`,onClick:onClose,"data-gufi-src":"components/EcomAuthModal.tsx:237"},__gh("div",{className:`AM-box ${mode==="register"&&collectAddress?"ancho":""}`,onClick:e=>e.stopPropagation(),"data-gufi-src":"components/EcomAuthModal.tsx:238"},__gh("button",{type:"button",className:"xc",onClick:onClose,"aria-label":tr2("Cerrar"),"data-gufi-src":"components/EcomAuthModal.tsx:239"},"\u2715"),storeLogo&&__gh("div",{style:{textAlign:"center",marginBottom:8},"data-gufi-src":"components/EcomAuthModal.tsx:240"},__gh("img",{src:storeLogo,alt:"",style:{height:40,objectFit:"contain"},"data-gufi-src":"components/EcomAuthModal.tsx:240"})),__gh("h2",{"data-gufi-src":"components/EcomAuthModal.tsx:241"},title),__gh("p",{"data-gufi-src":"components/EcomAuthModal.tsx:242"},sub),mode==="magic"&&magicSent?__gh("div",{style:{marginTop:8},"data-gufi-src":"components/EcomAuthModal.tsx:245"},__gh("p",{style:{fontSize:14},"data-gufi-src":"components/EcomAuthModal.tsx:246"},tr2("Te hemos enviado un enlace a")," ",__gh("b",{"data-gufi-src":"components/EcomAuthModal.tsx:246"},magicSent),"."),__gh("button",{type:"button",className:"fb",style:{marginTop:12},onClick:()=>switchMode("login"),"data-gufi-src":"components/EcomAuthModal.tsx:247"},tr2("Volver"))):__gh("form",{onSubmit:handleSubmit,"data-gufi-src":"components/EcomAuthModal.tsx:250"},__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:251"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:251"},tr2("Email")),__gh("input",{name:"email",type:"email",autoComplete:"email",required:!0,placeholder:"tu@email.com","data-gufi-src":"components/EcomAuthModal.tsx:252"})),mode!=="magic"&&__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:255"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:255"},tr2("Contrase\xF1a")),__gh("input",{name:"password",type:"password",autoComplete:mode==="login"?"current-password":"new-password",required:!0,placeholder:"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",minLength:mode==="register"?minPassword:void 0,"data-gufi-src":"components/EcomAuthModal.tsx:256"})),mode==="register"&&__gh(__gf,null,__gh("div",{style:{fontSize:12,color:"var(--t3,#a1a1aa)",margin:"-4px 0 10px",lineHeight:1.4},"data-gufi-src":"components/EcomAuthModal.tsx:262"},tr2("M\xEDnimo 8 caracteres, una may\xFAscula y un n\xFAmero")),__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:263"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:263"},tr2("Repetir contrase\xF1a")),__gh("input",{name:"password2",type:"password",autoComplete:"new-password",required:!0,minLength:minPassword,placeholder:"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022","data-gufi-src":"components/EcomAuthModal.tsx:264"})),__gh("div",{style:{display:"flex",gap:10},"data-gufi-src":"components/EcomAuthModal.tsx:265"},__gh("div",{className:"fi",style:{flex:1},"data-gufi-src":"components/EcomAuthModal.tsx:266"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:266"},tr2("Nombre")),__gh("input",{name:"nombre",required:!0,autoComplete:"given-name",placeholder:tr2("Nombre"),"data-gufi-src":"components/EcomAuthModal.tsx:266"})),__gh("div",{className:"fi",style:{flex:1},"data-gufi-src":"components/EcomAuthModal.tsx:267"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:267"},tr2("Apellidos")),__gh("input",{name:"apellidos",required:!0,autoComplete:"family-name",placeholder:tr2("Apellidos"),"data-gufi-src":"components/EcomAuthModal.tsx:267"}))),__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:269"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:269"},tr2("Tel\xE9fono")),__gh("div",{style:{display:"flex",gap:8},"data-gufi-src":"components/EcomAuthModal.tsx:270"},__gh("select",{name:"telefono_prefijo",defaultValue:"+34",style:{width:88,flexShrink:0,border:"1.5px solid rgba(0,0,0,.12)",borderRadius:10,background:"#fff",font:"inherit",fontSize:14,padding:"0 8px"},"data-gufi-src":"components/EcomAuthModal.tsx:271"},__gh("option",{value:"+34","data-gufi-src":"components/EcomAuthModal.tsx:272"},"+34"),__gh("option",{value:"+33","data-gufi-src":"components/EcomAuthModal.tsx:272"},"+33"),__gh("option",{value:"+351","data-gufi-src":"components/EcomAuthModal.tsx:272"},"+351"),__gh("option",{value:"+44","data-gufi-src":"components/EcomAuthModal.tsx:272"},"+44"),__gh("option",{value:"+49","data-gufi-src":"components/EcomAuthModal.tsx:272"},"+49")),__gh("input",{name:"telefono",type:"tel",autoComplete:"tel",required:!0,placeholder:"612 345 678",style:{flex:1},"data-gufi-src":"components/EcomAuthModal.tsx:274"}))),collectAddress&&__gh(__gf,null,__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:279"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:279"},tr2("Calle")),__gh("input",{name:"calle",autoComplete:"address-line1",required:!0,placeholder:tr2("Nombre de la calle"),"data-gufi-src":"components/EcomAuthModal.tsx:279"})),__gh("div",{className:"AM-dir4","data-gufi-src":"components/EcomAuthModal.tsx:280"},__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:281"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:281"},tr2("N\xFAmero")),__gh("input",{name:"numero",placeholder:"12","data-gufi-src":"components/EcomAuthModal.tsx:281"})),__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:282"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:282"},tr2("Portal")),__gh("input",{name:"portal",placeholder:"B","data-gufi-src":"components/EcomAuthModal.tsx:282"})),__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:283"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:283"},tr2("Piso")),__gh("input",{name:"piso",placeholder:"3","data-gufi-src":"components/EcomAuthModal.tsx:283"})),__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:284"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:284"},tr2("Puerta")),__gh("input",{name:"puerta",placeholder:"A","data-gufi-src":"components/EcomAuthModal.tsx:284"}))),__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:286"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:286"},tr2("C\xF3digo postal")),__gh("input",{name:"cp",inputMode:"numeric",maxLength:5,required:!0,placeholder:"28016",onChange:e=>setCpCity(cityFromCP(e.target.value.replace(/\D/g,"").slice(0,5))||""),"data-gufi-src":"components/EcomAuthModal.tsx:287"}),cpCity&&__gh("div",{style:{fontSize:13,color:"var(--t1,#1a1a16)",marginTop:6,fontWeight:500},"data-gufi-src":"components/EcomAuthModal.tsx:289"},cpCity)),__gh("div",{className:"fi","data-gufi-src":"components/EcomAuthModal.tsx:291"},__gh("label",{"data-gufi-src":"components/EcomAuthModal.tsx:291"},tr2("Notas de direcci\xF3n")),__gh("input",{name:"notas",autoComplete:"off",placeholder:tr2("Portal, timbre, referencia de entrega\u2026"),"data-gufi-src":"components/EcomAuthModal.tsx:291"}))),__gh("div",{style:{marginTop:4},"data-gufi-src":"components/EcomAuthModal.tsx:294"},__gh("label",{style:{display:"flex",alignItems:"center",gap:8,cursor:"pointer",fontSize:12,color:"var(--t2,#52525b)",lineHeight:1.5,fontWeight:400,margin:0},"data-gufi-src":"components/EcomAuthModal.tsx:295"},__gh("input",{name:"acepta_marketing",type:"checkbox",style:{width:14,height:14,flexShrink:0,accentColor:"#0a0a0a",margin:0},"data-gufi-src":"components/EcomAuthModal.tsx:296"}),__gh("span",{style:{flex:1},"data-gufi-src":"components/EcomAuthModal.tsx:297"},tr2("Quiero recibir ofertas y novedades por email"))),onOpenLegal&&__gh("div",{style:{fontSize:12,color:"var(--t3,#a1a1aa)",marginTop:6,lineHeight:1.5},"data-gufi-src":"components/EcomAuthModal.tsx:300"},tr2("Al crear tu cuenta, aceptas nuestros")," ",__gh("button",{type:"button",onClick:()=>onOpenLegal("terms"),style:{background:"transparent",border:0,padding:0,color:"var(--t2,#52525b)",cursor:"pointer",font:"inherit",textDecoration:"underline",textUnderlineOffset:2},"data-gufi-src":"components/EcomAuthModal.tsx:302"},tr2("T\xE9rminos y Condiciones"))," ",tr2("y la")," ",__gh("button",{type:"button",onClick:()=>onOpenLegal("privacy"),style:{background:"transparent",border:0,padding:0,color:"var(--t2,#52525b)",cursor:"pointer",font:"inherit",textDecoration:"underline",textUnderlineOffset:2},"data-gufi-src":"components/EcomAuthModal.tsx:304"},tr2("Pol\xEDtica de Privacidad")),"."))),error&&__gh("div",{style:{color:"#b91c1c",fontSize:12,marginTop:8},"data-gufi-src":"components/EcomAuthModal.tsx:310"},error),__gh("button",{type:"submit",className:"fb",disabled:busy,style:{marginTop:14},"data-gufi-src":"components/EcomAuthModal.tsx:311"},busy?"\u2026":tr2(mode==="login"?"Iniciar sesi\xF3n":mode==="magic"?"Enviarme el enlace":"Crear cuenta"))),__gh("div",{className:"fl",style:{marginTop:14},"data-gufi-src":"components/EcomAuthModal.tsx:317"},mode==="login"&&__gh(__gf,null,enableMagic&&__gh("button",{type:"button",className:"fb-link",onClick:()=>switchMode("magic"),style:{background:"transparent",border:0,cursor:"pointer",font:"inherit",textDecoration:"underline",display:"block",marginBottom:6},"data-gufi-src":"components/EcomAuthModal.tsx:319"},tr2("Entrar sin contrase\xF1a")),__gh("span",{"data-gufi-src":"components/EcomAuthModal.tsx:320"},tr2("\xBFNo tienes cuenta?")," "),__gh("button",{type:"button",onClick:()=>switchMode("register"),style:{background:"transparent",border:0,cursor:"pointer",font:"inherit",fontWeight:600,textDecoration:"underline"},"data-gufi-src":"components/EcomAuthModal.tsx:321"},tr2("Crear una"))),mode==="register"&&__gh(__gf,null,__gh("span",{"data-gufi-src":"components/EcomAuthModal.tsx:324"},tr2("\xBFYa tienes cuenta?")," "),__gh("button",{type:"button",onClick:()=>switchMode("login"),style:{background:"transparent",border:0,cursor:"pointer",font:"inherit",fontWeight:600,textDecoration:"underline"},"data-gufi-src":"components/EcomAuthModal.tsx:325"},tr2("Iniciar sesi\xF3n"))),mode==="magic"&&!magicSent&&__gh("button",{type:"button",onClick:()=>switchMode("login"),style:{background:"transparent",border:0,cursor:"pointer",font:"inherit",textDecoration:"underline"},"data-gufi-src":"components/EcomAuthModal.tsx:328"},tr2("Volver")))))}var EcomAuthModal_default=EcomAuthModal;function clienteIdDePedido(user){let n=Number(user?.id);return Number.isInteger(n)&&n>0&&n<1e6?n:null}function lineaDePedido(pedidoId,item){return{pedido_id:pedidoId,producto_id:item.productId,cantidad:item.qty,precio_unitario:item.precio,subtotal:item.precio*item.qty,variante:item.size||null}}function leerApariencia(valor){return!valor||typeof valor!="object"||Array.isArray(valor)?null:valor}var HERO={compacto:"hero-compact",a_sangre:"hero-fullbleed"},REJILLA={2:"grid-2col",3:"grid-3col",4:"grid-4col",compacta:"grid-compacto"},TARJETA={minimal:"card-minimal",redondeada:"card-rounded",superpuesta:"card-overlay"},CARRITO={cajon:"cart-drawer",lateral:"cart-sticky-right"},PIE={minimo:"footer-minimal",completo:"footer-rich"};function formaDe(a){let f=a?.forma??{};return{hero:HERO[f.hero??"compacto"],grid:REJILLA[f.rejilla??"compacta"],card:TARJETA[f.tarjeta??"minimal"],cart:CARRITO[f.carrito??"cajon"],footer:PIE[f.pie??"minimo"],heroFondo:f.hero_fondo??"claro"}}var SOMBRAS={ninguna:"none",minimas:"minimal",suaves:"soft",marcadas:"sharp"},VARIABLES=["--bg","--fg","--brand","--brand-fg","--fg-muted","--bg-subtle","--border","--success","--danger","--font-sans","--font-serif","--radius-sm","--radius-md","--radius-lg","--radius-full","--space-mult","--shadow-preset","--ac","--bgd","--tl","--bgc","--bgp","--t1","--t2","--t3","--bl","--sn","--sf","--sr"];function limpiarApariencia(raiz){for(let v of VARIABLES)raiz.style.removeProperty(v)}function aplicarApariencia(raiz,a){let set=(k,v)=>{v==null||v===""||raiz.style.setProperty(k,String(v))},c=a.colores??{};set("--bg",c.fondo),set("--fg",c.texto),set("--brand",c.marca),set("--brand-fg",c.sobre_marca),set("--fg-muted",c.texto_suave),set("--bg-subtle",c.fondo_suave),set("--border",c.borde),set("--success",c.exito),set("--danger",c.error),set("--font-sans",a.letra?.texto),set("--font-serif",a.letra?.titulos);let e=a.esquinas??{};if(e.pequena!=null&&set("--radius-sm",`${e.pequena}px`),e.media!=null&&set("--radius-md",`${e.media}px`),e.grande!=null&&set("--radius-lg",`${e.grande}px`),e.completa!=null&&set("--radius-full",`${e.completa}px`),set("--space-mult",a.aire),set("--shadow-preset",a.sombras?SOMBRAS[a.sombras]:void 0),set("--ac",c.marca),set("--bgd",c.marca),set("--tl",c.sobre_marca),set("--bg",c.fondo),set("--bgc",c.fondo_suave),set("--bgp",c.fondo_suave),set("--t1",c.texto),set("--t2",c.texto_suave),set("--t3",c.texto_suave),set("--bl",c.borde),a.letra?.texto&&(set("--sn",`'${a.letra.texto}',system-ui,-apple-system,sans-serif`),a.letra.titulos||set("--sr",`'${a.letra.texto}',system-ui,-apple-system,sans-serif`)),a.letra?.titulos){let serif=`'${a.letra.titulos}',Georgia,'Times New Roman',serif`;set("--sf",serif),set("--sr",serif)}}var import_framer_motion=require("framer-motion");var import_react2=require("react"),MAX_RETRIES=2,BLANK="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",failedSrc=new Set;function RetryImg({src,alt,onError,...props}){let base=typeof src=="string"?src:"",[currentSrc,setCurrentSrc]=(0,import_react2.useState)(base&&failedSrc.has(base)?BLANK:src),retryRef=(0,import_react2.useRef)(0),handleError=e=>{if(retryRef.current{setCurrentSrc(`${base}${base.includes("?")?"&":"?"}_r=${Date.now()}`)},delay);return}base&&failedSrc.add(base),setCurrentSrc(BLANK),onError&&onError(e)};return(0,import_react2.useEffect)(()=>{retryRef.current=0,setCurrentSrc(base&&failedSrc.has(base)?BLANK:src)},[src,base]),__gh("img",{src:currentSrc,alt,onError:handleError,...props,"data-gufi-src":"components/RetryImg.tsx:47"})}var __L=(()=>{try{let v=typeof localStorage<"u"?localStorage.getItem("gufi_lang"):null;if(v==="es"||v==="en")return v}catch{}return"es"})(),__TR={"Reservar cita":"Book an appointment","Esto es lo que nos has contado":"This is what you told us","Se lo pasamos a {pro} con tu cita para que llegue sabiendo tu caso.":"We pass it on to {pro} with your booking, so they arrive knowing your case.","Pedir cita con esto":"Book with this","Antes de la sesi\xF3n":"Before your session","Cu\xE9ntale tu caso":"Tell him your case","Contar mi caso":"Tell my case","Lo que nos has contado":"What you told us","Se\xF1ala d\xF3nde te molesta":"Point to where it hurts","Se lo pasamos a {pro} con tu cita.":"We pass it on with your booking.","Pide cita":"Book now","Ver productos":"Shop products","Tipo de sesi\xF3n":"Type of session","D\xEDa y hora":"Day and time","Tus datos":"Your details","Nombre y apellidos":"Full name","Direcci\xF3n donde vas a recibir la sesi\xF3n":"Address where the session will take place","Qu\xE9 te pasa (opcional)":"What is troubling you (optional)","Pedir esta cita":"Request this appointment","Enviando\u2026":"Sending\u2026","Volver al inicio":"Back to home",D\u00EDa:"Day","Hora no disponible":"Time not available",Servicios:"Services","Qu\xE9 puede hacer por ti":"What he can do for you","Ver disponibilidad":"See availability","C\xF3mo funciona":"How it works","Pedir hora, en tres pasos":"Book in three steps","\xBFReservamos?":"Shall we book it?","Mes anterior":"Previous month","Mes siguiente":"Next month","Ya ha pasado":"Already past","Sin huecos":"Fully booked","Con parte del d\xEDa cogido":"Partly booked","Qui\xE9n te trata":"Who treats you",Acciones:"Actions",Inicio:"Home",Reservar:"Book","Volver arriba":"Back to top","Primera sesi\xF3n":"First session","si es tu primera sesi\xF3n":"if it is your first session",Online:"Online","No trabaja este d\xEDa":"Not working this day","En gris, no trabaja":"Greyed out: not working","Pago cancelado. Tu carrito se ha mantenido.":"Payment cancelled. Your cart was kept.","C\xF3digo no encontrado":"Code not found","Este cup\xF3n ya no est\xE1 activo":"This coupon is no longer active","Cup\xF3n a\xFAn no v\xE1lido":"Coupon not yet valid","Cup\xF3n caducado":"Coupon expired","Cup\xF3n agotado":"Coupon exhausted","No se pudo validar el cup\xF3n":"Could not validate coupon","Email y contrase\xF1a obligatorios":"Email and password required","La contrase\xF1a debe tener al menos 6 caracteres":"Password must be at least 6 characters","Cuenta creada":"Account created","Sesi\xF3n iniciada":"Signed in","Ese email ya est\xE1 registrado":"That email is already registered","Email o contrase\xF1a incorrectos":"Incorrect email or password","Esta cuenta no tiene contrase\xF1a. Pide ayuda para restablecerla.":"This account has no password. Ask for help to reset it.","Email inv\xE1lido":"Invalid email","El nombre es obligatorio":"Name is required","No se pudo completar la autenticaci\xF3n":"Could not complete authentication","Sesi\xF3n cerrada":"Signed out","Conectando...":"Connecting...","Error al conectar: ":"Connection error: ",Men\u00FA:"Menu",Buscar:"Search",Cuenta:"Account",Bolsa:"Bag",Cerrar:"Close","Env\xEDo gratuito a partir de ":"Free shipping over "," \xB7 Devoluciones 14 d\xEDas \xB7 Pago seguro":" \xB7 14-day returns \xB7 Secure payment",Tienda:"Shop",Novedades:"New Arrivals",Sudaderas:"Hoodies",Camisetas:"T-Shirts",Pantalones:"Pants",Abrigos:"Coats",Jerseys:"Sweaters",Polos:"Polos",Shorts:"Shorts",Accesorios:"Accessories",Calzado:"Footwear",Mujer:"Women",Hombre:"Men",Deporte:"Sport",B\u00E1sicos:"Basics","Toda la colecci\xF3n":"Shop All","Mi cuenta":"My account",Acceder:"Sign in",Categor\u00EDas:"Categories",Bienvenido:"Welcome","Crear cuenta":"Create account","Tel\xE9fono no v\xE1lido":"Invalid phone number","Las contrase\xF1as no coinciden":"Passwords do not match","M\xEDnimo 8 caracteres, una may\xFAscula y un n\xFAmero":"At least 8 characters, one uppercase letter and one number","Repetir contrase\xF1a":"Confirm password","Notas de direcci\xF3n":"Address notes","Portal, timbre, referencia de entrega\u2026":"Building entrance, doorbell, delivery reference\u2026","Mis datos":"My details","Accede a tu cuenta para ver tus pedidos y guardar tus datos.":"Sign in to view your orders and save your details.","\xDAnete para disfrutar de env\xEDos m\xE1s r\xE1pidos y seguimiento de pedidos.":"Sign up for faster shipping and order tracking.",Nombre:"Name","Tu nombre":"Your name",Email:"Email",Contrase\u00F1a:"Password","Quiero recibir ofertas y novedades por email":"I want to receive offers and news by email","Al crear tu cuenta, aceptas nuestros":"By creating your account, you accept our","T\xE9rminos y Condiciones":"Terms and Conditions","y la":"and the","Pol\xEDtica de Privacidad":"Privacy Policy","Iniciar sesi\xF3n":"Sign in","\xBFNo tienes cuenta? ":"Don't have an account? ","Crear una":"Create one","\xBFQu\xE9 est\xE1s buscando?":"What are you looking for?",'No se encontraron resultados para "':'No results found for "',"Ver todos los resultados \u2192":"See all results \u2192","New Season":"New Season","Env\xEDo gratis +":"Free shipping +","Devoluciones 14 d\xEDas":"14-day returns","Solo quedan":"Only","en stock":"in stock","Sin stock":"Out of stock",Agotado:"Sold out","unidades de":"units of","Revisa tu bolsa antes de pagar":"Check your bag before paying","El tel\xE9fono es obligatorio":"Phone number is required",Largo:"Length",Ancho:"Width","Tienda cerrada temporalmente":"Store temporarily closed","Volveremos pronto":"We will be back soon","As Always, With Love":"As Always, With Love","Shop the Drop \u2192":"Shop the Drop \u2192","Env\xEDo express 24h":"24h express shipping","Edici\xF3n limitada":"Limited edition","Devoluci\xF3n gratuita":"Free returns","100% Original":"100% Original","Colecci\xF3n completa":"Full collection"," productos":" products",Todo:"All","Buscar productos...":"Search products...","No hay productos en esta categor\xEDa.":"No products in this category.","Cuenta ":"Account ","Mis pedidos":"My orders","\u2190 Anterior":"\u2190 Previous","Siguiente \u2192":"Next \u2192","Mi cesta":"My basket",Ayuda:"Help",Env\u00EDos:"Shipping",Devoluciones:"Returns","Gu\xEDa de tallas":"Size guide",FAQ:"FAQ",Legal:"Legal",Privacidad:"Privacy",T\u00E9rminos:"Terms",Cookies:"Cookies",Contacto:"Contact","Ver todo":"View all","\xDAnete al club":"Join the club","Bienvenido al club \u2014 5% de descuento aplicado":"Welcome to the club \u2014 5% discount applied","Tu email":"Your email",Suscribirme:"Subscribe","5% en tu primera compra":"5% off your first purchase","Env\xEDo gratis +\u20AC":"Free shipping +\u20AC","Pago seguro":"Secure payment","100% original":"100% original","\u2190 Seguir comprando":"\u2190 Continue shopping","Express checkout":"Express checkout",Pagar:"Pay","Procesando...":"Processing...","Confirmar pedido \u2014 ":"Confirm order \u2014 ","Pagar \u2014 ":"Pay \u2014 ","O completa los datos":"Or fill in your details","Contacto ":"Contact ","Direcci\xF3n de env\xEDo":"Shipping address",Espa\u00F1a:"Spain",Portugal:"Portugal",Francia:"France",Alemania:"Germany",Italia:"Italy",Apellidos:"Last name",Direcci\u00F3n:"Address","Piso, puerta (opcional)":"Apt, floor (optional)","C\xF3digo postal":"Postal code",Ciudad:"City",Provincia:"State / Province",Tel\u00E9fono:"Phone","Pol\xEDtica de devoluci\xF3n":"Return policy",Eliminar:"Remove",Quitar:"Remove","Mis citas":"My appointments","Mis {varios}":"My {varios}","Ver mis {varios}":"See my {varios}",Hoy:"Today",Marcar:"Mark",Deshacer:"Undo","Entra en tu cuenta para ver tus {varios}.":"Sign in to see your {varios}.","Aqu\xED aparecer\xE1 lo que {pro} te deje despu\xE9s de una sesi\xF3n.":"Whatever {pro} leaves you after a session will show up here.","{pro} ve lo que vas marcando: as\xED lo ajusta en la siguiente sesi\xF3n.":"{pro} sees what you tick, and adjusts it next session.","No hemos podido cargar tus {varios}.":"We could not load your {varios}.","Tu sesi\xF3n ha caducado. Vuelve a entrar.":"Your session expired. Sign in again.","Tu sesi\xF3n ha caducado. Vuelve a entrar para ver tus citas.":"Your session expired. Sign in again to see your appointments.","No hemos podido cargar tus citas. Int\xE9ntalo de nuevo.":"We could not load your appointments. Try again.",Reintentar:"Retry","Ver mis citas":"See my appointments","Tu pr\xF3xima cita":"Your next appointment",Despu\u00E9s:"Later",Anteriores:"Past","por venir":"upcoming",hechas:"done","por confirmar":"to confirm","Entra en tu cuenta para ver tus citas.":"Sign in to see your appointments.","Todav\xEDa no has pedido ninguna cita.":"You have not booked any appointment yet.","Pedir otra cita":"Book another appointment","Lo que dicen":"What people say","Gente que ya lo ha probado":"People who already tried it",Verificada:"Verified",Cliente:"Client","\xBFYa te ha tratado {pro}?":"Have you been treated by {pro}?","Cu\xE9ntalo en dos l\xEDneas. Ayuda a quien est\xE1 dudando si llamar.":"Tell it in two lines. It helps whoever is hesitating to call.","\xBFYa has comprado aqu\xED?":"Have you bought here before?","Cu\xE9ntalo en dos l\xEDneas. Ayuda a quien est\xE1 dudando si comprar.":"Tell it in two lines. It helps whoever is hesitating to buy.","Dejar mi rese\xF1a":"Leave my review","S\xE9 el primero en contarlo":"Be the first to tell it","Entra para dejar la tuya":"Sign in to leave yours","Enviar mi rese\xF1a":"Send my review","Un titular (opcional)":"A headline (optional)","Tu valoraci\xF3n":"Your rating",Cancelar:"Cancel",Calle:"Street",N\u00FAmero:"Number",Portal:"Entrance",Piso:"Floor",Puerta:"Door","Sin n\xFAmero (s/n)":"No number (s/n)","D\xF3nde vas a recibir la sesi\xF3n":"Where you will be treated","C\xF3mo llegar (opcional)":"How to get in (optional)","El portero no funciona, llama al m\xF3vil\u2026":"The buzzer is broken, call my mobile\u2026","\xBFQu\xE9 te pasaba y c\xF3mo fue? Lo que te habr\xEDa gustado leer a ti antes de llamar.":"What was wrong and how did it go? What you would have liked to read before calling.","Gracias. {pro} la revisa y la publica.":"Thanks. {pro} reviews it and publishes it.","Elige cu\xE1ntas estrellas.":"Pick how many stars.","Cu\xE9ntanos un poco m\xE1s, con una l\xEDnea no se entiende.":"Tell us a bit more.","Entra en tu cuenta para dejar tu rese\xF1a.":"Sign in to leave your review.","No se ha podido guardar. Int\xE9ntalo de nuevo.":"Could not save. Try again.","\u2713 Env\xEDo gratis":"\u2713 Free shipping"," \xB7 Env\xEDo gratis":" \xB7 Free shipping","C\xF3digo de descuento":"Discount code",Aplicar:"Apply","Subtotal \xB7 ":"Subtotal \xB7 "," art\xEDculos":" items","Descuento ":"Discount ",Env\u00EDo:"Shipping",Gratis:"Free",Total:"Total","Procesando tu pago":"Processing your payment","Esto solo durar\xE1 unos segundos. No cierres esta ventana.":"This will only take a few seconds. Do not close this window.","Gracias por tu compra":"Thank you for your purchase","Tu pedido ha sido confirmado. Recibir\xE1s un email con los detalles y el seguimiento del env\xEDo.":"Your order has been confirmed. You will receive an email with the details and shipping tracking.","Seguir comprando":"Continue shopping","Confirmando tu pago":"Confirming your payment","Estamos validando el pago con el banco. Esto normalmente tarda menos de un minuto.":"We are validating the payment with the bank. This usually takes less than a minute.","Si no recibes el email de confirmaci\xF3n en unos minutos, escr\xEDbenos a":"If you do not receive the confirmation email in a few minutes, write to us at","con tu n\xFAmero de pedido":"with your order number","No hemos podido confirmar tu pago":"We could not confirm your payment","Tu tarjeta puede haber sido cobrada, pero no hemos podido confirmar el pedido en nuestro sistema.":"Your card may have been charged, but we could not confirm the order in our system.","No vuelvas a pagar.":"Do not pay again.","Escr\xEDbenos a":"Write to us at","y lo resolvemos.":"and we will resolve it.","Contacta con la tienda con tu n\xFAmero de pedido":"Contact the store with your order number","para que lo resolvamos.":"so we can resolve it.","Volver a la tienda":"Back to the store","\u2190 Volver":"\u2190 Back","Cerrar sesi\xF3n":"Sign out","Hola, ":"Hello, ",Pedidos:"Orders","Total gastado":"Total spent","Ver mis pedidos":"View my orders","A\xFAn no tienes pedidos.":"You don't have any orders yet.",Pagado:"Paid",Preparado:"Prepared","En camino":"Shipping",Entregado:"Delivered",Pendiente:"Pending",Cancelado:"Cancelled"," ud":" u","y ":"and "," m\xE1s...":" more...","Cup\xF3n ":"Coupon ","Env\xEDo: ":"Shipping: ","Tracking: ":"Tracking: ","Tu pedido ser\xE1 enviado en 24-48h":"Your order will be shipped in 24-48h","Seguir env\xEDo (":"Track shipment (","Selecciona una talla":"Please select a size","A\xF1adido \u2713":"Added \u2713","A\xF1adir a la bolsa":"Add to bag","Quitar de favoritos":"Remove from favorites","A\xF1adir a favoritos":"Add to favorites",Favoritos:"Favorites","A\xFAn no tienes favoritos":"You have no favorites yet","Explora la colecci\xF3n y guarda las piezas que m\xE1s te gusten.":"Explore the collection and save the pieces you like most.","A\xF1adir al carrito todos mis favoritos":"Add all my favorites to cart","Bolsa (":"Bag (","A\xF1ade ":"Add "," m\xE1s para env\xEDo gratuito":" more for free shipping","Env\xEDo gratuito aplicado \u2713":"Free shipping applied \u2713","Tu bolsa est\xE1 vac\xEDa":"Your bag is empty","Explora la colecci\xF3n y encuentra piezas que te inspiren.":"Explore the collection and find pieces that inspire you.","Explorar la tienda":"Explore the store","C\xF3digo cup\xF3n":"Coupon code",Descuento:"Discount","Inicia sesi\xF3n para continuar":"Sign in to continue","Procesando pedido gratuito...":"Processing free order...","Confirmar pedido (gratis) \u2192":"Confirm order (free) \u2192","Pagar \u2192":"Pay \u2192","Tramitar pedido \u2192":"Checkout \u2192","Direcci\xF3n guardada":"Address saved","No se pudo guardar la direcci\xF3n":"Could not save address","Guardar direcci\xF3n":"Save address","Guardando...":"Saving...","Calle, n\xFAmero, piso\u2026":"Street, number, apt\u2026","Sin direcci\xF3n guardada":"No saved address","A\xF1ade tu direcci\xF3n de env\xEDo para agilizar tus pr\xF3ximos pedidos.":"Add your shipping address to speed up your next orders.",Editar:"Edit","\xDAltima actualizaci\xF3n:":"Last updated:","Informaci\xF3n general":"General information","Productos y precios":"Products and prices","Proceso de compra":"Purchase process","M\xE9todos de pago":"Payment methods",Garant\u00EDas:"Warranties",Responsabilidad:"Liability","Propiedad intelectual":"Intellectual property","Legislaci\xF3n aplicable":"Applicable law","Responsable del tratamiento":"Data controller","Datos que recogemos":"Data we collect","Finalidad del tratamiento":"Purpose of processing","Base legal":"Legal basis",Destinatarios:"Recipients",Conservaci\u00F3n:"Retention","Tus derechos":"Your rights",Seguridad:"Security","14 d\xEDas de devoluci\xF3n":"14-day returns","A\xF1ade tu direcci\xF3n de env\xEDo":"Add your shipping address","A\xF1ade tu primer producto desde el panel admin":"Add your first product from the admin panel",A\u00F1adir:"Add","A\xF1adir producto":"Add product","A\xFAn sin productos \u2014 a\xF1ade el primero \u2193":"No products yet \u2014 add the first one \u2193","Buscar...":"Search...","Calle, n\xFAmero, piso\u2026 *":"Street, number, apt\u2026 *","Canarias, Ceuta o Melilla":"Canary Islands, Ceuta or Melilla","C\xF3digo postal no v\xE1lido":"Invalid postal code","C\xF3digo postal no v\xE1lido o fuera de zona de env\xEDo":"Invalid postal code or outside shipping zone","C\xF3digo postal no v\xE1lido para Espa\xF1a":"Invalid postal code for Spain","Completa la direcci\xF3n":"Complete the address","Completa la direcci\xF3n de env\xEDo para activar el pago":"Complete the shipping address to enable payment","Comprar por categor\xEDa":"Shop by category","Descubrir la colecci\xF3n":"Discover the collection","Empieza a construir tu cat\xE1logo desde el panel":"Start building your catalog from the panel","En favoritos":"In favorites","en tu primera compra":"on your first purchase","Env\xEDo gratis a partir de ":"Free shipping from ","Hecho en Espa\xF1a":"Made in Spain","Introduce una direcci\xF3n v\xE1lida en Espa\xF1a antes de pagar":"Enter a valid address in Spain before paying","IVA incluido":"VAT included","La Colecci\xF3n":"The Collection","Lo necesitamos para calcular el env\xEDo y activar el pago.":"We need it to calculate shipping and enable payment.","Lo nuevo":"New in","No realizamos env\xEDos a esta direcci\xF3n":"We do not ship to this address","Nombre y apellidos *":"Full name *","Notas de env\xEDo (opcional)":"Delivery notes (optional)","Piezas hechas para el sol, el agua y la calma.":"Pieces made for the sun, the water and the calm.",Pr\u00F3ximamente:"Coming soon",Selecciona:"Select","Sin resultados":"No results","Tambi\xE9n te puede gustar":"You may also like","Quien compr\xF3 esto tambi\xE9n compr\xF3":"People who bought this also bought","Tu correo electr\xF3nico":"Your email address","Tu primer producto aparecer\xE1 aqu\xED":"Your first product will appear here","Tu sesi\xF3n caduc\xF3 \u2014 vuelve a iniciar sesi\xF3n":"Your session expired \u2014 please sign in again","Tu tienda":"Your store","Ver todo \u2192":"View all \u2192",A\u00F1adido:"Added",Subtotal:"Subtotal",Nuevo:"New",Scroll:"Scroll","Just Dropped":"Just Dropped",Novedad:"New","SS26 Collection":"SS26 Collection","Resort & swimwear.":"Resort & swimwear.","Resort 26":"Resort 26","NEW DROP \xB7 JUST LANDED \xB7 EXCLUSIVE \xB7 LIMITED EDITION \xB7 NEW DROP \xB7 JUST LANDED \xB7 EXCLUSIVE \xB7 LIMITED EDITION \xB7 ":"NEW DROP \xB7 JUST LANDED \xB7 EXCLUSIVE \xB7 LIMITED EDITION \xB7 NEW DROP \xB7 JUST LANDED \xB7 EXCLUSIVE \xB7 LIMITED EDITION \xB7 ","ES \xB7 EUR \u20AC":"EN \xB7 EUR \u20AC",Con\u00F3cenos:"About us"},tr=s2=>__L==="es"?s2:__TR[s2]||s2;function useRevelar(dep){(0,import_react3.useLayoutEffect)(()=>{if(typeof window>"u"||typeof IntersectionObserver>"u")return;let pendientes=Array.from(document.querySelectorAll(".rv:not(.vis)"));if(!pendientes.length)return;let io=new IntersectionObserver(entradas=>{for(let e of entradas)e.isIntersecting&&(e.target.classList.add("vis"),io.unobserve(e.target))},{rootMargin:"0px 0px -8% 0px",threshold:.05});for(let el of pendientes){let r=el.getBoundingClientRect();if(r.height===0||r.top0){el.classList.add("vis");continue}el.classList.add("arm"),io.observe(el)}let red=window.setTimeout(()=>{for(let el of document.querySelectorAll(".rv.arm:not(.vis)")){let r=el.getBoundingClientRect();r.top0&&el.classList.add("vis")}},2e3);return()=>{io.disconnect(),window.clearTimeout(red)}},[dep])}var hoyMadrid=()=>new Date().toLocaleString("sv-SE",{timeZone:"Europe/Madrid"}).slice(0,10),horaMadrid=()=>new Date().toLocaleString("sv-SE",{timeZone:"Europe/Madrid"}).slice(11,16),diaLargo=iso=>{let[a,m,d]=iso.split("-").map(Number);return new Date(Date.UTC(a,m-1,d)).toLocaleDateString("es-ES",{weekday:"long",day:"numeric",month:"long",timeZone:"UTC"})},mesDe=iso=>iso.slice(0,7),mesActual=()=>hoyMadrid().slice(0,7),mesMas=(mes,n)=>{let[a,m]=mes.split("-").map(Number),d=new Date(Date.UTC(a,m-1+n,1));return`${d.getUTCFullYear()}-${String(d.getUTCMonth()+1).padStart(2,"0")}`},nombreMes=mes=>{let[a,m]=mes.split("-").map(Number);return new Date(Date.UTC(a,m-1,1)).toLocaleDateString("es-ES",{month:"long",year:"numeric",timeZone:"UTC"})},rejillaMes=mes=>{let[a,m]=mes.split("-").map(Number),primero=new Date(Date.UTC(a,m-1,1)),dias=new Date(Date.UTC(a,m,0)).getUTCDate(),huecos=(primero.getUTCDay()+6)%7,celdas=new Array(huecos).fill("");for(let d=1;d<=dias;d++)celdas.push(`${mes}-${String(d).padStart(2,"0")}`);return celdas},SHIP_FREE=80;var AUTH_KEY="ma_auth",CART_KEY="ma_cart",WISH_KEY="ma_wish",CP_TO_CITY2={"01":"Vitoria-Gasteiz","02":"Albacete","03":"Alicante","04":"Almer\xEDa","05":"\xC1vila","06":"Badajoz","07":"Palma de Mallorca","08":"Barcelona","09":"Burgos",10:"C\xE1ceres",11:"C\xE1diz",12:"Castell\xF3n",13:"Ciudad Real",14:"C\xF3rdoba",15:"A Coru\xF1a",16:"Cuenca",17:"Girona",18:"Granada",19:"Guadalajara",20:"San Sebasti\xE1n",21:"Huelva",22:"Huesca",23:"Ja\xE9n",24:"Le\xF3n",25:"Lleida",26:"Logro\xF1o",27:"Lugo",28:"Madrid",29:"M\xE1laga",30:"Murcia",31:"Pamplona",32:"Ourense",33:"Oviedo",34:"Palencia",35:"Las Palmas",36:"Pontevedra",37:"Salamanca",38:"Santa Cruz de Tenerife",39:"Santander",40:"Segovia",41:"Sevilla",42:"Soria",43:"Tarragona",44:"Teruel",45:"Toledo",46:"Valencia",47:"Valladolid",48:"Bilbao",49:"Zamora",50:"Zaragoza",51:"Ceuta",52:"Melilla"};function getCityFromCP(cp){let c=String(cp||"").replace(/\s/g,"");return/^\d{5}$/.test(c)?CP_TO_CITY2[c.slice(0,2)]??null:null}function isCpShippingBlocked(cp){let prefix=String(cp||"").replace(/\s/g,"").slice(0,2);return prefix==="35"||prefix==="38"||prefix==="51"||prefix==="52"}function getCpZone(cp){let cleaned=String(cp||"").replace(/\s/g,"");if(!/^\d{5}$/.test(cleaned))return"extranjero";let prefix=cleaned.slice(0,2);return prefix==="28"?"provincial":prefix==="07"?"baleares":prefix==="35"||prefix==="38"?"canarias":prefix==="51"||prefix==="52"?"ceuta_melilla":"peninsula"}function parseShippingCfg(rows){let get=k=>rows?.find?.(r=>r?.clave===k)?.valor,dinamico=String(get("envio_dinamico")??"false").toLowerCase()==="true",freeThreshold=Number(get("envio_gratis_desde"))||80,costeFijo=Number(get("envio_coste_fijo"))||4.99;return{dinamico,freeThreshold,costeFijo}}var num=v=>{let n=Number(v);return isNaN(n)||!isFinite(n)?0:n},str=v=>String(v??"").trim(),categoriaDe=p=>p?.categoria_id==null?null:Number(p.categoria_id),IMG_PLACEHOLDER="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 533'%3E%3Crect width='400' height='533' fill='%23f0f0ef'/%3E%3C/svg%3E";function img(p){let v=p?.imagen;if(!v)return IMG_PLACEHOLDER;let raw="";if(typeof v=="string"){let t=v.trim();if(t.startsWith("{")||t.startsWith("["))try{let o=JSON.parse(t),obj=Array.isArray(o)?o[0]:o;obj&&typeof obj.url=="string"?raw=obj.url:raw=t}catch{raw=t}else raw=t}else v&&typeof v=="object"&&typeof v.url=="string"?raw=v.url:Array.isArray(v)&&v.length>0&&typeof v[0]?.url=="string"&&(raw=v[0].url);return raw?/^https?:\/\//i.test(raw)||raw.startsWith("data:")||raw.startsWith("blob:")?raw:raw.startsWith("/api/")?`${raw}&w=700`:`/api/files/serve?path=${encodeURIComponent(raw)}&w=700`:IMG_PLACEHOLDER}var partirDireccion=texto=>{let trozos=String(texto||"").split(",").map(x=>x.trim()),calle=trozos[0]||"",numero="",portal="",piso="",puerta="",m=/^(.*?)[\s,]+(\d+[a-zA-Z]?|s\/n)(?:[\s,]+(\d+)\s*º?\s*([a-zA-Z])?)?$/.exec(calle);m&&(calle=m[1],numero=m[2],piso=m[3]||"",puerta=(m[4]||"").toUpperCase());for(let t of trozos.slice(1)){let p=/^(?:portal|port\.?)\s*(\S+)$/i.exec(t);if(p){portal=p[1];continue}let f=/^(\d+)\s*º?\s*([a-zA-Z][a-zA-Z.]*)?$/i.exec(t);f&&!piso&&(piso=f[1],puerta=(f[2]||"").length>1?f[2]:(f[2]||"").toUpperCase())}return{calle,numero,portal,piso,puerta}},juntarDireccion=d=>[[String(d.calle||"").trim(),d.sinNumero?"s/n":String(d.numero||"").trim()].filter(Boolean).join(" "),String(d.portal||"").trim()?"portal "+String(d.portal).trim():"",(()=>{let pi=String(d.piso||"").trim(),pu=String(d.puerta||"").trim();return!pi&&!pu?"":pu?pi?pi+"\xBA"+(pu.length>1?" ":"")+pu:pu:pi})()].filter(Boolean).join(", "),telTexto=v=>{if(!v)return"";if(typeof v=="string")return v;let uno=Array.isArray(v)?v[0]:v;return!uno||typeof uno!="object"?String(uno||""):((uno.prefix||"")+" "+(uno.number||uno.numero||"")).trim()},price=v=>num(v).toLocaleString("es-ES",{minimumFractionDigits:2,maximumFractionDigits:2})+" \u20AC",hasSale=p=>p?.precio_oferta!=null&&num(p.precio_oferta)>0&&num(p.precio_oferta)hasSale(p)?num(p.precio_oferta):num(p.precio),disc=p=>{let o=num(p.precio);return o>0?Math.round((1-num(p.precio_oferta)/o)*100):0},altProducto=(nombre,...variante)=>{let base=str(nombre),extras=variante.map(str).filter((v,i,arr)=>v&&!base.toLowerCase().includes(v.toLowerCase())&&arr.indexOf(v)===i);return[base,...extras].filter(Boolean).join(", ")},LISTA_MEDIDA_MAX=20,itemMedido=(p,cantidad,variante,precio)=>({item_id:p.id,item_name:str(p.nombre),price:(typeof precio=="number"?precio:getPrice(p))||void 0,quantity:cantidad,item_variant:str(variante)||void 0}),itemDePackMedido=(pk,cantidad)=>({item_id:`pack-${pk.id}`,item_name:str(pk.nombre),price:num(pk.precio)||void 0,quantity:cantidad,item_category:"Packs"}),itemDeLineaMedido=(x,cantidad)=>x.packId?{item_id:`pack-${x.packId}`,item_name:str(x.nombre),price:num(x.precio)||void 0,quantity:cantidad??x.qty,item_category:"Packs"}:{item_id:x.productId,item_name:str(x.nombre),price:num(x.precio)||void 0,quantity:cantidad??x.qty,item_variant:str(x.size)||void 0},__INITIAL_SESSION_ID=(()=>{if(typeof window>"u")return"";try{let u=new URL(window.location.href);return u.searchParams.get("session_id")||u.searchParams.get("paid_session")||""}catch{return""}})(),__VERIFIER_GUARD={started:!1,finished:!1},__POST_CHECKOUT_RETURN=(()=>{if(typeof window>"u")return!1;try{let u=new URL(window.location.href);return!!(u.searchParams.get("paid")||u.searchParams.get("session_id")||u.searchParams.get("paid_session")||u.searchParams.get("cancelled")||u.searchParams.get("cita_pagada")||u.searchParams.get("cita_cancelada"))}catch{return!1}})();function CheckoutVerifier({active,companyId:companyIdProp,onPaid,onTimeout}){let onPaidRef=(0,import_react3.useRef)(onPaid),onTimeoutRef=(0,import_react3.useRef)(onTimeout);return onPaidRef.current=onPaid,onTimeoutRef.current=onTimeout,(0,import_react3.useEffect)(()=>{if(!active||typeof window>"u"||__VERIFIER_GUARD.started||__VERIFIER_GUARD.finished)return;let w=window,companyId=Number(companyIdProp??w.__GUFI_SITE__?.siteInfo?.company_id??w.__gufi_company_id??w.location?.pathname?.match(/\/app\/(\d+)\//)?.[1]);if(!companyId||!Number.isFinite(companyId))return;let url=new URL(window.location.href),sessionId=url.searchParams.get("session_id")||url.searchParams.get("paid_session")||__INITIAL_SESSION_ID;if(!sessionId.startsWith("cs_"))return;__VERIFIER_GUARD.started=!0;let attempt=0,tick=async()=>{if(!__VERIFIER_GUARD.finished){attempt++;try{if((await(await fetch(`/api/public/stripe/verify-session?session_id=${encodeURIComponent(sessionId)}&company_id=${companyId}`,{credentials:"include"})).json().catch(()=>({})))?.paid){if(__VERIFIER_GUARD.finished)return;__VERIFIER_GUARD.finished=!0,onPaidRef.current();return}}catch{}attempt<20?setTimeout(tick,2e3):(__VERIFIER_GUARD.finished=!0,onTimeoutRef.current())}};tick()},[active,companyIdProp]),null}var authGet=()=>{try{let s2=localStorage.getItem(AUTH_KEY);return s2?JSON.parse(s2):null}catch{return null}},SF_CTOKEN_KEY="gufi_sf_ctoken",MAGIC_TOKEN_KEY="ma_magic_token",GUEST_KEY="ma_guest",MIN_PASSWORD=8,authSet=u=>{if(u)localStorage.setItem(AUTH_KEY,JSON.stringify(u));else{localStorage.removeItem(AUTH_KEY);try{localStorage.removeItem(SF_CTOKEN_KEY)}catch{}}},cartGet=()=>{try{let s2=localStorage.getItem(CART_KEY);return s2?JSON.parse(s2):[]}catch{return[]}},cartSet=items=>localStorage.setItem(CART_KEY,JSON.stringify(items)),VERSION_CONSENTIMIENTO="v1",CONSENT_KEY="ma_cookies",VISITANTE_KEY="ma_visitante",EVENTO_CONSENTIMIENTO="gufi:consentimiento",idVisitante=()=>{try{let id=localStorage.getItem(VISITANTE_KEY);return id||(id=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`v-${Date.now()}-${Math.random().toString(36).slice(2,10)}`,localStorage.setItem(VISITANTE_KEY,id)),id}catch{return"sin-almacenamiento"}},leerConsentimiento=()=>{try{let bruto=localStorage.getItem(CONSENT_KEY);if(!bruto)return null;let c=JSON.parse(bruto);return c.version!==VERSION_CONSENTIMIENTO?null:c}catch(e){return console.error("[cookies] consentimiento ilegible, se vuelve a preguntar",e),null}},guardarConsentimiento=(analitica,marketing)=>{let c={version:VERSION_CONSENTIMIENTO,visitante:idVisitante(),necesarias:!0,analitica,marketing,fecha:new Date().toISOString()};try{localStorage.setItem(CONSENT_KEY,JSON.stringify(c))}catch(e){console.error("[cookies] no se ha podido guardar la decisi\xF3n",e)}try{window.dispatchEvent(new CustomEvent(EVENTO_CONSENTIMIENTO,{detail:c}))}catch{}return c},FORMA_CSS=` @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=DM+Serif+Display&family=Nunito+Sans:wght@400;600;700&family=Space+Grotesk:wght@400;500;700&family=Inter:wght@400;500;600;700&family=Cormorant:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600&family=Jost:wght@300;400;500;600&display=swap'); /* HERO OSCURO \u2014 fondo negro, la marca en blanco y en negrita (era el style tech-bold) */ .L[data-hero-fondo="oscuro"] .H{background:#0a0a0a} .L[data-hero-fondo="oscuro"] .H-wm{font-family:var(--sn);font-weight:800;letter-spacing:-.02em;color:#fff} .L[data-hero-fondo="oscuro"] .H-over,.L[data-hero-fondo="oscuro"] .H-c p{color:rgba(255,255,255,.55)} .L[data-hero-fondo="oscuro"] .H .cta{background:var(--ac);color:#fff} /* MEN\xDA POR GRUPOS (fila menu_grupos): el grupo en la barra y sus categor\xEDas en un desplegable */ .N-grupo{position:relative} .N-grupo-bt{font-family:var(--sn);font-size:10px;letter-spacing:.16em;white-space:nowrap;font-weight:400;transition:opacity .4s var(--el);flex-shrink:0;text-transform:uppercase;position:relative;padding:4px 0;background:none;border:none;cursor:pointer;color:inherit} .N-grupo-bt::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--tl);transition:width .5s var(--el)} .N-grupo:hover .N-grupo-bt::after{width:100%} .N-grupo:hover .N-grupo-bt{opacity:.8} .N-grupo-dd{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-6px);background:rgba(255,255,255,.98);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:12px;box-shadow:0 24px 64px rgba(0,0,0,.1),0 0 0 1px rgba(207,196,176,.25);padding:8px 0;min-width:180px;opacity:0;pointer-events:none;transition:opacity .3s,transform .4s var(--el);z-index:200}.N-grupo-dd::before{content:'';position:absolute;top:-12px;left:0;right:0;height:12px} .N-grupo:hover .N-grupo-dd{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto} .N .N-grupo-dd button,.N .N-grupo-dd a{display:block;width:100%;padding:10px 20px;font-family:var(--sn);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--t1) !important;text-align:left;transition:background .2s;background:none;border:none;cursor:pointer;white-space:nowrap} .N .N-grupo-dd button:hover,.N .N-grupo-dd a:hover{background:rgba(0,0,0,.05)} .N .N-grupo-dd button.a,.N .N-grupo-dd a.a{color:var(--t1) !important;font-weight:600} /* TARJETA REDONDEADA \u2014 foto con esquina de 16 y nombre en la letra de texto */ .L[data-card="card-rounded"] .C-img{border-radius:16px} .L[data-card="card-rounded"] .C-n{font-family:var(--sn);font-weight:600} `,IS_PREVIEW=typeof window<"u"&&window.parent!==window&&new URLSearchParams(window.location.search).has("preview"),CSS=` /* \u2500\u2500 Checkout responsive: 2 columnas en desktop, apilado en m\xF3vil \u2500\u2500 */ .CHK{display:grid;grid-template-columns:1fr 420px;min-height:100vh;max-width:1200px;margin:0 auto} .CHK-form{border-right:1px solid var(--bl)} .CHK-sum{position:sticky;top:0;height:fit-content;max-height:100vh;overflow-y:auto} @media (max-width:860px){ .CHK{grid-template-columns:1fr;min-height:auto} .CHK-form{border-right:none} .CHK-sum{order:-1;position:static;max-height:none;border-bottom:1px solid var(--bl)} .CHK input,.CHK textarea{font-size:16px!important} } :root{--bg:#FFFFFF;--bgc:#FFFFFF;--bgp:#F0F0F0;--bgd:#1a1a1a;--t1:#1A1A16;--t2:#6B6356;--t3:#9A8E7F;--tl:#F4EEE3;--bl:rgba(0,0,0,.06);--bh:rgba(0,0,0,.12);--ac:#1a1a1a;--clay:#A65A3C;--marine:#1F3A33;--sand:#C9A24B;--line:#CFC4B0;--sale:#A65A3C;--ok:#2D6A4F;--pm:clamp(20px,5vw,56px);--sn:-apple-system,BlinkMacSystemFont,'SF Pro Text','SF Pro Display','Jost',system-ui,'Segoe UI',sans-serif;--sf:'Cormorant',Georgia,'Times New Roman',serif;--sr:var(--sf);--el:cubic-bezier(.16,.8,.26,1);--eo:cubic-bezier(.16,1,.3,1)} *,*::before,*::after{margin:0;padding:0;box-sizing:border-box} .L{background:var(--bg);color:var(--t1);font-family:var(--sn);font-weight:400;-webkit-font-smoothing:antialiased;min-height:100vh;overflow:clip;font-size:14px;line-height:1.5;position:relative} .L::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.04;mix-blend-mode:multiply;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")} .L img{display:block;max-width:100%;height:auto}.L a{color:inherit;text-decoration:none}.L button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}.L ul{list-style:none} .L h1,.L h2,.L h3{font-family:var(--sn);font-weight:620;letter-spacing:-.035em;line-height:1.06;text-transform:none} /* Sobre fondo claro y con SF, el texto pide antialiasing: sin esto los pesos medios salen engordados en macOS. */ .L{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.L ::selection{background:var(--ac);color:var(--tl)} .L input,.L textarea,.L select{font-family:var(--sn);font-size:16px} .L button,.L a{-webkit-tap-highlight-color:transparent} /* NAV \u2014 transparent default, white solid on scroll (.sc) */ .N{position:sticky;top:0;z-index:100;padding:0 clamp(24px,5vw,64px);background:transparent;margin-bottom:-48px;transition:background .4s var(--el),margin .4s var(--el),box-shadow .4s var(--el)} /* Default = white text over hero */ .N .N-c{color:#F4EEE3}.N .N-c img{filter:brightness(0) invert(1);transition:filter .4s,height .4s} .N .N-r button{color:#F4EEE3}.N .N-r button:hover{opacity:.7} .N .mb span{background:#F4EEE3} .N .N-b svg{stroke:#F4EEE3}.N .N-bc{background:var(--sand);color:var(--bgd)} .N .N-cat button,.N .N-cat a{color:#F4EEE3}.N .N-cat button:hover,.N .N-cat a:hover{opacity:.7}.N .N-cat button.a,.N .N-cat a.a{font-weight:500} .N .N-cat button::after,.N .N-cat a::after{background:#F4EEE3}.N .N-cat button.a::after,.N .N-cat a.a::after{background:#F4EEE3} .N .N-si{border-color:rgba(244,238,227,.3);color:#F4EEE3}.N .N-si:focus{border-color:#F4EEE3} .N .N-sx{color:#F4EEE3} /* Scrolled = solid dark green, white text */ .N.sc{background:var(--brand-nav-bg,#1a1a1a) !important;margin-bottom:0 !important;box-shadow:0 1px 0 rgba(0,0,0,.15) !important} /* LIGHT HERO \u2014 nav over a light (non-photographic) hero shows dark content instead of inverted white */ .N.lighthero:not(.sc) .N-c{color:var(--t1)} .N.lighthero:not(.sc) .N-c img{filter:none} .N.lighthero:not(.sc) .N-r button{color:var(--t1)} .N.lighthero:not(.sc) .N-cat button,.N.lighthero:not(.sc) .N-cat a{color:var(--t1)} .N.lighthero:not(.sc) .N-cat button::after,.N.lighthero:not(.sc) .N-cat a::after{background:var(--t1)} .N.lighthero:not(.sc) .N-cat button.a::after,.N.lighthero:not(.sc) .N-cat a.a::after{background:var(--t1)} .N.lighthero:not(.sc) .mb span{background:var(--t1)} .N.lighthero:not(.sc) .N-b svg{stroke:var(--t1)} .N.lighthero:not(.sc) .N-si{border-color:rgba(0,0,0,.15);color:var(--t1)} .N.lighthero:not(.sc) .N-sx{color:var(--t1)} /* DARK BRAND \u2014 scrolled nav uses the dark brand colour, so the logo goes solid white */ .N.darkbrand.sc .N-c img{filter:brightness(0) invert(1)} .N-lang{font-family:var(--sn);font-size:11px;font-weight:600;letter-spacing:.1em;padding:0 6px;opacity:.8;text-transform:uppercase}.N-lang:hover{opacity:1} .N .N-sd{background:rgba(255,255,255,.98);box-shadow:0 24px 64px rgba(0,0,0,.08);border-radius:12px}.N .N-sr{border-color:rgba(0,0,0,.04)}.N .N-sr:hover{background:rgba(0,0,0,.02)}.N .N-sr-n{color:var(--t1)}.N .N-sr-p{color:var(--t3)} .N-i{display:flex;align-items:center;height:48px;position:relative} .N.dark .N-i{height:40px} .N-lf{display:flex;align-items:center;gap:clamp(16px,2.5vw,32px);flex-shrink:0} .N-cat{display:flex;align-items:center;gap:clamp(16px,2.5vw,28px)} .N-cat button,.N-cat a{font-family:var(--sn);font-size:10px;letter-spacing:.16em;white-space:nowrap;font-weight:400;transition:opacity .4s var(--el);flex-shrink:0;text-transform:uppercase;position:relative;padding:4px 0} .N-cat button::after,.N-cat a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--tl);transition:width .5s var(--el)} .N-cat button:hover,.N-cat a:hover{color:var(--tl)} .N-cat button:hover::after,.N-cat a:hover::after{width:100%} .N-cat button.a,.N-cat a.a{color:var(--tl);font-weight:500} .N-cat button.a::after,.N-cat a.a::after{width:100%} .N-c{position:absolute;left:50%;transform:translateX(-50%);font-family:var(--sf);font-size:clamp(18px,1.6vw,22px);font-weight:500;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:opacity .5s}.N-c:hover{opacity:.6}.N-c-m{display:none!important} .N-r{margin-left:auto;display:flex;align-items:center;gap:2px} .N-r button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .4s var(--el)}.N-r button:hover{opacity:.6} .N-r button::after{display:none} .N-b{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .4s var(--el)} .N-bc{font-size:7px;font-family:var(--sn);position:absolute;top:2px;right:2px;background:var(--sand);color:var(--bgd);width:15px;height:15px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.1)} /* Inline search */ .N-sw{display:flex;align-items:center;overflow:hidden;max-width:0;opacity:0;transition:max-width .55s var(--el),opacity .4s var(--el);position:relative} .N-sw.o{max-width:280px;opacity:1} .N-si{width:220px;border:none;border-bottom:1px solid var(--line);outline:none;background:transparent;font-family:var(--sn);font-size:12px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;padding:6px 0;color:var(--t1);transition:border-color .4s} .N-si::placeholder{color:var(--t3);font-weight:300;letter-spacing:.1em;text-transform:uppercase} .N-si:focus{border-bottom-color:var(--sand)} .N-sx{width:24px;height:24px;display:flex;align-items:center;justify-content:center;margin-left:8px;color:var(--t3);transition:color .3s;cursor:pointer;flex-shrink:0;border-radius:50%}.N-sx:hover{color:var(--t1)} .N-sx::after{display:none} /* Search dropdown */ .N-sd{position:absolute;top:calc(100% + 14px);right:0;width:340px;background:rgba(244,238,227,.98);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border-radius:12px;box-shadow:0 24px 64px rgba(0,0,0,.06),0 0 0 1px rgba(207,196,176,.3);padding:8px 0;opacity:0;transform:translateY(-8px);transition:opacity .35s,transform .45s var(--el);pointer-events:none;z-index:10} .N-sw.o .N-sd{opacity:1;transform:translateY(0);pointer-events:auto} .N-sr{display:flex;align-items:center;gap:14px;padding:10px 16px;cursor:pointer;transition:background .2s;border-bottom:1px solid rgba(207,196,176,.15)} .N-sr:last-child{border-bottom:none}.N-sr:hover{background:rgba(207,196,176,.12)} .N-sr img{width:48px;height:60px;object-fit:cover;border-radius:4px;flex-shrink:0} .N-sr-n{font-family:var(--sf);font-size:14px;font-weight:500;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .N-sr-p{font-size:11px;color:var(--t3);font-weight:400;margin-top:2px;letter-spacing:.04em} .N-sd-e{padding:24px 16px;text-align:center;font-size:11px;color:var(--t3);font-weight:400;letter-spacing:.08em;text-transform:uppercase} /* Full category bar \u2014 slides in on scroll */ .N-sub{display:flex;align-items:center;justify-content:center;gap:clamp(14px,2vw,32px);padding:0 var(--pm);max-height:0;opacity:0;overflow:hidden;transition:max-height .4s var(--el),opacity .3s var(--el),padding .3s var(--el);border-top:1px solid rgba(0,0,0,.05);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch} .N-sub::-webkit-scrollbar{display:none} .N-sub button{font-family:var(--sn);font-size:8.5px;letter-spacing:.12em;white-space:nowrap;font-weight:400;opacity:.5;transition:opacity .3s var(--el);flex-shrink:0;text-transform:uppercase;position:relative;padding:0} .N-sub button:hover{opacity:.9} .N-sub button.a{opacity:1;font-weight:600} .N.sc .N-sub{max-height:30px;opacity:1;padding:8px clamp(24px,5vw,64px);border-top-color:rgba(244,238,227,.1)} .N.sc .N-sub button{color:rgba(244,238,227,.5) !important}.N.sc .N-sub button:hover{color:#F4EEE3 !important}.N.sc .N-sub button.a{color:#F4EEE3 !important} .mb{display:flex;flex-direction:column;gap:4px;width:24px;height:24px;justify-content:center;align-items:center;flex-shrink:0} .mb span{width:18px;height:1.5px;background:currentColor;display:block;transition:transform .3s,opacity .3s}.mb.o span:nth-child(1){transform:translateY(2.5px) rotate(45deg)}.mb.o span:nth-child(2){opacity:0}.mb.o span:nth-child(3){transform:translateY(-2.5px) rotate(-45deg)} /* ANNOUNCE \u2014 marquee */ .A{background:var(--brand-nav-bg,#1a1a1a);color:rgba(244,238,227,.35);text-align:center;padding:8px var(--pm);font-size:9px;letter-spacing:.22em;font-weight:400;text-transform:uppercase;position:relative;overflow:hidden;font-family:var(--sn)} .A::after{display:none} /* OVERLAY \u2014 Scuffers-style drawer */ .OV{position:absolute;top:var(--sy,0px);left:0;height:100vh;width:min(400px,88vw);z-index:150;background:rgba(255,255,255,.92);backdrop-filter:blur(40px) saturate(200%);-webkit-backdrop-filter:blur(40px) saturate(200%);transform:translateX(-100%);transition:transform .5s var(--el);display:flex;flex-direction:column;box-shadow:12px 0 60px rgba(0,0,0,.08);color:var(--t1);overflow-y:auto} .OV.o{transform:translateX(0)} .OVbk{position:absolute;top:var(--sy,0px);left:0;right:0;height:100vh;z-index:149;background:rgba(0,0,0,.15);opacity:0;pointer-events:none;transition:opacity .4s}.OVbk.o{opacity:1;pointer-events:auto} .OV-hd{display:flex;align-items:center;gap:10px;padding:18px 24px;border-bottom:none} .OV-hd button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s} .OV-hd button:hover{background:rgba(0,0,0,.04)} .OV-hd button svg{width:20px;height:20px;stroke:var(--t1);fill:none;stroke-width:1.5} .OV-hd::after{content:'Cerrar';font-family:var(--sn);font-size:12px;color:var(--t2);letter-spacing:.02em} .OV-sec{padding:28px 24px 12px;font-family:var(--sn);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);font-weight:400} .OV-row{display:flex;align-items:center;justify-content:space-between;width:100%;height:48px;padding:0 24px;font-family:var(--sf);font-size:20px;font-weight:500;color:var(--t1);text-align:left;border-bottom:none;transition:opacity .2s;text-transform:none;letter-spacing:.01em;line-height:1.2} .OV-row:hover{opacity:.5;background:transparent} .OV-row svg{width:12px;height:12px;stroke:var(--t3);fill:none;stroke-width:1.5;flex-shrink:0} .OV-row.sub{padding-left:24px;font-family:var(--sn);font-weight:400;color:var(--t2);font-size:14px;height:42px;letter-spacing:.02em} /* AUTH */ .AM{position:absolute;top:var(--sy,0px);left:0;right:0;height:100vh;z-index:200;background:rgba(14,36,23,.35);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s var(--el)}.AM.o{opacity:1;pointer-events:auto} /* 400px era una tira: con el alta completa (correo, dos contrase\xF1as, nombre, apellidos, tel\xE9fono y la direcci\xF3n en piezas) sal\xEDa una columna largu\xEDsima. En escritorio se ensancha; en m\xF3vil sigue igual. */ .AM-box{background:var(--bg);width:min(400px,90vw);max-height:90vh;overflow-y:auto;padding:clamp(36px,6vw,48px);position:relative;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.12)} @media(min-width:720px){.AM-box.ancho{width:min(620px,92vw)}} .AM-dir4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px} @media(max-width:520px){.AM-dir4{grid-template-columns:1fr 1fr}} .AM-box h2{font-family:var(--sf);font-size:26px;font-weight:400;text-transform:none;letter-spacing:.04em;margin-bottom:8px;line-height:1.2}.AM-box p{color:var(--t2);margin-bottom:28px;font-size:13px;line-height:1.6;text-transform:none;letter-spacing:0;font-weight:400} .AM-box .xc{position:absolute;top:20px;right:20px;color:var(--t3);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bgc);border-radius:50%;font-size:16px;transition:background .2s}.AM-box .xc:hover{background:var(--bgp)} .fi{margin-bottom:16px}.fi label{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);margin-bottom:8px;font-weight:500} .fi input,.fi textarea{width:100%;padding:14px 18px;border:1.5px solid rgba(0,0,0,.08);outline:none;background:#fff;transition:border-color .2s,box-shadow .2s;font-weight:400;font-size:14px;border-radius:14px} .fi input:focus,.fi textarea:focus{border-color:var(--t1);box-shadow:0 0 0 3px rgba(0,0,0,.04)} .fb{width:100%;padding:16px;background:#0a0a0a;color:#fff;font-size:13px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;transition:opacity .2s;margin-top:16px;border-radius:50px}.fb:hover{opacity:.85} .fl{text-align:center;margin-top:20px;font-size:13px;color:var(--t3);text-transform:none;letter-spacing:0;font-weight:400;display:flex;flex-direction:column;gap:8px} /* EL TEST \u2014 banda de entrada y el propio test */ /* Con el padding generico de .S la banda se quedaba a 16px del borde mientras el resto de secciones respiran var(--pm): el titular parecia metido y el boton pegado al canto. Medido: boton a 16px del borde derecho con 1440 de ventana. */ .S.QZ-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:clamp(56px,6.5vw,96px) var(--pm)} /* Lleva las DOS clases a proposito: la regla generica .S vive mas abajo en la hoja y con la misma especificidad ganaba ella, asi que la banda seguia a 16px del borde por mucho que se escribiera aqui. Medido: el titular de la banda en x=16 y el de Servicios en x=80. */ .QZ-cta-ov{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--t3);font-weight:500;margin-bottom:8px} .QZ-cta h2{font-size:clamp(1.8rem,3.4vw,2.8rem);margin:0 0 6px;text-transform:none;letter-spacing:-.02em} .QZ-cta p{font-size:13px;color:var(--t3);margin:0} .QZ{max-width:520px} .QZ-pg{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);font-weight:600;margin-bottom:10px} /* EL CUERPO. La transicion va en el relleno y en una escala muy corta desde el centro de cada pieza: se busca que la zona responda al dedo, no que salte. 220ms con la curva de la casa. */ /* LO QUE DICEN. Sin foto y sin tarjeta cargada: la cita manda y el nombre va debajo, chico. Tres columnas en ancho, una en movil. */ .RS{padding:0 var(--pm);background:var(--bg)} .RS-i{max-width:1180px;margin:0 auto} .RS-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(18px,2.4vw,32px);margin-top:clamp(28px,3.5vw,44px)} .RS-c{margin:0;padding:clamp(20px,2.2vw,28px);border:1px solid var(--bl);border-radius:var(--radius-lg,16px);background:var(--surface,rgba(0,0,0,.015))} .RS-est{font-size:13px;letter-spacing:.14em;color:var(--ac);margin-bottom:10px} .RS-t{font-family:var(--sn);font-size:15px;font-weight:640;letter-spacing:-.015em;color:var(--t1);margin-bottom:8px} .RS-x{margin:0;font-size:15px;line-height:1.65;color:var(--t2)} .RS-n{margin-top:16px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap} .RS-v{font-size:10px;letter-spacing:.1em;padding:3px 8px;border-radius:999px;border:1px solid var(--bl);color:var(--ac);text-transform:none;letter-spacing:.02em} .RS-abrir{margin-top:clamp(24px,3vw,36px)} .RS-invita{font-size:15px;line-height:1.6;color:var(--t2);margin:14px 0 0;max-width:46ch} .RS-ok{margin-top:clamp(24px,3vw,36px);font-size:14px;color:var(--ac);font-weight:600} .RS-f{margin-top:clamp(24px,3vw,36px);max-width:640px;display:flex;flex-direction:column;gap:12px} .RS-f-est{display:flex;gap:4px} .RS-f-e{font-size:26px;line-height:1;color:var(--bh);transition:color .18s var(--el),transform .18s var(--el);cursor:pointer} .RS-f-e:hover{transform:scale(1.12)} .RS-f-e.on{color:var(--ac)} .RS-f input,.RS-f textarea{width:100%;padding:13px 15px;border:1px solid var(--bl);border-radius:var(--radius-md,10px);font-family:var(--sn);font-size:14.5px;color:var(--t1);background:var(--bg);transition:border-color .2s var(--el)} .RS-f input:focus,.RS-f textarea:focus{border-color:var(--ac);outline:none} .RS-f textarea{resize:vertical;line-height:1.6} .RS-f-b{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:2px} .RS-f-x{font-size:13px;color:var(--t3);text-decoration:underline} /* MIS CITAS. Lo siguiente en grande y el resto en filas sobrias. */ /* El aire de arriba tiene que despejar la cabecera FIJA. Con 28px el boton de volver se dibujaba encima del logo. Es el mismo valor que usa la pagina de pedidos, que ya lo tenia resuelto. */ .MC{max-width:760px;margin:0 auto;padding:clamp(80px,10vw,120px) var(--pm) clamp(60px,8vw,100px)} .MC h1{font-family:var(--sn);font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:650;letter-spacing:-.03em;color:var(--t1);margin:0 0 22px} .MC h2{font-family:var(--sn);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);font-weight:600;margin:26px 0 10px} .MC-vacio{font-size:15px;color:var(--t2);margin:0 0 18px} .MC-next{border:1px solid var(--bl);border-radius:var(--radius-lg,16px);padding:clamp(20px,3vw,28px);background:var(--surface,rgba(0,0,0,.02))} .MC-next-t{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);font-weight:600} .MC-next-d{font-family:var(--sn);font-size:clamp(1.15rem,2.2vw,1.5rem);font-weight:650;color:var(--t1);margin-top:8px;letter-spacing:-.02em} .MC-next-h{font-family:var(--sn);font-size:clamp(2rem,4.5vw,3rem);font-weight:680;color:var(--ac);line-height:1.05;letter-spacing:-.03em;font-variant-numeric:tabular-nums} .MC-next-s{font-size:14.5px;color:var(--t2);margin-top:6px} .MC-next-x{font-size:13px;color:var(--t3);margin-top:3px} .MC-est{display:inline-block;margin-top:12px;font-size:11.5px;padding:4px 10px;border-radius:999px;border:1px solid var(--bl);color:var(--t2)} .MC-est.confirmada{color:#1b6b3a;border-color:#1b6b3a} .MC-est.pendiente{color:#B45309;border-color:#B45309} .MC-est.cancelada{color:#9A8E7F;text-decoration:line-through} .MC-res{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px} .MC-res > div{border:1px solid var(--bl);border-radius:var(--radius-md,12px);padding:14px;text-align:center} .MC-res b{display:block;font-family:var(--sn);font-size:22px;font-weight:680;color:var(--t1)} .MC-res span{font-size:11.5px;color:var(--t3)} .MC-c{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 0;border-top:1px solid var(--bl)} .MC-c-d{font-size:14px;color:var(--t1)} .MC-c-s{font-size:13px;color:var(--t3);flex:1;min-width:120px} .MC-c .MC-est{margin-top:0} .MC-pas{opacity:.62} /* MI SEGUIMIENTO. Los circulos son el gesto: uno por vez que toca hacerlo ese dia. Nada de listas con casillas cuadradas \u2014 esto se abre a diario y con una mano. */ .SG{max-width:760px;margin:0 auto;padding:clamp(80px,10vw,120px) var(--pm) clamp(60px,8vw,100px)} .SG h1{font-family:var(--sn);font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:650;letter-spacing:-.03em;color:var(--t1);margin:0 0 22px} .SG-hoy{border:1px solid var(--bl);border-radius:var(--radius-lg,16px);padding:clamp(18px,2.6vw,26px);background:var(--surface,rgba(0,0,0,.02));margin-bottom:20px} .SG-hoy-t{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);font-weight:600} .SG-hoy-n{font-family:var(--sn);font-size:clamp(2rem,4.5vw,2.8rem);font-weight:680;color:var(--ac);line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums} .SG-hoy-n span{font-size:.5em;color:var(--t3);font-weight:600} .SG-hoy-b{height:6px;border-radius:999px;background:var(--bl);overflow:hidden;margin-top:10px} .SG-hoy-b i{display:block;height:100%;background:var(--ac);border-radius:999px;transition:width .45s var(--el)} .SG-c{border:1px solid var(--bl);border-radius:var(--radius-lg,14px);padding:16px 18px;margin-bottom:12px;transition:border-color .25s var(--el),background .25s var(--el)} .SG-c.ok{border-color:var(--ac);background:rgba(14,159,110,.05)} .SG-c-h{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap} .SG-c-n{font-family:var(--sn);font-size:16px;font-weight:640;color:var(--t1);letter-spacing:-.015em} .SG-c-d{font-size:13px;color:var(--t3);margin-top:3px} .SG-c-i{font-size:14px;line-height:1.6;color:var(--t2);margin-top:10px} .SG-marcas{display:flex;gap:8px;flex-shrink:0} .SG-m{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--bh);color:transparent;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .22s var(--el)} .SG-m:hover{border-color:var(--ac);transform:scale(1.06)} .SG-m.on{background:var(--ac);border-color:var(--ac);color:#fff} .SG-m:disabled{opacity:.5;cursor:wait} .SG-racha{display:flex;gap:4px;margin-top:14px} .SG-p{width:100%;height:6px;border-radius:2px;background:var(--bl)} .SG-p.medio{background:color-mix(in srgb, var(--ac) 45%, transparent)} .SG-p.full{background:var(--ac)} .SG-pie{font-size:13px;color:var(--t3);margin-top:18px;line-height:1.6} /* MIS DATOS. Etiqueta arriba, campo debajo, direccion en piezas. Las cuatro cajas cortas van en fila y colapsan a dos en movil: en una columna son cuatro pantallazos para escribir ocho caracteres. */ .MD{display:flex;flex-direction:column;gap:14px;margin-top:4px} .MD-c{display:flex;flex-direction:column;gap:6px} .MD-c > span{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--t3);font-weight:600} .MD input,.MD textarea{width:100%;padding:12px 15px;border:1.5px solid var(--bl);border-radius:10px;background:var(--bg);font-family:var(--sn);font-size:14px;color:var(--t1);transition:border-color .18s var(--el)} .MD input:focus,.MD textarea:focus{border-color:var(--ac);outline:none} .MD input:disabled{background:rgba(0,0,0,.04);color:var(--t3);cursor:not-allowed} .MD input.ok{border-color:#1b6b3a} .MD input.mal{border-color:#c0392b} .MD textarea{resize:vertical;line-height:1.55} .MD-2{display:grid;grid-template-columns:1fr 1fr;gap:12px} .MD-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px} @media(max-width:560px){.MD-4{grid-template-columns:1fr 1fr}.MD-2{grid-template-columns:1fr}} .MD-tel{display:flex;align-items:stretch;gap:8px} .MD-pre{display:flex;align-items:center;padding:0 14px;border:1.5px solid var(--bl);border-radius:10px;font-size:14px;color:var(--t2);font-weight:600;background:rgba(0,0,0,.02)} .MD-sn{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--t2);margin-top:-4px} .MD-sn input{width:15px;height:15px;accent-color:var(--ac)} .MD-sep{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);font-weight:600;margin-top:8px;padding-top:14px;border-top:1px solid var(--bl)} .MD-cp{font-size:12.5px;font-weight:600;margin-top:-6px} .MD-cp.ok{color:#1b6b3a} .MD-cp.mal{color:#c0392b} /* La direccion de la cita, en piezas. Mismo criterio que Mis datos: etiqueta arriba y las cuatro cajas cortas en fila. */ .RC-dir{display:flex;flex-direction:column;gap:10px} .RC-dir-t{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:2px} .RC-dir-c{display:flex;flex-direction:column;gap:5px} .RC-dir-c > span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--t3);font-weight:600} .RC-dir-4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px} @media(max-width:560px){.RC-dir-4{grid-template-columns:1fr 1fr}} .RC-dir-sn{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--t2)} .RC-dir-sn input{width:15px;height:15px;accent-color:var(--ac)} .RC-dir-cp{font-size:12.5px;font-weight:600;color:#1b6b3a;margin-top:-4px} .CZ{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:18px} .CZ-svg{width:172px;height:auto;overflow:visible} .CZ-svg *{transition:fill .22s var(--el),opacity .22s var(--el)} .CZ-base{fill:rgba(0,0,0,.07)} .CZ-off{fill:rgba(0,0,0,.07)} .CZ-z{fill:rgba(0,0,0,.12);cursor:pointer;transform-box:fill-box;transform-origin:center;transition:transform .22s var(--el),fill .22s var(--el)} .CZ-z:hover{fill:rgba(0,0,0,.26)} .CZ-z.on{fill:var(--ac)} .CZ-z.on,.CZ-z:hover{transform:scale(1.045)} .CZ-pie{font-size:12.5px;letter-spacing:.02em;color:var(--t2);min-height:18px;font-weight:600} /* Sin raton no hay pasar por encima: en tactil la figura sigue siendo pulsable y las respuestas de abajo son el camino completo. */ @media(hover:none){.CZ-z:hover{fill:rgba(0,0,0,.12);transform:none}} /* En movil la figura se encoge. Medido a 390x844: con 172px la ultima respuesta se salia 17px por abajo y el dialogo no scrollea \u2014 o sea que \xABAun no lo tengo claro\xBB, la que necesita justo quien duda, no se veia. */ @media(max-width:520px){.CZ-svg{width:124px}.CZ{margin-top:12px;gap:7px}.CZ-pie{font-size:12px}} .QZ-op.sobre{border-color:rgba(0,0,0,.45);background:rgba(0,0,0,.02)} .QZ-ops{display:flex;flex-direction:column;gap:8px;margin-top:16px} .QZ-op{text-align:left;padding:15px 18px;border:1.5px solid rgba(0,0,0,.1);border-radius:14px;font-size:14px;color:var(--t1);cursor:pointer;transition:border-color .2s,background .2s} .QZ-op:hover{border-color:rgba(0,0,0,.3)} .QZ-op.a{border-color:#0a0a0a;background:rgba(0,0,0,.03)} .QZ-atras{display:block;margin:16px auto 0;font-size:12px;color:var(--t3);font-weight:500} .QZ-recs{display:flex;flex-direction:column;gap:8px;margin-top:16px} .QZ-rec{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px;border:1px solid rgba(0,0,0,.08);border-radius:14px;cursor:pointer;transition:border-color .2s} .QZ-rec:hover{border-color:rgba(0,0,0,.25)} .QZ-rec-img{width:52px;height:52px;flex-shrink:0;border-radius:10px;overflow:hidden;background:#f4f4f5} .QZ-rec-img img{width:100%;height:100%;object-fit:cover;display:block} .QZ-rec-b{flex:1;min-width:0} .QZ-rec-n{display:block;font-size:14px;font-weight:500;color:var(--t1)} .QZ-rec-p{display:block;font-size:13px;color:var(--t3);margin-top:2px} /* PACKS \u2014 rejilla de cajas y su ficha */ .PKS{padding-top:clamp(60px,9vw,110px)} .PK-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(18px,2.5vw,30px)} .PK{cursor:pointer;background:var(--bgc);border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.06);transition:transform .3s,box-shadow .3s} .PK:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(0,0,0,.09)} .PK-img{position:relative;aspect-ratio:4/3;background:#f4f4f5;overflow:hidden} .PK-img img{width:100%;height:100%;object-fit:cover;display:block} .PK-bd{position:absolute;top:10px;left:10px;background:#0a0a0a;color:#fff;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:4px} .PK-out{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.82);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--t1)} .PK-b{padding:16px 18px 20px} .PK-n{font-size:15px;font-weight:600;letter-spacing:-.01em;margin-bottom:4px;color:var(--t1)} .PK-tl{font-size:12px;color:var(--t3);line-height:1.5;margin-bottom:8px} .PK-c{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);margin-bottom:10px} .PK-p{display:flex;align-items:baseline;gap:8px} .PK-p .nw{font-size:17px;font-weight:600;color:var(--t1)} .PK-p .og{font-size:13px;color:var(--t3);text-decoration:line-through} .PK-sv{margin-top:6px;font-size:12px;font-weight:600;color:#1b6b3a} .PKD{max-width:1080px;margin:0 auto;padding:clamp(24px,4vw,48px) clamp(18px,4vw,40px) clamp(60px,8vw,100px)} .PKD-back{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;color:var(--t2);margin-bottom:clamp(20px,3vw,32px)} .PKD-w{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:start} .PKD-img{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;background:#f4f4f5} .PKD-img img{width:100%;height:100%;object-fit:cover;display:block} /* Abanico: el pack sin foto propia se pinta con las fotos de lo que lleva. Se separan con left en % del MARCO y no con translateX, que es % del ancho de la foto: con marcos estrechos las tres se apelotonan en el centro y la de la derecha se sale del recorte. Dos clases de especificidad para ganarle al object-fit:cover de .PK-img img sin depender del orden del fichero. La caja lleva MEDIDA (width/height), no max-*: con auto, una foto que aun no ha cargado mide 0x0, y entonces loading=lazy no la ve nunca dentro del viewport y no la carga jamas \u2014 0x0 para siempre. Con medida, object-fit contain ajusta la foto dentro sin deformarla. */ .PK-ab{position:absolute;inset:0;display:block} .PK-img .PK-ab img,.PKD-img .PK-ab img{position:absolute;top:50%;left:50%;width:38%;height:60%;object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 10px 18px rgba(0,0,0,.18))} .PK-img .PK-ab.n1 img,.PKD-img .PK-ab.n1 img{width:66%;height:80%} .PK-img .PK-ab.n2 img:nth-child(1),.PKD-img .PK-ab.n2 img:nth-child(1){left:34%;width:46%;height:70%;transform:translate(-50%,-50%) rotate(-6deg)} .PK-img .PK-ab.n2 img:nth-child(2),.PKD-img .PK-ab.n2 img:nth-child(2){left:66%;width:46%;height:70%;transform:translate(-50%,-50%) rotate(6deg)} .PK-img .PK-ab.n3 img:nth-child(1),.PKD-img .PK-ab.n3 img:nth-child(1){left:26%;transform:translate(-50%,-50%) rotate(-7deg);z-index:1} .PK-img .PK-ab.n3 img:nth-child(2),.PKD-img .PK-ab.n3 img:nth-child(2){left:50%;width:46%;height:74%;z-index:3} .PK-img .PK-ab.n3 img:nth-child(3),.PKD-img .PK-ab.n3 img:nth-child(3){left:74%;transform:translate(-50%,-50%) rotate(7deg);z-index:2} .PKD-bd{display:inline-block;background:#0a0a0a;color:#fff;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:4px;margin-bottom:12px} .PKD-info h1{font-size:clamp(1.8rem,3.4vw,2.8rem);letter-spacing:-.02em;margin:0 0 8px;text-transform:none} .PKD-tl{font-size:14px;color:var(--t2);line-height:1.6;margin:0 0 18px} .PKD-p{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:18px} .PKD-p .nw{font-size:26px;font-weight:600;color:var(--t1)} .PKD-p .og{font-size:15px;color:var(--t3);text-decoration:line-through} .PKD-sv{font-size:12px;font-weight:600;color:#1b6b3a;background:#e8f5ee;padding:4px 10px;border-radius:50px} .PKD-d{font-size:14px;line-height:1.7;color:var(--t2);margin:0 0 22px} .PKD-list{border-top:1px solid rgba(0,0,0,.08);padding-top:18px;margin-bottom:22px} .PKD-list-t{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--t3);margin-bottom:12px} .PKD-it{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.05);cursor:pointer} .PKD-it:last-child{border-bottom:0} .PKD-it-img{width:46px;height:46px;flex-shrink:0;border-radius:8px;overflow:hidden;background:#f4f4f5} .PKD-it-img img{width:100%;height:100%;object-fit:cover;display:block} .PKD-it-b{flex:1;min-width:0} .PKD-it-n{display:block;font-size:13px;font-weight:500;color:var(--t1)} .PKD-it-q{display:block;font-size:11px;color:var(--t3);margin-top:2px} .PKD-it-gift{font-style:normal;color:#1b6b3a;font-weight:600} .PKD-it-pr{font-size:13px;color:var(--t2);flex-shrink:0} .PKD-cta{margin-top:4px} .PKD-few{margin-top:10px;text-align:center;font-size:12px;font-weight:600;color:#b45309} @media(max-width:860px){.PKD-w{grid-template-columns:1fr}} /* COOKIES \u2014 abajo del todo, por encima de todo, sin tapar la tienda entera */ .CK{position:fixed;left:0;right:0;bottom:0;z-index:1200;display:flex;justify-content:center;padding:16px;pointer-events:none} .CK-box{pointer-events:auto;width:100%;max-width:560px;background:var(--bgc,#fff);border:1px solid rgba(0,0,0,.1);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.18);padding:20px 22px} .CK-t{font-size:15px;font-weight:600;letter-spacing:-.01em;margin-bottom:8px;color:var(--t1)} .CK-p{font-size:13px;line-height:1.55;color:var(--t2);margin:0 0 14px} .CK-lnk{background:transparent;border:0;padding:0;font:inherit;color:var(--t1);text-decoration:underline;text-underline-offset:2px;cursor:pointer} .CK-lnk--c{display:block;margin:12px auto 0;font-size:12px;color:var(--t3)} .CK-cats{display:flex;flex-direction:column;gap:10px;margin:0 0 16px} .CK-cat{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-weight:400} .CK-cat--fija{opacity:.6;cursor:default} .CK-cat input{width:15px;height:15px;margin:2px 0 0;flex-shrink:0;accent-color:#0a0a0a} .CK-cat strong{display:block;font-size:13px;font-weight:600;color:var(--t1)} .CK-cat em{display:block;font-style:normal;font-size:12px;line-height:1.5;color:var(--t3);margin-top:2px} /* Los dos botones pesan LO MISMO a proposito: rechazar no puede costar mas que aceptar. */ .CK-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px} .CK-b{padding:12px 14px;font-size:12px;font-weight:600;letter-spacing:.03em;border-radius:50px;cursor:pointer;border:1px solid rgba(0,0,0,.14);transition:opacity .2s} .CK-b:hover{opacity:.8} .CK-b--no{background:transparent;color:var(--t1)} .CK-b--ok{background:#0a0a0a;color:#fff;border-color:#0a0a0a} @media(max-width:520px){.CK-acts{grid-template-columns:1fr}}.fl button{color:var(--t1);text-decoration:underline;text-underline-offset:3px;font-size:13px;font-weight:500} .fe{color:var(--sale);font-size:12px;margin-top:8px} /* HERO \u2014 shop.app style */ .H{position:relative;min-height:100svh;background:var(--bgc);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(80px,10vw,140px) var(--pm);overflow:hidden} .L.preview .H{min-height:540px!important;height:540px!important;padding:60px var(--pm) 48px!important} .L.preview .intro{display:none!important} .L.preview .A{display:none!important} .H.H-bg{background-color:var(--bgd);background-position:center} .H.H-bg::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,36,23,.2) 0%,rgba(14,36,23,.05) 30%,rgba(14,36,23,.55) 100%);z-index:1;pointer-events:none} .H.H-bg::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.06;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")} .H.H-bg .H-c h1,.H.H-bg .H-c h2.H-wm{color:var(--tl);text-shadow:0 4px 40px rgba(0,0,0,.3);font-weight:400} .H.H-bg .H-c p{color:rgba(244,238,227,.7);text-shadow:0 2px 20px rgba(0,0,0,.4);font-weight:400} .H.H-bg .H-search{background:rgba(255,255,255,.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:rgba(255,255,255,.15);box-shadow:none} .H.H-bg .H-search input{color:var(--tl)}.H.H-bg .H-search input::placeholder{color:rgba(244,238,227,.35)} .H.H-bg .H-search button{background:rgba(244,238,227,.12);border:1px solid rgba(244,238,227,.15)}.H.H-bg .H-search button svg{stroke:var(--tl)} @keyframes kenBurns{0%{transform:scale(1)}100%{transform:scale(1.08)}} .H.H-bg>*:not(.H-c):not(.H-float){animation:kenBurns 25s ease-in-out infinite alternate} .H-float{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0} .H-float>div{position:absolute;border-radius:18px;overflow:hidden;box-shadow:0 12px 48px rgba(0,0,0,.18),0 4px 16px rgba(0,0,0,.1);transition:transform 12s ease;animation:hFloat 6s ease-in-out infinite alternate;border:2px solid rgba(255,255,255,.08)} .H.H-bg .H-float>div{box-shadow:0 16px 64px rgba(0,0,0,.35),0 6px 20px rgba(0,0,0,.2);border-color:rgba(255,255,255,.12)} @keyframes hFloat{0%{transform:translateY(0) rotate(0deg)}100%{transform:translateY(-12px) rotate(2deg)}} .H-float>div:nth-child(2){animation-delay:-1s;animation-duration:7s} .H-float>div:nth-child(3){animation-delay:-2s;animation-duration:5s} .H-float>div:nth-child(4){animation-delay:-3s;animation-duration:8s} .H-float>div:nth-child(5){animation-delay:-0.5s;animation-duration:6.5s} .H-float>div:nth-child(6){animation-delay:-2.5s;animation-duration:7.5s} .H-float>div img{width:100%;height:100%;object-fit:cover} .H-c{position:relative;z-index:2;text-align:center;max-width:760px} .H-logo{height:clamp(72px,13vw,140px);width:auto;object-fit:contain;margin:0 auto 28px;display:block;filter:invert(0);opacity:0;animation:heroLogoIn 1.4s .2s var(--el) forwards} .H.H-bg .H-logo{filter:brightness(0) invert(1)} @keyframes heroLogoIn{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}} .H-wm{font-family:var(--sf);font-size:clamp(4rem,12vw,10rem);letter-spacing:.15em;margin-bottom:28px;line-height:.85;color:var(--t1);font-weight:300;opacity:0;animation:heroLogoIn 1.4s .2s var(--el) forwards} .H.H-bg .H-wm{color:var(--tl);text-shadow:0 4px 60px rgba(0,0,0,.25)} .H-over{font-family:var(--sn);font-size:9.5px;letter-spacing:.35em;text-transform:uppercase;color:var(--sand);font-weight:400;margin-bottom:28px;opacity:0;animation:heroFadeUp 1s .6s var(--el) forwards} .H.H-bg .H-over{color:var(--sand)} @keyframes heroFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}} .H-c p{font-family:var(--sn);font-size:11px;color:var(--t3);margin-bottom:40px;font-weight:400;text-transform:uppercase;letter-spacing:.18em;line-height:2;opacity:0;animation:heroFadeUp 1s .75s var(--el) forwards} .H.H-bg .H-c p{color:rgba(244,238,227,.45)} /* CTAs */ .H-ctas{display:flex;align-items:center;justify-content:center;gap:16px;opacity:0;animation:heroFadeUp 1s .9s var(--el) forwards} .H-cta-fill{font-family:var(--sn);font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:400;padding:15px 36px;background:var(--ac);color:var(--tl);border:1px solid var(--ac);transition:color .5s var(--el);position:relative;overflow:hidden;z-index:1;border-radius:50px} .H-cta-fill::before{content:'';position:absolute;inset:0;background:var(--marine);transform:translateY(100%);transition:transform .5s var(--el);z-index:-1}.H-cta-fill:hover::before{transform:translateY(0)} .H-cta-out{font-family:var(--sn);font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:400;padding:15px 36px;background:transparent;color:var(--t1);border:1px solid var(--line);transition:all .5s var(--el);border-radius:50px} .H-cta-out:hover{border-color:var(--t1);color:var(--t1)} .H.H-bg .H-cta-fill{background:rgba(255,255,255,.95);color:var(--bgd);border-color:rgba(255,255,255,.95)}.H.H-bg .H-cta-fill:hover{color:var(--bgd)}.H.H-bg .H-cta-fill::before{background:rgba(255,255,255,1);z-index:-1} .H.H-bg .H-cta-out{color:rgba(244,238,227,.7);border-color:rgba(244,238,227,.25);border-radius:50px}.H.H-bg .H-cta-out:hover{color:var(--tl);border-color:rgba(244,238,227,.6)} /* Scroll indicator */ .H-scroll{position:absolute;bottom:clamp(24px,4vw,40px);left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:heroFadeUp 1s 1.3s var(--el) forwards} .H-scroll span{font-family:var(--sn);font-size:7px;letter-spacing:.3em;text-transform:uppercase;color:var(--t3);writing-mode:vertical-rl} .H-scroll::after{content:'';width:1px;height:28px;background:linear-gradient(180deg,var(--line),transparent);animation:scrollLine 2.5s ease-in-out infinite} .H.H-bg .H-scroll span{color:rgba(244,238,227,.25)}.H.H-bg .H-scroll::after{background:linear-gradient(180deg,rgba(244,238,227,.15),transparent)} @keyframes scrollLine{0%,100%{opacity:.2;transform:scaleY(1)}50%{opacity:.8;transform:scaleY(.5)}} /* H-search removed \u2014 using CTAs instead */ .H-results{position:absolute;top:100%;left:0;right:0;margin-top:8px;background:#fff;border-radius:20px;box-shadow:0 12px 48px rgba(0,0,0,.12);max-height:400px;overflow-y:auto;z-index:10;border:1px solid rgba(0,0,0,.04)} .H-res-i{display:flex;align-items:center;gap:14px;padding:12px 20px;cursor:pointer;transition:background .15s} .H-res-i:hover{background:#f8f8f8} .H-res-i:first-child{border-radius:20px 20px 0 0}.H-res-i:last-child{border-radius:0 0 20px 20px} .H-res-i img{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0} .H-res-i .rn{font-size:14px;font-weight:500;flex:1}.H-res-i .rp{font-size:13px;font-weight:600;color:var(--t2);flex-shrink:0} .H-res-e{padding:24px 20px;text-align:center;font-size:13px;color:var(--t3)} .cta{font-size:12px;letter-spacing:.1em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;position:relative;padding:14px 32px;font-weight:600;background:var(--t1);color:#fff;border-radius:50px;transition:all .3s;box-shadow:0 4px 16px rgba(0,0,0,.12)} .cta:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.18)} /* CATEGORY BROWSE \u2014 editorial mosaic */ .CB{padding:clamp(60px,10vw,120px) var(--pm)} .CB-head{text-align:center;margin-bottom:clamp(40px,6vw,64px)} .CB-head .cb-over{font-family:var(--sn);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--sand);margin-bottom:14px} .CB-head h2{font-family:var(--sf);font-size:clamp(2rem,4vw,3.5rem);font-weight:300;letter-spacing:.04em;margin-bottom:12px} .CB-head h2 em{font-style:italic;font-weight:400} .CB-head p{font-family:var(--sn);font-size:11px;color:var(--t3);letter-spacing:.12em;text-transform:uppercase} .CB-mosaic{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;grid-template-rows:auto auto;gap:4px} .CB-mosaic .CB-card:first-child{grid-row:1/3} .CB-card{position:relative;overflow:hidden;cursor:pointer;min-height:280px} .CB-card img{width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--el);filter:brightness(.85)} .CB-card:hover img{transform:scale(1.05);filter:brightness(.65)} /* Inner frame on hover */ .CB-card::before{content:'';position:absolute;inset:14px;border:1px solid transparent;z-index:3;pointer-events:none;transition:border-color .6s var(--el),inset .6s var(--el)} .CB-card:hover::before{border-color:rgba(244,238,227,.3);inset:18px} /* Overlay */ .CB-card::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,36,23,.5) 0%,transparent 50%);pointer-events:none;z-index:1} .CB-card .cb-num{position:absolute;top:18px;left:20px;font-family:var(--sf);font-style:italic;font-size:14px;font-weight:300;color:var(--sand);opacity:.6;z-index:2} .CB-card .cb-info{position:absolute;bottom:0;left:0;right:0;padding:20px 22px;z-index:2} .CB-card .cb-info h3{font-family:var(--sf);font-size:clamp(20px,2.5vw,28px);font-weight:400;color:var(--tl);letter-spacing:.06em;margin-bottom:4px;text-transform:none;line-height:1.1} .CB-card .cb-info .cb-cta{font-family:var(--sn);font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,238,227,.5);opacity:0;transform:translateY(8px);transition:all .5s var(--el)} .CB-card:hover .cb-info .cb-cta{opacity:1;transform:translateY(0)} @media(max-width:768px){.CB-mosaic{grid-template-columns:1fr 1fr}.CB-mosaic .CB-card:first-child{grid-row:auto}.CB-mosaic .CB-card:last-child:nth-child(odd){grid-column:1 / -1;min-height:160px}} @media(max-width:480px){.CB-mosaic{grid-template-columns:1fr}} /* MARQUEE */ .MQ{overflow:hidden;padding:20px 0;border-bottom:1px solid rgba(207,196,176,.2)} .MQ-t{display:flex;gap:clamp(40px,6vw,80px);animation:mqr 30s linear infinite;width:max-content;font-family:var(--sn);font-size:10px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--t3);white-space:nowrap} @keyframes mq{to{transform:translateX(-50%)}} @keyframes mqr{from{transform:translateX(-50%)}to{transform:translateX(0)}} /* CATEGORY GRID */ .CG{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:0} .CG-i{position:relative;aspect-ratio:3/4;overflow:hidden;cursor:pointer} .CG-i img{width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--el),filter .6s;filter:brightness(.75)} .CG-i:hover img{transform:scale(1.06);filter:brightness(.55)} /* Inner frame that draws on hover */ .CG-i::before{content:'';position:absolute;inset:16px;border:1px solid rgba(244,238,227,0);z-index:2;pointer-events:none;transition:border-color .6s var(--el),inset .6s var(--el)} .CG-i:hover::before{border-color:rgba(244,238,227,.35);inset:20px} .CG-ov{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;color:var(--tl);pointer-events:none;text-align:center;padding:0 24px 32px;background:linear-gradient(transparent 40%,rgba(14,36,23,.5))} .CG-ov .tag{font-family:var(--sn);font-size:9px;letter-spacing:.25em;text-transform:uppercase;opacity:.5;margin-bottom:8px;font-weight:400} .CG-ov h2{font-family:var(--sf);font-size:clamp(2rem,4vw,3.5rem);font-weight:300;letter-spacing:.06em} .CG-ov .cg-num{font-family:var(--sf);font-style:italic;font-size:13px;color:var(--sand);opacity:.6;position:absolute;top:20px;left:24px;font-weight:300} .CG-ov .ct2{font-family:var(--sn);font-size:9px;letter-spacing:.2em;text-transform:uppercase;margin-top:16px;padding:0;border:none;font-weight:400;opacity:0;transform:translateY(8px);transition:all .5s var(--el)} .CG-i:hover .ct2{opacity:.7;transform:translateY(0)} /* SECTION */ .S{padding:clamp(60px,10vw,120px) clamp(8px,1.5vw,16px)} .S-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:clamp(28px,4vw,48px);flex-wrap:wrap;gap:12px} .S-h h2{font-size:clamp(2rem,4vw,3.5rem)} /* NEW IN \u2014 AURA EDITION */ .NI{padding:clamp(48px,8vw,80px) 0 0;background:var(--bg);color:var(--t1);position:relative;overflow:hidden} .NI-aurora{position:absolute;inset:0;pointer-events:none;overflow:hidden;display:none} .NI-aurora>div{position:absolute;border-radius:50%;filter:blur(80px);opacity:.12;animation:niOrb 12s ease-in-out infinite alternate} .NI-aurora .orb1{width:500px;height:500px;background:radial-gradient(circle,rgba(120,60,255,.5),transparent 70%);top:-10%;left:10%;animation-delay:0s} .NI-aurora .orb2{width:400px;height:400px;background:radial-gradient(circle,rgba(196,163,90,.4),transparent 70%);top:20%;right:5%;animation-delay:-4s;animation-duration:15s} .NI-aurora .orb3{width:350px;height:350px;background:radial-gradient(circle,rgba(0,200,200,.25),transparent 70%);bottom:-5%;left:30%;animation-delay:-8s;animation-duration:18s} @keyframes niOrb{0%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-20px) scale(1.15)}66%{transform:translate(-20px,30px) scale(.9)}100%{transform:translate(10px,10px) scale(1.05)}} .NI-top{padding:0 var(--pm) clamp(28px,4vw,40px);display:flex;justify-content:space-between;align-items:flex-end;gap:24px;position:relative;z-index:2} .NI-top .ni-over{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--t3);font-weight:400;margin-bottom:10px;display:flex;align-items:center;gap:10px} .NI-top .ni-over::before{content:'';width:24px;height:1px;background:linear-gradient(90deg,transparent,var(--t3))} .NI-top h2{font-family:var(--sf);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:300;letter-spacing:.04em;line-height:.92;background:linear-gradient(135deg,var(--t1) 30%,var(--clay) 60%,var(--t1) 90%);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:niTextShine 6s ease-in-out infinite} @keyframes niTextShine{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}} .NI-cta{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--t2);padding:10px 20px;border:1px solid var(--line);border-radius:50px;transition:all .5s;cursor:pointer;white-space:nowrap;flex-shrink:0;position:relative;overflow:hidden;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.NI-cta:hover{color:#fff;border-color:rgba(196,163,90,.5);box-shadow:0 0 20px rgba(196,163,90,.15)} .NI-mq{overflow:hidden;padding:clamp(12px,2vw,18px) 0;position:relative;z-index:2;border-top:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06)} .NI-mq-track{display:flex;gap:clamp(32px,6vw,64px);animation:niMarquee 20s linear infinite;width:max-content} .NI-mq-track span{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:rgba(0,0,0,.22);font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:clamp(32px,6vw,64px)} .NI-mq-track span::after{content:'\u25C6';font-size:6px;color:rgba(196,163,90,.3)} @keyframes niMarquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}} .NI-scroll{display:flex;gap:clamp(12px,2vw,20px);padding:clamp(24px,4vw,40px) var(--pm);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;position:relative;z-index:2}.NI-scroll::-webkit-scrollbar{display:none} .NI-cd{position:relative;flex-shrink:0;width:clamp(260px,30vw,340px);border-radius:8px;overflow:hidden;cursor:pointer;scroll-snap-align:start;background:rgba(244,238,227,.04)} .NI-cd::before{content:'';position:absolute;inset:-2px;border-radius:18px;background:conic-gradient(from var(--ni-angle,0deg),rgba(196,163,90,.6),rgba(120,60,255,.4),rgba(0,200,200,.3),rgba(196,163,90,.6));z-index:-1;opacity:0;transition:opacity .6s;animation:niSpin 4s linear infinite} .NI-cd:hover::before{opacity:0} @keyframes niSpin{0%{--ni-angle:0deg}100%{--ni-angle:360deg}} @property --ni-angle{syntax:'';initial-value:0deg;inherits:false} .NI-cd-img{aspect-ratio:3/4;overflow:hidden;position:relative} .NI-cd-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--eo),filter .6s}.NI-cd:hover .NI-cd-img img{transform:scale(1.08);filter:brightness(1.1) contrast(1.05)} .NI-cd-img::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(0,0,0,.7));pointer-events:none} .NI-cd-num{position:absolute;top:14px;left:16px;font-size:9px;letter-spacing:.2em;color:rgba(0,0,0,.4);z-index:2;font-weight:300} .NI-cd-badge{position:absolute;top:14px;right:14px;padding:5px 14px;font-size:8px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;background:rgba(196,163,90,.2);border:1px solid rgba(196,163,90,.3);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:rgba(196,163,90,1);border-radius:50px;z-index:2} .NI-cd-info{position:absolute;bottom:0;left:0;right:0;padding:28px 18px 16px;z-index:2;transform:translateY(0);transition:transform .5s var(--eo);background:linear-gradient(to top,rgba(0,0,0,.6),transparent)}.NI-cd:hover .NI-cd-info{transform:translateY(0)} .NI-cd-info h4{font-family:var(--sf);font-size:15px;font-weight:400;letter-spacing:.02em;margin-bottom:4px;line-height:1.2;text-shadow:0 2px 8px rgba(0,0,0,.3)} .NI-cd-info .ni-price{font-family:var(--sn);font-size:12.5px;font-weight:400;color:rgba(244,238,227,.92);font-variant-numeric:tabular-nums;letter-spacing:.04em} .NI-cd-info .ni-price .og{text-decoration:line-through;color:rgba(244,238,227,.25);margin-right:8px} .NI-cd-info .ni-price .nw{color:var(--sand)} .NI-cd-wh{position:absolute;top:44px;right:14px;width:30px;height:30px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2;opacity:0;transform:scale(.8);transition:all .4s var(--eo)}.NI-cd:hover .NI-cd-wh{opacity:1;transform:scale(1)} .NI-cd-wh svg{stroke:rgba(255,255,255,.6);fill:none;stroke-width:1.5}.NI-cd-wh.lk svg{fill:var(--sale);stroke:var(--sale)} .NI-cd-qa{position:absolute;bottom:56px;left:14px;right:14px;background:rgba(0,0,0,.45);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:8px;display:flex;gap:3px;justify-content:center;transform:translateY(20px);opacity:0;transition:all .45s var(--eo);z-index:3;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.NI-cd:hover .NI-cd-qa{transform:translateY(0);opacity:1} .NI-cd-qa button{flex:1;max-width:42px;height:30px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.8);font-size:10px;font-weight:500;transition:all .2s;border-radius:6px}.NI-cd-qa button:hover{background:rgba(196,163,90,.3);color:#fff} .NI-bot{display:flex;justify-content:center;gap:clamp(28px,5vw,56px);padding:clamp(20px,3vw,28px) var(--pm) clamp(40px,6vw,56px);position:relative;z-index:2} .NI-bot span{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(0,0,0,.34);font-weight:400;display:flex;align-items:center;gap:8px} .NI-bot span::before{content:'';width:4px;height:4px;border-radius:50%;background:rgba(196,163,90,.3)} /* FILTERS */ .F{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px);padding-bottom:clamp(20px,3vw,32px);border-bottom:1px solid rgba(207,196,176,.2);justify-content:center} .F button,.F a{font-family:var(--sn);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:10px 24px;background:transparent;font-weight:400;transition:all .4s var(--el);border-radius:50px;color:var(--t3);border:1px solid rgba(207,196,176,.3)} .F button.a,.F a.a{background:var(--t1);color:var(--tl);border-color:var(--t1)} .F button:hover:not(.a),.F a:hover:not(.a){border-color:var(--t1);color:var(--t1)} /* GRID */ .G{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,2vw,20px)} /* CARD \u2014 PORTRAIT 3:4 */ .C{cursor:pointer;transition:transform .5s var(--el),box-shadow .5s var(--el)}.C:hover{transform:translateY(-3px);box-shadow:0 22px 48px -20px rgba(20,20,20,.22)} .C-img{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--bgp);border-radius:4px} .C-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--el)}.C:hover .C-img img{transform:scale(1.04)} .C-bd{position:absolute;top:12px;left:12px;z-index:2;padding:5px 12px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1;border-radius:50px} .C-bd.nw{background:var(--t1);color:#fff}.C-bd.sl{background:var(--sale);color:#fff} .C-wh{position:absolute;top:10px;right:10px;width:30px;height:30px;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2;opacity:0;transform:scale(.85);transition:all .4s var(--el)}.C:hover .C-wh{opacity:1;transform:scale(1)} .C-wh svg{width:14px;height:14px;stroke:var(--t1);fill:none;stroke-width:1.5}.C-wh.lk svg{fill:var(--clay);stroke:var(--clay)} .C-qa{position:absolute;bottom:0;left:0;right:0;background:rgba(255,255,255,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:10px 14px;display:flex;flex-wrap:wrap;gap:4px;justify-content:center;transform:translateY(100%);opacity:0;transition:all .45s var(--el);z-index:2;border-radius:0 0 4px 4px} .C:hover .C-qa{transform:translateY(0);opacity:1} .C-qa button{flex:0 1 auto;min-width:0;height:34px;padding:0 14px;background:var(--t1);color:var(--tl);font-family:var(--sn);font-size:9px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;transition:all .3s var(--el);border-radius:50px}.C-qa button:hover{background:var(--marine)} .C-f{padding:14px 2px 0} .C-n{font-family:var(--sf);font-size:14px;font-weight:400;margin-bottom:4px;text-transform:none;letter-spacing:.01em;line-height:1.3} .C-p{font-family:var(--sn);font-size:12px;font-weight:400;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:8px;letter-spacing:.04em;color:var(--t2)}.C-p .og{text-decoration:line-through;color:var(--t3);font-weight:300}.C-p .nw{color:var(--clay)} /* LOOKBOOK */ .LB{padding:clamp(40px,6vw,80px) 0;overflow-x:auto;display:flex;gap:clamp(3px,.8vw,8px);padding-left:var(--pm);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;cursor:grab} .LB:active{cursor:grabbing}.LB::-webkit-scrollbar{display:none} .LB>div{flex-shrink:0;width:clamp(280px,38vw,460px);aspect-ratio:3/4;overflow:hidden;scroll-snap-align:start;position:relative} .LB img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--eo)} .LB>div:hover img{transform:scale(1.05)} .LB-cap{position:absolute;bottom:0;left:0;right:0;padding:20px;background:linear-gradient(transparent,rgba(0,0,0,.5));color:#fff;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;opacity:0;transition:opacity .4s} .LB>div:hover .LB-cap{opacity:1} /* BENEFITS */ .BN{display:flex;justify-content:center;gap:clamp(20px,5vw,56px);padding:20px clamp(12px,3vw,32px);border-bottom:1px solid rgba(207,196,176,.15)} .BN-i{display:flex;align-items:center;gap:10px} .BN-i .ic{width:14px;height:14px;stroke:var(--sand);fill:none;stroke-width:1.5;flex-shrink:0;opacity:.6} .BN-i h4{font-family:var(--sn);font-size:9px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--t3);white-space:nowrap} /* PDP \u2014 editorial premium */ .P{position:absolute;top:var(--sy,0px);left:0;right:0;height:100vh;z-index:120;background:var(--bg);overflow-y:auto;transform:translateX(100%);transition:transform .5s var(--el)}.P.o{transform:translateX(0)} .P-top{display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,4vw,56px);border-bottom:1px solid rgba(19,36,26,.06)} .P-top .P-crumbs{font-family:var(--sn);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--t3)} .P-top .P-crumbs b{color:var(--t1);font-weight:400} .P-top .P-logo{font-family:var(--sf);font-weight:500;font-size:20px;letter-spacing:.4em;text-indent:.4em;color:var(--ac);cursor:pointer} .P-top .P-x{font-family:var(--sn);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--t3);cursor:pointer;transition:color .3s}.P-top .P-x:hover{color:var(--t1)} .P-g{display:grid;grid-template-columns:minmax(0,1.1fr) clamp(380px,34vw,480px);align-items:start;max-width:1400px;margin:0 auto;padding:clamp(24px,4vw,48px) clamp(20px,4vw,56px)} .P-gl{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,1.5vw,20px);padding-right:clamp(20px,3vw,48px)} .P-gl-frame{position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;border:1px solid rgba(19,36,26,.06);touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab} .P-gl-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--el)} .P-gl-frame:hover img{transform:scale(1.04)} .P-gl-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.06);color:var(--ac);font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .3s var(--el),background .3s;z-index:3;padding-bottom:2px} .P-gl-frame:hover .P-gl-nav{opacity:1} .P-gl-nav:hover{background:#fff} .P-gl-nav:disabled{opacity:0!important;pointer-events:none} .P-gl-prev{left:12px} .P-gl-next{right:12px} @media(max-width:768px){ .P-gl-nav{width:36px;height:36px;font-size:18px;opacity:1;background:rgba(255,255,255,.7)} .P-gl-prev{left:8px} .P-gl-next{right:8px} } .P-gl-discount{position:absolute;top:16px;left:16px;font-family:var(--sn);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ac);background:rgba(244,238,227,.88);padding:7px 12px;border:1px solid rgba(19,36,26,.06);z-index:2} .P-gl-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;align-items:center;justify-content:center;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:8px 14px;border-radius:50px;z-index:2;border:1px solid rgba(19,36,26,.06)}.P-gl-dots span{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--brand-nav-bg,#1a1a1a);transition:all .3s var(--el);cursor:pointer}.P-gl-dots span.active{background:var(--brand-nav-bg,#1a1a1a)} .P-gl-thumbs{display:flex;gap:8px;justify-content:center} .P-gl-th{width:64px;aspect-ratio:3/4;border:1px solid rgba(19,36,26,.06);overflow:hidden;cursor:pointer;opacity:.5;transition:opacity .4s var(--el),border-color .4s var(--el)} .P-gl-th.active{opacity:1;border-color:var(--ac)} .P-gl-th:hover{opacity:1} .P-gl-th img{width:100%;height:100%;object-fit:cover} .P-nf{padding:0 0 0 clamp(12px,2vw,32px);display:flex;flex-direction:column;justify-content:flex-start;position:sticky;top:32px;align-self:start} .P-nf .P-cat{font-family:var(--sn);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--t3);margin-bottom:16px} .P-nf h1{font-family:var(--sf);font-size:clamp(28px,3vw,42px);font-weight:500;text-transform:none;letter-spacing:.01em;margin-bottom:0;line-height:1.06;color:var(--ac)} .P-nf .desc{font-family:var(--sn);font-size:14px;color:var(--t2);line-height:1.8;margin:20px 0 24px;max-width:42ch;font-weight:300} .P-pr{display:flex;align-items:baseline;gap:12px;margin:16px 0 0;font-variant-numeric:tabular-nums}.P-pr span{font-family:var(--sf);font-size:26px;font-weight:500;color:var(--ac)}.P-pr .og{text-decoration:line-through;color:var(--t3);font-weight:400;font-size:18px}.P-pr .nw{color:var(--clay)} .P-pr small{font-family:var(--sn);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--t3)} .P-hr{height:1px;background:rgba(19,36,26,.1);margin:24px 0} .P-lb{font-family:var(--sn);font-size:10px;font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--ac);margin-bottom:12px} /* PDP recommendations */ .P-recs{max-width:1400px;margin:0 auto;padding:0 clamp(20px,4vw,56px) clamp(60px,8vw,100px)} .P-recs-hd{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid rgba(19,36,26,.08);padding-top:clamp(32px,4vw,48px);margin-bottom:clamp(24px,3vw,36px)} .P-recs-hd h2{font-family:var(--sf);font-weight:500;font-size:clamp(22px,2.5vw,32px);color:var(--ac);letter-spacing:.02em} .P-recs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,2vw,24px)} .P-rec{cursor:pointer} .P-rec-img{aspect-ratio:3/4;overflow:hidden;border:1px solid rgba(19,36,26,.05);margin-bottom:12px} .P-rec-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--el)} .P-rec:hover .P-rec-img img{transform:scale(1.05)} .P-rec-n{font-family:var(--sf);font-size:15px;font-weight:500;color:var(--ac);margin-bottom:3px} .P-rec-p{font-family:var(--sn);font-size:12px;color:var(--t3);letter-spacing:.04em} @media(max-width:768px){.P-recs-grid{grid-template-columns:repeat(2,1fr)}} .sz{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.sz button{min-height:44px;min-width:48px;padding:10px 20px;border:1px solid var(--line);font-family:var(--sn);font-size:9.5px;font-weight:400;letter-spacing:.03em;line-height:1.35;text-transform:uppercase;transition:all .35s var(--el);border-radius:18px}.sz button.ac{background:var(--ac);color:var(--tl);border-color:var(--ac)}.sz button:hover:not(.ac){border-color:var(--ac)} .atb{width:100%;padding:18px;background:var(--ac);color:#F4EEE3;font-family:var(--sn);font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:400;transition:background .4s var(--el),color .3s var(--el);margin-bottom:12px;border-radius:50px;position:relative;overflow:hidden}.atb:hover{background:var(--marine);color:#fff}.atb.ok{background:var(--ok);color:#fff} .awl{width:100%;padding:14px;border:1px solid var(--line);font-family:var(--sn);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:400;transition:border-color .35s var(--el);margin-bottom:24px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:50px}.awl:hover{border-color:var(--ac)} .awl svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5} /* CART */ .D{position:absolute;top:calc(var(--sy,0px) + 8px);right:8px;height:calc(100vh - 16px);width:min(420px,88vw);background:rgba(255,255,255,.98);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);z-index:130;transform:translateX(calc(100% + 16px));transition:transform .55s var(--el);display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.08);border-radius:16px;overflow:hidden}.D.o{transform:translateX(0)} .Dbk{position:absolute;top:var(--sy,0px);left:0;right:0;height:100vh;background:rgba(0,0,0,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:129;opacity:0;pointer-events:none;transition:opacity .4s}.Dbk.o{opacity:1;pointer-events:auto} .D-hd{padding:24px 28px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0} .D-hd h3{font-family:var(--sf);font-size:18px;letter-spacing:.08em;text-transform:uppercase;font-weight:400} .D-hd button{font-size:18px;color:var(--t3);transition:color .2s;line-height:1}.D-hd button:hover{color:var(--t1)} .D-sp{padding:14px 28px;background:linear-gradient(135deg,#f0faf0,#e6f7e6);font-size:11px;letter-spacing:.03em;text-transform:uppercase;text-align:center;font-weight:600;flex-shrink:0;color:#1a7f37;border-radius:12px;margin:0 20px 4px} .D-sp-bar{height:4px;background:rgba(0,0,0,.05);margin-top:10px;overflow:hidden;border-radius:4px}.D-sp-fl{height:100%;background:linear-gradient(90deg,#27ae60,#2ecc71);transition:width .8s var(--eo);border-radius:4px} .D-bd{flex:1;overflow-y:auto;padding:0 28px} .ci{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.04)} .ci-i{width:88px;aspect-ratio:3/4;background:var(--bgp);flex-shrink:0;overflow:hidden;border-radius:12px}.ci-i img{width:100%;height:100%;object-fit:cover} .ci-f{flex:1;display:flex;flex-direction:column;gap:3px;font-size:13px} .ci-n{font-weight:600;font-size:14px}.ci-m{font-size:10px;color:var(--t3);letter-spacing:.05em;text-transform:uppercase;font-weight:500}.ci-pr{font-weight:700;font-variant-numeric:tabular-nums;font-size:15px;margin-top:2px} .ci-q{display:flex;align-items:center;background:#f5f5f5;border-radius:50px;width:fit-content;margin-top:8px;overflow:hidden} .ci-q button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;transition:background .15s}.ci-q button:hover{background:rgba(0,0,0,.08)} .ci-q span{width:28px;height:36px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700} .ci-rm{font-size:10px;color:var(--t3);font-weight:500;transition:color .2s;margin-top:6px}.ci-rm:hover{color:var(--sale)} .D-ft{padding:24px 28px;flex-shrink:0;background:#fafafa;border-top:1px solid rgba(0,0,0,.04)} .D-ft .tt{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px;font-weight:500;color:var(--t2)} .D-ft .tt.big{font-size:20px;font-weight:800;margin-top:12px;padding-top:14px;border-top:1px solid rgba(0,0,0,.06);color:var(--t1)} .D-co{width:100%;padding:14px;color:#fff;font-size:12px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;border-radius:50px;margin-top:10px;transition:opacity .2s} .D-co:hover{opacity:.85} .D-cs{width:100%;text-align:center;font-size:12px;color:var(--t3);padding:10px;margin-top:6px;font-weight:500} .D-e{text-align:center;padding:80px 28px;color:var(--t3);font-size:14px} /* CHECKOUT */ .CK{padding:clamp(80px,10vw,120px) var(--pm);max-width:800px;margin:0 auto} .CK h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:32px} .CK-sum{background:var(--bgc);padding:28px;margin-bottom:36px} .CK-sum h3{font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px;font-weight:600} .CK-items{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--bl)} .CK-it{display:flex;justify-content:space-between;font-size:13px}.CK-it .nm{color:var(--t2)} .CK-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;font-weight:500}.CK-row.big{font-size:16px;font-weight:700;padding-top:10px;margin-top:4px;border-top:1px solid var(--bl)} /* SUCCESS */ .SU{padding:clamp(120px,15vw,200px) var(--pm);text-align:center;max-width:600px;margin:0 auto} .SU h1{font-size:clamp(2.5rem,5vw,4rem);margin-bottom:16px}.SU p{color:var(--t2);margin-bottom:24px;font-size:14px;line-height:1.6} .SU .oid{font-size:12px;letter-spacing:.1em;color:var(--t3);margin-bottom:32px;display:block;font-weight:600} /* ACCOUNT */ .AC{padding:clamp(80px,10vw,120px) var(--pm);max-width:800px;margin:0 auto} .AC h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:8px}.AC .sub{color:var(--t2);margin-bottom:32px;font-size:14px;text-transform:none;letter-spacing:0;font-weight:400;line-height:1} .AC-card{background:var(--bgc);padding:28px;margin-bottom:16px} .AC-card h3{font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;font-weight:600;color:var(--t3)} .AC-card p{font-size:14px;margin-bottom:4px;text-transform:none;letter-spacing:0;font-weight:400;line-height:1.5} /* ORDERS */ .OR{padding:clamp(80px,10vw,120px) var(--pm);max-width:800px;margin:0 auto} .OR h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:32px} .OR-card{border:1.5px solid var(--bl);padding:24px;margin-bottom:12px} .OR-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px} .OR-id{font-size:12px;letter-spacing:.06em;font-weight:600}.OR-date{font-size:12px;color:var(--t3)} .OR-badge{font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px;background:transparent;font-weight:600;border:1px solid currentColor;border-radius:9999px;color:var(--t3)} .OR-badge.pagado{color:#1b6b3a;border-color:#1b6b3a;background:transparent} .OR-items{font-size:13px;color:var(--t2);margin-bottom:8px;text-transform:none;letter-spacing:0;font-weight:400;line-height:1.6}.OR-total{font-size:15px;font-weight:700} /* NEWSLETTER */ /* FOOTER \u2014 luxury editorial */ .FT{position:relative;overflow:hidden;contain:paint;background:var(--bgd);border-top:1px solid rgba(236,231,216,.1);padding:clamp(40px,5vw,64px) clamp(22px,5vw,72px) 0;color:#ece7d8} .FT-inner{position:relative;z-index:1} /* newsletter row */ .FT-news{display:flex;align-items:flex-end;gap:clamp(20px,4vw,56px);flex-wrap:wrap;padding-bottom:clamp(28px,3vw,40px)} .FT-news .ftn-head h3{font-family:var(--sf);font-weight:500;font-size:clamp(26px,3vw,38px);letter-spacing:.02em;line-height:1.05;color:#ece7d8} .FT-news .ftn-head p{font-family:var(--sn);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#c2a878;margin-top:8px} .FT-news form{flex:1 1 320px;display:flex;align-items:center;gap:18px;min-width:260px} .FT-news .ftn-iw{flex:1;position:relative} .FT-news .ftn-iw::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;background:rgba(236,231,216,.1)} .FT-news .ftn-iw::before{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;background:#c2a878;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--el);z-index:1} .FT-news .ftn-iw:focus-within::before{transform:scaleX(1)} .FT-news input{width:100%;background:none;border:none;outline:none;color:#ece7d8;font-family:var(--sf);font-size:21px;letter-spacing:.02em;padding:8px 0} .FT-news input::placeholder{color:#7f8d80} .FT-news button{background:none;border:none;cursor:pointer;color:#ece7d8;font-family:var(--sn);font-size:11px;letter-spacing:.28em;text-transform:uppercase;font-weight:400;display:flex;align-items:center;gap:10px;white-space:nowrap;padding:8px 0;transition:color .35s var(--el)} .FT-news button:hover{color:#c2a878} .FT-news button svg{width:16px;height:16px;stroke-width:1.3;transition:transform .4s var(--el)} .FT-news button:hover svg{transform:translateX(5px)} /* grid */ .FT-g{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:clamp(32px,5vw,72px);border-top:1px solid rgba(236,231,216,.1);padding:clamp(34px,4vw,48px) 0} .FT-br .lg{display:flex;flex-direction:column;gap:5px;width:max-content} .FT-br .lg h2{font-family:var(--sf);font-weight:500;color:#ece7d8;letter-spacing:.42em;text-indent:.42em;font-size:26px;line-height:1;text-transform:uppercase} .FT-br .lg .tick{width:26px;height:1px;background:#c2a878} .FT-br .tagline{font-family:var(--sn);font-size:13px;color:#c4c9bd;line-height:1.7;margin:20px 0 24px;max-width:230px;font-weight:300} .FT-soc{display:flex;gap:12px} .FT-soc a{width:36px;height:36px;border:1px solid rgba(236,231,216,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#c4c9bd;transition:border-color .35s var(--el),color .35s var(--el),transform .35s var(--el)} .FT-soc a:hover{border-color:#c2a878;color:#c2a878;transform:translateY(-2px)} .FT-soc svg{width:16px;height:16px;stroke-width:1.4} .FT-c h4{font-family:var(--sn);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:#7f8d80;margin-bottom:18px;font-weight:400} .FT-c ul{list-style:none;display:flex;flex-direction:column;gap:12px} .FT-c button,.FT-c a{position:relative;display:block;font-family:var(--sn);font-size:14px;font-weight:300;color:#c4c9bd;padding:0;transition:color .35s var(--el),padding-left .35s var(--el);text-align:left;width:max-content;letter-spacing:.02em} .FT-c button::before,.FT-c a::before{content:'';position:absolute;left:0;top:50%;width:0;height:1px;background:#c2a878;transition:width .35s var(--el)} .FT-c button:hover,.FT-c a:hover{color:#ece7d8;padding-left:16px} .FT-c button:hover::before,.FT-c a:hover::before{width:9px} /* trust strip */ .FT-trust{display:flex;flex-wrap:wrap;gap:clamp(20px,4vw,52px);justify-content:center;border-top:1px solid rgba(236,231,216,.1);padding:22px 0} .FT-trust div{display:flex;align-items:center;gap:9px;font-family:var(--sn);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:#7f8d80} .FT-trust svg{width:15px;height:15px;stroke-width:1.3;color:#c2a878} /* bottom bar */ .FT-bt{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid rgba(236,231,216,.1);padding:20px 0 26px} .FT-bt .ft-copy{font-family:var(--sn);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#7f8d80} .FT-bt .ft-copy b{color:#c4c9bd;font-weight:400} .FT-bt .ft-meta{display:flex;align-items:center;gap:22px} .FT-bt .ft-meta span,.FT-bt .ft-meta button{font-family:var(--sn);color:#7f8d80;font-size:11px;letter-spacing:.18em;text-transform:uppercase;transition:color .3s var(--el)} .FT-bt .ft-meta button:hover{color:#ece7d8} .FT-bt .ft-locale{display:flex;align-items:center;gap:8px;color:#c4c9bd} .FT-bt .ft-locale svg{width:14px;height:14px;stroke-width:1.3;color:#c2a878} @media(max-width:840px){.FT-g{grid-template-columns:1fr 1fr;gap:36px 24px}.FT-br{grid-column:1/-1}} @media(max-width:520px){.FT-g{grid-template-columns:1fr}.FT-news{flex-direction:column;align-items:stretch}.FT-bt{flex-direction:column;align-items:flex-start}} /* INTRO SPLASH */ /* INTRO \u2014 cinematic brand reveal */ .intro{position:fixed;inset:0;z-index:9999;background:var(--intro-bg,transparent);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0;transition:opacity .8s cubic-bezier(.16,.8,.26,1),visibility .8s} .intro::before{content:'';position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")} .intro.gone{opacity:0;visibility:hidden;pointer-events:none} .intro-logo-img{width:clamp(100px,14vw,180px);height:auto;object-fit:contain;filter:brightness(0) invert(1);opacity:0;animation:introLogoIn 1s .1s var(--el) forwards} .intro-brand{font-family:var(--sf);color:var(--tl);font-size:clamp(2.2rem,5vw,3.8rem);font-weight:400;letter-spacing:.3em;text-transform:uppercase;opacity:0;animation:introLogoIn 1s .1s var(--el) forwards} @keyframes introLogoIn{0%{opacity:0;transform:translateY(14px) scale(.97);filter:blur(6px) brightness(0) invert(1)}60%{filter:blur(0) brightness(0) invert(1)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0) brightness(0) invert(1)}} .intro-line{width:0;height:1px;background:linear-gradient(90deg,transparent,var(--sand),transparent);margin:18px auto 0;animation:introLine 1s .5s var(--el) forwards;opacity:0} @keyframes introLine{0%{width:0;opacity:0}100%{width:clamp(60px,16vw,140px);opacity:.5}} .intro-sub{font-family:var(--sn);font-size:9px;letter-spacing:.35em;text-transform:uppercase;color:rgba(244,238,227,.25);margin-top:14px;opacity:0;animation:introSubIn .8s .8s var(--el) forwards} @keyframes introSubIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}} /* TOAST */ .toast{position:absolute;top:20px;left:50%;transform:translateX(-50%) translateY(-80px);z-index:300;background:var(--ac);color:var(--tl);padding:16px 28px;font-family:var(--sn);font-size:12px;letter-spacing:.06em;font-weight:400;opacity:0;transition:transform .5s var(--el),opacity .5s;max-width:90vw;border-radius:50px;box-shadow:0 12px 40px rgba(0,0,0,.15);display:flex;align-items:center;gap:10px}.toast.v{transform:translateX(-50%) translateY(0);opacity:1} .toast .tcheck{width:20px;height:20px;background:var(--ok);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0} .toast .tcheck svg{width:12px;height:12px;stroke:#fff;fill:none;stroke-width:2.5} /* CART BADGE BOUNCE */ @keyframes cbounce{0%{transform:scale(1)}40%{transform:scale(1.4)}70%{transform:scale(.9)}100%{transform:scale(1)}} .N-bc.pop{animation:cbounce .5s var(--eo)} /* CARD ADDED \u2014 minimal pulse */ @keyframes cardPulse{0%{transform:scale(1)}15%{transform:scale(.96)}40%{transform:scale(1.02)}100%{transform:scale(1)}} .C.added{animation:cardPulse .5s var(--eo)} .C-check{position:absolute;bottom:16px;left:50%;transform:translateX(-50%) translateY(8px);background:#0a0a0a;color:#fff;padding:8px 18px;border-radius:50px;font-size:11px;font-weight:600;letter-spacing:.04em;display:flex;align-items:center;gap:6px;z-index:10;opacity:0;animation:checkIn .8s var(--eo) forwards;pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.2)} @keyframes checkIn{0%{opacity:0;transform:translateX(-50%) translateY(8px)}20%{opacity:1;transform:translateX(-50%) translateY(0)}75%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(-4px)}} .C-check svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:2.5} /* RESPONSIVE */ /* EMPTY-STATE PLACEHOLDERS */ .H-ph{width:100%;height:100%;background:linear-gradient(135deg,#ece6da 0%,#d8d0bf 100%);border-radius:16px;position:relative;overflow:hidden} .H-ph::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.45) 50%,transparent 60%);background-size:200% 100%;animation:phShine 2.6s ease-in-out infinite} @keyframes phShine{0%,100%{background-position:200% 0}50%{background-position:-100% 0}} .G-empty{position:relative} .G-empty .C-sk{cursor:default;pointer-events:none} .C-sk .C-img{background:linear-gradient(135deg,#eee7d5 0%,#e5ddc9 100%);overflow:hidden} .C-sk .C-img::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.5) 50%,transparent 60%);background-size:200% 100%;animation:phShine 2.6s ease-in-out infinite} .C-sk .C-n-sk{height:11px;width:62%;background:#ebe2cc;border-radius:4px;margin-bottom:6px} .C-sk .C-p-sk{height:13px;width:38%;background:#ebe2cc;border-radius:4px} .G-cta{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 32px 80px rgba(0,0,0,.18);border-radius:24px;padding:clamp(28px,4vw,40px) clamp(32px,4vw,48px);max-width:440px;width:calc(100% - 32px);text-align:center;z-index:3} .G-cta-ic{width:52px;height:52px;border-radius:50%;background:var(--t1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;line-height:1;margin:0 auto 16px;font-weight:300} .G-cta h3{font-size:clamp(1.15rem,2vw,1.5rem);margin-bottom:8px;font-weight:600;letter-spacing:-.02em;color:var(--t1)} .G-cta p{font-size:13px;color:var(--t3);margin-bottom:22px;line-height:1.5} .G-cta button{background:var(--t1);color:#fff;padding:13px 28px;border-radius:50px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;transition:transform .2s,box-shadow .2s} .G-cta button:hover{transform:translateY(-1px);box-shadow:0 14px 32px rgba(0,0,0,.2)} /* Global mobile */ html{-webkit-text-size-adjust:100%} @media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}} /* Touch devices: eliminate double-tap requirement by keeping hover-only UI visible */ @media (hover: none) { .NI-cd-wh, .NI-cd-qa, .CB-card .cb-info .cb-cta, .CG-i .ct2, .C-wh { opacity: 1 !important; transform: none !important; pointer-events: auto !important; } } /* Tablet \u22641024px */ @media(max-width:1024px){ .G{grid-template-columns:repeat(3,1fr)} .NI-cd{width:clamp(220px,42vw,300px)} .FT-g{grid-template-columns:repeat(2,1fr)} .P-recs-grid{grid-template-columns:repeat(3,1fr)} } /* Mobile \u2264768px */ @media(max-width:768px){ /* NAV */ .N{padding:0 12px} .N-i{height:48px} .N-lf .N-cat{display:none} .N-lf{gap:0} .N-sub{display:none!important} .N-sw{display:none!important} .N-sd{width:calc(100vw - 32px);right:-16px} .mb{display:flex} .mb span{width:18px;height:1.5px} .N-c-m{display:inline-flex!important;position:relative!important;left:auto!important;transform:none!important;margin-left:8px!important;font-size:16px!important;letter-spacing:.18em!important} .N-c-m img{height:20px!important;max-width:100px} .N-c:not(.N-c-m){display:none!important} .N-r{gap:0;margin-left:auto!important} .N-r button,.N-b{min-width:36px;min-height:36px;width:36px;height:36px} .N-r button svg,.N-b svg{width:18px;height:18px} /* HERO */ .H{min-height:100svh;padding:80px 20px 60px} .H.H-bg{background-position:center} .H-logo{height:clamp(56px,18vw,104px)!important} .H-wm{font-size:clamp(2.8rem,16vw,4.5rem)!important} .H-over{font-size:8px;letter-spacing:.3em} .H-ctas{flex-direction:column;gap:10px;width:auto;align-items:center} .H-cta-fill,.H-cta-out{width:auto;text-align:center;padding:13px 28px;min-height:44px} /* p\xE1ginas de cuenta/pedidos/success: menos aire arriba en pantallas cortas */ .AC,.OR{padding-top:72px} .SU{padding-top:96px} .H-scroll{display:none} /* CATEGORY MOSAIC */ .CB-mosaic{grid-template-columns:1fr 1fr}.CB-mosaic .CB-card:first-child{grid-row:auto} .CB-card{min-height:200px} .CB-head h2{font-size:clamp(1.6rem,6vw,2.2rem)} /* PRODUCT GRID */ .G{grid-template-columns:repeat(2,1fr);gap:10px!important} .CG{grid-template-columns:1fr} /* NEW IN */ .NI-top{flex-direction:column;align-items:flex-start;gap:16px} .NI-bot{flex-wrap:wrap;gap:12px 24px} .NI-cd{width:clamp(220px,72vw,300px)} /* FILTER PILLS */ .F{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:16px} .F::-webkit-scrollbar{display:none} .F button,.F a{flex-shrink:0} /* PDP */ .P-top{padding:14px 16px} .P-top .P-crumbs{display:none} .P-top .P-logo img{height:14px!important} .P-g{grid-template-columns:1fr;gap:20px;padding:16px} .P-gl{padding-right:0} .P-gl-frame{aspect-ratio:3/4} .P-gl-thumbs{gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:flex-start;padding:0 4px} .P-gl-thumbs::-webkit-scrollbar{display:none} .P-gl-th{width:56px;min-width:56px;min-height:44px} .P-nf{position:static;padding:0 4px} .P-nf h1{font-size:clamp(24px,7vw,32px)} .P-nf .desc{font-size:13px} .P-pr span{font-size:22px} .sz button{min-height:44px;min-width:44px} .atb{position:static;margin:0 0 10px;padding:16px;border-radius:50px} .awl{margin-bottom:16px} .P-nf .desc{margin-bottom:16px} .P-hr{margin:16px 0} .P-recs-grid{grid-template-columns:repeat(2,1fr);gap:12px} .P-recs{padding:0 16px 100px} /* CART */ .D{width:100%!important;max-width:none;border-radius:0!important;top:0!important;right:0!important;height:100vh!important} /* PRODUCT CARD hover \u2192 always visible on mobile */ .C-qa{transform:translateY(0);position:relative;background:transparent;backdrop-filter:none;padding:6px 0;opacity:1} .C-qa button{min-height:44px} /* BENEFITS */ .BN{flex-direction:column;gap:8px;align-items:flex-start} /* SHOP SECTION */ .S{padding-top:60px!important} .S>div:first-child{margin-bottom:20px!important} .S>div:first-child h1,.S>div:first-child h2{font-size:clamp(2rem,8vw,3rem)!important} .F{gap:6px;margin-bottom:20px!important;padding-bottom:12px!important} .F button,.F a{padding:8px 16px;font-size:9px} /* FOOTER */ .FT{padding:32px 20px 0} .FT-news{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;padding-bottom:20px} .FT-news .ftn-head{flex:0 0 auto} .FT-news .ftn-head h3{font-size:20px} .FT-news .ftn-head p{font-size:9px;margin-top:4px} .FT-news form{flex:1 1 200px;flex-direction:row;gap:12px;min-width:0} .FT-news input{font-size:16px} .FT-news button{font-size:9px;white-space:nowrap} .FT-g{grid-template-columns:1fr 1fr!important;gap:24px 20px!important} .FT-br{grid-column:1/-1;max-width:none} .FT-br .tagline{max-width:none} .FT-c h4{font-size:9px;margin-bottom:14px} .FT-c button,.FT-c a{font-size:13px;min-height:36px} .FT-trust{flex-wrap:wrap;gap:8px 24px;padding:14px 0} .FT-trust div{font-size:9px;letter-spacing:.18em} .FT-bt{flex-direction:column;align-items:flex-start;gap:6px;padding:14px 0 calc(16px + env(safe-area-inset-bottom,0px))} .FT-bt .ft-copy{font-size:9px;letter-spacing:.14em} .FT-bt .ft-meta{display:flex;flex-wrap:nowrap;gap:12px;align-items:center} .FT-bt .ft-meta span,.FT-bt .ft-meta button{font-size:9px;letter-spacing:.1em} /* OVERLAY MENU */ .OV{width:100vw!important;max-width:none} .OV-row{min-height:48px;padding:0 20px} } /* \u2500\u2500 LA FORMA DE LA TIENDA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Cinco huecos que elige la apariencia (core/apariencia.ts \u2192 forma): hero, rejilla, tarjeta, carrito y pie. Se resuelven por atributo en la ra\xEDz y no ramificando el JSX: el mismo \xE1rbol para todas las tiendas, y la forma s\xF3lo mueve CSS. */ /* Rejilla: 2, 3 o 4 columnas. Solo por encima de 1024px \u2014 por debajo mandan los cortes de siempre (3 en tablet, 2 en m\xF3vil), que no son decisi\xF3n de la tienda sino de que no cabe. */ @media(min-width:1025px){ [data-grid="grid-2col"] .G{grid-template-columns:repeat(2,1fr)} [data-grid="grid-3col"] .G{grid-template-columns:repeat(3,1fr)} [data-grid="grid-4col"] .G{grid-template-columns:repeat(4,1fr)} } /* Tarjeta: el nombre y el precio DENTRO de la foto sobre un degradado, en vez de debajo. El bot\xF3n r\xE1pido se sube al centro para no pelearse con el degradado. */ [data-card="card-overlay"] .C{position:relative} [data-card="card-overlay"] .C-img{border-radius:8px} [data-card="card-overlay"] .C-f{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:40px 14px 14px;border-radius:0 0 8px 8px;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.66) 100%)} [data-card="card-overlay"] .C-n{color:#fff;margin-bottom:2px} [data-card="card-overlay"] .C-p{color:rgba(255,255,255,.88)} [data-card="card-overlay"] .C-p .og{color:rgba(255,255,255,.55)} [data-card="card-overlay"] .C-p .nw{color:#fff} [data-card="card-overlay"] .C-qa{bottom:auto;top:50%;transform:translateY(-50%) scale(.96);border-radius:8px} [data-card="card-overlay"] .C:hover .C-qa{transform:translateY(-50%) scale(1)} /* Hero: a sangre (ocupa la pantalla) o banda corta. */ [data-hero="hero-fullbleed"] .H{min-height:100svh} [data-hero="hero-fullbleed"] .H-c{max-width:940px} [data-hero="hero-compact"] .H{min-height:64svh;padding-top:clamp(64px,7vw,96px);padding-bottom:clamp(44px,5vw,68px)} [data-hero="hero-compact"] .H-wm{font-size:clamp(2.6rem,7vw,5.4rem);margin-bottom:18px} [data-hero="hero-compact"] .H-scroll{display:none} /* El preview del studio recorta el hero a 540px con !important; si no se distingue aqu\xED, el hueco no se ve donde justamente se va a mirar. */ [data-hero="hero-compact"].L.preview .H{min-height:400px!important;height:400px!important} [data-hero="hero-fullbleed"].L.preview .H{min-height:600px!important;height:600px!important} /* Pie: cuatro columnas con novedades y sellos, o la version sobria (sin sellos). La sobria tambien va EN COLUMNAS en pantalla ancha: apilar Tienda/Ayuda/Legal en una sola columna a 1440px era una sabana vertical (Juan, 31-ago-2026); una columna solo tiene sentido en movil, y ahi ya colapsa el grid base. */ [data-footer="footer-minimal"] .FT-g{gap:16px;padding:22px 0} /* Movil: footer compacto como Strong \u2014 3 columnas apretadas (Tienda/Ayuda/Legal alineadas, sin Legal huerfano) y enlaces densos (fuera el min-height:36px que creaba huecos enormes). !important para vencer al 1fr-1fr general (Juan, 1-sep-2026). */ @media(max-width:640px){ [data-footer="footer-minimal"] .FT-g, .FT-g{grid-template-columns:repeat(3,1fr)!important;gap:22px 10px!important;padding:20px 0!important} .FT-br{grid-column:1/-1} .FT-c h4{font-size:8.5px!important;margin-bottom:10px!important;letter-spacing:.18em!important} .FT-c ul{gap:9px!important} .FT-c button,.FT-c a{font-size:11px!important;min-height:0!important;line-height:1.35!important} } @media(max-width:400px){ [data-footer="footer-minimal"] .FT-g, .FT-g{grid-template-columns:1fr 1fr!important} } [data-footer="footer-minimal"] .FT-trust{display:none} [data-footer="footer-minimal"] .FT{padding-top:clamp(28px,3vw,40px)} [data-footer="footer-rich"] .FT-g{grid-template-columns:1.8fr 1fr 1fr 1fr} /* Carrito: caj\xF3n flotante con la tienda atenuada, o panel acoplado al borde derecho sin atenuar nada. En m\xF3vil no se ramifica: ah\xED los dos son la pantalla entera y ya estaba resuelto. */ @media(min-width:1025px){ [data-cart="cart-sticky-right"] .Dbk{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none} [data-cart="cart-sticky-right"] .D{top:var(--sy,0px);right:0;height:100vh;border-radius:0;box-shadow:-1px 0 0 var(--bl),-24px 0 60px rgba(0,0,0,.06)} } /* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 LORENFISIOMED \u2014 consulta a domicilio \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 Estilo Strong: Inter en negrita con el tracking cerrado, blanco y azul noche muy oscuro, y el lima SOLO en lo que se pincha. No hay ni un color escrito a mano: todo sale de los tokens del variant (strong-fitness), que es quien manda. --ac es el lima de marca, --tl el color que va ENCIMA del lima, --t1 el azul noche del texto. Si manana se cambia el variant desde el studio, esto se repinta solo. OJO CON LA CASCADA. El reset de la plantilla es .L button{background:none; border:none;color:inherit} y vale 0-1-1: cualquier regla de boton de una sola clase PIERDE y el boton sale como texto pelado. Por eso todas llevan .L delante (0-2-0). Y NADA de acentos graves en estos comentarios: uno solo cierra el literal de CSS y se lleva por delante la hoja entera. */ .L{--acc:var(--ac);--acc-fg:var(--tl);--tinta:var(--t1)} /* Botones. Lima con texto oscuro encima, como en Strong. */ .L .H-cta-fill{background:var(--acc);color:var(--acc-fg);border:1px solid var(--acc);font-family:var(--sn);font-weight:600;letter-spacing:.02em;text-transform:none;font-size:14px;padding:15px 30px;border-radius:var(--radius-md,10px)} .L .H-cta-fill:hover{filter:brightness(.94)} .L .H-cta-out{background:transparent;color:var(--t1);border:1.5px solid var(--bl);font-family:var(--sn);font-weight:600;letter-spacing:.02em;text-transform:none;font-size:14px;padding:15px 30px;border-radius:var(--radius-md,10px)} .L .H-cta-out:hover{border-color:var(--t1)} .L .PT .H-cta-out,.L .CT-i .H-cta-out{color:#fff;border-color:rgba(255,255,255,.28)} .L .PT .H-cta-out:hover,.L .CT-i .H-cta-out:hover{border-color:#fff} .L .N-cita{width:auto !important;height:36px !important;border-radius:var(--radius-md,10px) !important;padding:0 18px !important;background:var(--ac);color:var(--tl);font-family:var(--sn);font-size:13px;font-weight:600;letter-spacing:.01em;text-transform:none;white-space:nowrap;transition:filter .25s var(--el)} .L .N-cita:hover{opacity:1 !important;filter:brightness(.94)} /* En movil YA NO se esconde. Estaba oculto porque el boton de reservar lo llevaba la barra de abajo; al quitarla, esconderlo aqui dejaba un sitio de pedir cita sin ningun sitio visible donde pedirla. Se encoge, no se quita: en estrecho pone solo Reservar. MEDIDO a 390px antes de tocar nada: la fila de la cabecera pedia 413px para 366 disponibles y se desbordaba. Con la etiqueta corta entra. */ .N-cita-s{display:none} @media(max-width:600px){ .L .N-cita{height:32px !important;padding:0 10px !important;font-size:12.5px;flex:0 0 auto} /* La marca cede sitio antes que desbordar: con el nombre justo la fila media 366 en 366 exactos, y un nombre de tienda mas largo la volvia a romper. Encogiendo la marca, no. */ .N-c{min-width:0} .N-c img,.N-c svg{max-width:100%} .N-cita-l{display:none} .N-cita-s{display:inline} /* El corazon se va al menu: es lo unico de la fila que no es navegar, buscar, entrar ni pagar. Con esto la fila baja de 385 a 349. VA POR .N-fav Y NO POR .N-b: el carrito lleva TAMBIEN la clase N-b, y esconder .N-b dejaba el movil sin cesta. Medido: la fila derecha quedaba en 183px con cuatro iconos y la bolsa no estaba. */ .N-r .N-fav{display:none} } /* \u2500\u2500 LO QUE SE TOCA CONTESTA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Micro-animaciones de interaccion: no decoran, informan. Cada una responde a una pregunta que la persona se hace en ese instante \u2014 he pulsado?, lo ha cogido?, esta cargando?, ha salido bien? Duran entre 120 y 320 ms: por encima de eso ya no es respuesta, es espera. Todo por CSS y sobre estados que ya existen (:active, .a, :disabled), asi que nada depende de que un observador avise ni de que un fotograma llegue. 1) EL PULSADO. Cede 1,5 % al tocar y vuelve. Es lo que separa un boton de una imagen de un boton, y en un movil es la unica confirmacion que hay antes de que la red conteste. */ .L .H-cta-fill,.L .H-cta-out,.L .RC-enviar,.L .RC-crear,.L .fb, .L .RC-svc button,.L .RC-horas button,.L .CAL-g button,.L .C-qa button{ transition:transform .13s var(--el),border-color .25s var(--el),background .25s var(--el),box-shadow .25s var(--el),filter .25s var(--el),opacity .2s } .L .H-cta-fill:active:not(:disabled),.L .H-cta-out:active:not(:disabled), .L .RC-enviar:active:not(:disabled),.L .RC-crear:active,.L .fb:active:not(:disabled), .L .RC-svc button:active,.L .RC-horas button:active:not(:disabled), .L .CAL-g button:active:not(:disabled),.L .C-qa button:active{transform:scale(.985)} /* 2) ELEGIR SERVICIO. Al quedar seleccionado da un pulso corto hacia dentro: el borde se cierra sobre la tarjeta. Dice cogido sin escribir cogido. */ @keyframes RC-elegido{0%{transform:scale(1)}45%{transform:scale(.978)}100%{transform:scale(1)}} .L .RC-svc button.a{animation:RC-elegido .32s var(--eo)} /* 3) ELEGIR HORA. Las horas aparecen escalonadas al cambiar de dia \u2014 que la rejilla cambie de golpe se lee como un parpadeo, no como una respuesta. El escalon es minusculo a proposito: son muchas, y con 30 ms ya se percibe orden sin que nadie espere. */ @keyframes RC-hora{from{opacity:0;transform:translate3d(0,6px,0)}to{opacity:1;transform:none}} .L .RC-horas button{animation:RC-hora .34s var(--eo) both} .L .RC-horas button:nth-child(1){animation-delay:.02s} .L .RC-horas button:nth-child(2){animation-delay:.04s} .L .RC-horas button:nth-child(3){animation-delay:.06s} .L .RC-horas button:nth-child(4){animation-delay:.08s} .L .RC-horas button:nth-child(5){animation-delay:.1s} .L .RC-horas button:nth-child(6){animation-delay:.12s} .L .RC-horas button:nth-child(n+7){animation-delay:.14s} /* 4) EL MODAL DE ENTRAR. Entra la caja, no solo el velo: sube 10 px y crece desde el 96 %. Sin rebote \u2014 un formulario que bota no inspira confianza. Va sobre .AM.o, que ya existe, asi que si el modal no se abre no hay nada que animar. */ @keyframes AM-ent{from{opacity:0;transform:translate3d(0,10px,0) scale(.96)}to{opacity:1;transform:none}} .L .AM.o .AM-box{animation:AM-ent .34s var(--eo) both} /* 5) ESPERANDO AL SERVIDOR. Mientras se envia, el boton se apaga un poco y recorre una franja de luz: dice sigo aqui sin cambiar de tamano ni mover nada de sitio. */ @keyframes RC-cargando{from{background-position:-160% 0}to{background-position:260% 0}} .L .RC-enviar:disabled,.L .fb:disabled{ opacity:.75;cursor:progress; background-image:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.28) 45%,transparent 70%); background-size:180% 100%;background-repeat:no-repeat; animation:RC-cargando 1.15s linear infinite } /* 6) HA SALIDO BIEN. La pantalla de confirmacion entra entera y su titular se dibuja un pelin despues: el orden hace que se lea, en vez de aparecer todo a la vez y que la vista no sepa donde ir. */ @keyframes RC-ok{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}} .L .RC-ok{animation:RC-ok .5s var(--eo) both} .L .RC-ok h2{animation:RC-ok .5s var(--eo) both;animation-delay:.08s} .L .RC-ok-res{animation:RC-ok .5s var(--eo) both;animation-delay:.16s} /* Quien pide menos movimiento se queda con los cambios de color y nada mas. */ @media(prefers-reduced-motion:reduce){ .L .RC-svc button.a,.L .RC-horas button,.L .AM.o .AM-box, .L .RC-enviar:disabled,.L .fb:disabled,.L .RC-ok,.L .RC-ok h2,.L .RC-ok-res{animation:none} .L .H-cta-fill:active,.L .RC-enviar:active,.L .RC-svc button:active{transform:none} } /* \u2500\u2500 LA FRASE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Una sola idea, enorme, sola y con aire alrededor. Es el gesto que separa una pagina que se lee de una que se recuerda, y es el que le faltaba: se pasaba de la portada a una barra de cuatro sellos y de ahi al catalogo, sin un solo momento en el que la pagina se calle. No lleva foto, ni boton, ni tarjeta. Solo texto. El unico adorno es que la segunda mitad va mas apagada, que es como se marca el enfasis cuando no se quiere usar color. */ /* \u2500\u2500 ENTRADAS AL HACER SCROLL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Sube 18px y aparece, con una curva que frena al final. Nada rebota, nada escala: el movimiento se nota cuando NO se nota. Va por CSS y un observador, NO con el initial de framer-motion. Motivo medido: initial opacity 0 mas la pestana en segundo plano deja el rAF congelado, el animate no llega a aplicarse nunca y la pagina se queda EN BLANCO sin un solo error en consola. Con CSS, el estado de reposo es visible por defecto y la clase solo anima. Y quien pide menos movimiento no lo tiene: se ve todo, quieto. */ /* OJO AL ORDEN: en reposo .rv NO esconde nada. Es .arm \u2014que pone el JS al empezar a observar\u2014 quien lo esconde, y .vis quien lo devuelve. Asi, si el JS no llega a correr (sin soporte, un error antes, la pestana en segundo plano), el contenido se ve. Esconder por CSS y encender por JS es como se queda una pagina en blanco, y ya paso una vez. */ .rv.arm{opacity:0;transform:translate3d(0,18px,0)} .rv{transition:opacity .7s var(--eo),transform .7s var(--eo)} .rv.arm.vis{opacity:1;transform:none} .rv-1{transition-delay:.06s}.rv-2{transition-delay:.12s}.rv-3{transition-delay:.18s}.rv-4{transition-delay:.24s} @media(prefers-reduced-motion:reduce){.rv.arm,.rv.arm.vis{opacity:1;transform:none;transition:none}} /* \u2500\u2500 AIRE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Lo que mas separa una pagina cara de una barata no es el color: es el espacio. Las secciones de la consulta respiran el doble. */ /* EL AIRE DE UNA SECCION SE PONE UNA VEZ. .SV y .PS traian ademas su propio padding vertical, asi que sumaban 258px arriba y 258 abajo para 315 de contenido: medido, la seccion de los pasos ocupaba 830px de los cuales 516 eran hueco. Ahora el aire vive SOLO aqui y las secciones que usan esta clase no ponen el suyo. */ .SEC-aire{padding-block:clamp(56px,6.5vw,96px)} /* El resumen del caso, cuando el test es de consulta y no de producto. */ .QZ-caso{display:flex;flex-direction:column;gap:10px;margin:22px 0 4px;text-align:left} .QZ-caso-f{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--bl);border-radius:var(--radius-md,10px);background:var(--surface,rgba(0,0,0,.02))} .QZ-caso-p{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);font-weight:600} .QZ-caso-r{font-size:15px;color:var(--t1);font-weight:600} .QZ-caso-cta{margin-top:8px;align-self:flex-start} .AB-foto{position:sticky;top:92px} @media(max-width:860px){.AB-foto{position:static}} .RC-caso{border:1px solid var(--bl);border-radius:var(--radius-lg,14px);padding:16px 18px;margin:0 0 26px;background:var(--surface,rgba(0,0,0,.02))} .RC-caso-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px} .RC-caso-h span{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);font-weight:600} .RC-caso-h button{font-size:12px;color:var(--t3);text-decoration:underline} .RC-caso-l{font-size:14px;line-height:1.55;color:var(--t1)} .RC-caso-p{font-size:12px;color:var(--t3);margin:10px 0 0} /* \u2500\u2500 PORTADA a sangre \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */ .PT{position:relative;background:var(--tinta);color:#fff;overflow:hidden;min-height:min(84vh,720px);display:flex;align-items:center} .PT-foto{position:absolute;inset:0 0 0 44%;background-size:cover;background-position:center 22%} .PT-foto video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%} @media (prefers-reduced-motion:reduce){.PT-foto video{display:none}} .PT-foto::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--tinta) 0%,rgba(12,18,20,.82) 30%,rgba(12,18,20,.28) 66%,rgba(12,18,20,.05) 100%)} .PT-i{position:relative;z-index:1;max-width:1280px;margin:0 auto;width:100%;padding:clamp(80px,10vw,120px) var(--pm)} .PT-c{max-width:640px} /* LA ENTRADA DE LA PORTADA VA POR CSS, NUNCA POR OBSERVADOR. Es lo primero que se ve: no gana nada con aparecer al hacer scroll y lo pierde todo si el aviso no llega. Con .rv se quedaron el rotulillo y el subtitulo a opacidad 0 \u2014 titular y un hueco. Una animacion CSS corre sola: no depende de rAF, ni del observador, ni de que la pestana este delante. El reposo de la animacion es el estado FINAL, asi que aunque no llegara a ejecutarse se veria igual. */ @keyframes PT-ent{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}} .PT-over,.PT h1,.PT h2.PT-t,.PT-sub,.PT-ctas,.PT-nota{animation:PT-ent .8s var(--eo) both} .PT h1,.PT h2.PT-t{animation-delay:.06s} .PT-sub{animation-delay:.14s} .PT-ctas{animation-delay:.22s} .PT-nota{animation-delay:.3s} @media(prefers-reduced-motion:reduce){.PT-over,.PT h1,.PT h2.PT-t,.PT-sub,.PT-ctas,.PT-nota{animation:none}} .PT-over{display:inline-flex;align-items:center;gap:8px;font-family:var(--sn);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:22px} /* EL TITULAR NO SE COLOREA. Iba en mayusculas y con la segunda linea en azul electrico: el color gritando en vez de la foto y el texto, que es justo lo que hace que una pagina parezca barata. Apple nunca tinta el titular \u2014 lo pone grande, en caja normal, muy apretado, y deja que el color sea de la accion. Aqui el enfasis se hace con OPACIDAD, no con otro color. */ .PT h1,.PT h2.PT-t{font-family:var(--sn);font-weight:650;font-size:clamp(2.6rem,6.4vw,5.2rem);line-height:1.02;letter-spacing:-.045em;text-transform:none;margin-bottom:22px;max-width:14ch} .PT h1 em,.PT h2.PT-t em{font-style:normal;color:rgba(255,255,255,.55)} .PT-sub{font-size:clamp(15px,1.6vw,18px);line-height:1.6;color:rgba(255,255,255,.72);max-width:46ch;margin-bottom:32px} .PT-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px} .PT-nota{font-size:13px;line-height:1.7;color:rgba(255,255,255,.5)} .PT-nota b{color:rgba(255,255,255,.82);font-weight:600} @media(max-width:860px){ .PT{min-height:auto} .PT-foto{inset:0} .PT-foto::after{background:linear-gradient(180deg,rgba(10,22,40,.55) 0%,rgba(10,22,40,.88) 55%,var(--tinta) 100%)} .PT-i{padding-top:clamp(180px,42vw,300px)} } /* \u2500\u2500 Franja de garantias \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */ /* LAS CUATRO RAZONES. Eran cuatro columnas apretadas separadas por lineas verticales: una barra de sellos de confianza de tienda cualquiera, con letra de 13px. Fuera las lineas y fuera la caja: cada razon se sostiene sola con espacio alrededor, que es lo que hace que se lean las cuatro en vez de ninguna. El titulo sube a 17px y el texto a 14,5px con mas interlineado. */ .FB{background:var(--bg);padding:clamp(56px,7vw,96px) var(--pm)} .FB-i{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(28px,4vw,64px)} .FB-c{padding:0} .FB-c h3{font-family:var(--sn);font-size:17px;font-weight:640;color:var(--t1);margin-bottom:9px;letter-spacing:-.02em;line-height:1.2} .FB-c p{font-size:14.5px;line-height:1.62;color:var(--t2);max-width:30ch} @media(max-width:900px){.FB-i{grid-template-columns:repeat(2,1fr)}} @media(max-width:520px){.FB-i{grid-template-columns:1fr;gap:26px}} @media(max-width:860px){.FB-i{grid-template-columns:repeat(2,1fr)}.FB-c:nth-child(3){border-left:none}.FB-c:nth-child(n+3){border-top:1px solid var(--bl)}} @media(max-width:460px){.FB-i{grid-template-columns:1fr}.FB-c{border-left:none}.FB-c+.FB-c{border-top:1px solid var(--bl)}} /* \u2500\u2500 Rotulacion comun \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */ .SEC-over{font-family:var(--sn);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--t2);margin-bottom:12px} .SEC-h{font-family:var(--sn);font-weight:800;font-size:clamp(1.9rem,4vw,3rem);line-height:1.04;letter-spacing:-.032em;color:var(--t1)} .SEC-sub{font-size:15px;line-height:1.7;color:var(--t2);margin-top:14px;max-width:60ch} /* \u2500\u2500 SERVICIOS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */ .SV{padding:0 var(--pm);background:var(--bgc)} .SV-i{max-width:1280px;margin:0 auto} .SV-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:clamp(26px,3.4vw,44px)} .SV-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:14px} .SV-c{position:relative;display:flex;flex-direction:column;gap:11px;padding:clamp(22px,2.4vw,30px);border:1px solid var(--bl);border-radius:var(--radius-lg,16px);background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:border-color .3s var(--el),transform .3s var(--el),box-shadow .3s var(--el);text-align:left;height:100%} .SV-g .SV-c:hover{border-color:var(--t1);transform:translateY(-3px);box-shadow:0 14px 34px rgba(10,22,40,.08)} .SV-n{font-family:var(--sn);font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--t1);padding-right:46px} .SV-d{font-size:13.5px;line-height:1.65;color:var(--t2);flex:1} .SV-m{display:flex;align-items:baseline;gap:10px;padding-top:14px;border-top:1px solid var(--bl)} .SV-p{font-family:var(--sn);font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--t1)} .SV-dur{font-family:var(--sn);font-size:12px;font-weight:500;color:var(--t2)} .SV-ar{position:absolute;top:clamp(18px,2.2vw,26px);right:clamp(18px,2.2vw,26px);width:36px;height:36px;border-radius:50%;background:var(--ac);color:var(--tl);display:flex;align-items:center;justify-content:center;transition:transform .3s var(--el)} .SV-g .SV-c:hover .SV-ar{transform:translate(2px,-2px)} .SV-promo{display:inline-block;margin-top:2px;font-family:var(--sn);font-size:12.5px;color:var(--t2)} .SV-promo b{color:var(--ac);font-weight:700} .SV-tag{font-family:var(--sn);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ac);border:1px solid var(--ac);border-radius:999px;padding:1px 7px;margin-left:auto} .RC-svc-promo{font-family:var(--sn);font-size:12px;color:var(--t2)} .RC-svc-promo b{color:var(--ac);font-weight:700} .SV-pie{margin-top:20px;font-size:13px;line-height:1.65;color:var(--t2)} /* \u2500\u2500 COMO FUNCIONA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */ .PS{padding:0 var(--pm);background:var(--bgc);border-top:1px solid var(--bl)} .PS-i{max-width:1280px;margin:0 auto} .PS-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(236px,1fr));gap:clamp(22px,2.8vw,42px);margin-top:clamp(26px,3.4vw,44px)} /* EL NUMERO MANDA. Iba en 12px, mas pequeno que el propio texto: era un pie de foto, no un paso. Ahora es lo primero que se ve de cada columna, grande y muy claro \u2014 se cuenta la secuencia de un vistazo \u2014 y la linea de encima se afina porque ya no tiene que hacer el trabajo de senalar. */ .PS-c{border-top:1px solid var(--bl);padding-top:20px} .PS-n{font-family:var(--sn);font-size:clamp(2.2rem,3.4vw,3rem);font-weight:640;letter-spacing:-.05em;color:var(--line);margin-bottom:12px;line-height:1} .PS-c h3{font-family:var(--sn);font-size:clamp(1.15rem,1.8vw,1.45rem);font-weight:640;letter-spacing:-.03em;color:var(--t1);margin-bottom:10px;line-height:1.2} .PS-c p{font-size:14.5px;line-height:1.65;color:var(--t2);max-width:34ch} /* \u2500\u2500 QUIEN TE VA A TRATAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */ .FZ{padding:clamp(64px,8vw,116px) var(--pm);background:var(--bg)} .FZ-i{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start} /* La frase, en tamano de titular. El ancho se mide en em para que lo haga con SU letra y no con la de 16px del contenedor. */ /* Lleva la etiqueta p delante A PROPOSITO: la regla generica de .FZ p de mas abajo es clase+etiqueta y le gana en especificidad a una clase sola, asi que la frase salia a 15px con interlineado de parrafo. Medido en Chrome: fontSize 15px donde tocaban 48. Escrita asi, gana esta. */ .FZ p.FZ-frase{font-family:var(--sn);font-size:clamp(1.9rem,3.6vw,3rem);font-weight:620;line-height:1.07;letter-spacing:-.04em;color:var(--t1);margin:14px 0 0;max-width:9.5em} .FZ p.FZ-frase em{font-style:normal;color:var(--t3)} .FZ-h{font-family:var(--sn);font-size:clamp(1.05rem,1.5vw,1.25rem);font-weight:620;letter-spacing:-.02em;color:var(--t1);margin:0 0 14px} .FZ-cuerpo{padding-top:clamp(4px,1.2vw,18px)} .FZ-foto{border-radius:var(--radius-lg,16px);overflow:hidden;background:var(--bgc)} .FZ-foto img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4} .FZ p{font-size:15px;line-height:1.75;color:var(--t2);margin-bottom:14px;max-width:58ch} .FZ-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:26px} @media(max-width:860px){.FZ-i{grid-template-columns:1fr;gap:24px}.FZ-foto{max-width:340px}.FZ p.FZ-frase{max-width:none}.FZ-cuerpo{padding-top:0}} /* \u2500\u2500 CIERRE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */ .CT{background:var(--tinta);color:#fff;padding:clamp(52px,6.5vw,88px) var(--pm)} .CT-i{max-width:860px;margin:0 auto;text-align:center} .CT-i h2{font-family:var(--sn);font-weight:800;font-size:clamp(1.8rem,3.6vw,2.7rem);line-height:1.06;letter-spacing:-.032em;margin-bottom:14px;text-transform:uppercase} .CT-i h2 em{font-style:normal;color:var(--ac)} .CT-i p{font-size:15px;line-height:1.7;color:rgba(255,255,255,.68);margin:0 auto 28px;max-width:52ch} /* \u2550\u2550 LA PAGINA DE RESERVA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 */ .RC{padding:clamp(92px,10vw,140px) var(--pm) clamp(60px,7vw,100px);max-width:1120px;margin:0 auto} .RC-head{margin-bottom:clamp(32px,4vw,52px)} .RC-paso{margin-bottom:clamp(32px,4vw,50px)} .RC-paso-t{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--bl)} .RC-paso-n{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--ac);color:var(--tl);font-family:var(--sn);font-size:11px;font-weight:800;flex-shrink:0} .RC-paso-t h2{font-family:var(--sn);font-size:16px;font-weight:700;letter-spacing:-.015em;color:var(--t1)} .RC-paso-t em{margin-left:auto;font-style:normal;font-size:13px;color:var(--t2);font-weight:500} .RC-svc{display:grid;grid-template-columns:repeat(auto-fill,minmax(244px,1fr));gap:12px} .RC-svc button{text-align:left;border:1.5px solid var(--bl);border-radius:var(--radius-md,10px);padding:17px 19px;background:var(--bg);transition:border-color .25s var(--el),box-shadow .25s var(--el),transform .25s var(--el);display:flex;flex-direction:column;gap:7px;height:100%} .RC-svc button:hover{border-color:var(--t1);transform:translateY(-2px)} .RC-svc button.a{border-color:var(--t1);background:var(--bgc);box-shadow:inset 0 0 0 2px var(--ac)} .RC-svc-n{font-family:var(--sn);font-weight:700;font-size:15px;letter-spacing:-.015em;color:var(--t1);line-height:1.25} .RC-svc-d{font-size:12.5px;line-height:1.55;color:var(--t2)} .RC-svc-m{display:flex;align-items:baseline;gap:10px;margin-top:auto;padding-top:6px} .RC-svc-p{font-family:var(--sn);font-size:16px;font-weight:800;letter-spacing:-.02em;color:var(--t1)} .RC-svc-dur{font-size:12px;color:var(--t2);font-weight:500} /* El calendario. Es lo que se viene a usar, asi que ocupa como tal. */ .CAL-w{display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);gap:clamp(22px,3vw,44px);align-items:start} .CAL{border:1px solid var(--bl);border-radius:var(--radius-lg,16px);padding:18px;background:var(--bg)} .CAL-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px} .CAL-mes{font-family:var(--sn);font-size:15px;font-weight:700;letter-spacing:-.015em;color:var(--t1)} .CAL-mes::first-letter{text-transform:uppercase} .CAL button.CAL-nav{width:32px;height:32px;border-radius:var(--radius-sm,6px);border:1px solid var(--bl);display:flex;align-items:center;justify-content:center;color:var(--t1);background:var(--bg);transition:border-color .2s,opacity .2s} .CAL button.CAL-nav:hover:not(:disabled){border-color:var(--t1)} .CAL button.CAL-nav:disabled{opacity:.25;cursor:not-allowed} .CAL-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:4px} .CAL-dow span{text-align:center;font-family:var(--sn);font-size:11px;font-weight:700;color:var(--t2);padding:6px 0} .CAL-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px} .CAL-g button{aspect-ratio:1;border-radius:var(--radius-sm,6px);font-family:var(--sn);font-size:14px;font-weight:600;color:var(--t1);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:background .18s var(--el),color .18s var(--el)} .CAL-g button:hover:not(:disabled){background:var(--bgc)} .CAL-g button.a{background:var(--ac);color:var(--tl)} .CAL-g button:disabled{color:var(--t2);opacity:.32;cursor:not-allowed} .CAL-g button.lleno{color:var(--t2);opacity:.35;cursor:not-allowed;text-decoration:line-through} .CAL-g .hueco{aspect-ratio:1} .CAL-pt{width:5px;height:5px;border-radius:50%;background:var(--ac)} .CAL-g button.a .CAL-pt{background:var(--tl)} .CAL-ley{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--bl);font-size:12px;color:var(--t2)} .CAL-ley i{font-style:normal;display:inline-flex;align-items:center;gap:6px} .RC-dia{font-family:var(--sn);font-size:15px;font-weight:700;letter-spacing:-.015em;color:var(--t1);margin-bottom:14px} .RC-dia::first-letter{text-transform:uppercase} .RC-horas{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:9px} .RC-horas button{font-family:var(--sn);font-size:14.5px;font-weight:600;padding:14px 6px;border:1.5px solid var(--bl);border-radius:var(--radius-md,10px);background:var(--bg);color:var(--t1);transition:all .2s var(--el)} .RC-horas button:hover:not(:disabled){border-color:var(--t1)} .RC-horas button.a{background:var(--ac);border-color:var(--ac);color:var(--tl)} .RC-horas button:disabled{opacity:.3;cursor:not-allowed;text-decoration:line-through;color:var(--t2)} .RC-aviso{font-size:13.5px;line-height:1.65;color:var(--t2);padding:14px 16px;border:1px solid var(--bl);border-radius:var(--radius-md,10px);background:var(--bgc)} .RC-aviso.mal{border-color:var(--danger,#dc2626);color:var(--danger,#dc2626);background:transparent} .RC-form{display:grid;grid-template-columns:1fr 1fr;gap:13px} .RC-form label{display:flex;flex-direction:column;gap:7px;font-family:var(--sn);font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--t1)} .RC-form label.ancho{grid-column:1/-1} .RC-form input,.RC-form textarea{font:inherit;font-size:15px;font-weight:400;color:var(--t1);padding:14px 16px;border:1.5px solid var(--bl);border-radius:var(--radius-md,10px);background:var(--bg);outline:none;transition:border-color .2s,box-shadow .2s;width:100%} .RC-form textarea{min-height:96px;resize:vertical;line-height:1.6} .RC-form input:focus,.RC-form textarea:focus{border-color:var(--t1);box-shadow:0 0 0 3px rgba(10,22,40,.07)} .RC-form .RC-enviar{grid-column:1/-1;margin-top:8px;background:var(--ac);color:var(--tl);border:1px solid var(--ac);font-family:var(--sn);font-size:15px;font-weight:700;letter-spacing:-.01em;padding:17px 28px;border-radius:var(--radius-md,10px);transition:filter .25s var(--el)} .RC-form .RC-enviar:hover:not(:disabled){filter:brightness(.94)} .RC-form .RC-enviar:disabled{opacity:.3;cursor:not-allowed} /* Paso 03 sin sesion: la invitacion a entrar. Los selectores van a DOS clases a proposito: la plantilla trae un .L button que resetea fondo, borde y color, y con una sola clase gana el reset y los botones salen desnudos. */ .RC-entrar{padding:2px 0} .RC-entrar p{margin:0 0 18px;font-size:15px;line-height:1.65;max-width:58ch;opacity:.75} .RC-entrar-bt{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px} .RC-entrar .RC-enviar{background:var(--ac);color:var(--tl);border:1px solid var(--ac);font-family:var(--sn);font-size:15px;font-weight:700;letter-spacing:-.01em;padding:17px 28px;border-radius:var(--radius-md,10px);cursor:pointer;transition:filter .25s var(--el)} .RC-entrar .RC-enviar:hover{filter:brightness(.94)} .RC-entrar .RC-crear{background:transparent;color:var(--t1);border:1.5px solid var(--bl);font-family:var(--sn);font-size:15px;font-weight:600;letter-spacing:-.01em;padding:17px 28px;border-radius:var(--radius-md,10px);cursor:pointer;transition:background .2s,border-color .2s} .RC-entrar .RC-crear:hover{background:var(--bgc);border-color:var(--t1)} .RC-entrar .RC-legal{grid-column:auto;margin:0} .RC-legal{grid-column:1/-1;font-size:12.5px;line-height:1.65;color:var(--t2);font-weight:400} .RC-resumen{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;padding:15px 18px;border-radius:var(--radius-md,10px);background:var(--tinta);color:#fff;font-size:14px;font-weight:400} .RC-resumen b{font-weight:700} .RC-resumen b::first-letter{text-transform:uppercase} .RC-ok{max-width:620px;margin:0 auto;text-align:center;padding:clamp(34px,4.5vw,56px);border:1px solid var(--bl);border-radius:var(--radius-lg,16px);background:var(--bgc)} .RC-ok h2{font-family:var(--sn);font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:800;letter-spacing:-.03em;color:var(--t1);margin-bottom:18px;line-height:1.1} .RC-ok p{font-size:14.5px;line-height:1.7;color:var(--t2);margin-bottom:14px} .RC-ok-res{display:inline-flex;flex-direction:column;gap:6px;margin:14px 0 26px;padding:20px 30px;border-radius:var(--radius-md,10px);background:var(--tinta);color:#fff;font-size:15px} .RC-ok-res b{font-weight:700} .RC-ok-res b::first-letter{text-transform:uppercase} @media(max-width:900px){.CAL-w{grid-template-columns:1fr}.CAL{max-width:370px}} @media(max-width:640px){.RC-form{grid-template-columns:1fr}.RC-form label{grid-column:1/-1}} /* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 EN EL MOVIL, UNA APP \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 La mitad larga de quien entra aqui lo hace desde el movil y con dolor: no viene a pasear por un escaparate, viene a pedir hora. Asi que en pantalla estrecha esto deja de comportarse como una web y se comporta como una aplicacion \u2014 la accion principal SIEMPRE a mano, abajo, donde llega el pulgar, y no a dos scrolls de distancia. El env(safe-area-inset-bottom) no es un adorno: sin eso, en un iPhone la barra queda debajo de la raya del gesto de inicio y la mitad del boton no se puede pulsar. */ } /* Volver arriba. En una pagina larga y en movil, subir a mano son seis gestos; esto es uno. Aparece solo cuando ya has bajado de verdad. */ .SUB{ position:fixed;right:16px;bottom:16px;z-index:110;width:42px;height:42px; border-radius:50%;display:flex;align-items:center;justify-content:center; opacity:0;pointer-events:none;transform:translateY(8px); transition:opacity .3s var(--el),transform .3s var(--el); } .L .SUB{background:var(--t1);color:var(--bg);border:none} .SUB.v{opacity:1;pointer-events:auto;transform:translateY(0)} /* Cinta de aviso sobre la barra. Es donde Strong pone "pago 100% seguro": una linea fina que dice lo que quita el miedo antes de nada. Solo se pinta si hay algo que decir. */ .AV{background:var(--tinta);color:#fff;text-align:center;padding:7px var(--pm); font-family:var(--sn);font-size:11.5px;font-weight:500;letter-spacing:.04em; position:relative;z-index:101} .AV b{color:var(--ac);font-weight:700} /* Las tarjetas de servicio, mas altas y con caida de color: es el gesto de Strong en "\xBFcual es tu objetivo?" \u2014 la tarjeta pesa y la flecha invita. */ .SV-g .SV-c{min-height:230px;background:linear-gradient(160deg, var(--bg) 0%, var(--bgc) 100%)} .SV-g .SV-c::after{ content:'';position:absolute;inset:auto 0 0 0;height:3px;border-radius:0 0 16px 16px; background:var(--ac);transform:scaleX(0);transform-origin:left; transition:transform .45s var(--el); } .SV-g .SV-c:hover::after{transform:scaleX(1)} /* El catalogo en movil: carrusel que engancha, como el de mas vendidos de Strong. En una rejilla vertical de seis, el sexto no lo ve nadie. */ @media(max-width:768px){ .L .G{ display:grid;grid-auto-flow:column;grid-auto-columns:72%; grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory; gap:12px;padding-inline:var(--pm);scrollbar-width:none; -webkit-overflow-scrolling:touch; } .L .G::-webkit-scrollbar{display:none} .L .G > *{scroll-snap-align:start} } /* \u2500\u2500 CATALOGO DE UNA CONSULTA, NO DE UNA TIENDA DE ROPA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 La plantilla trae la ficha en 3:4 y cuatro columnas: forma de prenda, para que se vea el largo de un vestido. Aqui lo que se vende son gomas, rodillos y pelotas \u2014 objetos pequenos que se reconocen de un vistazo. Con la ficha alta, tres accesorios llenaban la pantalla y parecia que el catalogo entero eran tres cosas. Cuadradas y mas por fila, como el escaparate de Strong: se abarca todo el material de un golpe de vista y deja de gritar. La rejilla solo se toca cuando la tienda NO ha elegido columnas \u2014 si el dueno eligio 2, 3 o 4, manda el, que para eso esta el control. */ .L .C-img{aspect-ratio:1} .L .C-n{font-size:13.5px;line-height:1.35} .L .C-f{padding-top:11px} @media(min-width:769px){ [data-grid="grid-compacto"] .G{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:clamp(14px,1.6vw,22px)} } /* Producto sin unidades: se ve apagado, con su sello, y sin boton de anadir. La foto NO se esconde \u2014 es catalogo que se anuncia, no un hueco. */ .L .C.ago .C-img img{filter:grayscale(.55) opacity(.72)} .L .C-bd.ag{background:var(--t1);color:var(--bg);letter-spacing:.02em} .L .C.ago .C-n{color:var(--t2)} `;function Storefront({id,gufi}){let{data:rawP}=gufi.useData("ecommerce__productos"),{data:rawC}=gufi.useData("ecommerce__categorias"),{data:rawVariants}=gufi.useData("ecommerce__variants"),{data:rawPacks}=gufi.useData("ecommerce__packs"),{data:rawPackProductos}=gufi.useData("ecommerce__pack_productos"),{data:rawRecomendaciones}=gufi.useData("ecommerce__recomendaciones_cache"),{data:rawResenas}=gufi.useData("ecommerce__resenas"),{data:rawQuizPreguntas}=gufi.useData("ecommerce__quiz_preguntas"),{data:rawQuizOpciones}=gufi.useData("ecommerce__quiz_opciones"),{data:rawServicios}=gufi.useData("agenda__servicios"),{data:rawConfig}=gufi.useData("ecommerce__configuracion"),{data:rawTarifas}=gufi.useData("ecommerce__tarifas_envio"),productosResolved=(0,import_react3.useMemo)(()=>{let list=Array.isArray(rawP)?rawP:[],variantsList=Array.isArray(rawVariants)?rawVariants:[];if(variantsList.length===0)return list;let byProd={};for(let v of variantsList){if(v?.__deleted_at__)continue;let pidRaw=v?.producto,pid=Number(pidRaw&&typeof pidRaw=="object"?pidRaw.id:pidRaw);if(!Number.isFinite(pid))continue;let tipo=String(v.tipo||"Talla");byProd[pid]||(byProd[pid]={groups:{},combos:[]}),byProd[pid].groups[tipo]||(byProd[pid].groups[tipo]=[]);let fotos=Array.isArray(v.imagenes)?v.imagenes.filter(f=>f&&typeof f.url=="string").map(f=>({url:String(f.url),name:String(f.name||"")})):[],imagen=fotos[0]?.url||"",imagen_name=fotos[0]?.name||"",stock=v.stock===null||v.stock===void 0||v.stock===""?void 0:Number(v.stock),precio=v.precio===null||v.precio===void 0||v.precio===""?void 0:Number(v.precio),valor={value:String(v.value||""),_variantId:Number(v.id)};Number.isFinite(stock)&&(valor.stock=stock),imagen&&(valor.imagen=imagen),imagen_name&&(valor.imagen_name=imagen_name),fotos.length>0&&(valor.fotos=fotos),(v.largo||v.ancho)&&(valor.medidas={largo:v.largo||"",ancho:v.ancho||""}),Number.isFinite(precio)&&(valor.precio=precio),typeof v.descripcion=="string"&&v.descripcion.trim()&&(valor.descripcion=v.descripcion),byProd[pid].groups[tipo].push(valor),byProd[pid].combos.push({key:`${tipo}:${String(v.value||"")}`,combo:{[tipo]:String(v.value||"")},stock:Number.isFinite(stock)?stock:0})}return list.map(p=>{let overlay=byProd[Number(p.id)];if(!overlay||Object.keys(overlay.groups).length===0)return p;let nextVc={groups:Object.entries(overlay.groups).map(([tipo,valores])=>({tipo,valores})),combos:overlay.combos};return{...p,variantes_config:JSON.stringify(nextVc)}})},[rawP,rawVariants]),prods=(0,import_react3.useMemo)(()=>productosResolved.filter(p=>p?.activo!==!1&&(!isOutOfStockParent(p)||p?.mostrar_agotado===!0)),[productosResolved]),cats=(0,import_react3.useMemo)(()=>(Array.isArray(rawC)?rawC:[]).filter(c=>c?.activo!==!1).sort((a,b)=>num(a.orden)-num(b.orden)),[rawC]),servicios=(0,import_react3.useMemo)(()=>(Array.isArray(rawServicios)?rawServicios:[]).filter(x=>x?.activo!==!1).sort((a,b)=>num(a.id)-num(b.id)),[rawServicios]),promoDe=sv=>sv?.promo_primera===!0&&num(sv?.precio_primera)>0&&num(sv.precio_primera)String(sv?.modalidad||"")==="online",s2=(0,import_react3.useMemo)(()=>{let filas=Array.isArray(rawConfig)?rawConfig:[],ajustes={};for(let f of filas){if(!f?.clave)continue;if(f.tipo==="file"){f.archivo&&(ajustes[f.clave]=f.archivo);continue}let v=f.valor;v==null||String(v)===""||(ajustes[f.clave]=f.tipo==="boolean"?String(v).toLowerCase()==="true":f.tipo==="number"?Number(v):f.tipo==="json"?(()=>{try{return JSON.parse(String(v))}catch{return null}})():v)}return ajustes},[rawConfig]),[aparienciaPrevia,setAparienciaPrevia]=(0,import_react3.useState)(null);(0,import_react3.useEffect)(()=>{if(!IS_PREVIEW)return;let oir=e=>{if(e.source!==window.parent)return;let d=e.data;d&&d.type==="gufi:apariencia"&&setAparienciaPrevia(leerApariencia(d.apariencia)??{})};return window.addEventListener("message",oir),()=>window.removeEventListener("message",oir)},[]);let APARIENCIA=aparienciaPrevia??leerApariencia(s2.apariencia),FORMA=formaDe(APARIENCIA),raizRef=(0,import_react3.useRef)(null),aparienciaJson=JSON.stringify(APARIENCIA);(0,import_react3.useLayoutEffect)(()=>{if(!APARIENCIA||!raizRef.current)return;let envoltura=raizRef.current.closest(".gufi-view-root");if(!envoltura){console.error("[apariencia] la tienda no est\xE1 dentro de .gufi-view-root: no se aplica");return}aparienciaPrevia&&limpiarApariencia(envoltura),aplicarApariencia(envoltura,APARIENCIA)},[aparienciaJson]);let BRAND=String(s2.brand_name||""),PEDIR_CUENTA=s2.citas_pedir_cuenta!==!1,CONFIRMA_SOLA=s2.citas_confirmacion_auto===!0,MOSTRAR_PRECIO=s2.citas_mostrar_precio!==!1,LOGO_SRC=(()=>{let lg=s2.logo,raw="";if(!lg)return"";if(Array.isArray(lg))raw=typeof lg[0]?.url=="string"?lg[0].url:"";else if(typeof lg=="object")raw=typeof lg.url=="string"?lg.url:"";else if(typeof lg=="string")try{raw=String(JSON.parse(lg)?.url||"")}catch{raw=lg}return raw?/^https?:\/\//i.test(raw)||raw.startsWith("data:")||raw.startsWith("blob:")?raw:raw.startsWith("/api/")?`${raw}&w=400`:`/api/files/serve?path=${encodeURIComponent(raw)}&w=400`:""})(),fileSrc=(raw,ancho=1920)=>{let url="";if(!raw)return"";if(Array.isArray(raw))url=typeof raw[0]?.url=="string"?raw[0].url:"";else if(typeof raw=="object")url=typeof raw.url=="string"?raw.url:"";else if(typeof raw=="string")try{url=String(JSON.parse(raw)?.url||"")}catch{url=raw}return url?/^https?:\/\//i.test(url)||url.startsWith("data:")||url.startsWith("blob:")?url:url.startsWith("/api/")?ancho?`${url}&w=${ancho}`:url:`/api/files/serve?path=${encodeURIComponent(url)}${ancho?`&w=${ancho}`:""}`:""},HERO_BG=fileSrc(s2.hero_background),HERO_IMAGES=[s2.hero_image_1,s2.hero_image_2,s2.hero_image_3].map(f=>fileSrc(f)).filter(Boolean),HERITAGE_IMG=fileSrc(s2.heritage_image),HERITAGE_TITLE=String(s2.heritage_title||"").trim(),HERITAGE_TEXT=String(s2.heritage_text||"").trim(),FAMILY_IMG=fileSrc(s2.family_image),PORTADA_VIDEO=fileSrc(s2.portada_video,null),FAMILY_TITLE=String(s2.family_title||"").trim(),FAMILY_TEXT=String(s2.family_text||"").trim(),FAMILY_RESUMEN=String(s2.family_resumen||"").trim()||FAMILY_TEXT.split(/\n\s*\n/).map(x=>x.trim()).filter(x=>x&&!x.startsWith("## "))[0]||"",GALLERY_TITLE=String(s2.gallery_title||"").trim(),GALLERY_IMAGES=(()=>{let raw=s2.gallery_images;if(!raw)return[];try{let arr=typeof raw=="string"?JSON.parse(raw):raw;return Array.isArray(arr)?arr.map(it=>fileSrc(it)).filter(Boolean):[]}catch{return[]}})(),HERITAGE_ON=!!HERITAGE_IMG&&!!(HERITAGE_TITLE||HERITAGE_TEXT),ABOUT_ON=s2.family_enabled!==!1&&!!(FAMILY_IMG||FAMILY_TITLE||FAMILY_TEXT),GALLERY_ON=GALLERY_IMAGES.length>0,BG_COLOR=String(s2.bg_color||"").trim(),BG_LIGHT=String(s2.bg_light||"").trim(),SEASON_TAG=String(s2.season_tag||"").trim(),SHOP_CLOSED=!!s2.shop_closed,SHOP_CLOSED_MSG=String(s2.shop_closed_message||"").trim()||tr("Tienda cerrada temporalmente")+". "+tr("Volveremos pronto"),IG_URL=String(s2.instagram_url||"").trim(),IG_HANDLE=IG_URL?"@"+IG_URL.replace(/\/+$/,"").split("/").pop().split("?")[0]:"",TT_URL=String(s2.tiktok_url||"").trim(),WA_NUM=String(s2.whatsapp_number||"").trim(),EMAIL_PUB=String(s2.email_publico||"").trim(),TW_URL=String(s2.twitter_url||"").trim(),FB_URL=String(s2.facebook_url||"").trim(),waHref=WA_NUM?`https://wa.me/${WA_NUM.replace(/[^\d]/g,"")}`:"",CONTACT_TITLE=String(s2.contact_title||"").trim(),CONTACT_TEXT=String(s2.contact_text||"").trim(),CONTACT_EMAIL=String(s2.contact_email||"").trim(),CONTACT_WA=String(s2.contact_whatsapp||"").trim(),CONTACT_EMAIL_ON=s2.contact_email_enabled!==!1&&!!CONTACT_EMAIL,CONTACT_WA_ON=s2.contact_whatsapp_enabled!==!1&&!!CONTACT_WA,contactMailto=CONTACT_EMAIL?`mailto:${CONTACT_EMAIL}?subject=${encodeURIComponent(CONTACT_TITLE||"Contacto")}`:"",contactWaHref=CONTACT_WA?`https://wa.me/${CONTACT_WA.replace(/[^\d]/g,"")}`:"",CONTACT_ON=s2.contact_enabled!==!1&&(CONTACT_EMAIL_ON||CONTACT_WA_ON),BG_IS_DARK=!!BG_COLOR&&(hex=>{let m=hex.match(/^#?([0-9a-f]{6})$/i);if(!m)return!1;let n=parseInt(m[1],16),r=n>>16&255,g=n>>8&255,b=n&255;return(.299*r+.587*g+.114*b)/255<.55})(BG_COLOR),BRAND_DISPLAY=BRAND||(__L==="es"?"Tu Tienda":"Your Store"),PRO=String(s2.agenda_pro||"").trim()||BRAND_DISPLAY,SEG_UNO=String(s2.seguimiento_uno||""),SEG_VARIOS=String(s2.seguimiento_varios||""),SEG_ON=SEG_UNO!==""&&SEG_VARIOS!=="",AGENDA_MENU=String(s2.agenda_menu||"").trim()||"Pide cita",ETIQUETA_SOBRE_NOSOTROS=String(s2.menu_sobre_nosotros||"").trim()||"Con\xF3cenos",HERO_CTA=String(s2.hero_cta||"").trim()||"Ver productos",MENU_GRUPOS=Array.isArray(s2.menu_grupos)?s2.menu_grupos.filter(g=>g&&typeof g.label=="string"&&Array.isArray(g.cats)):[],catsDeGrupo=trozos=>cats.filter(c=>trozos.some(t=>str(c.nombre).toLowerCase().includes(String(t).toLowerCase()))),AGENDA_SERVICIOS_SUB=String(s2.agenda_servicios_sub||"").trim(),AGENDA_CTA=String(s2.agenda_cta||"").trim()||"Reservar cita",AGENDA_PASOS_TITULO=String(s2.agenda_pasos_titulo||"").trim()||"Pedir hora, en tres pasos",AGENDA_CIERRE=String(s2.agenda_cierre||"").trim()||"Elige el hueco que te venga bien. {pro} te lo confirma antes de la sesi\xF3n.",AGENDA_RESERVA_NOTA=String(s2.agenda_reserva_nota||"").trim(),TIENDA_ON=prods.length>0,conPro=t=>String(t||"").replace(/\{pro\}/g,PRO).replace(/\{uno\}/g,SEG_UNO).replace(/\{varios\}/g,SEG_VARIOS),listaAjuste=(clave,porDefecto)=>{let v=s2[clave];return Array.isArray(v)&&v.length>0?v:porDefecto},GARANTIAS=listaAjuste("agenda_garantias",[{t:"Donde t\xFA est\xE9s",d:"{pro} va con todo el material. Ni desplazamientos ni sala de espera."},{t:"Sesi\xF3n completa",d:"Valoraci\xF3n, tratamiento y pautas. Sin turnos solapados."},{t:"Te lo confirma \xE9l",d:"Reservas la hora y {pro} te la confirma antes de la sesi\xF3n."},{t:"Pautas para casa",d:"Sales de cada sesi\xF3n sabiendo qu\xE9 hacer hasta la siguiente."}]),PASOS=listaAjuste("agenda_pasos",[{n:"01",t:"Eliges y reservas",d:"Servicio, d\xEDa y hora, en el calendario. Las horas que ya est\xE1n cogidas no se pueden elegir."},{n:"02",t:"{pro} confirma",d:"Revisa la cita y te la confirma por tel\xE9fono o correo. Si algo no encaja, te propone otra hora."},{n:"03",t:"Y a por ello",d:"Llega con todo lo necesario. T\xFA no preparas nada."}]),HAS_BRAND_SETUP=!!(BRAND||LOGO_SRC||HERO_BG||HERO_IMAGES.length>0||s2.hero_subtitle),HERO_SUBTITLE=String(s2.hero_subtitle||"")||(HAS_BRAND_SETUP?"":__L==="es"?"Configura tu marca y a\xF1ade tus primeros productos":"Configure your brand and add your first products"),HERO_INVERT=!!HERO_BG,ORDER_PREFIX=String(s2.order_prefix||"ORD"),VARIANT_LABEL=String(s2.variant_label||""),LEGAL_CTX=(0,import_react3.useMemo)(()=>({razon_social:String(s2.razon_social||BRAND||""),cif:String(s2.cif||""),email_contacto:String(s2.email_contacto||""),direccion_fiscal:String(s2.direccion_fiscal||""),website_url:typeof window<"u"?window.location.host:"",brand_name:String(BRAND||"")}),[s2.razon_social,s2.cif,s2.email_contacto,s2.direccion_fiscal,BRAND]),TERMS_OVERRIDE=String(s2.terms_text||""),PRIVACY_OVERRIDE=String(s2.privacy_text||""),getVariantOptions=(0,import_react3.useCallback)(p=>{if(!p?.variantes_config)return[];try{let group=((typeof p.variantes_config=="string"?JSON.parse(p.variantes_config):p.variantes_config)?.groups||[])[0],seen=new Set;return(group?.valores||[]).map(v=>String(v?.value||"")).filter(s3=>s3&&!seen.has(s3)&&(seen.add(s3),!0))}catch{return[]}},[]),genOrderId=(0,import_react3.useCallback)(()=>`${ORDER_PREFIX}-${new Date().getFullYear()}-${Math.floor(1e5+Math.random()*9e5)}`,[ORDER_PREFIX]),[view,setView]=gufi.router.usePathView({initial:"store",routes:{store:"/",product:"/product/:productId",pack:"/pack/:packId",category:"/categoria/:categoriaSlug",checkout:"/checkout","checkout-processing":"/checkout/processing","checkout-success":"/checkout/success","checkout-success-pending":"/checkout/pending",account:"/account",orders:"/orders",about:"/sobre-nosotros",citas:"/reservar-cita",miscitas:"/mis-citas",seguimiento:"/mi-seguimiento"}});import_react3.default.useEffect(()=>{if(typeof window>"u"||window.parent===window)return;let ORIGENES=["https://gufi.dev","http://localhost:3000","http://localhost:3001","http://localhost:5173","http://localhost:5174"],alRecibir=e=>{if(!ORIGENES.includes(e.origin))return;let d=e.data;if(!d||d.type!=="gufi:ir-a-seccion"||typeof d.id!="string")return;let el=document.querySelector(`[data-seccion="${d.id}"]`);el&&(el.scrollIntoView({behavior:"smooth",block:"start"}),el.style.outline="3px solid #6B4EFF",el.style.outlineOffset="-3px",window.setTimeout(()=>{el.style.outline="",el.style.outlineOffset=""},1800))};return window.addEventListener("message",alRecibir),()=>window.removeEventListener("message",alRecibir)},[]),import_react3.default.useEffect(()=>{try{window.scrollTo(0,0)}catch{}},[view]);let[cart,setCart]=(0,import_react3.useState)([]),[user,setUser]=(0,import_react3.useState)(()=>{let persisted=authGet(),pid=Number(persisted?.id),pemailRaw=persisted?.email,pemail=Array.isArray(pemailRaw)?pemailRaw[0]:pemailRaw;return persisted&&Number.isFinite(pid)&&pid>0&&typeof pemail=="string"&&pemail.trim().length>0?{...persisted,id:pid,email:pemail}:null}),[orders,setOrders]=(0,import_react3.useState)([]),ORDERS_PAGE_SIZE=10,[ordersPage,setOrdersPage]=(0,import_react3.useState)(1),[wish,setWish]=(0,import_react3.useState)(new Set),[cartOpen,setCartOpen]=(0,import_react3.useState)(!1),[wishOpen,setWishOpen]=(0,import_react3.useState)(!1),[menuOpen,setMenuOpen]=(0,import_react3.useState)(!1),[authOpen,setAuthOpen]=(0,import_react3.useState)(!1),[authMode,setAuthMode]=(0,import_react3.useState)("login"),[magicSent,setMagicSent]=(0,import_react3.useState)(""),[pwdModal,setPwdModal]=(0,import_react3.useState)(null),[guest,setGuest]=(0,import_react3.useState)(()=>{try{let s3=localStorage.getItem(GUEST_KEY);return s3?JSON.parse(s3):null}catch{return null}}),publicCompanyId=(0,import_react3.useCallback)(()=>String(gufi?.context?.activeCompany?.id||gufi?.context?.activeCompany?.company_id||gufi?.siteInfo?.company_id||typeof window<"u"&&window.location.pathname.match(/\/(?:app\/)?(\d+)\//)?.[1]||""),[gufi]),leerFilas=(0,import_react3.useCallback)(async(resource,opts={})=>{if(!resource)throw new Error("leerFilas: tabla no publicada en este sitio");let res=await gufi.dataProvider.query(resource,{pageSize:opts.pageSize??50,filters:opts.filters??[],sorters:opts.sorters??[]});return Array.isArray(res?.data)?res.data:[]},[gufi]),callPublicAutomation=(0,import_react3.useCallback)(async(name,input)=>{let cid=publicCompanyId();if(!cid)throw new Error("No companyId for automation call");let ctoken="";try{ctoken=localStorage.getItem(SF_CTOKEN_KEY)||""}catch{}let resp=await fetch(`/api/public/${cid}/automation/${name}`,{method:"POST",headers:{"Content-Type":"application/json",...ctoken?{"x-gufi-ctoken":ctoken}:{}},body:JSON.stringify(input)}),json=null;try{json=await resp.json()}catch{}if(!resp.ok)throw new Error(json?.error||`HTTP ${resp.status}`);return json?.result??json},[publicCompanyId]);(0,import_react3.useEffect)(()=>{if(typeof window>"u")return;let q=new URLSearchParams(window.location.search),pagada=q.get("cita_pagada"),cancelada=q.get("cita_cancelada");if(!pagada&&!cancelada)return;try{window.history.replaceState({},"",window.location.pathname)}catch{}if(go("citas"),cancelada){setCitaPago({fase:"sin_pago"});return}setCitaPago({fase:"comprobando"});let vivo=!0;return(async()=>{for(let intento=0;intento<6&&vivo;intento++){let r=await callPublicAutomation("cita_estado",{pedidoNumero:pagada}).catch(()=>null);if(!vivo)return;if(r?.ok&&r.pagado){setCitaPago({fase:"pagada",datos:r});return}await new Promise(res=>setTimeout(res,1500))}vivo&&setCitaPago({fase:"tarda"})})(),()=>{vivo=!1}},[]);let[citaServicio,setCitaServicio]=(0,import_react3.useState)(null),[citaFecha,setCitaFecha]=(0,import_react3.useState)(""),[citaHora,setCitaHora]=(0,import_react3.useState)(""),[citaOcupadas,setCitaOcupadas]=(0,import_react3.useState)([]),[citaHoras,setCitaHoras]=(0,import_react3.useState)([]),[citaAgenda,setCitaAgenda]=(0,import_react3.useState)("vacio"),[citaAgendaError,setCitaAgendaError]=(0,import_react3.useState)(""),[citaMes,setCitaMes]=(0,import_react3.useState)(()=>mesActual()),[citaDiasMes,setCitaDiasMes]=(0,import_react3.useState)({}),[citaEnviando,setCitaEnviando]=(0,import_react3.useState)(!1),[citaHecha,setCitaHecha]=(0,import_react3.useState)(null),[citaPago,setCitaPago]=(0,import_react3.useState)(null),[citaError,setCitaError]=(0,import_react3.useState)("");import_react3.default.useEffect(()=>{if(!citaFecha){setCitaHoras([]),setCitaOcupadas([]),setCitaAgenda("vacio");return}let vivo=!0;return setCitaAgenda("cargando"),setCitaAgendaError(""),callPublicAutomation("citas_disponibilidad",{fecha:citaFecha,servicio_id:citaServicio}).then(r=>{if(vivo){if(!r?.ok)throw new Error(String(r?.error||"RESPUESTA_INVALIDA"));setCitaHoras(Array.isArray(r.horas)?r.horas.map(String):[]),setCitaOcupadas(Array.isArray(r.ocupadas)?r.ocupadas.map(String):[]),setCitaAgenda("listo")}}).catch(err=>{vivo&&(setCitaHoras([]),setCitaOcupadas([]),setCitaAgenda("error"),setCitaAgendaError(String(err?.message||err)))}),()=>{vivo=!1}},[citaFecha,citaServicio,callPublicAutomation]);let recargarMes=(0,import_react3.useCallback)(async mes=>{let r=await callPublicAutomation("citas_disponibilidad",{mes,servicio_id:citaServicio}).catch(()=>null);r?.ok&&r.dias&&typeof r.dias=="object"&&setCitaDiasMes(r.dias)},[callPublicAutomation,citaServicio]);import_react3.default.useEffect(()=>{if(view!=="citas")return;let vivo=!0;return callPublicAutomation("citas_disponibilidad",{mes:citaMes,servicio_id:citaServicio}).then(r=>{vivo&&r?.ok&&setCitaDiasMes(r.dias||{})}).catch(()=>{vivo&&setCitaDiasMes({})}),()=>{vivo=!1}},[view,citaMes,citaServicio,callPublicAutomation]);let horaPasada=(0,import_react3.useCallback)(h=>!!citaFecha&&citaFecha===hoyMadrid()&&h<=horaMadrid(),[citaFecha]),estadoDia=(0,import_react3.useCallback)(iso=>{let d=citaDiasMes[iso];return d?d.t===0?"cerrado":d.o>=d.t?"lleno":"libre":"desconocido"},[citaDiasMes]),CITA_ERRORES={NOMBRE_REQUERIDO:"Escribe tu nombre.",TELEFONO_INVALIDO:"El tel\xE9fono no parece correcto.",EMAIL_INVALIDO:"El correo no parece correcto.",DIRECCION_REQUERIDA:"Hace falta la direcci\xF3n: la sesi\xF3n es en tu casa.",FECHA_INVALIDA:"Elige un d\xEDa.",HORA_INVALIDA:"Elige una hora.",FECHA_PASADA:"Ese d\xEDa ya ha pasado.",HORA_PASADA:"Esa hora ya ha pasado. Elige otra.",SERVICIO_REQUERIDO:"Elige el tipo de sesi\xF3n.",SERVICIO_NO_DISPONIBLE:"Ese servicio ya no est\xE1 disponible.",SLOT_OCUPADO:"Alguien acaba de coger esa hora. Elige otra, por favor.",SESION_REQUERIDA:"Entra con tu cuenta para pedir la cita.",CLIENTE_DESCONOCIDO:"Tu sesi\xF3n ya no vale. Vuelve a entrar y lo intentamos otra vez.",SERVICIO_SIN_PRECIO:"Ese servicio no tiene precio puesto y hay que pagarlo al reservar. Av\xEDsanos y lo arreglamos.",IMPORTE_INVALIDO:"No hemos podido calcular el importe. Av\xEDsanos y lo arreglamos."},enviarCita=(0,import_react3.useCallback)(async e=>{if(e.preventDefault(),citaEnviando)return;if(PEDIR_CUENTA&&!user){pendingAfterLogin.current="cita",setAuthMode("login"),setAuthOpen(!0);return}let f=e.target,datos={nombre:String(f.elements.namedItem("nombre")?.value||""),telefono:String(f.elements.namedItem("telefono")?.value||""),email:String(f.elements.namedItem("email")?.value||""),direccion:citaEsOnline?"":[juntarDireccion(citaDir),[citaDir.cp,getCityFromCP(citaDir.cp)].filter(Boolean).join(" ")].filter(Boolean).join(", "),notas:String(f.elements.namedItem("notas")?.value||""),fecha:citaFecha,hora:citaHora,servicio_id:citaServicio};setCitaEnviando(!0),setCitaError("");try{if(user?.id){let cambios={},telLimpio=datos.telefono.replace(/\D/g,"").replace(/^34(?=\d{9})/,"");if(telLimpio&&telLimpio!==telDeUsuario.replace(/\D/g,"")&&(cambios.telefono=gufi.CB.phone(telLimpio,"+34")),!citaEsOnline&&datos.direccion.trim()&&datos.direccion.trim()!==dirDeUsuario.trim()&&(cambios.direccion_envio=datos.direccion.trim()),Object.keys(cambios).length)try{await gufi.dataProvider.update({resource:gufi.tables.ecommerce__clientes,id:user.id,variables:cambios}),setUser(prev=>{if(!prev)return prev;let next={...prev,...cambios.direccion_envio?{direccion:cambios.direccion_envio}:{},...telLimpio?{telefono:"+34"+telLimpio}:{}};return authSet(next),next})}catch(err){console.warn("[cita] no se pudo actualizar la ficha del cliente:",err)}}let r=await callPublicAutomation("reservar_cita",datos);if(!r?.ok){let msg=CITA_ERRORES[String(r?.error)]||`No se ha podido reservar (${r?.error||"error"}).`;if(setCitaError(msg),r?.error==="SLOT_OCUPADO"||r?.error==="HORA_PASADA"){setCitaHora("");let fresca=await callPublicAutomation("citas_disponibilidad",{fecha:citaFecha,servicio_id:citaServicio}).catch(()=>null);fresca?.ok&&setCitaOcupadas(Array.isArray(fresca.ocupadas)?fresca.ocupadas.map(String):[])}return}if(r.pedidoId&&Number(r.importe)>0){let vuelta=window.location.href.split("?")[0],etiqueta=`${BRAND?`${BRAND} \xB7 `:""}${String(r.servicio||"")}`;await gufi.runSlot("checkout-payment",{productName:etiqueta,items:[{nombre:etiqueta,precio:Number(r.importe),qty:1}],shippingCost:0,customerEmail:datos.email,orderId:r.pedidoId,amount:Math.round(Number(r.importe)*100),description:`${r.servicio} \xB7 ${r.fecha} ${r.hora}`,couponCode:null,couponDiscount:0,successUrl:`${vuelta}?cita_pagada=${r.pedidoNumero}&session_id={CHECKOUT_SESSION_ID}`,errorUrl:`${vuelta}?cita_cancelada=${r.pedidoNumero}`,baseUrl:vuelta});return}setCitaHecha({citaId:Number(r.citaId),fecha:String(r.fecha),hora:String(r.hora),servicio:String(r.servicio)}),f.reset(),recargarMes(mesDe(citaFecha)),window.scrollTo(0,0)}catch(err){setCitaError(String(err?.message||err))}finally{setCitaEnviando(!1)}},[citaEnviando,citaFecha,citaHora,citaServicio,callPublicAutomation,recargarMes,user,PEDIR_CUENTA]),citaLista=!!(citaServicio&&citaFecha&&citaHora),citaEsOnline=esOnlineSv(servicios.find(x=>Number(x.id)===Number(citaServicio))),CITAS_ON=servicios.length>0,[addrEditing,setAddrEditing]=(0,import_react3.useState)(!1),[addrSaving,setAddrSaving]=(0,import_react3.useState)(!1),[addrForm,setAddrForm]=(0,import_react3.useState)({nombre:"",apellidos:"",calle:"",numero:"",sinNumero:!1,portal:"",piso:"",puerta:"",codigo_postal:"",telefono:"",notas:""}),componerDireccion=(0,import_react3.useCallback)(f=>[[f.calle.trim(),f.sinNumero?"s/n":f.numero.trim()].filter(Boolean).join(" "),f.portal.trim()?"portal "+f.portal.trim():"",[f.piso.trim(),f.puerta.trim()].filter(Boolean).join("\xBA")].filter(Boolean).join(", "),[]),addrCpCity=getCityFromCP(addrForm.codigo_postal),userHasAddress=!!(user&&String(user.direccion||"").trim()&&getCityFromCP(String(user.codigo_postal||""))),saveAddress=(0,import_react3.useCallback)(async()=>{if(!user?.id)return;let cpCity2=getCityFromCP(addrForm.codigo_postal);if(!cpCity2){notify(tr("C\xF3digo postal no v\xE1lido"));return}if(!addrForm.telefono.replace(/\D/g,"")){notify(tr("El tel\xE9fono es obligatorio"));return}setAddrSaving(!0);try{let telDigits=addrForm.telefono.replace(/\D/g,"").replace(/^34(?=\d{9})/,""),telVal=telDigits?gufi.CB.phone(telDigits,"+34"):void 0,direccionCompuesta=componerDireccion(addrForm),vars={apellidos:addrForm.apellidos.trim(),direccion_envio:addrForm.calle.trim(),numero_envio:addrForm.sinNumero?"s/n":addrForm.numero.trim(),bloque_envio:addrForm.portal.trim(),piso_envio:addrForm.piso.trim(),puerta_envio:addrForm.puerta.trim(),cp_envio:addrForm.codigo_postal,ciudad_envio:cpCity2,pais_envio:"ES",notas_envio:addrForm.notas||""};telVal&&(vars.telefono=telVal),addrForm.nombre.trim()&&(vars.nombre=addrForm.nombre.trim()),await gufi.dataProvider.update({resource:gufi.tables.ecommerce__clientes,id:user.id,variables:vars});let updated={...addrForm.nombre.trim()?{nombre:addrForm.nombre.trim()}:{},apellidos:addrForm.apellidos.trim(),direccion:direccionCompuesta,ciudad:cpCity2,codigo_postal:addrForm.codigo_postal,telefono:addrForm.telefono,notas:addrForm.notas};setUser(prev=>{if(!prev)return prev;let next={...prev,...updated};return authSet(next),next}),setAddrEditing(!1),notify(tr("Direcci\xF3n guardada")),pendingAfterAddress.current==="cart"&&(pendingAfterAddress.current=null,go("store"),setCartOpen(!0))}catch(err){console.error("[saveAddress]",err),notify(tr("No se pudo guardar la direcci\xF3n"))}finally{setAddrSaving(!1)}},[user?.id,addrForm,gufi]),pendingAfterLogin=(0,import_react3.useRef)(null),lastOrderAtRef=(0,import_react3.useRef)(0),pendingAfterAddress=(0,import_react3.useRef)(null);(0,import_react3.useEffect)(()=>{__POST_CHECKOUT_RETURN||view==="checkout"&&!user&&!guest&&(pendingAfterLogin.current="checkout",setAuthMode("login"),setAuthOpen(!0),go("store"))},[view,user,guest]);let[legalPage,setLegalPage]=(0,import_react3.useState)(null),[consentimiento,setConsentimiento]=(0,import_react3.useState)(null),[cookiesAbierto,setCookiesAbierto]=(0,import_react3.useState)(!1),[cookiesDetalle,setCookiesDetalle]=(0,import_react3.useState)(!1),[ckAnalitica,setCkAnalitica]=(0,import_react3.useState)(!1),[ckMarketing,setCkMarketing]=(0,import_react3.useState)(!1);(0,import_react3.useEffect)(()=>{if(IS_PREVIEW)return;let c=leerConsentimiento();if(setConsentimiento(c),!c){setCookiesAbierto(!0);return}try{gufi.track?.consent?.(c.analitica,c.marketing)}catch{}},[]);let decidirCookies=(0,import_react3.useCallback)(async(analitica,marketing)=>{let previo=leerConsentimiento(),c=guardarConsentimiento(analitica,marketing);setConsentimiento(c),setCookiesAbierto(!1),setCookiesDetalle(!1);try{gufi.track?.consent?.(analitica,marketing)}catch{}try{await gufi.dataProvider.create({resource:gufi.tables.ecommerce__consentimientos_cookies,variables:{visitante_id:c.visitante,accion:gufi.CB.select(previo?analitica||marketing?"actualizado":"retirado":"otorgado"),analitica:gufi.CB.bool(c.analitica),marketing:gufi.CB.bool(c.marketing),version_texto:c.version,user_agent:typeof navigator<"u"?navigator.userAgent.slice(0,250):"",url_origen:typeof window<"u"?window.location.pathname.slice(0,250):"",...user?.id?{cliente_id:Number(user.id)}:{}}})}catch(e){console.error("[cookies] no se ha podido registrar el consentimiento:",e?.message||e)}},[gufi,user]),abrirPreferenciasCookies=(0,import_react3.useCallback)(()=>{let c=leerConsentimiento();setCkAnalitica(!!c?.analitica),setCkMarketing(!!c?.marketing),setCookiesDetalle(!0),setCookiesAbierto(!0)},[]),[pdpSz,setPdpSz]=(0,import_react3.useState)(""),[pdpSelections,setPdpSelections]=(0,import_react3.useState)({}),[pdpOk,setPdpOk]=(0,import_react3.useState)(!1),[pdpPhotoIdx,setPdpPhotoIdx]=(0,import_react3.useState)(0);function normalizeValue(v){if(typeof v=="string")return v?{value:v}:null;if(v&&typeof v=="object"&&typeof v.value=="string"){let o=v;return o.value?{...o,value:o.value}:null}return null}function parseProductVariantes(p){return parseProductVariantesConfig(p).groups}function parseProductVariantesConfig(p){if(!p?.variantes_config)return{groups:[],combos:[]};let raw=p.variantes_config;if(typeof raw=="string")try{raw=JSON.parse(raw)}catch{return{groups:[],combos:[]}}let groups=(Array.isArray(raw)?raw:Array.isArray(raw?.groups)?raw.groups:[]).map(g=>{if(!g?.tipo||!Array.isArray(g.valores))return null;let valores=g.valores.map(normalizeValue).filter(Boolean);return valores.length===0?null:{tipo:String(g.tipo),valores}}).filter(Boolean),combos=(Array.isArray(raw?.combos)?raw.combos:[]).map(c=>!c?.key||!c?.combo?null:{key:String(c.key),combo:c.combo,stock:Number(c.stock)||0}).filter(Boolean);return{groups,combos}}function selectionToKey(sel){return Object.keys(sel).sort().map(k=>`${k}:${sel[k]}`).join("|")}function pickVariantImage(p,selections){let picked=img(p),groups=parseProductVariantes(p);for(let g of groups){let sel=selections[g.tipo];if(!sel)continue;let match=g.valores.find(v=>v.value===sel);if(match?.imagen){let cand=img({imagen:match.imagen});cand&&cand!==IMG_PLACEHOLDER&&(picked=cand)}}let cfg=parseProductVariantesConfig(p);if(cfg.groups.length>0&&cfg.groups.every(g=>selections[g.tipo])){let ci=cfg.combos.find(c=>c.key===selectionToKey(selections))?.imagen;if(typeof ci=="string"&&ci){let cand=img({imagen:ci});cand&&cand!==IMG_PLACEHOLDER&&(picked=cand)}}return picked}function pickVariantGallery(p,selections){let toSrc=raw=>{if(!raw)return"";let u="";return typeof raw=="object"?u=String(raw.url||""):typeof raw=="string"&&(u=raw),u?/^https?:\/\//i.test(u)||u.startsWith("data:")||u.startsWith("blob:")?u:u.startsWith("/api/")?`${u}&w=1200`:`/api/files/serve?path=${encodeURIComponent(u)}&w=1200`:""},fromArray=arr=>Array.isArray(arr)?arr.map(toSrc).filter(Boolean).slice(0,5):[],cfg=parseProductVariantesConfig(p);if(cfg.groups.length>0&&cfg.groups.every(g=>selections[g.tipo])){let sel=cfg.combos.find(c=>c.key===selectionToKey(selections)),comboFotos=fromArray(sel?.fotos);if(comboFotos.length>0)return comboFotos}let groups=parseProductVariantes(p);for(let g of groups){let selected=selections[g.tipo];if(!selected)continue;let match=g.valores.find(v=>v.value===selected),valueFotos=fromArray(match?.fotos);if(valueFotos.length>0)return valueFotos}for(let g of groups)for(let v of g.valores){let fotos=fromArray(v?.fotos);if(fotos.length>1)return fotos}let single=pickVariantImage(p,selections);return single&&single!==IMG_PLACEHOLDER?[single]:[]}function pickVariantPrice(p,selections){let picked=getPrice(p),groups=parseProductVariantes(p);for(let g of groups){let sel=selections[g.tipo];if(!sel)continue;let raw=g.valores.find(v=>v.value===sel)?.precio,n=Number(raw);raw!=null&&raw!==""&&Number.isFinite(n)&&n>=0&&(picked=n)}let cfg=parseProductVariantesConfig(p);if(cfg.groups.length>0&&cfg.groups.every(g=>selections[g.tipo])){let raw=cfg.combos.find(c=>c.key===selectionToKey(selections))?.precio,n=Number(raw);raw!=null&&raw!==""&&Number.isFinite(n)&&n>=0&&(picked=n)}return picked}let pdp=(0,import_react3.useMemo)(()=>{if(view!=="product")return null;let pid=gufi.router.params.productId;return pid?prods.find(p=>String(p.id)===String(pid))??null:null},[view,gufi.router.params.productId,prods]),pdpGallery=(0,import_react3.useMemo)(()=>{if(!pdp)return{shots:[],count:0};let gallery=pickVariantGallery(pdp,pdpSelections),shots=gallery.length>0?gallery:[pickVariantImage(pdp,pdpSelections)].filter(Boolean);return{shots,count:shots.length}},[pdp,pdpSelections]),gallerySwipe=useDragGallery(pdpGallery.count,pdpPhotoIdx,setPdpPhotoIdx),openPdp=(0,import_react3.useCallback)(p=>{setView("product",{productId:p.id}),setPdpSz(""),setPdpSelections({}),setPdpOk(!1),setPdpPhotoIdx(0)},[setView]);(0,import_react3.useEffect)(()=>{if(!pdp)return;let groups=parseProductVariantes(pdp),preset={};for(let g of groups)g.valores.length===1&&g.valores[0]?.value&&(preset[g.tipo]=g.valores[0].value);Object.keys(preset).length>0&&setPdpSelections(prev=>({...preset,...prev}));let pdpOpts=getVariantOptions(pdp);groups.length===0&&pdpOpts.length===1&&setPdpSz(prev=>prev||pdpOpts[0])},[pdp?.id]),(0,import_react3.useEffect)(()=>{setPdpPhotoIdx(0)},[JSON.stringify(pdpSelections)]),(0,import_react3.useEffect)(()=>{if(pdp){let pdpEl=document.querySelector(".P");pdpEl&&(pdpEl.scrollTop=0),window.scrollTo(0,0)}},[pdp?.id]);let closePdp=(0,import_react3.useCallback)(()=>{setView("store")},[setView]),[filter,setFilter]=(0,import_react3.useState)(null),catSlug=(0,import_react3.useCallback)(c=>{let propio=String(c?.slug||"").trim();return propio||String(c?.nombre||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||String(c?.id??"")},[]),selectCat=(0,import_react3.useCallback)(id2=>{setFilter(id2);let cat=id2==null?null:cats.find(c=>Number(c.id)===Number(id2));cat?setView("category",{categoriaSlug:catSlug(cat)}):setView("store")},[cats,setView,catSlug]),catSlugParam=gufi.router.params.categoriaSlug;(0,import_react3.useEffect)(()=>{if(view==="category"){let cat=cats.find(c=>catSlug(c)===catSlugParam);setFilter(cat?Number(cat.id):null)}else view==="store"&&setFilter(null)},[view,catSlugParam,cats,catSlug]);let isStoreView=view==="store"||view==="category",EN_CHECKOUT=view==="checkout"||view==="checkout-processing"||view==="checkout-success"||view==="checkout-success-pending",[abajoDelTodo,setAbajoDelTodo]=(0,import_react3.useState)(!1);import_react3.default.useEffect(()=>{let alScroll=()=>setAbajoDelTodo(window.scrollY>window.innerHeight);return window.addEventListener("scroll",alScroll,{passive:!0}),alScroll(),()=>window.removeEventListener("scroll",alScroll)},[]);let[toast,setToast]=(0,import_react3.useState)(""),[lastOrderId,setLastOrderId]=(0,import_react3.useState)(""),[successBanner,setSuccessBanner]=(0,import_react3.useState)(null),[verifyTimedOut,setVerifyTimedOut]=(0,import_react3.useState)(!1),[justAdded,setJustAdded]=(0,import_react3.useState)(""),[search,setSearch]=(0,import_react3.useState)(""),[searchOpen,setSearchOpen]=(0,import_react3.useState)(!1),searchInputRef=(0,import_react3.useRef)(null),[scrolled,setScrolled]=(0,import_react3.useState)(!1),niRef=(0,import_react3.useRef)(null),niInView=(0,import_framer_motion.useInView)(niRef,{once:!0,margin:"-80px"});(0,import_react3.useEffect)(()=>{let fn=()=>{let el=document.querySelector(".L"),sy=0;if(el){let p=el;for(;p;){if(p.scrollTop>0){sy=p.scrollTop;break}p=p.parentElement}sy===0&&(sy=window.scrollY)}else sy=window.scrollY;setScrolled(sy>300),el&&el.style.setProperty("--sy",sy+"px")};return fn(),window.addEventListener("scroll",fn,!0),()=>window.removeEventListener("scroll",fn,!0)},[]),(0,import_react3.useEffect)(()=>{setCart(cartGet());let persisted=authGet(),_pid=Number(persisted?.id),_pemailRaw=persisted?.email,_pemail=Array.isArray(_pemailRaw)?_pemailRaw[0]:_pemailRaw;persisted&&Number.isFinite(_pid)&&_pid>0&&typeof _pemail=="string"&&_pemail.trim().length>0?setUser({...persisted,id:_pid,email:_pemail}):persisted&&authSet(null);let params=new URLSearchParams(window.location.search),paidId=params.get("paid"),cancelledNum=params.get("cancelled");if(cancelledNum!=null||params.get("checkout")==="cancel"){(async()=>{try{let pend=null;try{pend=JSON.parse(localStorage.getItem("gufi_pending_order")||"null")}catch{}let _pr=gufi.tables?.ecommerce__pedidos,targetId=pend?.id||null;!targetId&&cancelledNum&&_pr&&(targetId=(await leerFilas(_pr,{pageSize:1,filters:[{field:/^\d+$/.test(cancelledNum)?"id":"numero",operator:"eq",value:cancelledNum}]}).catch(()=>[]))[0]?.id||null),targetId&&_pr&&await gufi.dataProvider.update({resource:_pr,id:targetId,variables:{estado:gufi.CB.select("cancelado")}}).catch(()=>{})}catch{}try{localStorage.removeItem("gufi_pending_order")}catch{}})(),setCartOpen(!0),setTimeout(()=>setToast(tr("Pago cancelado. Tu carrito se ha mantenido.")),0),window.history.replaceState({},"",window.location.pathname);return}if(!paidId)return;let paidRowId=null;try{paidRowId=Number(JSON.parse(localStorage.getItem("gufi_pending_order")||"null")?.id)||null}catch{}try{localStorage.removeItem("gufi_pending_order")}catch{}setView("checkout-processing"),setLastOrderId(paidId);try{window.history.replaceState({},"",window.location.pathname)}catch{}setCart([]);let PAID_STATES=["pagado","preparado","enviado","entregado"],filterField=/^\d+$/.test(paidId)?"id":"numero",cancelledPoll=!1,displayId=paidId;return(async()=>{let confirmed=!1,pedidosResource=gufi.tables?.ecommerce__pedidos,_sid=params.get("session_id")||params.get("paid_session")||"";if(_sid.startsWith("cs_")){let _cid=gufi?.context?.activeCompany?.id||gufi?.context?.activeCompany?.company_id||gufi?.siteInfo?.company_id||typeof window<"u"&&window.location.pathname.match(/\/(?:app\/)?(\d+)\//)?.[1]||"";if(_cid)try{await fetch(`/api/public/stripe/verify-session?session_id=${encodeURIComponent(_sid)}&company_id=${_cid}`,{credentials:"include"})}catch{}}for(let i=0;i<15&&!cancelledPoll&&(await new Promise(r=>setTimeout(r,1e3)),!__VERIFIER_GUARD.finished);i++)try{if(!user&&paidRowId){let _g=(()=>{try{return JSON.parse(localStorage.getItem(GUEST_KEY)||"null")}catch{return null}})(),_email=String(_g?.email||"").trim().toLowerCase();if(!_email)break;let r=await callPublicAutomation("consultar_pedido_invitado",{pedido_id:paidRowId,email:_email});if(r?.encontrado&&PAID_STATES.indexOf(String(r.estado))!==-1){confirmed=!0;break}continue}if(!pedidosResource)break;let list=await leerFilas(pedidosResource,{pageSize:20,filters:[{field:filterField,operator:"eq",value:paidId}],sorters:[{field:"id",order:"desc"}]}),row=list.find(r=>String(r?.[filterField])===String(paidId))||(list.length===1?list[0]:null);if(row?.numero&&(displayId=String(row.numero),setLastOrderId(displayId)),row&&PAID_STATES.indexOf(row.estado)!==-1){confirmed=!0;break}}catch{}cancelledPoll||__VERIFIER_GUARD.finished||(confirmed?(__VERIFIER_GUARD.finished=!0,setSuccessBanner(__L==="es"?`Tu pedido #${displayId} ha sido confirmado. Te enviaremos un email con los detalles.`:`Your order #${displayId} has been confirmed. We will send you an email with the details.`),setView("checkout-success"),window.scrollTo({top:0,behavior:"instant"})):setView("checkout-success-pending"),window.history.replaceState({},"",window.location.pathname))})(),()=>{cancelledPoll=!0}},[]),(0,import_react3.useEffect)(()=>{cartSet(cart)},[cart]),(0,import_react3.useEffect)(()=>{try{let s3=localStorage.getItem(WISH_KEY);s3&&setWish(new Set(JSON.parse(s3)))}catch{}},[]),(0,import_react3.useEffect)(()=>{try{localStorage.setItem(WISH_KEY,JSON.stringify(Array.from(wish)))}catch{}},[wish]),(0,import_react3.useEffect)(()=>{if(!user?.id)return;let cid=gufi?.context?.activeCompany?.id||gufi?.context?.activeCompany?.company_id||gufi?.siteInfo?.company_id||typeof window<"u"&&window.location.pathname.match(/\/(?:app\/)?(\d+)\//)?.[1]||"";if(!cid)return;let handle=setTimeout(()=>{let items=cart.map(c=>({id:c.productId,nombre:c.nombre,qty:c.qty,size:c.size,precio_snapshot:c.precio}));fetch(`/api/public/${cid}/cart/sync`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({clienteId:user.id,items})}).catch(()=>{})},1200);return()=>clearTimeout(handle)},[cart,user?.id,gufi]),(0,import_react3.useEffect)(()=>{if(!successBanner)return;let t=setTimeout(()=>setSuccessBanner(null),5e3);return()=>clearTimeout(t)},[successBanner]);let[seg,setSeg]=(0,import_react3.useState)({items:[],hechos:[]}),[segFallo,setSegFallo]=(0,import_react3.useState)(""),[marcando,setMarcando]=(0,import_react3.useState)(null),cargarSeguimiento=(0,import_react3.useCallback)(async()=>{if(!user){setSeg({items:[],hechos:[]}),setSegFallo("");return}try{let r=await callPublicAutomation("mi_seguimiento",{});if(r?.ok){setSeg({items:r.items||[],hechos:r.hechos||[]}),setSegFallo("");return}setSeg({items:[],hechos:[]}),setSegFallo(String(r?.error)==="SESION_REQUERIDA"?tr("Tu sesi\xF3n ha caducado. Vuelve a entrar."):conPro(tr("No hemos podido cargar tus {varios}.")))}catch{setSeg({items:[],hechos:[]}),setSegFallo(conPro(tr("No hemos podido cargar tus {varios}.")))}},[user,callPublicAutomation]),marcarItem=(0,import_react3.useCallback)(async(id2,deshacer)=>{setMarcando(id2);try{let r=await callPublicAutomation("marcar_seguimiento",{itemId:id2,deshacer});if(!r?.ok)throw new Error(String(r?.error||"ERROR"));await cargarSeguimiento()}catch{notify(tr("No se ha podido guardar. Int\xE9ntalo de nuevo."))}finally{setMarcando(null)}},[callPublicAutomation,cargarSeguimiento]),[misCitas,setMisCitas]=(0,import_react3.useState)([]),[citasFallo,setCitasFallo]=(0,import_react3.useState)(""),cargarMisCitas=(0,import_react3.useCallback)(async()=>{if(!user){setMisCitas([]),setCitasFallo("");return}try{let r=await callPublicAutomation("mis_citas",{});if(r?.ok&&Array.isArray(r.citas)){setMisCitas(r.citas),setCitasFallo("");return}setMisCitas([]),setCitasFallo(String(r?.error)==="SESION_REQUERIDA"?tr("Tu sesi\xF3n ha caducado. Vuelve a entrar para ver tus citas."):tr("No hemos podido cargar tus citas. Int\xE9ntalo de nuevo."))}catch{setMisCitas([]),setCitasFallo(tr("No hemos podido cargar tus citas. Int\xE9ntalo de nuevo."))}},[user,callPublicAutomation]),loadOrders=(0,import_react3.useCallback)(async()=>{if(!user||!user.id||!gufi.tables?.ecommerce__pedidos){setOrders([]);return}try{let result=await callPublicAutomation("ecommerce_my_orders",{email:user.email});if(!result?.ok)throw new Error(result?.error||"MY_ORDERS_FAILED");let rows=Array.isArray(result.orders)?result.orders:[],allProds=Array.isArray(productosResolved)?productosResolved:[],prodById=new Map,prodByName=new Map;for(let p of allProds){prodById.set(Number(p.id),p);let nm=String(p.nombre||"").trim().toLowerCase();nm&&!prodByName.has(nm)&&prodByName.set(nm,p)}let mapped=rows.map(row=>{let items=(Array.isArray(row.lineas)?row.lineas:[]).map(l=>{let productId=Number(l.producto_id?.id??l.producto_id),prod=prodById.get(productId)||prodByName.get(String(l.producto_id__display||"").trim().toLowerCase()),unit=typeof l.precio_unitario=="object"?l.precio_unitario?.amount??0:Number(l.precio_unitario)||0;return{productId,nombre:l.producto_id__display||prod?.nombre||`Producto #${productId}`,precio:unit,imagen:prod?img(prod):"",size:"",qty:Number(l.cantidad)||1}}),total=typeof row.total=="object"?row.total?.amount??0:Number(row.total)||0,subtotal=typeof row.subtotal=="object"?row.subtotal?.amount??0:Number(row.subtotal)||0,envio=typeof row.envio=="object"?row.envio?.amount??0:Number(row.envio)||0;return{id:row.numero||String(row.id),fecha:row.__created_at__||row.fecha||new Date().toISOString(),items,subtotal,envio,total,estado:row.estado||"pagado",direccion:row.direccion_envio||null,tracking:row.tracking||null,metodo_envio:row.metodo_envio__display||row.metodo_envio||null,cupon_codigo:row.cupon_codigo||null,descuento:typeof row.descuento=="object"?row.descuento?.amount??0:Number(row.descuento)||0}});setOrders(mapped)}catch(e){console.error("[loadOrders] failed:",e)}},[user,productosResolved,callPublicAutomation]);(0,import_react3.useEffect)(()=>{if(view==="seguimiento"){cargarSeguimiento();return}if(view!=="orders"&&view!=="account"&&view!=="miscitas"||(view==="miscitas"&&cargarMisCitas(),setOrdersPage(1),loadOrders(),Date.now()-lastOrderAtRef.current>15e4))return;let ticks=0,iv=setInterval(()=>{loadOrders(),++ticks>=25&&clearInterval(iv)},5e3);return()=>clearInterval(iv)},[view,loadOrders,cargarMisCitas,cargarSeguimiento]),(0,import_react3.useEffect)(()=>{if(view!=="account"||!user?.id)return;let cancelled=!1;return(async()=>{try{let resultP=await callPublicAutomation("ecommerce_my_profile",{email:user.email});if(cancelled||!resultP?.ok||!resultP.cliente)return;let row=resultP.cliente,telVal=(()=>{if(typeof row.telefono=="string")return row.telefono;if(!Array.isArray(row.telefono)||!row.telefono[0])return"";let prefix=String(row.telefono[0].prefix||""),number=String(row.telefono[0].number||""),prefixDigits=prefix.replace(/\D/g,"");return prefixDigits&&number.startsWith(prefixDigits)&&(number=number.slice(prefixDigits.length)),`${prefix}${number}`.trim()})();setUser(prev=>{if(!prev)return prev;let next={...prev,id:Number(row.id)||prev.id,nombre:row.nombre||prev.nombre,apellidos:row.apellidos??prev.apellidos??"",direccion:row.direccion_envio||row.direccion||"",ciudad:row.ciudad_envio||row.ciudad||"",codigo_postal:row.cp_envio||row.codigo_postal||"",numero_envio:row.numero_envio||"",bloque_envio:row.bloque_envio||"",piso_envio:row.piso_envio||"",puerta_envio:row.puerta_envio||"",pais:row.pais_envio||row.pais||prev.pais,telefono:telVal,notas:row.notas||""};return authSet(next),next});let num2=String(row.numero_envio||"").trim(),calleEnvio=String(row.direccion_envio||"").trim(),yaPartida=calleEnvio&&(num2||String(row.piso_envio||"").trim()||String(row.bloque_envio||"").trim())?calleEnvio:"",viejo=calleEnvio||String(row.direccion||"").trim(),pz=partirDireccion(viejo),vCalle=pz.calle,vNum=pz.numero,vPiso=pz.piso,vPuerta=pz.puerta;setAddrForm({nombre:row.nombre||"",apellidos:row.apellidos||"",calle:yaPartida||vCalle,numero:num2&&num2!=="s/n"?num2:yaPartida?"":vNum,sinNumero:num2==="s/n"||/(^|[\s,])s\/n($|[\s,])/i.test(viejo),portal:String(row.bloque_envio||"").trim(),piso:String(row.piso_envio||"").trim()||(yaPartida?"":vPiso),puerta:String(row.puerta_envio||"").trim()||(yaPartida?"":vPuerta),codigo_postal:row.cp_envio||row.codigo_postal||"",telefono:telVal,notas:row.notas_envio||row.notas||""})}catch(err){console.warn("[account] cliente refetch failed:",err),cancelled||setAddrForm(prev=>prev.calle||prev.codigo_postal?prev:{...prev,nombre:String(user.nombre||""),apellidos:String(user.apellidos||""),calle:String(user.direccion||""),codigo_postal:String(user.codigo_postal||""),telefono:String(user.telefono||""),notas:prev.notas||""})}})(),()=>{cancelled=!0}},[view,user?.id,callPublicAutomation]);let go=(0,import_react3.useCallback)(v=>{setView(v),setMenuOpen(!1),setCartOpen(!1),window.scrollTo(0,0)},[setView]),irAReservar=(0,import_react3.useCallback)(servicioId=>{servicioId&&setCitaServicio(Number(servicioId)),setCitaHecha(null),go("citas")},[go]),notify=msg=>{setToast(msg),setTimeout(()=>setToast(""),2500)},syncSy=()=>{let el=document.querySelector(".L");if(!el)return;let p=el;for(;p;){if(p.scrollTop>0){p.scrollTop=0;break}p=p.parentElement}window.scrollTo(0,0),el.style.setProperty("--sy","0px")},anyOverlay=menuOpen||cartOpen||wishOpen||authOpen||!!pdp||!!legalPage;(0,import_react3.useEffect)(()=>(anyOverlay?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[anyOverlay]),(0,import_react3.useEffect)(()=>{let fn=e=>{e.key==="Escape"&&(legalPage?setLegalPage(null):authOpen?closeAuth():cartOpen?setCartOpen(!1):wishOpen?setWishOpen(!1):pdp?closePdp():menuOpen&&setMenuOpen(!1))};return window.addEventListener("keydown",fn),()=>window.removeEventListener("keydown",fn)},[authOpen,cartOpen,wishOpen,pdp,menuOpen,legalPage]);let featured=(0,import_react3.useMemo)(()=>prods.filter(p=>p.destacado).slice(0,4),[prods]),filtered=(0,import_react3.useMemo)(()=>{let r=filter==null?prods:prods.filter(p=>categoriaDe(p)===filter);return search.trim()&&(r=r.filter(p=>str(p.nombre).toLowerCase().includes(search.toLowerCase()))),r},[prods,filter,search]),cartTotal=cart.reduce((s3,x)=>s3+x.precio*x.qty,0),cartCount=cart.reduce((s3,x)=>s3+x.qty,0),[appliedCoupon,setAppliedCoupon]=(0,import_react3.useState)(null),[promoInput,setPromoInput]=(0,import_react3.useState)(""),[promoLoading,setPromoLoading]=(0,import_react3.useState)(!1),couponDiscount=(0,import_react3.useMemo)(()=>appliedCoupon?appliedCoupon.tipo==="porcentaje"?Math.min(cartTotal,cartTotal*appliedCoupon.valor/100):appliedCoupon.tipo==="fijo"?Math.min(cartTotal,appliedCoupon.valor):0:0,[appliedCoupon,cartTotal]),subtotalAfterDiscount=Math.max(0,cartTotal-couponDiscount),[cpInput,setCpInput]=(0,import_react3.useState)(user?.codigo_postal||""),[nombreInput,setNombreInput]=(0,import_react3.useState)(""),[telefonoInput,setTelefonoInput]=(0,import_react3.useState)(""),[direccionInput,setDireccionInput]=(0,import_react3.useState)("");(0,import_react3.useEffect)(()=>{user?.nombre&&!nombreInput&&setNombreInput(String(user.nombre)),user?.telefono&&!telefonoInput&&setTelefonoInput(String(user.telefono)),user?.direccion&&!direccionInput&&setDireccionInput(String(user.direccion))},[user?.id]),(0,import_react3.useEffect)(()=>{user?.codigo_postal&&!cpInput&&setCpInput(String(user.codigo_postal))},[user?.codigo_postal]);let cpCity=getCityFromCP(cpInput),[cpDirectory,setCpDirectory]=(0,import_react3.useState)(!1),[cpLocalidades,setCpLocalidades]=(0,import_react3.useState)([]),[localidadSel,setLocalidadSel]=(0,import_react3.useState)("");(0,import_react3.useEffect)(()=>{if(cpInput.length!==5){setCpLocalidades([]),setLocalidadSel("");return}let cancelled=!1;return(async()=>{let r=await callPublicAutomation("validate_shipping_address",{direccion:{codigo_postal:cpInput}}).catch(err=>(console.warn("[cp] no se pudo consultar el callejero:",err?.message||err),null));if(cancelled||!r)return;setCpDirectory(!!r.cpDirectory);let locs=Array.isArray(r.localidadesValidas)?r.localidadesValidas:[];setCpLocalidades(locs),setLocalidadSel(prev=>locs.length===1?locs[0]:prev&&locs.some(l=>l.toLowerCase()===prev.toLowerCase())?prev:"")})(),()=>{cancelled=!0}},[cpInput,callPublicAutomation]);let shipCity=cpDirectory?localidadSel:cpCity||"",[guestEmail,setGuestEmail]=(0,import_react3.useState)(guest?.email||""),[guestEmailConfirm,setGuestEmailConfirm]=(0,import_react3.useState)(""),emailBienEscrito=v=>/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(String(v||"").trim()),guestEmailMatch=String(guestEmail||"").trim().toLowerCase()===String(guestEmailConfirm||"").trim().toLowerCase(),guestEmailOk=!!user||emailBienEscrito(guestEmail)&&guestEmailMatch,cpZoneBlocked=cpInput.length===5&&isCpShippingBlocked(cpInput),cpInvalidFormat=cpInput.length===5&&!cpCity&&!cpZoneBlocked,canPay=!!cpCity&&!cpZoneBlocked&&!!shipCity&&guestEmailOk&&nombreInput.trim().length>1&&telefonoInput.trim().length>=6&&direccionInput.trim().length>=4,shippingCfg=parseShippingCfg(Array.isArray(rawConfig)?rawConfig:[]),cpZone=getCpZone(cpInput),cartWeightKg=cart.reduce((sum,line)=>{let p=(prods||[]).find(pr=>pr.id===line.productId),peso=Number(p?.peso);return sum+(Number.isFinite(peso)&&peso>0?peso:.5)*line.qty},0),matchedTarifa=(()=>{if(!shippingCfg.dinamico)return null;let tarifas=(Array.isArray(rawTarifas)?rawTarifas:[]).filter(t=>{if(t?.activo===!1)return!1;let zona=String(t?.zona??"");return zona===cpZone||cpZone==="provincial"&&zona==="peninsula"});if(tarifas.length===0)return null;let exacts=tarifas.filter(t=>cartWeightKg>=Number(t.peso_min)&&cartWeightKg0)return exacts.reduce((min,t)=>Number(t?.precio)Math.max(m,Number(t?.peso_max)||0),0),overflowOpts=tarifas.filter(t=>Number(t?.peso_max)===maxCap);return overflowOpts.reduce((min,t)=>Number(t?.precio){let perTarifa=matchedTarifa?Number(matchedTarifa.gratis_desde):NaN;return Number.isFinite(perTarifa)&&perTarifa>0?perTarifa:shippingCfg.freeThreshold||SHIP_FREE})(),shipFree=appliedCoupon?.tipo==="envio_gratis"||appliedCoupon?.tipo==="porcentaje"&&appliedCoupon.valor>=100||!appliedCoupon&&cartTotal>=freeThreshold,cpShipBase=(()=>{if(!matchedTarifa)return shippingCfg.costeFijo;let base=Number(matchedTarifa.precio)||0,extraPerKg=Number(matchedTarifa.precio_extra_kg)||0;if(extraPerKg<=0)return base;let cap=Number(matchedTarifa.peso_max)||0;return cartWeightKg<=cap?base:base+(cartWeightKg-cap)*extraPerKg})(),shipCostBase=shipFree?0:cpShipBase,fijoRemainder=appliedCoupon?.tipo==="fijo"?Math.max(0,appliedCoupon.valor-cartTotal):0,shipCost=Math.max(0,shipCostBase-fijoRemainder),rawOrderTotal=Math.max(0,subtotalAfterDiscount+shipCost),orderTotal=appliedCoupon?.tipo==="fijo"&&rawOrderTotal<.5?.5:rawOrderTotal,isZeroPay=Math.round(orderTotal*100)===0,applyCoupon=(0,import_react3.useCallback)(async()=>{let code=promoInput.trim().toUpperCase();if(code){setPromoLoading(!0);try{let row=(await leerFilas(gufi.tables.ecommerce__cupones,{pageSize:1,filters:[{field:"codigo",operator:"eq",value:code}]}))[0];if(!row){notify(tr("C\xF3digo no encontrado"));return}if(row.activo===!1){notify(tr("Este cup\xF3n ya no est\xE1 activo"));return}let now=Date.now();if(row.fecha_inicio&&new Date(row.fecha_inicio).getTime()>now){notify(tr("Cup\xF3n a\xFAn no v\xE1lido"));return}if(row.fecha_fin&&new Date(row.fecha_fin).getTime()0&&usosNow>=usosMax){notify(tr("Cup\xF3n agotado"));return}let tipo=row.tipo||row.tipo__display||"porcentaje",valor=typeof row.valor=="object"?row.valor?.amount??0:Number(row.valor)||0;setAppliedCoupon({id:row.id,codigo:row.codigo,tipo,valor}),setPromoInput(""),notify(__L==="es"?`Cup\xF3n ${row.codigo} aplicado`:`Coupon ${row.codigo} applied`)}catch(e){notify("Error: "+(e?.message||tr("No se pudo validar el cup\xF3n")).substring(0,60))}finally{setPromoLoading(!1)}}},[promoInput]),removeCoupon=(0,import_react3.useCallback)(()=>{setAppliedCoupon(null)},[]),variantsByKey=(0,import_react3.useMemo)(()=>{let map=new Map,list=Array.isArray(rawVariants)?rawVariants:[];for(let v of list){if(v?.__deleted_at__)continue;let pidRaw=v?.producto,pid=Number(pidRaw&&typeof pidRaw=="object"?pidRaw.id:pidRaw);Number.isFinite(pid)&&map.set(`${pid}::${String(v.value||"")}`,v)}return map},[rawVariants]),[disponiblePorVariante,setDisponiblePorVariante]=(0,import_react3.useState)({}),[avisoHecho,setAvisoHecho]=(0,import_react3.useState)({}),[avisoBusy,setAvisoBusy]=(0,import_react3.useState)(!1),apuntarseAviso=(0,import_react3.useCallback)(async(prod,variante,email)=>{if(!avisoBusy){setAvisoBusy(!0);try{let r=await callPublicAutomation("avisar_stock_suscribir",{email,producto_id:Number(prod?.id),variante,origen_url:typeof window<"u"?window.location.pathname:""});if(!r?.ok)throw new Error(String(r?.error||"ERROR"));setAvisoHecho(prev=>({...prev,[`${prod.id}::${variante||""}`]:!0}))}catch(err){let code=String(err?.message||"");notify(tr(code==="EMAIL_INVALIDO"?"Escribe un email v\xE1lido":"No se pudo apuntar. Int\xE9ntalo de nuevo."))}finally{setAvisoBusy(!1)}}},[avisoBusy,callPublicAutomation,tr]),refrescarDisponible=(0,import_react3.useCallback)(async()=>{let r=await callPublicAutomation("stock_disponible",{}).catch(err=>(console.warn("[stock] no se pudo consultar el disponible:",err?.message||err),null));if(!r?.disponible)return null;let mapa={};for(let k of Object.keys(r.disponible))mapa[Number(k)]=r.disponible[k];return setDisponiblePorVariante(mapa),mapa},[callPublicAutomation]);(0,import_react3.useEffect)(()=>{refrescarDisponible()},[refrescarDisponible]),(0,import_react3.useEffect)(()=>{cartOpen&&refrescarDisponible()},[cartOpen,refrescarDisponible]);let effectiveStock=(0,import_react3.useCallback)((productoId,variantValue,mapa)=>{let variant=variantsByKey.get(`${Number(productoId)}::${String(variantValue||"")}`);if(!variant&&!String(variantValue||"").trim()){let all=(rawVariants||[]).filter(v=>{if(v?.__deleted_at__)return!1;let pid=v?.producto&&typeof v.producto=="object"?v.producto.id:v?.producto;return Number(pid)===Number(productoId)});all.length===1&&(variant=all[0])}if(!variant)return null;let stockRaw=variant.stock;if(stockRaw==null||stockRaw==="")return null;let physical=Number(stockRaw);if(!Number.isFinite(physical))return null;let delServidor=(mapa||disponiblePorVariante)[Number(variant.id)];return delServidor!==void 0?delServidor===null?null:Math.max(0,delServidor):physical},[variantsByKey,disponiblePorVariante,rawVariants]),availableStock=(0,import_react3.useCallback)((p,sz,mapa)=>{if(!p)return 0;let eff=effectiveStock(Number(p.id),sz||"",mapa);if(eff!==null)return eff;try{let vc=typeof p.variantes_config=="string"?JSON.parse(p.variantes_config):p.variantes_config,groups=vc&&Array.isArray(vc.groups)?vc.groups:[],combos=vc&&Array.isArray(vc.combos)?vc.combos:null;if(combos&&combos.length>0&&sz){let match=combos.find(c=>Object.values(c?.combo||{}).includes(sz));if(match)return comboEffectiveStock(match,groups)}}catch{}let s3=p.stock;if(s3==null||s3==="")return null;let n=typeof s3=="number"?s3:parseInt(String(s3),10);return Number.isFinite(n)?n:null},[effectiveStock]),quizPreguntas=(0,import_react3.useMemo)(()=>{let opciones=Array.isArray(rawQuizOpciones)?rawQuizOpciones:[];return(Array.isArray(rawQuizPreguntas)?rawQuizPreguntas:[]).filter(q=>q?.activo!==!1).sort((a,b)=>num(a.orden)-num(b.orden)).map(q=>({...q,opciones:opciones.filter(o=>Number(o?.pregunta?.id??o?.pregunta)===Number(q.id)).sort((a,b)=>num(a.orden)-num(b.orden))})).filter(q=>q.opciones.length>0)},[rawQuizPreguntas,rawQuizOpciones]),[quizAbierto,setQuizAbierto]=(0,import_react3.useState)(!1),[quizPaso,setQuizPaso]=(0,import_react3.useState)(0),[quizElegido,setQuizElegido]=(0,import_react3.useState)({}),[quizEmailHecho,setQuizEmailHecho]=(0,import_react3.useState)(!1),[quizBusy,setQuizBusy]=(0,import_react3.useState)(!1),quizGanadora=(0,import_react3.useMemo)(()=>{let votos=new Map,orden=[];for(let q of quizPreguntas){let opId=quizElegido[Number(q.id)],op=q.opciones.find(o=>Number(o.id)===Number(opId)),catId=Number(op?.categoria?.id??op?.categoria);!Number.isFinite(catId)||!catId||(votos.has(catId)||orden.push(catId),votos.set(catId,(votos.get(catId)||0)+1))}let mejor=null;for(let catId of orden)(mejor===null||(votos.get(catId)||0)>(votos.get(mejor)||0))&&(mejor=catId);return mejor},[quizPreguntas,quizElegido]),quizRecomendados=(0,import_react3.useMemo)(()=>{if(quizGanadora===null)return[];let deLaCategoria=prods.filter(p=>categoriaDe(p)===Number(quizGanadora));return(deLaCategoria.length>0?deLaCategoria:prods).slice(0,3)},[quizGanadora,prods]),quizDeConsulta=(0,import_react3.useMemo)(()=>quizPreguntas.length>0&&!quizPreguntas.some(q=>q.opciones.some(o=>Number(o?.categoria?.id??o?.categoria)>0)),[quizPreguntas]),quizRespuestas=(0,import_react3.useMemo)(()=>quizPreguntas.map(q=>({pregunta:str(q.pregunta),respuesta:str(q.opciones.find(o=>Number(o.id)===Number(quizElegido[Number(q.id)]))?.etiqueta||"")})).filter(x=>x.respuesta),[quizPreguntas,quizElegido]),resenas=(0,import_react3.useMemo)(()=>(Array.isArray(rawResenas)?rawResenas:[]).filter(r=>{let e=String(r?.estado?.value??r?.estado??"").toLowerCase();return String(r?.texto||"").trim()&&(e===""||e==="publicada"||e==="aprobada")}),[rawResenas]),[resenaAbierta,setResenaAbierta]=(0,import_react3.useState)(!1),[resenaEstrellas,setResenaEstrellas]=(0,import_react3.useState)(0),[resenaEnviando,setResenaEnviando]=(0,import_react3.useState)(!1),[resenaHecha,setResenaHecha]=(0,import_react3.useState)(!1),telDeUsuario=(0,import_react3.useMemo)(()=>{let t=user?.telefono;if(!t)return"";if(typeof t=="string")return t;let uno=Array.isArray(t)?t[0]:t;return uno?String(uno.number||uno.numero||""):""},[user]),dirDeUsuario=(0,import_react3.useMemo)(()=>String(user?.direccion||""),[user]),[citaDir,setCitaDir]=(0,import_react3.useState)({calle:"",numero:"",sinNumero:!1,portal:"",piso:"",puerta:"",cp:""}),citaDirTocada=(0,import_react3.useRef)(!1),tocarDir=(0,import_react3.useCallback)(()=>{citaDirTocada.current=!0},[]);(0,import_react3.useEffect)(()=>{if(citaDirTocada.current||!user)return;let u=user,cp=String(u.codigo_postal||""),txt=String(u.direccion||"").trim();if(!txt&&!cp)return;let p=!!(u.numero_envio||u.piso_envio||u.bloque_envio||u.puerta_envio)?{calle:txt,numero:String(u.numero_envio||""),portal:String(u.bloque_envio||""),piso:String(u.piso_envio||""),puerta:String(u.puerta_envio||"")}:partirDireccion(txt);setCitaDir({...p,sinNumero:p.numero==="s/n",cp})},[user]);let[notasPrefill,setNotasPrefill]=(0,import_react3.useState)(""),ZONAS_POR_PALABRA=[[/cuello|cervical/i,"cuello"],[/espalda|lumbar|dorsal/i,"espalda"],[/hombro/i,"hombro"],[/brazo|codo|muneca|muñeca/i,"brazo"],[/cadera|ingle/i,"cadera"],[/rodilla/i,"rodilla"],[/pie|tobillo/i,"pie"]],zonasDe=(0,import_react3.useCallback)(etiqueta=>{let t=String(etiqueta||"");return ZONAS_POR_PALABRA.filter(([re])=>re.test(t)).map(([,z])=>z)},[]),[zonaSobre,setZonaSobre]=(0,import_react3.useState)(null),enviarResena=(0,import_react3.useCallback)(async(texto,titulo)=>{if(!resenaEnviando){if(!resenaEstrellas){notify(tr("Elige cu\xE1ntas estrellas."));return}setResenaEnviando(!0);try{let r=await callPublicAutomation("crear_resena",{texto,titulo,rating:resenaEstrellas});if(!r?.ok)throw new Error(String(r?.error||"ERROR"));setResenaHecha(!0),setResenaAbierta(!1)}catch(err){let c=String(err?.message||"");notify(tr(c==="TEXTO_CORTO"?"Cu\xE9ntanos un poco m\xE1s, con una l\xEDnea no se entiende.":c==="SESION_REQUERIDA"?"Entra en tu cuenta para dejar tu rese\xF1a.":"No se ha podido guardar. Int\xE9ntalo de nuevo."))}finally{setResenaEnviando(!1)}}},[resenaEstrellas,resenaEnviando]),pedirCitaConElTest=(0,import_react3.useCallback)(()=>{setNotasPrefill(quizRespuestas.map(x=>x.pregunta+" "+x.respuesta).join(` `)),setQuizAbierto(!1),irAReservar()},[quizRespuestas]),abrirQuiz=(0,import_react3.useCallback)(()=>{setQuizPaso(0),setQuizElegido({}),setQuizEmailHecho(!1),setQuizAbierto(!0)},[]),enviarQuizLead=(0,import_react3.useCallback)(async(email,acepta)=>{if(!quizBusy){setQuizBusy(!0);try{let respuestas=quizPreguntas.map(q=>({pregunta:str(q.pregunta),respuesta:str(q.opciones.find(o=>Number(o.id)===Number(quizElegido[Number(q.id)]))?.etiqueta||"")})),r=await callPublicAutomation("quiz_lead",{email,acepta_marketing:acepta,respuestas});if(!r?.ok)throw new Error(String(r?.error||"ERROR"));setQuizEmailHecho(!0)}catch(err){notify(String(err?.message)==="EMAIL_INVALIDO"?tr("Escribe un email v\xE1lido"):tr("No se pudo guardar. Int\xE9ntalo de nuevo."))}finally{setQuizBusy(!1)}}},[quizBusy,quizPreguntas,quizElegido,callPublicAutomation,tr]),packs=(0,import_react3.useMemo)(()=>{let lineasPorPack=new Map;for(let l of Array.isArray(rawPackProductos)?rawPackProductos:[]){let pid=Number(l?.pack_id?.id??l?.pack_id);if(!Number.isFinite(pid))continue;let arr=lineasPorPack.get(pid)||[];arr.push(l),lineasPorPack.set(pid,arr)}return(Array.isArray(rawPacks)?rawPacks:[]).filter(pk=>pk?.activo!==!1).map(pk=>{let lineas=(lineasPorPack.get(Number(pk.id))||[]).sort((a,b)=>num(a.orden)-num(b.orden)).map(l=>{let prodId=Number(l?.producto_id?.id??l?.producto_id);return{prod:productosResolved.find(p=>Number(p.id)===prodId)||null,cantidad:Math.max(1,num(l.cantidad)||1),esRegalo:l.es_regalo===!0}}),completo=lineas.length>0&&lineas.every(l=>!!l.prod),suelto=lineas.reduce((acc,l)=>acc+(l.esRegalo||!l.prod?0:getPrice(l.prod)*l.cantidad),0),precio=num(pk.precio_oferta)>0?num(pk.precio_oferta):num(pk.precio),fotoPropia=fileSrc(pk.imagen_principal),conFoto=fotoPropia?[]:lineas.filter(l=>!l.esRegalo&&l.prod&&img(l.prod)!==IMG_PLACEHOLDER).slice(0,3),fotos=conFoto.map(l=>img(l.prod)),fotosAlt=conFoto.map(l=>str(l.prod.nombre));return{...pk,lineas,completo,suelto,precio,ahorro:Math.max(0,suelto-precio),fotoPropia,fotos,fotosAlt}}).filter(pk=>pk.completo&&pk.precio>0).sort((a,b)=>num(a.orden)-num(b.orden))},[rawPacks,rawPackProductos,productosResolved,fileSrc]),SECCIONES_PORTADA=[{id:"portada",nombre:"Portada",disponible:!0},{id:"hero",nombre:"Portada (plantilla)",disponible:!0},{id:"beneficios",nombre:"Garant\xEDas",disponible:CITAS_ON},{id:"servicios",nombre:"Servicios",disponible:CITAS_ON},{id:"presentacion",nombre:"Qui\xE9n te atiende",disponible:!!(FAMILY_IMG||FAMILY_TEXT)},{id:"pasos",nombre:"C\xF3mo funciona",disponible:CITAS_ON},{id:"cierre",nombre:"Cierre y reserva",disponible:CITAS_ON},{id:"marquee",nombre:"Cinta de avisos",disponible:!0},{id:"categorias",nombre:"Categor\xEDas",disponible:cats.length>0},{id:"novedades",nombre:"Novedades",disponible:!0},{id:"heritage",nombre:"Historia de marca",disponible:HERITAGE_ON},{id:"test",nombre:"Test de producto",disponible:quizPreguntas.length>0},{id:"resenas",nombre:"Lo que dicen",disponible:!0},{id:"packs",nombre:"Packs",disponible:packs.length>0},{id:"catalogo",nombre:"Cat\xE1logo",disponible:!0},{id:"galeria",nombre:"Galer\xEDa",disponible:GALLERY_ON},{id:"redes",nombre:"Redes sociales",disponible:!!IG_URL}],DE_FABRICA_APAGADAS=["portada"],ordenPortada=(0,import_react3.useMemo)(()=>{let conocidas=SECCIONES_PORTADA.map(x=>x.id),disponibles=new Set(SECCIONES_PORTADA.filter(x=>x.disponible).map(x=>x.id)),propuesto=conocidas.map(id2=>({id:id2,on:!DE_FABRICA_APAGADAS.includes(id2)})),deLaTienda=s2.home_secciones;Array.isArray(deLaTienda)&&deLaTienda.length&&(propuesto=deLaTienda.filter(x=>x&&typeof x.id=="string"));let vistas=new Set,orden=propuesto.filter(x=>conocidas.includes(x.id)&&!vistas.has(x.id)&&vistas.add(x.id)!==null).filter(x=>x.on!==!1).map(x=>x.id);for(let id2 of conocidas)vistas.has(id2)||orden.push(id2);return orden.filter(id2=>disponibles.has(id2))},[s2,cats.length,HERITAGE_ON,GALLERY_ON,IG_URL,quizPreguntas.length,resenas.length,packs.length,CITAS_ON,FAMILY_IMG,FAMILY_TEXT]),SOBRE_OSCURO=isStoreView&&ordenPortada.includes("portada")||HERO_INVERT||isStoreView&&FORMA.heroFondo==="oscuro"&&ordenPortada[0]==="hero";useRevelar(`${view}|${ordenPortada.join(",")}|${servicios.length}|${prods.length}`);let packAbierto=(0,import_react3.useMemo)(()=>{if(view!=="pack")return null;let pid=gufi.router.params.packId;return pid?packs.find(pk=>String(pk.id)===String(pid))??null:null},[view,packs,gufi.router.params.packId]),abrirPack=(0,import_react3.useCallback)(pk=>{setView("pack",{packId:pk.id})},[setView]),stockDePack=(0,import_react3.useCallback)((pk,mapa)=>{let tope=null;for(let l of pk.lineas||[]){if(l.esRegalo||!l.prod)continue;let disponible=availableStock(l.prod,"",mapa);if(disponible===null)continue;let cabe=Math.floor(disponible/l.cantidad);tope=tope===null?cabe:Math.min(tope,cabe)}return tope},[availableStock]),addPackToCart=(0,import_react3.useCallback)(pk=>{if(SHOP_CLOSED){notify(SHOP_CLOSED_MSG);return}let tope=stockDePack(pk),lineaPack=cart.find(x=>x.packId===pk.id),entra=tope===null||(lineaPack?lineaPack.qty+1:1)<=tope;if(setCart(prev=>{let idx=prev.findIndex(x=>x.packId===pk.id),siguiente=idx>=0?prev[idx].qty+1:1;if(tope!==null&&siguiente>tope)return notify(tope<=0?tr("Sin stock"):`${tr("Solo quedan")} ${tope} ${tr("en stock")}`),prev;if(idx>=0){let n=[...prev];return n[idx]={...n[idx],qty:siguiente},n}return[...prev,{productId:0,packId:Number(pk.id),nombre:str(pk.nombre),precio:pk.precio,imagen:pk.fotoPropia||pk.fotos?.[0]||IMG_PLACEHOLDER,size:"",qty:1}]}),notify(str(pk.nombre)),entra)try{gufi.track?.addToCart(itemDePackMedido(pk,1))}catch{}setCartOpen(!0)},[SHOP_CLOSED,SHOP_CLOSED_MSG,stockDePack,tr,cart]),explotarPack=(0,import_react3.useCallback)((item,pk)=>{let lineas=(pk.lineas||[]).filter(l=>!!l.prod),base=lineas.reduce((acc,l)=>acc+(l.esRegalo?0:getPrice(l.prod)*l.cantidad),0),totalPack=Math.round(pk.precio*item.qty*100)/100,repartido=0,iUltimaPagada=lineas.reduce((idx,l,i)=>l.esRegalo?idx:i,-1);return lineas.map((l,i)=>{let unit=getPrice(l.prod),cantidad=l.cantidad*item.qty,peso=l.esRegalo||base<=0?0:unit*l.cantidad/base,subtotal=i===iUltimaPagada?Math.round((totalPack-repartido)*100)/100:Math.round(totalPack*peso*100)/100;return repartido=Math.round((repartido+subtotal)*100)/100,{producto_id:l.prod.id,cantidad,precio_unitario:unit,subtotal,variante:null,pack_id:Number(pk.id)}})},[]),addToCart=(p,sz,fromPdp,overrideImage,overridePrice)=>{if(SHOP_CLOSED){notify(SHOP_CLOSED_MSG);return}let key=`${p.id}-${sz}`,maxStock=availableStock(p,sz),lineaPrevia=cart.find(x=>x.productId===p.id&&x.size===sz),entra=lineaPrevia?maxStock===null||lineaPrevia.qty+1<=maxStock:maxStock===null||maxStock>0;if(setCart(prev=>{let idx=prev.findIndex(x=>x.productId===p.id&&x.size===sz);if(idx>=0){let nextQty=prev[idx].qty+1;if(maxStock!==null&&nextQty>maxStock)return notify(`${tr("Solo quedan")} ${maxStock} ${tr("en stock")}`),prev;let n=[...prev];return n[idx]={...n[idx],qty:nextQty},n}if(maxStock!==null&&maxStock<=0)return notify(tr("Sin stock")),prev;let imagen=overrideImage&&overrideImage!==IMG_PLACEHOLDER?overrideImage:img(p),precio=typeof overridePrice=="number"&&Number.isFinite(overridePrice)&&overridePrice>=0?overridePrice:getPrice(p);return[...prev,{productId:p.id,nombre:str(p.nombre),precio,imagen,size:sz,qty:1}]}),notify(sz?str(p.nombre)+" \u2014 "+VARIANT_LABEL+" "+sz:str(p.nombre)),entra)try{let precioLinea=lineaPrevia?lineaPrevia.precio:typeof overridePrice=="number"&&Number.isFinite(overridePrice)&&overridePrice>=0?overridePrice:getPrice(p);gufi.track?.addToCart(itemMedido(p,1,sz,precioLinea))}catch{}let addedKey=`${p.id}-${sz}`;setJustAdded(addedKey),setTimeout(()=>setJustAdded(""),1600),setTimeout(()=>{let badge=document.querySelector(".N-bc");badge&&(badge.classList.remove("pop"),badge.offsetWidth,badge.classList.add("pop"))},50),fromPdp?(closePdp(),setTimeout(()=>{syncSy(),setCartOpen(!0)},150)):setTimeout(()=>{syncSy(),setCartOpen(!0)},300)},removeFromCart=idx=>{let linea=cart[idx];if(linea)try{gufi.track?.removeFromCart(itemDeLineaMedido(linea))}catch{}setCart(prev=>prev.filter((_,i)=>i!==idx))},topeDeLinea=line=>{let pk=line.packId?packs.find(x=>Number(x.id)===Number(line.packId)):null;return line.packId?pk?stockDePack(pk):0:availableStock((prods||[]).find(pp=>pp.id===line.productId),line.size)},updateQty=(idx,d)=>{let linea=cart[idx];if(linea)try{if(d<0)gufi.track?.removeFromCart(itemDeLineaMedido(linea,Math.min(-d,linea.qty)));else if(d>0){let tope=topeDeLinea(linea);(tope===null||linea.qty+d<=tope)&&gufi.track?.addToCart(itemDeLineaMedido(linea,d))}}catch{}setCart(prev=>{let n=[...prev],line=n[idx];if(!line)return prev;let next=line.qty+d;if(next<=0)return n.filter((_,i)=>i!==idx);if(d>0){let maxStock=topeDeLinea(line);if(maxStock!==null&&next>maxStock)return notify(`${tr("Solo quedan")} ${maxStock} ${tr("en stock")}`),prev}return n[idx]={...n[idx],qty:next},n})},fichaMedida=(0,import_react3.useRef)(null);(0,import_react3.useEffect)(()=>{if(!pdp){fichaMedida.current=null;return}if(fichaMedida.current!==pdp.id){fichaMedida.current=pdp.id;try{gufi.track?.viewItem(itemMedido(pdp))}catch{}}},[pdp]);let listaMedida=(0,import_react3.useRef)({}),medirListado=(0,import_react3.useCallback)((hueco,nombre,items)=>{if(!nombre||items.length===0){listaMedida.current[hueco]="";return}let clave=nombre+"|"+items.map(i=>i.item_id).join(",");if(listaMedida.current[hueco]===clave)return;let espera=setTimeout(()=>{listaMedida.current[hueco]=clave;try{gufi.track?.viewItemList(nombre,items)}catch{}},700);return()=>clearTimeout(espera)},[]),categoriaActual=filter==null?null:cats.find(c=>Number(c.id)===filter),nombreListado=search.trim()?"B\xFAsqueda":categoriaActual?str(categoriaActual.nombre):"Toda la colecci\xF3n",tituloDeCategoria=view==="category"&&!!categoriaActual,TituloPortada=tituloDeCategoria?"h2":"h1",verCatalogo=isStoreView&&ordenPortada.includes("catalogo");(0,import_react3.useEffect)(()=>medirListado("catalogo",verCatalogo?nombreListado:null,verCatalogo?filtered.slice(0,LISTA_MEDIDA_MAX).map(p=>itemMedido(p)):[]),[verCatalogo,nombreListado,filtered,medirListado]);let verDestacados=isStoreView&&ordenPortada.includes("novedades");(0,import_react3.useEffect)(()=>{let lista=verDestacados?prods.filter(p=>categoriaDe(p)===7||p.destacado).slice(0,8):[];return medirListado("destacados",verDestacados?"Destacados":null,lista.map(p=>itemMedido(p)))},[verDestacados,prods,medirListado]);let recsFicha=(0,import_react3.useMemo)(()=>{if(!pdp)return{recs:[],compradosJuntos:!1};let recomendados=(Array.isArray(rawRecomendaciones)?rawRecomendaciones:[]).filter(r=>Number(r?.source_categoria_id?.id??r?.source_categoria_id)===categoriaDe(pdp)).sort((a,b)=>num(a.position)-num(b.position)).map(r=>prods.find(p=>Number(p.id)===Number(r?.suggested_producto?.id??r?.suggested_producto))).filter(p=>p&&Number(p.id)!==Number(pdp.id)).slice(0,4);if(recomendados.length>0)return{recs:recomendados,compradosJuntos:!0};let similar=prods.filter(p=>p.id!==pdp.id&&categoriaDe(p)===categoriaDe(pdp)).slice(0,4),extra=similar.length<4?prods.filter(p=>p.id!==pdp.id&&categoriaDe(p)!==categoriaDe(pdp)).slice(0,4-similar.length):[];return{recs:[...similar,...extra],compradosJuntos:!1}},[pdp,prods,rawRecomendaciones]),nombreRecomendados=recsFicha.compradosJuntos?"Quien compr\xF3 esto tambi\xE9n compr\xF3":"Tambi\xE9n te puede gustar";(0,import_react3.useEffect)(()=>medirListado("recomendados",pdp?nombreRecomendados:null,recsFicha.recs.map(p=>itemMedido(p))),[pdp,nombreRecomendados,recsFicha,medirListado]);let verPacks=isStoreView&&ordenPortada.includes("packs");(0,import_react3.useEffect)(()=>medirListado("packs",verPacks?"Packs":null,verPacks?packs.slice(0,LISTA_MEDIDA_MAX).map(pk=>itemDePackMedido(pk)):[]),[verPacks,packs,medirListado]);let packMedido=(0,import_react3.useRef)(null);(0,import_react3.useEffect)(()=>{if(!packAbierto){packMedido.current=null;return}if(packMedido.current!==packAbierto.id){packMedido.current=packAbierto.id;try{gufi.track?.viewItem(itemDePackMedido(packAbierto))}catch{}}},[packAbierto]);let abrirDesdeLista=(lista,p)=>{try{gufi.track?.selectItem(lista,itemMedido(p))}catch{}openPdp(p)},clicNormal=e=>e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey,alNavegar=ir=>e=>{clicNormal(e)&&(e.preventDefault(),ir())},hrefInicio=gufi.router.url("/"),hrefProducto=p=>gufi.router.url(`/product/${encodeURIComponent(String(p.id))}`),hrefCategoria=c=>c?gufi.router.url(`/categoria/${encodeURIComponent(catSlug(c))}`):hrefInicio,carritoMedido=(0,import_react3.useRef)(!1);(0,import_react3.useEffect)(()=>{if(!cartOpen){carritoMedido.current=!1;return}if(!carritoMedido.current){carritoMedido.current=!0;try{cart.length>0&&gufi.track?.viewCart(cart.map(x=>itemDeLineaMedido(x)))}catch{}}},[cartOpen]);let checkoutMedido=(0,import_react3.useRef)(!1);(0,import_react3.useEffect)(()=>{if(view!=="checkout"){checkoutMedido.current=!1;return}if(!(checkoutMedido.current||cart.length===0)){checkoutMedido.current=!0;try{gufi.track?.beginCheckout(cart.map(x=>itemDeLineaMedido(x)),{coupon:appliedCoupon?.codigo})}catch{}}},[view,cart]);let toggleWish=pid=>setWish(w=>{let n=new Set(w);return n.has(pid)?n.delete(pid):n.add(pid),n}),[authBusy,setAuthBusy]=(0,import_react3.useState)(!1),[authError,setAuthError]=(0,import_react3.useState)(""),closeAuth=(0,import_react3.useCallback)(()=>{setAuthOpen(!1),setAuthError(""),setAuthMode("login"),setMagicSent("")},[]),exchangeLoginToken=(0,import_react3.useCallback)(async token=>{let slug=gufi?.siteInfo?.slug;if(!slug||!token)return null;let res=await fetch(`/s/auth/${encodeURIComponent(slug)}/token-session`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token})});if(!res.ok)return null;let data=await res.json().catch(()=>null);if(!data?.ctoken||!data?.clienteId)return null;try{localStorage.setItem(SF_CTOKEN_KEY,String(data.ctoken))}catch{}return Number(data.clienteId)},[gufi]),magicHandled=(0,import_react3.useRef)(!1);(0,import_react3.useEffect)(()=>{if(magicHandled.current||typeof window>"u")return;let token=new URLSearchParams(window.location.search).get("magic_token");token&&(magicHandled.current=!0,(async()=>{setAuthBusy(!0);try{let clienteId=await exchangeLoginToken(token);if(!clienteId){notify(tr("Ese enlace ya no vale. Pide uno nuevo.")),setAuthMode("magic"),setAuthOpen(!0);return}try{localStorage.setItem(MAGIC_TOKEN_KEY,token)}catch{}let c=(await leerFilas(gufi.tables.ecommerce__clientes,{pageSize:1,filters:[{field:"id",operator:"eq",value:clienteId}]}))[0];if(!c){notify(tr("No hemos podido abrir tu cuenta."));return}let rawEmail=c.email,cEmail=Array.isArray(rawEmail)?String(rawEmail[0]||""):String(rawEmail||""),u={id:Number(c.id),nombre:String(c.nombre||cEmail),email:cEmail,telefono:c.telefono?String(c.telefono):void 0,direccion:c.direccion,ciudad:c.ciudad,codigo_postal:c.codigo_postal,pais:c.pais};setUser(u),authSet(u),setGuest(null);try{localStorage.removeItem(GUEST_KEY)}catch{}closeAuth(),notify(tr("Sesi\xF3n iniciada"));let chk=await callPublicAutomation("cliente_tiene_clave",{email:cEmail});chk?.exists===!0&&chk?.hasPassword===!1&&setPwdModal({mode:"create"})}catch(err){console.error("[magic] no se pudo abrir la sesi\xF3n:",err?.message||err),notify(tr("No hemos podido abrir tu cuenta. Int\xE9ntalo de nuevo."))}finally{setAuthBusy(!1);try{let u=new URL(window.location.href);u.searchParams.delete("magic_token"),window.history.replaceState({},"",u.pathname+(u.search||"")+u.hash)}catch{}}})())},[]);let[pwdBusy,setPwdBusy]=(0,import_react3.useState)(!1),[pwdError,setPwdError]=(0,import_react3.useState)(""),savePassword=(0,import_react3.useCallback)(async(nueva,actual)=>{if(!user?.email)return setPwdError(tr("No hay sesi\xF3n")),!1;if(nueva.lengthe==="pagado"?tr("Pagado"):e==="preparado"?tr("Preparado"):e==="enviado"?tr("En camino"):e==="entregado"?tr("Entregado"):e==="pendiente"||e==="esperando_pago"?tr("Pendiente"):e==="cancelado"?tr("Cancelado"):str(e),[lookupOpen,setLookupOpen]=(0,import_react3.useState)(!1),[lookupBusy,setLookupBusy]=(0,import_react3.useState)(!1),[lookupError,setLookupError]=(0,import_react3.useState)(""),[lookupResult,setLookupResult]=(0,import_react3.useState)(null),consultarPedidoInvitado=(0,import_react3.useCallback)(async(numero,email)=>{let num2=String(numero||"").trim(),mail=String(email||"").trim().toLowerCase();if(!num2||!mail){setLookupError(tr("Escribe el n\xFAmero de pedido y tu email"));return}setLookupBusy(!0),setLookupError(""),setLookupResult(null);try{let r=await callPublicAutomation("consultar_pedido_invitado",{numero:num2,email:mail});if(!r?.encontrado){setLookupError(tr("No encontramos ning\xFAn pedido con esos datos."));return}setLookupResult(r)}catch(err){console.error("[pedido invitado] no se pudo consultar:",err?.message||err),setLookupError(tr("No se pudo consultar ahora mismo. Int\xE9ntalo de nuevo."))}finally{setLookupBusy(!1)}},[callPublicAutomation,tr]),logout=()=>{setUser(null),authSet(null);try{localStorage.removeItem(MAGIC_TOKEN_KEY)}catch{}go("store"),notify(tr("Sesi\xF3n cerrada"))},[checkoutLoading,setCheckoutLoading]=(0,import_react3.useState)(!1),[checkoutError,setCheckoutError]=(0,import_react3.useState)(""),createPedidoWithLines=(0,import_react3.useCallback)(async(extraVars={})=>{let numero=genOrderId();try{let prev=JSON.parse(localStorage.getItem("gufi_pending_order")||"null"),_pr=gufi.tables?.ecommerce__pedidos;if(prev?.id&&_pr){let _chk=await leerFilas(_pr,{pageSize:1,filters:[{field:"id",operator:"eq",value:prev.id}]}).catch(()=>[]),_est=String(_chk[0]?.estado||"");(_est==="esperando_pago"||_est==="pendiente")&&await gufi.dataProvider.update({resource:_pr,id:prev.id,variables:{estado:gufi.CB.select("cancelado")}}).catch(()=>{})}}catch{}let couponVars=appliedCoupon?{cupon_codigo:appliedCoupon.codigo,descuento:couponDiscount}:{},dirFallback=!extraVars.direccion_envio&&user&&(user.direccion||user.codigo_postal)?{nombre:String(user.nombre||""),direccion:String(user.direccion||""),ciudad:String(user.ciudad||""),codigo_postal:String(user.codigo_postal||""),pais:String(user.pais||"ES"),telefono:String(user.telefono||""),notas:""}:null,baseVars={numero,fecha_pedido:new Date().toISOString().split("T")[0],estado:gufi.CB.select("esperando_pago"),subtotal:cartTotal,envio:shipCost,total:orderTotal,...dirFallback?{direccion_envio:dirFallback}:{},...couponVars,...extraVars},clienteId=clienteIdDePedido(user),hasUser=clienteId!==null,guestEmailForOrder=hasUser?"":String(extraVars.email_cliente||guest?.email||"").trim().toLowerCase(),pedidoRes;try{pedidoRes=await gufi.dataProvider.create({resource:gufi.tables.ecommerce__pedidos,variables:{...baseVars,...hasUser?{cliente_id:clienteId}:{},...guestEmailForOrder?{email_cliente:guestEmailForOrder}:{}}})}catch(err){let msg=String(err?.message||"");if(hasUser&&/cliente/i.test(msg)&&/id=\d+/.test(msg)&&/no existe/i.test(msg)){try{setUser(null),authSet(null)}catch{}pendingAfterLogin.current="checkout",setAuthMode("login"),setAuthOpen(!0),notify(tr("Tu sesi\xF3n caduc\xF3 \u2014 vuelve a iniciar sesi\xF3n"))}throw err}try{lastOrderAtRef.current=Date.now()}catch{}let pedidoId=pedidoRes?.data?.id;try{pedidoId&&(!extraVars||extraVars.estado==null)&&localStorage.setItem("gufi_pending_order",JSON.stringify({id:pedidoId,numero}))}catch{}if(pedidoId){let lineasAEscribir=cart.flatMap(item=>{if(item.packId){let pk=packs.find(x=>Number(x.id)===Number(item.packId));return pk?explotarPack(item,pk).map(l=>({...l,pedido_id:pedidoId})):(console.error("[pedido] pack no resoluble, no se escribe su l\xEDnea:",item.packId),[])}return[lineaDePedido(pedidoId,item)]});await Promise.all(lineasAEscribir.map(variables=>gufi.dataProvider.create({resource:gufi.tables.ecommerce__lineas_pedido,variables})))}return{pedidoId,numero}},[cart,cartTotal,shipCost,orderTotal,user,guest,appliedCoupon,couponDiscount,packs,explotarPack]),confirmFreeOrder=(0,import_react3.useCallback)(async(extraVars={},customerEmail)=>{let{pedidoId,numero}=await createPedidoWithLines({...extraVars,estado:gufi.CB.select("pagado")}),email=customerEmail||user?.email;if(email&&numero){let html=`

${__L==="es"?"Gracias por tu pedido":"Thanks for your order"}

${__L==="es"?"Tu pedido est\xE1 confirmado.":"Your order is confirmed."}

${__L==="es"?"Pedido":"Order"}#`+numero+"
";gufi.runSlot("send-email",{to:email,subject:(__L==="es"?"Pedido ":"Order ")+numero+(__L==="es"?" confirmado":" confirmed"),html}).catch(err=>console.warn("[order-email] failed:",err?.message||err))}return setCart([]),setLastOrderId(numero),setCartOpen(!1),setSuccessBanner(__L==="es"?`Tu pedido #${numero} ha sido confirmado. Te enviaremos un email con los detalles.`:`Your order #${numero} has been confirmed. We will send you an email with the details.`),setView("orders"),typeof window<"u"&&window.scrollTo({top:0,behavior:"instant"}),{pedidoId,numero}},[createPedidoWithLines,user,gufi]),buildPayInput=(0,import_react3.useCallback)((pedidoId,numero,opts={})=>{let firstItem=cart[0]?.nombre||"",more=cart.length>1?` +${cart.length-1}`:"";return{productName:cart.length===1?`${BRAND?`${BRAND} \xB7 `:""}${firstItem}`:`${BRAND?`${BRAND} \xB7 `:""}${__L==="es"?"Pedido":"Order"} ${numero}${more}`,items:cart.map(i=>({nombre:i.nombre,precio:i.precio,qty:i.qty})),shippingCost:shipCost,customerEmail:opts.customerEmail||user?.email,orderId:pedidoId,amount:Math.round(orderTotal*100),description:(__L==="es"?"Pedido ":"Order ")+numero,couponCode:appliedCoupon?.codigo||null,couponDiscount:appliedCoupon?couponDiscount:0,successUrl:window.location.href.split("?")[0]+"?paid="+numero+"&session_id={CHECKOUT_SESSION_ID}",errorUrl:window.location.href.split("?")[0]+"?cancelled="+numero,baseUrl:window.location.href.split("?")[0]}},[cart,shipCost,user,orderTotal,appliedCoupon,couponDiscount,BRAND]),validateCartStock=(0,import_react3.useCallback)(mapa=>{for(let line of cart){if(line.packId){let pk=packs.find(x=>Number(x.id)===Number(line.packId)),max2=pk?stockDePack(pk,mapa):0;if(max2!==null&&line.qty>max2)return{line,max:max2};continue}let prod=(prods||[]).find(p=>p.id===line.productId),max=availableStock(prod,line.size,mapa);if(max!==null&&line.qty>max)return{line,max}}return null},[cart,prods,availableStock,packs,stockDePack]),handleCheckout=async e=>{if(e.preventDefault(),checkoutLoading)return;setCheckoutLoading(!0),setCheckoutError("");let soltar=()=>setCheckoutLoading(!1),fd=new FormData(e.currentTarget),cp=str(fd.get("cp")),resolvedCity=shipCity;if(!getCityFromCP(cp)||isCpShippingBlocked(cp)){setCheckoutError(tr("C\xF3digo postal no v\xE1lido para Espa\xF1a")),soltar();return}if(!resolvedCity){setCheckoutError(tr("Elige tu localidad")),soltar();return}let emailForm=user?.email||str(fd.get("email"));if(!user){let confirm=str(fd.get("email_confirm"));if(!emailBienEscrito(emailForm)){setCheckoutError(tr("Escribe un email v\xE1lido")),soltar();return}if(emailForm.trim().toLowerCase()!==confirm.trim().toLowerCase()){setCheckoutError(tr("Los dos emails no coinciden")),soltar();return}let g={email:emailForm.trim().toLowerCase()};setGuest(g);try{localStorage.setItem(GUEST_KEY,JSON.stringify(g))}catch{}}let val=await callPublicAutomation("validate_shipping_address",{direccion:{nombre:str(fd.get("nombre")),telefono:str(fd.get("telefono")),calle:str(fd.get("direccion")),numero:"s/n",codigo_postal:cp,localidad:resolvedCity,pais:"ES"}}).catch(err=>(console.warn("[checkout] no se pudo validar la direcci\xF3n:",err?.message||err),null));if(val&&val.valid===!1){let primero=Array.isArray(val.errors)?val.errors[0]:null;setCheckoutError(primero?.message||tr("Revisa la direcci\xF3n de env\xEDo")),soltar();return}let frescos=await refrescarDisponible(),overflow=validateCartStock(frescos||void 0);if(overflow){let{line,max}=overflow,ln=`${line.nombre}${line.size?" \xB7 "+line.size:""}`;setCheckoutError(`${ln}: ${tr("Solo quedan")} ${max} ${tr("en stock")}`),soltar();return}let direccion_envio={nombre:str(fd.get("nombre")),direccion:str(fd.get("direccion")),ciudad:resolvedCity,codigo_postal:cp,pais:"ES",telefono:str(fd.get("telefono")),notas:str(fd.get("notas"))},formEmail=emailForm;if(user?.id&&user.id>0&&user.id<1e6){let chkTelDigits=String(direccion_envio.telefono||"").replace(/\D/g,""),chkVars={direccion_envio:direccion_envio.direccion,ciudad_envio:direccion_envio.ciudad,cp_envio:direccion_envio.codigo_postal,pais_envio:direccion_envio.pais};chkTelDigits&&(chkVars.telefono=gufi.CB.phone(chkTelDigits,"+34")),gufi.dataProvider.update({resource:gufi.tables.ecommerce__clientes,id:user.id,variables:chkVars}).then(()=>{setUser(prev=>{if(!prev)return prev;let next={...prev,direccion:direccion_envio.direccion,ciudad:direccion_envio.ciudad,codigo_postal:direccion_envio.codigo_postal,telefono:direccion_envio.telefono};return authSet(next),next})}).catch(err=>console.warn("[cliente.address.update] failed:",err?.message||err))}try{let varsPedido={direccion_envio,...user?{}:{email_cliente:emailForm.trim().toLowerCase()}};if(isZeroPay){await confirmFreeOrder(varsPedido,formEmail),setCheckoutLoading(!1);return}let{pedidoId,numero}=await createPedidoWithLines(varsPedido);notify(tr("Conectando..."));try{await gufi.runSlot("checkout-payment",buildPayInput(pedidoId,numero,{customerEmail:formEmail}));return}catch(payErr){let msg=payErr?.message||String(payErr);console.error("[PAY] Error:",payErr),setCheckoutError(tr("Error al conectar: ")+msg),setCheckoutLoading(!1);return}}catch(err){console.error("Checkout error:",err),setCheckoutError("Error: "+(err?.message||String(err))),setCheckoutLoading(!1)}},HeartSvg=({f})=>__gh("svg",{viewBox:"0 0 24 24",width:"14",height:"14","data-gufi-src":"page.tsx:6152"},__gh("path",{d:"M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z",fill:f?"var(--sale)":"none",stroke:f?"var(--sale)":"currentColor",strokeWidth:"1.5","data-gufi-src":"page.tsx:6152"})),BagSvg=()=>__gh("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor",strokeWidth:"1.5","data-gufi-src":"page.tsx:6153"},__gh("path",{d:"M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4zM3 6h18M16 10a4 4 0 01-8 0","data-gufi-src":"page.tsx:6153"})),Card=({p})=>{let isJustAdded=justAdded.startsWith(`${p.id}-`),agotado=isOutOfStockParent(p);return __gh("a",{className:`C ${isJustAdded?"added":""} ${agotado?"ago":""}`,href:hrefProducto(p),onClick:alNavegar(()=>{syncSy(),abrirDesdeLista(nombreListado,p)}),"data-gufi-src":"page.tsx:6162"},__gh("div",{className:"C-img","data-gufi-src":"page.tsx:6163"},__gh(RetryImg,{src:img(p),alt:str(p.nombre),loading:"lazy",decoding:"async",width:"400",height:"400"}),isJustAdded&&__gh("div",{className:"C-check","data-gufi-src":"page.tsx:6165"},__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6165"},__gh("path",{d:"M20 6L9 17l-5-5","data-gufi-src":"page.tsx:6165"})),tr("A\xF1adido")),agotado&&__gh("span",{className:"C-bd ag","data-gufi-src":"page.tsx:6166"},tr("Agotado")),!agotado&&hasSale(p)&&__gh("span",{className:"C-bd sl","data-gufi-src":"page.tsx:6167"},"-",disc(p),"%"),!agotado&&p.destacado&&!hasSale(p)&&__gh("span",{className:"C-bd nw","data-gufi-src":"page.tsx:6168"},tr("Nuevo")),__gh("button",{className:`C-wh ${wish.has(p.id)?"lk":""}`,onClick:e=>{e.preventDefault(),e.stopPropagation(),toggleWish(p.id)},"data-gufi-src":"page.tsx:6169"},__gh(HeartSvg,{f:wish.has(p.id)})),!agotado&&__gh("div",{className:"C-qa",onClick:e=>{e.preventDefault(),e.stopPropagation()},"data-gufi-src":"page.tsx:6171"},(()=>{let opts=getVariantOptions(p);return opts.length===0?__gh("button",{onClick:()=>addToCart(p,""),"data-gufi-src":"page.tsx:6173"},tr("A\xF1adir")):opts.length>3||opts.some(o=>o.length>9)?__gh("button",{onClick:()=>abrirDesdeLista(nombreListado,p),"data-gufi-src":"page.tsx:6174"},tr("Elegir opciones")):opts.map(s3=>__gh("button",{key:s3,onClick:()=>addToCart(p,s3),"data-gufi-src":"page.tsx:6175"},s3))})())),__gh("div",{className:"C-f","data-gufi-src":"page.tsx:6179"},__gh("div",{className:"C-n","data-gufi-src":"page.tsx:6180"},str(p.nombre)),__gh("div",{className:"C-p","data-gufi-src":"page.tsx:6181"},hasSale(p)&&!agotado?__gh(__gf,null,__gh("span",{className:"og","data-gufi-src":"page.tsx:6183"},price(p.precio)),__gh("span",{className:"nw","data-gufi-src":"page.tsx:6183"},price(p.precio_oferta))):__gh("span",{"data-gufi-src":"page.tsx:6184"},price(p.precio)))))};return __gh("div",{ref:raizRef,className:IS_PREVIEW?"L preview":"L","data-hero":FORMA.hero,"data-hero-fondo":FORMA.heroFondo,"data-grid":FORMA.grid,"data-card":FORMA.card,"data-cart":FORMA.cart,"data-footer":FORMA.footer,style:BG_COLOR||BG_LIGHT?{...BG_COLOR?{"--bgd":BG_COLOR,"--ac":BG_COLOR,"--brand-nav-bg":BG_COLOR}:{},...BG_LIGHT?{"--bg":BG_LIGHT,"--bgc":BG_LIGHT,"--bgp":BG_LIGHT}:{}}:void 0,"data-gufi-src":"page.tsx:6194"},__gh("style",{"data-gufi-src":"page.tsx:6224"},CSS),__gh("style",{"data-gufi-src":"page.tsx:6225"},FORMA_CSS),__gh("div",{className:`toast ${toast?"v":""}`,"data-gufi-src":"page.tsx:6228"},__gh("span",{className:"tcheck","data-gufi-src":"page.tsx:6228"},__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6228"},__gh("path",{d:"M20 6L9 17l-5-5","data-gufi-src":"page.tsx:6228"}))),toast),SHOP_CLOSED&&view!=="checkout"&&view!=="checkout-success"&&view!=="checkout-processing"&&view!=="checkout-success-pending"&&__gh("div",{style:{position:"sticky",top:0,zIndex:200,background:"#1a1a1a",color:"#fff",textAlign:"center",padding:"10px 16px",fontSize:12,letterSpacing:".06em",fontWeight:500},"data-gufi-src":"page.tsx:6232"},SHOP_CLOSED_MSG),!EN_CHECKOUT&&__gh("nav",{className:`N ${scrolled?"sc":""} ${SOBRE_OSCURO?"":"lighthero"} ${BG_IS_DARK?"darkbrand":""}`,style:{...BG_COLOR?{"--brand-nav-bg":BG_COLOR}:{},...scrolled?{background:BG_COLOR||"#1a1a1a",marginBottom:0,boxShadow:"0 1px 0 rgba(0,0,0,.15)"}:{background:"transparent",marginBottom:-48}},"data-gufi-src":"page.tsx:6236"},__gh("div",{className:"N-i","data-gufi-src":"page.tsx:6236"},__gh("div",{className:"N-lf","data-gufi-src":"page.tsx:6237"},__gh("button",{className:`mb ${menuOpen?"o":""}`,onClick:()=>{syncSy(),setMenuOpen(!menuOpen)},"aria-label":tr("Men\xFA"),"data-gufi-src":"page.tsx:6238"},__gh("span",{"data-gufi-src":"page.tsx:6238"}),__gh("span",{"data-gufi-src":"page.tsx:6238"}),__gh("span",{"data-gufi-src":"page.tsx:6238"})),(cats.length>0||ABOUT_ON||CITAS_ON)&&isStoreView&&__gh("div",{className:"N-cat","data-gufi-src":"page.tsx:6240"},MENU_GRUPOS.length>0?MENU_GRUPOS.map(g=>__gh("div",{key:g.label,className:"N-grupo","data-gufi-src":"page.tsx:6242"},__gh("button",{className:"N-grupo-bt","data-gufi-src":"page.tsx:6243"},tr(g.label)),__gh("div",{className:"N-grupo-dd","data-gufi-src":"page.tsx:6244"},catsDeGrupo(g.cats).length===0&&__gh("div",{style:{padding:"10px 20px",fontSize:11,color:"var(--t3)",textTransform:"uppercase"},"data-gufi-src":"page.tsx:6246"},"\u2014"),catsDeGrupo(g.cats).map(c=>__gh("a",{key:c.id,className:filter===c.id?"a":"",href:hrefCategoria(c),onClick:alNavegar(()=>{selectCat(c.id),document.getElementById("shop")?.scrollIntoView({behavior:"smooth"})}),"data-gufi-src":"page.tsx:6249"},str(c.nombre)))))):cats.filter(c=>c.show_in_nav!==!1).slice(0,7).map(c=>__gh("a",{key:c.id,className:filter===c.id?"a":"",href:hrefCategoria(c),onClick:alNavegar(()=>{selectCat(c.id),document.getElementById("shop")?.scrollIntoView({behavior:"smooth"})}),"data-gufi-src":"page.tsx:6254"},str(c.nombre))),CITAS_ON&&__gh("button",{onClick:()=>go("citas"),"data-gufi-src":"page.tsx:6256"},tr(AGENDA_MENU)),ABOUT_ON&&__gh("button",{onClick:()=>go("about"),"data-gufi-src":"page.tsx:6257"},tr(ETIQUETA_SOBRE_NOSOTROS)))),!(isStoreView&&(cats.length>0||ABOUT_ON||CITAS_ON))&&__gh("a",{className:"N-c",href:hrefInicio,onClick:alNavegar(()=>{selectCat(null),setSearch(""),go("store"),window.scrollTo(0,0)}),style:LOGO_SRC?{display:"inline-flex",alignItems:"center",gap:0}:void 0,"data-gufi-src":"page.tsx:6262"},LOGO_SRC?__gh(RetryImg,{src:LOGO_SRC,alt:BRAND_DISPLAY,style:{height:30,width:"auto",objectFit:"contain",display:"block"}}):BRAND_DISPLAY),__gh("a",{className:"N-c N-c-m",href:hrefInicio,onClick:alNavegar(()=>{selectCat(null),setSearch(""),go("store"),window.scrollTo(0,0)}),style:LOGO_SRC?{display:"none",alignItems:"center",gap:0}:{display:"none"},"data-gufi-src":"page.tsx:6268"},LOGO_SRC?__gh(RetryImg,{src:LOGO_SRC,alt:BRAND_DISPLAY,style:{height:30,width:"auto",objectFit:"contain",display:"block"}}):BRAND_DISPLAY),__gh("div",{className:"N-r","data-gufi-src":"page.tsx:6273"},CITAS_ON&&__gh("button",{className:"N-cita",onClick:()=>{syncSy(),go("citas")},"data-gufi-src":"page.tsx:6279"},__gh("span",{className:"N-cita-l","data-gufi-src":"page.tsx:6283"},tr(AGENDA_CTA)),__gh("span",{className:"N-cita-s","data-gufi-src":"page.tsx:6284"},tr("Reservar"))),__gh("div",{className:`N-sw ${searchOpen?"o":""}`,"data-gufi-src":"page.tsx:6287"},__gh("input",{className:"N-si",ref:searchInputRef,value:search,onChange:e=>setSearch(e.target.value),placeholder:tr("Buscar..."),onKeyDown:e=>{e.key==="Escape"&&(setSearchOpen(!1),setSearch(""))},onBlur:()=>{search.trim()||setTimeout(()=>{setSearchOpen(!1),setSearch("")},200)},"data-gufi-src":"page.tsx:6288"}),__gh("button",{className:"N-sx",onClick:()=>{setSearchOpen(!1),setSearch("")},"data-gufi-src":"page.tsx:6297"},__gh("svg",{viewBox:"0 0 24 24",width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round","data-gufi-src":"page.tsx:6298"},__gh("path",{d:"M18 6L6 18M6 6l12 12","data-gufi-src":"page.tsx:6298"}))),search.trim()&&searchOpen&&__gh("div",{className:"N-sd","data-gufi-src":"page.tsx:6301"},(()=>{let results=prods.filter(p=>str(p.nombre).toLowerCase().includes(search.toLowerCase())).slice(0,5);return results.length?results.map(p=>__gh("a",{key:p.id,className:"N-sr",href:hrefProducto(p),onClick:alNavegar(()=>{syncSy(),abrirDesdeLista("B\xFAsqueda",p),setSearchOpen(!1),setSearch("")}),"data-gufi-src":"page.tsx:6306"},p.foto?.[0]?.url&&__gh(RetryImg,{src:p.foto[0].url,alt:str(p.nombre)}),__gh("div",{"data-gufi-src":"page.tsx:6308"},__gh("div",{className:"N-sr-n","data-gufi-src":"page.tsx:6309"},str(p.nombre)),__gh("div",{className:"N-sr-p","data-gufi-src":"page.tsx:6310"},(Number(Number(p.precio||0))||0).toFixed(2),"\u20AC")))):__gh("div",{className:"N-sd-e","data-gufi-src":"page.tsx:6304"},tr("Sin resultados"))})())),__gh("button",{className:"N-lang",onClick:()=>{try{localStorage.setItem("gufi_lang",__L==="es"?"en":"es")}catch{}window.location.reload()},"aria-label":"Language","data-gufi-src":"page.tsx:6318"},__L==="es"?"EN":"ES"),TIENDA_ON&&__gh("button",{onClick:()=>{searchOpen?(setSearchOpen(!1),setSearch("")):(setSearchOpen(!0),setTimeout(()=>searchInputRef.current?.focus(),80))},"aria-label":tr("Buscar"),"data-gufi-src":"page.tsx:6319"},__gh("svg",{viewBox:"0 0 24 24",width:"15",height:"15",fill:"none",stroke:"currentColor",strokeWidth:"1.5","data-gufi-src":"page.tsx:6319"},__gh("circle",{cx:"11",cy:"11",r:"7","data-gufi-src":"page.tsx:6319"}),__gh("path",{d:"m19.5 19.5-3.5-3.5","data-gufi-src":"page.tsx:6319"}))),__gh("button",{onClick:()=>{syncSy(),user?go("account"):(setAuthMode("login"),setAuthOpen(!0))},"aria-label":tr("Cuenta"),"data-gufi-src":"page.tsx:6320"},__gh("svg",{viewBox:"0 0 24 24",width:"15",height:"15",fill:"none",stroke:"currentColor",strokeWidth:"1.5","data-gufi-src":"page.tsx:6320"},__gh("path",{d:"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2","data-gufi-src":"page.tsx:6320"}),__gh("circle",{cx:"12",cy:"7",r:"4","data-gufi-src":"page.tsx:6320"}))),TIENDA_ON&&__gh(__gf,null,__gh("button",{className:"N-b N-fav",onClick:()=>{syncSy(),setWishOpen(!0)},"aria-label":tr("Favoritos"),style:{position:"relative"},"data-gufi-src":"page.tsx:6322"},__gh(HeartSvg,{f:!1}),wish.size>0&&__gh("span",{className:"N-bc",style:{background:"#c0392b"},"data-gufi-src":"page.tsx:6324"},wish.size)),__gh("button",{className:"N-b",onClick:()=>{syncSy(),setCartOpen(!0)},"aria-label":tr("Bolsa"),"data-gufi-src":"page.tsx:6326"},__gh(BagSvg,null),cartCount>0&&__gh("span",{className:"N-bc","data-gufi-src":"page.tsx:6326"},cartCount)))))),__gh("div",{className:`OVbk ${menuOpen?"o":""}`,onClick:()=>setMenuOpen(!1),"data-gufi-src":"page.tsx:6333"}),__gh("div",{className:`OV ${menuOpen?"o":""}`,"data-gufi-src":"page.tsx:6334"},__gh("div",{className:"OV-hd","data-gufi-src":"page.tsx:6335"},__gh("button",{onClick:()=>setMenuOpen(!1),"aria-label":tr("Cerrar"),"data-gufi-src":"page.tsx:6336"},__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6337"},__gh("path",{d:"M18 6L6 18M6 6l12 12",strokeLinecap:"round","data-gufi-src":"page.tsx:6337"})))),prods.length>0&&__gh("button",{className:"OV-row",onClick:()=>{selectCat(null),setMenuOpen(!1),go("store"),setTimeout(()=>document.getElementById("shop")?.scrollIntoView({behavior:"smooth"}),100)},"data-gufi-src":"page.tsx:6342"},__gh("span",{"data-gufi-src":"page.tsx:6343"},tr("Ver todo")),__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6344"},__gh("path",{d:"M9 18l6-6-6-6",strokeLinecap:"round","data-gufi-src":"page.tsx:6344"}))),__gh("button",{className:"OV-row",onClick:()=>{setMenuOpen(!1),syncSy(),user?go("account"):(setAuthMode("login"),setAuthOpen(!0))},"data-gufi-src":"page.tsx:6347"},__gh("span",{"data-gufi-src":"page.tsx:6348"},tr(user?"Mi cuenta":"Acceder")),__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6349"},__gh("path",{d:"M9 18l6-6-6-6",strokeLinecap:"round","data-gufi-src":"page.tsx:6349"}))),CITAS_ON&&__gh("button",{className:"OV-row",onClick:()=>{setMenuOpen(!1),syncSy(),user?go("miscitas"):(setAuthMode("login"),setAuthOpen(!0))},"data-gufi-src":"page.tsx:6353"},__gh("span",{"data-gufi-src":"page.tsx:6354"},tr("Mis citas")),__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6355"},__gh("path",{d:"M9 18l6-6-6-6",strokeLinecap:"round","data-gufi-src":"page.tsx:6355"}))),SEG_ON&&__gh("button",{className:"OV-row",onClick:()=>{setMenuOpen(!1),syncSy(),user?go("seguimiento"):(setAuthMode("login"),setAuthOpen(!0))},"data-gufi-src":"page.tsx:6360"},__gh("span",{"data-gufi-src":"page.tsx:6361"},conPro(tr("Mis {varios}"))),__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6362"},__gh("path",{d:"M9 18l6-6-6-6",strokeLinecap:"round","data-gufi-src":"page.tsx:6362"}))),CITAS_ON&&__gh("button",{className:"OV-row",onClick:()=>{setMenuOpen(!1),go("citas")},"data-gufi-src":"page.tsx:6366"},__gh("span",{"data-gufi-src":"page.tsx:6367"},tr(AGENDA_CTA)),__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6368"},__gh("path",{d:"M9 18l6-6-6-6",strokeLinecap:"round","data-gufi-src":"page.tsx:6368"}))),ABOUT_ON&&__gh("button",{className:"OV-row",onClick:()=>{setMenuOpen(!1),go("about")},"data-gufi-src":"page.tsx:6372"},__gh("span",{"data-gufi-src":"page.tsx:6373"},tr(ETIQUETA_SOBRE_NOSOTROS)),__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6374"},__gh("path",{d:"M9 18l6-6-6-6",strokeLinecap:"round","data-gufi-src":"page.tsx:6374"}))),TIENDA_ON&&__gh("button",{className:"OV-row",onClick:()=>{setMenuOpen(!1),setWishOpen(!0)},"data-gufi-src":"page.tsx:6382"},__gh("span",{"data-gufi-src":"page.tsx:6383"},tr("Favoritos"),wish.size>0?" ("+wish.size+")":""),__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6384"},__gh("path",{d:"M9 18l6-6-6-6",strokeLinecap:"round","data-gufi-src":"page.tsx:6384"}))),cats.length>0&&__gh(__gf,null,__gh("div",{className:"OV-sec","data-gufi-src":"page.tsx:6389"},tr("Categor\xEDas")),MENU_GRUPOS.length>0?MENU_GRUPOS.map(g=>__gh(import_react3.default.Fragment,{key:g.label},__gh("div",{className:"OV-row",style:{fontSize:14,fontWeight:600,color:"var(--t1)",opacity:1,letterSpacing:".08em",textTransform:"uppercase"},"data-gufi-src":"page.tsx:6392"},__gh("span",{"data-gufi-src":"page.tsx:6393"},tr(g.label))),catsDeGrupo(g.cats).map(c=>__gh("a",{key:c.id,className:"OV-row sub",href:hrefCategoria(c),onClick:alNavegar(()=>{setMenuOpen(!1),go("store"),selectCat(c.id),setTimeout(()=>document.getElementById("shop")?.scrollIntoView({behavior:"smooth"}),100)}),"data-gufi-src":"page.tsx:6396"},__gh("span",{"data-gufi-src":"page.tsx:6397"},str(c.nombre)),__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6398"},__gh("path",{d:"M9 18l6-6-6-6",strokeLinecap:"round","data-gufi-src":"page.tsx:6398"})))))):cats.filter(c=>c.show_in_nav!==!1).map(c=>__gh("a",{key:c.id,className:"OV-row sub",href:hrefCategoria(c),onClick:alNavegar(()=>{setMenuOpen(!1),go("store"),selectCat(c.id),setTimeout(()=>document.getElementById("shop")?.scrollIntoView({behavior:"smooth"}),100)}),"data-gufi-src":"page.tsx:6403"},__gh("span",{"data-gufi-src":"page.tsx:6404"},str(c.nombre)),__gh("svg",{viewBox:"0 0 24 24","data-gufi-src":"page.tsx:6405"},__gh("path",{d:"M9 18l6-6-6-6",strokeLinecap:"round","data-gufi-src":"page.tsx:6405"})))))),__gh(EcomAuthModal_default,{open:authOpen,initialMode:authMode,onClose:closeAuth,gufi,tr,notify,collectAddress:!0,enableMagic:!0,minPassword:MIN_PASSWORD,onOpenLegal:setLegalPage,onAuthed:(u,wasRegister)=>{if(setUser(u),authSet(u),closeAuth(),notify(tr(wasRegister?"Cuenta creada":"Sesi\xF3n iniciada")),pendingAfterLogin.current==="checkout"&&(pendingAfterLogin.current=null,go("checkout")),pendingAfterLogin.current==="cita"&&(pendingAfterLogin.current=null,go("citas")),wasRegister&&s2.welcome_email_on!==!1&&String(s2.welcome_email_on??"")!=="false"){let cid=gufi?.context?.activeCompany?.id||gufi?.context?.activeCompany?.company_id||gufi?.siteInfo?.company_id||typeof window<"u"&&window.location.pathname.match(/\/(?:app\/)?(\d+)\//)?.[1]||"";cid&&fetch(`/api/public/${cid}/automation/welcome_email`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:u.email,nombre:u.nombre,clienteId:Number(u.id)||null})}).catch(err=>console.warn("[welcome_email] failed:",err))}}}),pwdModal&&__gh("div",{className:"AM o",onClick:()=>{pwdBusy||(setPwdModal(null),setPwdError(""))},"data-gufi-src":"page.tsx:6441"},__gh("div",{className:"AM-box",onClick:e=>e.stopPropagation(),"data-gufi-src":"page.tsx:6442"},__gh("button",{className:"xc",onClick:()=>{pwdBusy||(setPwdModal(null),setPwdError(""))},"data-gufi-src":"page.tsx:6443"},"\u2715"),__gh("h2",{"data-gufi-src":"page.tsx:6444"},pwdModal.mode==="change"?tr("Cambiar contrase\xF1a"):tr("Ponte una contrase\xF1a")),__gh("p",{"data-gufi-src":"page.tsx:6445"},pwdModal.mode==="change"?tr("Elige una contrase\xF1a nueva para tu cuenta."):tr("As\xED la pr\xF3xima vez entras directo, sin esperar al email.")),__gh("form",{onSubmit:async e=>{e.preventDefault();let fd=new FormData(e.currentTarget),nueva=str(fd.get("nueva")),repetida=str(fd.get("repetida"));if(nueva!==repetida){setPwdError(tr("Las dos contrase\xF1as no coinciden"));return}await savePassword(nueva,pwdModal.mode==="change"?str(fd.get("actual")):void 0)},"data-gufi-src":"page.tsx:6446"},pwdModal.mode==="change"&&__gh("div",{className:"fi","data-gufi-src":"page.tsx:6455"},__gh("label",{"data-gufi-src":"page.tsx:6455"},tr("Contrase\xF1a actual")),__gh("input",{name:"actual",type:"password",autoComplete:"current-password",required:!0,placeholder:"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022","data-gufi-src":"page.tsx:6455"})),__gh("div",{className:"fi","data-gufi-src":"page.tsx:6457"},__gh("label",{"data-gufi-src":"page.tsx:6457"},tr("Contrase\xF1a nueva")),__gh("input",{name:"nueva",type:"password",autoComplete:"new-password",required:!0,minLength:MIN_PASSWORD,placeholder:"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022","data-gufi-src":"page.tsx:6457"})),__gh("div",{className:"fi","data-gufi-src":"page.tsx:6458"},__gh("label",{"data-gufi-src":"page.tsx:6458"},tr("Rep\xEDtela")),__gh("input",{name:"repetida",type:"password",autoComplete:"new-password",required:!0,minLength:MIN_PASSWORD,placeholder:"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022","data-gufi-src":"page.tsx:6458"})),pwdError&&__gh("div",{className:"auth-err",style:{color:"#b91c1c",fontSize:12,marginTop:8},"data-gufi-src":"page.tsx:6459"},pwdError),__gh("button",{type:"submit",className:"fb",disabled:pwdBusy,style:{marginTop:14},"data-gufi-src":"page.tsx:6460"},pwdBusy?"\u2026":tr("Guardar"))),__gh("div",{className:"fl","data-gufi-src":"page.tsx:6462"},__gh("span",{"data-gufi-src":"page.tsx:6463"},__gh("button",{type:"button",onClick:()=>{setPwdModal(null),setPwdError("")},"data-gufi-src":"page.tsx:6463"},tr("Ahora no")))))),cookiesAbierto&&__gh("div",{className:"CK",role:"dialog","aria-label":tr("Cookies"),"data-gufi-src":"page.tsx:6474"},__gh("div",{className:"CK-box","data-gufi-src":"page.tsx:6475"},__gh("div",{className:"CK-t","data-gufi-src":"page.tsx:6476"},tr("T\xFA decides qu\xE9 cookies usamos")),__gh("p",{className:"CK-p","data-gufi-src":"page.tsx:6477"},tr("Las imprescindibles hacen que funcionen el carrito y tu sesi\xF3n, y no se pueden desactivar. Las dem\xE1s solo se cargan si nos dices que s\xED.")," ",__gh("button",{type:"button",className:"CK-lnk",onClick:()=>{setCookiesAbierto(!1),setLegalPage("cookies")},"data-gufi-src":"page.tsx:6479"},tr("Ver la pol\xEDtica de cookies"))),cookiesDetalle&&__gh("div",{className:"CK-cats","data-gufi-src":"page.tsx:6485"},__gh("label",{className:"CK-cat CK-cat--fija","data-gufi-src":"page.tsx:6486"},__gh("input",{type:"checkbox",checked:!0,readOnly:!0,disabled:!0,"data-gufi-src":"page.tsx:6487"}),__gh("span",{"data-gufi-src":"page.tsx:6488"},__gh("strong",{"data-gufi-src":"page.tsx:6489"},tr("Imprescindibles")),__gh("em",{"data-gufi-src":"page.tsx:6490"},tr("Carrito, sesi\xF3n y seguridad. Siempre activas.")))),__gh("label",{className:"CK-cat","data-gufi-src":"page.tsx:6493"},__gh("input",{type:"checkbox",checked:ckAnalitica,onChange:e=>setCkAnalitica(e.target.checked),"data-gufi-src":"page.tsx:6494"}),__gh("span",{"data-gufi-src":"page.tsx:6495"},__gh("strong",{"data-gufi-src":"page.tsx:6496"},tr("Anal\xEDtica")),__gh("em",{"data-gufi-src":"page.tsx:6497"},tr("Cu\xE1ntas visitas tenemos y qu\xE9 se ve m\xE1s, de forma an\xF3nima.")))),__gh("label",{className:"CK-cat","data-gufi-src":"page.tsx:6500"},__gh("input",{type:"checkbox",checked:ckMarketing,onChange:e=>setCkMarketing(e.target.checked),"data-gufi-src":"page.tsx:6501"}),__gh("span",{"data-gufi-src":"page.tsx:6502"},__gh("strong",{"data-gufi-src":"page.tsx:6503"},tr("Marketing")),__gh("em",{"data-gufi-src":"page.tsx:6504"},tr("Para ense\xF1arte lo nuestro fuera de esta web."))))),__gh("div",{className:"CK-acts","data-gufi-src":"page.tsx:6510"},__gh("button",{type:"button",className:"CK-b CK-b--no",onClick:()=>decidirCookies(!1,!1),"data-gufi-src":"page.tsx:6511"},tr("Solo las imprescindibles")),cookiesDetalle?__gh("button",{type:"button",className:"CK-b CK-b--ok",onClick:()=>decidirCookies(ckAnalitica,ckMarketing),"data-gufi-src":"page.tsx:6515"},tr("Guardar mi elecci\xF3n")):__gh("button",{type:"button",className:"CK-b CK-b--ok",onClick:()=>decidirCookies(!0,!0),"data-gufi-src":"page.tsx:6519"},tr("Aceptar todas"))),!cookiesDetalle&&__gh("button",{type:"button",className:"CK-lnk CK-lnk--c",onClick:()=>setCookiesDetalle(!0),"data-gufi-src":"page.tsx:6526"},tr("Elegir una por una")))),lookupOpen&&__gh("div",{className:"AM o",onClick:()=>{lookupBusy||(setLookupOpen(!1),setLookupError(""),setLookupResult(null))},"data-gufi-src":"page.tsx:6536"},__gh("div",{className:"AM-box",onClick:e=>e.stopPropagation(),"data-gufi-src":"page.tsx:6537"},__gh("button",{className:"xc",onClick:()=>{setLookupOpen(!1),setLookupError(""),setLookupResult(null)},"data-gufi-src":"page.tsx:6538"},"\u2715"),__gh("h2",{"data-gufi-src":"page.tsx:6539"},tr("Ver mi pedido")),__gh("p",{"data-gufi-src":"page.tsx:6540"},tr("Compraste sin cuenta: dinos el n\xFAmero de pedido y el email con el que lo hiciste.")),lookupResult?__gh("div",{style:{marginTop:4},"data-gufi-src":"page.tsx:6542"},__gh("div",{style:{fontSize:13,color:"var(--t2)",marginBottom:6},"data-gufi-src":"page.tsx:6543"},tr("Estado")),__gh("div",{style:{fontSize:18,fontWeight:600,marginBottom:14},"data-gufi-src":"page.tsx:6544"},etiquetaEstado(lookupResult.estado)),lookupResult.numero_seguimiento&&__gh("div",{style:{fontSize:13,color:"var(--t2)"},"data-gufi-src":"page.tsx:6546"},tr("Seguimiento"),": ",__gh("strong",{"data-gufi-src":"page.tsx:6547"},str(lookupResult.numero_seguimiento))),__gh("button",{className:"fb",style:{marginTop:18},onClick:()=>{setLookupOpen(!1),setLookupResult(null)},"data-gufi-src":"page.tsx:6550"},tr("Cerrar"))):__gh("form",{onSubmit:e=>{e.preventDefault();let fd=new FormData(e.currentTarget);consultarPedidoInvitado(str(fd.get("numero")),str(fd.get("email")))},"data-gufi-src":"page.tsx:6553"},__gh("div",{className:"fi","data-gufi-src":"page.tsx:6554"},__gh("label",{"data-gufi-src":"page.tsx:6554"},tr("N\xFAmero de pedido")),__gh("input",{name:"numero",required:!0,placeholder:"MA-2026-000000","data-gufi-src":"page.tsx:6554"})),__gh("div",{className:"fi","data-gufi-src":"page.tsx:6555"},__gh("label",{"data-gufi-src":"page.tsx:6555"},tr("Email")),__gh("input",{name:"email",type:"email",required:!0,placeholder:"tu@email.com",defaultValue:guest?.email||"","data-gufi-src":"page.tsx:6555"})),lookupError&&__gh("div",{className:"auth-err",style:{color:"#b91c1c",fontSize:12,marginTop:8},"data-gufi-src":"page.tsx:6556"},lookupError),__gh("button",{type:"submit",className:"fb",disabled:lookupBusy,style:{marginTop:14},"data-gufi-src":"page.tsx:6557"},lookupBusy?"\u2026":tr("Ver mi pedido"))))),quizAbierto&&quizPreguntas.length>0&&(()=>{let terminado=quizPaso>=quizPreguntas.length,q=terminado?null:quizPreguntas[quizPaso];return __gh("div",{className:"AM o",onClick:()=>setQuizAbierto(!1),"data-gufi-src":"page.tsx:6570"},__gh("div",{className:"AM-box QZ",onClick:e=>e.stopPropagation(),"data-gufi-src":"page.tsx:6571"},__gh("button",{className:"xc",onClick:()=>setQuizAbierto(!1),"data-gufi-src":"page.tsx:6572"},"\u2715"),terminado?__gh(__gf,null,__gh("h2",{"data-gufi-src":"page.tsx:6658"},tr(quizDeConsulta?"Esto es lo que nos has contado":"Esto es lo tuyo")),__gh("p",{"data-gufi-src":"page.tsx:6659"},quizDeConsulta?conPro(tr("Se lo pasamos a {pro} con tu cita para que llegue sabiendo tu caso.")):tr("Seg\xFAn lo que nos has contado, empezar\xEDamos por aqu\xED.")),quizDeConsulta&&__gh("div",{className:"QZ-caso","data-gufi-src":"page.tsx:6661"},quizRespuestas.map((x,i)=>__gh("div",{className:"QZ-caso-f",key:i,"data-gufi-src":"page.tsx:6663"},__gh("span",{className:"QZ-caso-p","data-gufi-src":"page.tsx:6664"},x.pregunta),__gh("span",{className:"QZ-caso-r","data-gufi-src":"page.tsx:6665"},x.respuesta))),__gh("button",{className:"H-cta-fill QZ-caso-cta",onClick:pedirCitaConElTest,"data-gufi-src":"page.tsx:6668"},tr("Pedir cita con esto"))),__gh("div",{className:"QZ-recs","data-gufi-src":"page.tsx:6671"},(quizDeConsulta?[]:quizRecomendados).map(p=>__gh("a",{key:p.id,className:"QZ-rec",href:hrefProducto(p),onClick:alNavegar(()=>{setQuizAbierto(!1),abrirDesdeLista("Test",p)}),"data-gufi-src":"page.tsx:6673"},__gh("span",{className:"QZ-rec-img","data-gufi-src":"page.tsx:6674"},__gh(RetryImg,{src:img(p),alt:str(p.nombre),loading:"lazy"})),__gh("span",{className:"QZ-rec-b","data-gufi-src":"page.tsx:6675"},__gh("span",{className:"QZ-rec-n","data-gufi-src":"page.tsx:6676"},str(p.nombre)),__gh("span",{className:"QZ-rec-p","data-gufi-src":"page.tsx:6677"},price(getPrice(p))))))),quizDeConsulta?null:quizEmailHecho?__gh("div",{style:{marginTop:14,textAlign:"center",fontSize:13,color:"#1b6b3a",fontWeight:600},"data-gufi-src":"page.tsx:6691"},tr("Guardado. Te escribimos con lo que mejor te encaje.")):__gh("form",{style:{marginTop:16},onSubmit:e=>{e.preventDefault();let fd=new FormData(e.currentTarget);enviarQuizLead(str(fd.get("email")),fd.get("acepta")==="on")},"data-gufi-src":"page.tsx:6695"},__gh("div",{className:"fi","data-gufi-src":"page.tsx:6699"},__gh("label",{"data-gufi-src":"page.tsx:6699"},tr("\xBFTe lo enviamos por email?")),__gh("input",{name:"email",type:"email",required:!0,placeholder:"tu@email.com","data-gufi-src":"page.tsx:6699"})),__gh("label",{style:{display:"flex",alignItems:"center",gap:8,fontSize:12,color:"var(--t3)",margin:"8px 0 0",fontWeight:400},"data-gufi-src":"page.tsx:6700"},__gh("input",{name:"acepta",type:"checkbox",style:{width:14,height:14,accentColor:"#0a0a0a"},"data-gufi-src":"page.tsx:6701"}),__gh("span",{"data-gufi-src":"page.tsx:6702"},tr("Quiero recibir ofertas y novedades por email"))),__gh("button",{type:"submit",className:"fb",disabled:quizBusy,style:{marginTop:12},"data-gufi-src":"page.tsx:6704"},quizBusy?"\u2026":tr("Envi\xE1rmelo"))),__gh("button",{className:"QZ-atras",onClick:abrirQuiz,"data-gufi-src":"page.tsx:6707"},tr("Repetir el test"))):__gh(__gf,null,__gh("div",{className:"QZ-pg","data-gufi-src":"page.tsx:6575"},quizPaso+1," / ",quizPreguntas.length),__gh("h2",{"data-gufi-src":"page.tsx:6576"},str(q.pregunta)),(()=>{let conZona=q.opciones.filter(o=>zonasDe(str(o.etiqueta)).length>0);if(conZona.length<2)return null;let zonaDeOpcion=new Map;for(let o of conZona)for(let z of zonasDe(str(o.etiqueta)))zonaDeOpcion.has(z)||zonaDeOpcion.set(z,Number(o.id));let elegida=Number(quizElegido[Number(q.id)]),opcionViva=zonaSobre||elegida||0,zonasVivas=new Set(conZona.filter(o=>Number(o.id)===opcionViva).flatMap(o=>zonasDe(str(o.etiqueta)))),elegir=id2=>{setQuizElegido(prev=>({...prev,[Number(q.id)]:id2})),setTimeout(()=>setQuizPaso(p=>p+1),180)},zona=(nombre,forma)=>{let opId=zonaDeOpcion.get(nombre);return opId?__gh("g",{key:nombre,className:`CZ-z ${zonasVivas.has(nombre)?"on":""}`,onMouseEnter:()=>setZonaSobre(opId),onMouseLeave:()=>setZonaSobre(null),onClick:()=>elegir(opId),"data-gufi-src":"page.tsx:6598"},forma):__gh("g",{className:"CZ-off",key:nombre,"data-gufi-src":"page.tsx:6596"},forma)};return __gh("div",{className:"CZ","data-gufi-src":"page.tsx:6608"},__gh("svg",{className:"CZ-svg",viewBox:"0 0 200 400","aria-hidden":"true","data-gufi-src":"page.tsx:6609"},__gh("circle",{className:"CZ-base",cx:"100",cy:"32",r:"20","data-gufi-src":"page.tsx:6610"}),zona("cuello",__gh("rect",{x:"90",y:"50",width:"20",height:"18",rx:"8","data-gufi-src":"page.tsx:6611"})),zona("espalda",__gh("path",{d:"M68 74 q32 -8 64 0 l4 62 q-36 10 -72 0 z","data-gufi-src":"page.tsx:6612"})),zona("hombro",__gh(__gf,null,__gh("circle",{cx:"68",cy:"80",r:"14","data-gufi-src":"page.tsx:6613"}),__gh("circle",{cx:"132",cy:"80",r:"14","data-gufi-src":"page.tsx:6613"}))),zona("brazo",__gh(__gf,null,__gh("rect",{x:"48",y:"90",width:"17",height:"80",rx:"8.5","data-gufi-src":"page.tsx:6614"}),__gh("rect",{x:"135",y:"90",width:"17",height:"80",rx:"8.5","data-gufi-src":"page.tsx:6614"}))),zona("cadera",__gh("rect",{x:"70",y:"140",width:"60",height:"42",rx:"16","data-gufi-src":"page.tsx:6615"})),__gh("rect",{className:"CZ-base",x:"76",y:"180",width:"20",height:"62",rx:"10","data-gufi-src":"page.tsx:6616"}),__gh("rect",{className:"CZ-base",x:"104",y:"180",width:"20",height:"62",rx:"10","data-gufi-src":"page.tsx:6617"}),zona("rodilla",__gh(__gf,null,__gh("circle",{cx:"86",cy:"252",r:"12","data-gufi-src":"page.tsx:6618"}),__gh("circle",{cx:"114",cy:"252",r:"12","data-gufi-src":"page.tsx:6618"}))),__gh("rect",{className:"CZ-base",x:"78",y:"262",width:"16",height:"62",rx:"8","data-gufi-src":"page.tsx:6619"}),__gh("rect",{className:"CZ-base",x:"106",y:"262",width:"16",height:"62",rx:"8","data-gufi-src":"page.tsx:6620"}),zona("pie",__gh(__gf,null,__gh("ellipse",{cx:"86",cy:"334",rx:"15",ry:"9","data-gufi-src":"page.tsx:6621"}),__gh("ellipse",{cx:"114",cy:"334",rx:"15",ry:"9","data-gufi-src":"page.tsx:6621"})))),__gh("div",{className:"CZ-pie","data-gufi-src":"page.tsx:6623"},(()=>{let o=conZona.find(x=>Number(x.id)===opcionViva);return o?str(o.etiqueta):tr("Se\xF1ala d\xF3nde te molesta")})()))})(),__gh("div",{className:"QZ-ops","data-gufi-src":"page.tsx:6632"},q.opciones.map(o=>__gh("button",{key:o.id,className:`QZ-op ${Number(quizElegido[Number(q.id)])===Number(o.id)?"a":""} ${zonaSobre===Number(o.id)?"sobre":""}`,onMouseEnter:()=>zonasDe(str(o.etiqueta)).length>0&&setZonaSobre(Number(o.id)),onMouseLeave:()=>setZonaSobre(null),onClick:()=>{setQuizElegido(prev=>({...prev,[Number(q.id)]:Number(o.id)})),setTimeout(()=>setQuizPaso(p=>p+1),180)},"data-gufi-src":"page.tsx:6634"},str(o.etiqueta)))),quizPaso>0&&__gh("button",{className:"QZ-atras",onClick:()=>setQuizPaso(p=>Math.max(0,p-1)),"data-gufi-src":"page.tsx:6651"},tr("\u2190 Atr\xE1s")))))})(),legalPage&&__gh(LegalModal,{page:legalPage,ctx:LEGAL_CTX,customTermsText:TERMS_OVERRIDE,customPrivacyText:PRIVACY_OVERRIDE,onClose:()=>setLegalPage(null),rawVariants,rawP:productosResolved,rawC:cats}),isStoreView&&__gh(__gf,null,(()=>{let BLOQUES={hero:()=>__gh(__gf,null,HERO_IMAGES[0]&&__gh("style",{"data-gufi-src":"page.tsx:6743"},` @media(max-width:768px){ .H.H-bg { background-image: url(${HERO_IMAGES[0]}) !important; background-position: center 75% !important; } } `),__gh("section",{className:`H ${HERO_INVERT?"H-bg":""}`,style:HERO_BG?{backgroundImage:`url(${HERO_BG})`,backgroundSize:"cover",backgroundPosition:"center"}:void 0,"data-gufi-src":"page.tsx:6749"},!HERO_BG&&HERO_IMAGES.length>0&&__gh("div",{className:"H-float","data-gufi-src":"page.tsx:6760"},(()=>{let positions=[{top:"8%",left:"3%",width:"clamp(100px,12vw,160px)",height:"clamp(130px,16vw,210px)"},{top:"5%",left:"18%",width:"clamp(80px,10vw,130px)",height:"clamp(80px,10vw,130px)",borderRadius:"20px"},{top:"55%",left:"5%",width:"clamp(90px,11vw,150px)",height:"clamp(120px,14vw,195px)"},{top:"10%",right:"3%",width:"clamp(110px,13vw,180px)",height:"clamp(140px,16vw,230px)"},{top:"4%",right:"20%",width:"clamp(100px,12vw,170px)",height:"clamp(130px,15vw,220px)"},{top:"55%",right:"6%",width:"clamp(80px,10vw,140px)",height:"clamp(100px,13vw,180px)"}];return HERO_IMAGES.slice(0,positions.length).map((src,i)=>__gh("div",{key:`hi-${i}`,style:positions[i],"data-gufi-src":"page.tsx:6771"},__gh(RetryImg,{src,alt:"",loading:"lazy"})))})()),__gh("div",{className:"H-c","data-gufi-src":"page.tsx:6776"},LOGO_SRC&&__gh(RetryImg,{src:LOGO_SRC,alt:BRAND_DISPLAY,className:"H-logo"}),!LOGO_SRC&&BRAND&&__gh(TituloPortada,{className:"H-wm"},BRAND),HERO_SUBTITLE&&__gh("p",{"data-gufi-src":"page.tsx:6779"},HERO_SUBTITLE),__gh("div",{className:"H-ctas","data-gufi-src":"page.tsx:6780"},CITAS_ON&&__gh("button",{className:"H-cta-fill",onClick:()=>go("citas"),"data-gufi-src":"page.tsx:6786"},tr(AGENDA_CTA)),prods.length>0&&__gh("button",{className:CITAS_ON?"H-cta-out":"H-cta-fill",onClick:()=>{document.getElementById("shop")?.scrollIntoView({behavior:"smooth"})},"data-gufi-src":"page.tsx:6789"},tr(HERO_CTA)))),__gh("div",{className:"H-scroll","data-gufi-src":"page.tsx:6796"},__gh("span",{"data-gufi-src":"page.tsx:6796"},tr("Scroll"))))),portada:()=>__gh(__gf,null,__gh("section",{className:"PT","data-gufi-src":"page.tsx:6804"},(FAMILY_IMG||PORTADA_VIDEO)&&__gh("div",{className:"PT-foto",style:FAMILY_IMG?{backgroundImage:`url(${FAMILY_IMG})`}:void 0,"data-gufi-src":"page.tsx:6806"},PORTADA_VIDEO&&__gh("video",{src:PORTADA_VIDEO,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"auto","aria-hidden":"true","data-gufi-src":"page.tsx:6807"})),__gh("div",{className:"PT-i","data-gufi-src":"page.tsx:6810"},__gh("div",{className:"PT-c","data-gufi-src":"page.tsx:6811"},__gh("div",{className:"PT-over","data-gufi-src":"page.tsx:6812"},SEASON_TAG||"Fisioterapia a domicilio"),(()=>{let bruto=String(s2.portada_titular||"").trim()||(__L==="es"?"Pide tu cita|*en un minuto*":"Book your slot|*in a minute*");return __gh(TituloPortada,{className:"PT-t"},bruto.split("|").map((linea,i)=>__gh(import_react3.default.Fragment,{key:i},i>0&&__gh("br",{"data-gufi-src":"page.tsx:6823"}),linea.split(/(\*[^*]+\*)/g).filter(Boolean).map((trozo,j)=>trozo.startsWith("*")&&trozo.endsWith("*")?__gh("em",{key:j,"data-gufi-src":"page.tsx:6826"},conPro(trozo.slice(1,-1))):__gh(import_react3.default.Fragment,{key:j},conPro(trozo))))))})(),__gh("p",{className:"PT-sub","data-gufi-src":"page.tsx:6834"},HERO_SUBTITLE||conPro("{pro} va a donde est\xE9s con todo el material. Sin desplazamientos ni salas de espera.")),__gh("div",{className:"PT-ctas","data-gufi-src":"page.tsx:6837"},CITAS_ON&&__gh("button",{className:"H-cta-fill",onClick:()=>irAReservar(),"data-gufi-src":"page.tsx:6838"},tr(AGENDA_CTA)),ABOUT_ON&&__gh("button",{className:"H-cta-out",onClick:()=>go("about"),"data-gufi-src":"page.tsx:6839"},tr(ETIQUETA_SOBRE_NOSOTROS))),CITAS_ON&&servicios.length>0&&(()=>{let durs=servicios.map(x=>num(x.duracion_min)||60),dMin=Math.min(...durs),dMax=Math.max(...durs);return __gh("p",{className:"PT-nota","data-gufi-src":"page.tsx:6846"},"Sesiones de ",__gh("b",{"data-gufi-src":"page.tsx:6847"},dMin===dMax?dMin:`${dMin}\u2013${dMax}`," min")," ","desde ",__gh("b",{"data-gufi-src":"page.tsx:6848"},price(Math.min(...servicios.map(x=>promoDe(x)??num(x.precio))))),". ",conPro("{pro} te la confirma antes."))})())))),beneficios:()=>__gh(__gf,null,__gh("section",{className:"FB","data-gufi-src":"page.tsx:6860"},__gh("div",{className:"FB-i","data-gufi-src":"page.tsx:6861"},GARANTIAS.map((x,i)=>__gh("div",{className:`FB-c rv rv-${Math.min(i+1,4)}`,key:x.t,"data-gufi-src":"page.tsx:6863"},__gh("h3",{"data-gufi-src":"page.tsx:6864"},conPro(x.t)),__gh("p",{"data-gufi-src":"page.tsx:6865"},conPro(x.d))))))),servicios:()=>__gh(__gf,null,__gh("section",{className:"SV",id:"servicios","data-gufi-src":"page.tsx:6875"},__gh("div",{className:"SV-i SEC-aire","data-gufi-src":"page.tsx:6876"},__gh("div",{className:"SV-head","data-gufi-src":"page.tsx:6877"},__gh("div",{"data-gufi-src":"page.tsx:6878"},__gh("div",{className:"SEC-over rv","data-gufi-src":"page.tsx:6879"},tr("Servicios")),__gh("h2",{className:"SEC-h rv rv-1","data-gufi-src":"page.tsx:6880"},tr("Qu\xE9 puede hacer por ti")),AGENDA_SERVICIOS_SUB&&__gh("p",{className:"SEC-sub","data-gufi-src":"page.tsx:6885"},conPro(AGENDA_SERVICIOS_SUB))),__gh("button",{className:"H-cta-out",onClick:()=>irAReservar(),"data-gufi-src":"page.tsx:6887"},tr("Ver disponibilidad"))),__gh("div",{className:"SV-g","data-gufi-src":"page.tsx:6889"},servicios.map((sv,i)=>__gh("button",{className:`SV-c rv rv-${Math.min(i+1,4)}`,key:sv.id,onClick:()=>irAReservar(Number(sv.id)),"data-gufi-src":"page.tsx:6891"},__gh("span",{className:"SV-ar","data-gufi-src":"page.tsx:6892"},__gh("svg",{viewBox:"0 0 24 24",width:"15",height:"15",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","data-gufi-src":"page.tsx:6893"},__gh("path",{d:"M7 17L17 7M9 7h8v8","data-gufi-src":"page.tsx:6893"}))),__gh("span",{className:"SV-n","data-gufi-src":"page.tsx:6895"},str(sv.nombre)),str(sv.descripcion)&&__gh("span",{className:"SV-d","data-gufi-src":"page.tsx:6896"},str(sv.descripcion)),__gh("span",{className:"SV-m","data-gufi-src":"page.tsx:6897"},MOSTRAR_PRECIO&&num(sv.precio)>0&&__gh("span",{className:"SV-p","data-gufi-src":"page.tsx:6898"},price(sv.precio)),num(sv.duracion_min)>0&&__gh("span",{className:"SV-dur","data-gufi-src":"page.tsx:6899"},num(sv.duracion_min)," min"),esOnlineSv(sv)&&__gh("span",{className:"SV-tag","data-gufi-src":"page.tsx:6900"},tr("Online"))),MOSTRAR_PRECIO&&promoDe(sv)!==null&&__gh("span",{className:"SV-promo","data-gufi-src":"page.tsx:6903"},tr("Primera sesi\xF3n")," ",__gh("b",{"data-gufi-src":"page.tsx:6903"},price(promoDe(sv))))))),__gh("p",{className:"SV-pie","data-gufi-src":"page.tsx:6908"},conPro(String(s2.agenda_pie||"Precios por sesi\xF3n, desplazamiento incluido. Si tu caso necesita varias, {pro} te lo dice antes \u2014 no se venden bonos a ciegas.")))))),presentacion:()=>__gh(__gf,null,__gh("section",{className:"FZ","data-gufi-src":"page.tsx:6918"},__gh("div",{className:"FZ-i","data-gufi-src":"page.tsx:6919"},__gh("div",{className:"FZ-cab rv","data-gufi-src":"page.tsx:6920"},__gh("div",{className:"SEC-over","data-gufi-src":"page.tsx:6921"},tr("Qui\xE9n te trata")),__gh("p",{className:"FZ-frase","data-gufi-src":"page.tsx:6926"},(String(s2.portada_frase||"").trim()||"La consulta *va a tu casa*.").split(/(\*[^*]+\*)/g).filter(Boolean).map((trozo,j)=>trozo.startsWith("*")&&trozo.endsWith("*")?__gh("em",{key:j,"data-gufi-src":"page.tsx:6930"},conPro(trozo.slice(1,-1))):__gh(import_react3.default.Fragment,{key:j},conPro(trozo))))),__gh("div",{className:"FZ-cuerpo rv rv-1","data-gufi-src":"page.tsx:6935"},__gh("h2",{className:"FZ-h","data-gufi-src":"page.tsx:6936"},FAMILY_TITLE||"Fisioterapia en tu casa"),FAMILY_RESUMEN.split(/\n\s*\n/).map(par=>par.trim()).filter(Boolean).map((par,i)=>__gh("p",{key:i,"data-gufi-src":"page.tsx:6938"},par.split(/(\*\*[^*]+\*\*)/g).filter(Boolean).map((tr2,j)=>tr2.startsWith("**")&&tr2.endsWith("**")?__gh("strong",{key:j,style:{color:"var(--t1)",fontWeight:620},"data-gufi-src":"page.tsx:6941"},tr2.slice(2,-2)):__gh(import_react3.default.Fragment,{key:j},tr2)))),__gh("div",{className:"FZ-ctas","data-gufi-src":"page.tsx:6946"},__gh("button",{className:"H-cta-fill",onClick:()=>irAReservar(),"data-gufi-src":"page.tsx:6947"},tr(AGENDA_CTA)),ABOUT_ON&&__gh("button",{className:"H-cta-out",onClick:()=>go("about"),"data-gufi-src":"page.tsx:6948"},tr(ETIQUETA_SOBRE_NOSOTROS))))))),pasos:()=>__gh(__gf,null,__gh("section",{className:"PS","data-gufi-src":"page.tsx:6957"},__gh("div",{className:"PS-i SEC-aire","data-gufi-src":"page.tsx:6958"},__gh("div",{className:"SEC-over rv","data-gufi-src":"page.tsx:6959"},tr("C\xF3mo funciona")),__gh("h2",{className:"SEC-h rv rv-1","data-gufi-src":"page.tsx:6960"},conPro(tr(AGENDA_PASOS_TITULO))),__gh("div",{className:"PS-g","data-gufi-src":"page.tsx:6961"},PASOS.map((x,i)=>__gh("div",{className:`PS-c rv rv-${Math.min(i+1,4)}`,key:x.n,"data-gufi-src":"page.tsx:6963"},__gh("div",{className:"PS-n","data-gufi-src":"page.tsx:6964"},x.n),__gh("h3",{"data-gufi-src":"page.tsx:6965"},conPro(x.t)),__gh("p",{"data-gufi-src":"page.tsx:6966"},conPro(x.d)))))))),cierre:()=>__gh(__gf,null,__gh("section",{className:"CT","data-gufi-src":"page.tsx:6974"},__gh("div",{className:"CT-i rv","data-gufi-src":"page.tsx:6975"},__gh("h2",{"data-gufi-src":"page.tsx:6976"},tr("\xBFReservamos?")),__gh("p",{"data-gufi-src":"page.tsx:6977"},conPro(AGENDA_CIERRE)),__gh("div",{className:"H-ctas",style:{opacity:1,animation:"none"},"data-gufi-src":"page.tsx:6980"},__gh("button",{className:"H-cta-fill",onClick:()=>irAReservar(),"data-gufi-src":"page.tsx:6981"},tr(AGENDA_CTA)))))),marquee:()=>__gh(__gf,null,__gh("div",{className:"MQ","data-gufi-src":"page.tsx:6988"},__gh("div",{className:"MQ-t","data-gufi-src":"page.tsx:6988"},[1,2,3,4].map(i=>__gh(import_react3.default.Fragment,{key:i},__gh("span",{"data-gufi-src":"page.tsx:6988"},SEASON_TAG||(__L==="es"?"Novedades":"New in")),__gh("span",{"data-gufi-src":"page.tsx:6988"},"\xB7"),__gh("span",{"data-gufi-src":"page.tsx:6988"},tr("Env\xEDo gratis +"),freeThreshold,"\u20AC"),__gh("span",{"data-gufi-src":"page.tsx:6988"},"\xB7"),__gh("span",{"data-gufi-src":"page.tsx:6988"},tr("Devoluciones 14 d\xEDas")),__gh("span",{"data-gufi-src":"page.tsx:6988"},"\xB7")))))),categorias:()=>__gh(__gf,null,__gh("div",{className:"CB","data-gufi-src":"page.tsx:6994"},__gh("div",{className:"CB-head","data-gufi-src":"page.tsx:6995"},__gh("div",{className:"cb-over","data-gufi-src":"page.tsx:6996"},tr("Comprar por categor\xEDa")),__gh("h2",{"data-gufi-src":"page.tsx:6997"},s2.collection_title||tr("La Colecci\xF3n"))),__gh("div",{className:"CB-mosaic","data-gufi-src":"page.tsx:6999"},cats.slice(0,7).map((cat,i)=>{let catProds=prods.filter(p=>categoriaDe(p)===Number(cat.id)),heroImg="";if(catProds.length>0)if(str(cat.nombre)==="Pareo"){let specific=catProds.find(p=>str(p.nombre).toLowerCase().includes("azul"));heroImg=img(specific||catProds[0])}else if(str(cat.nombre)==="Ba\xF1ador"){let specific=catProds.find(p=>str(p.nombre).toLowerCase().includes("rayas verde"));heroImg=img(specific||catProds[0])}else heroImg=img(catProds[0]);return heroImg?__gh("a",{className:"CB-card",key:cat.id,href:hrefCategoria(cat),onClick:alNavegar(()=>{selectCat(cat.id),document.getElementById("shop")?.scrollIntoView({behavior:"smooth"})}),"data-gufi-src":"page.tsx:7016"},__gh(RetryImg,{src:heroImg,alt:str(cat.nombre),loading:"lazy"}),__gh("div",{className:"cb-info","data-gufi-src":"page.tsx:7018"},__gh("h3",{"data-gufi-src":"page.tsx:7019"},str(cat.nombre)),__gh("div",{className:"cb-cta","data-gufi-src":"page.tsx:7020"},tr("Ver todo \u2192")))):null})))),novedades:()=>__gh(__gf,null,(()=>{let newIn=prods.filter(p=>categoriaDe(p)===7||p.destacado).slice(0,8);if(newIn.length===0)return null;let mqText=s2.featured_marquee||(__L==="es"?"NOVEDADES \xB7 ENV\xCDO R\xC1PIDO \xB7 PAGO SEGURO \xB7 DEVOLUCIONES \xB7 NOVEDADES \xB7 ENV\xCDO R\xC1PIDO \xB7 PAGO SEGURO \xB7 DEVOLUCIONES \xB7 ":"NEW \xB7 FAST SHIPPING \xB7 SECURE CHECKOUT \xB7 RETURNS \xB7 NEW \xB7 FAST SHIPPING \xB7 SECURE CHECKOUT \xB7 RETURNS \xB7 ");return __gh("section",{className:"NI",ref:niRef,"data-gufi-src":"page.tsx:7035"},__gh("div",{className:"NI-aurora","data-gufi-src":"page.tsx:7036"},__gh("div",{className:"orb1","data-gufi-src":"page.tsx:7037"}),__gh("div",{className:"orb2","data-gufi-src":"page.tsx:7038"}),__gh("div",{className:"orb3","data-gufi-src":"page.tsx:7039"})),__gh("div",{className:"NI-top","data-gufi-src":"page.tsx:7041"},__gh(import_framer_motion.motion.div,{initial:{opacity:0,y:30},animate:niInView?{opacity:1,y:0}:{},transition:{duration:.8,ease:[.25,.1,.25,1]}},__gh("div",{className:"ni-over","data-gufi-src":"page.tsx:7043"},s2.featured_overline||(__L==="es"?"Selecci\xF3n":"Selection")),__gh("h2",{"data-gufi-src":"page.tsx:7044"},s2.featured_title||(__L==="es"?"Destacados":"Featured"))),__gh(import_framer_motion.motion.button,{className:"NI-cta",initial:{opacity:0},animate:niInView?{opacity:1}:{},transition:{duration:.6,delay:.3},onClick:()=>{selectCat(7),document.getElementById("shop")?.scrollIntoView({behavior:"smooth"})}},s2.featured_cta||(__L==="es"?"Ver todo \u2192":"Shop all \u2192"))),__gh("div",{className:"NI-mq","data-gufi-src":"page.tsx:7048"},__gh("div",{className:"NI-mq-track","data-gufi-src":"page.tsx:7048"},__gh("span",{"data-gufi-src":"page.tsx:7048"},mqText),__gh("span",{"data-gufi-src":"page.tsx:7048"},mqText))),__gh("div",{className:"NI-scroll","data-gufi-src":"page.tsx:7049"},newIn.map((p,i)=>__gh(import_framer_motion.motion.a,{className:"NI-cd",key:p.id,initial:{opacity:0,y:40,scale:.95},animate:niInView?{opacity:1,y:0,scale:1}:{},transition:{duration:.7,delay:.2+i*.08,ease:[.25,.1,.25,1]},href:hrefProducto(p),onClick:alNavegar(()=>{syncSy(),abrirDesdeLista("Destacados",p)})},__gh("div",{className:"NI-cd-img","data-gufi-src":"page.tsx:7052"},__gh(RetryImg,{src:img(p),alt:str(p.nombre),loading:"lazy"}),i===0&&__gh("div",{className:"NI-cd-badge","data-gufi-src":"page.tsx:7054"},tr("Novedad")),hasSale(p)&&__gh("div",{className:"NI-cd-badge",style:{background:"rgba(192,57,43,.2)",borderColor:"rgba(192,57,43,.3)",color:"#e74c3c"},"data-gufi-src":"page.tsx:7055"},"-",disc(p),"%"),__gh("button",{className:`NI-cd-wh ${wish.has(p.id)?"lk":""}`,onClick:e=>{e.preventDefault(),e.stopPropagation(),toggleWish(p.id)},"data-gufi-src":"page.tsx:7056"},__gh(HeartSvg,{f:wish.has(p.id)})),__gh("div",{className:"NI-cd-qa",onClick:e=>{e.preventDefault(),e.stopPropagation()},"data-gufi-src":"page.tsx:7057"},(()=>{let opts=getVariantOptions(p);return opts.length>0?opts.map(s3=>__gh("button",{key:s3,onClick:()=>addToCart(p,s3),"data-gufi-src":"page.tsx:7060"},s3)):__gh("button",{onClick:()=>addToCart(p,""),"data-gufi-src":"page.tsx:7061"},tr("A\xF1adir"))})()),__gh("div",{className:"NI-cd-info","data-gufi-src":"page.tsx:7063"},__gh("h4",{"data-gufi-src":"page.tsx:7064"},str(p.nombre)),__gh("div",{className:"ni-price","data-gufi-src":"page.tsx:7065"},hasSale(p)?__gh(__gf,null,__gh("span",{className:"og","data-gufi-src":"page.tsx:7065"},price(p.precio)),__gh("span",{className:"nw","data-gufi-src":"page.tsx:7065"},price(p.precio_oferta))):price(getPrice(p)))))))),__gh(import_framer_motion.motion.div,{className:"NI-bot",initial:{opacity:0},animate:niInView?{opacity:1}:{},transition:{duration:.8,delay:.8}},__gh("span",{"data-gufi-src":"page.tsx:7072"},tr("Env\xEDo express 24h")),__gh("span",{"data-gufi-src":"page.tsx:7073"},tr("Edici\xF3n limitada")),__gh("span",{"data-gufi-src":"page.tsx:7074"},tr("Devoluci\xF3n gratuita")),__gh("span",{"data-gufi-src":"page.tsx:7075"},tr("100% Original"))))})()),heritage:()=>__gh(__gf,null,HERITAGE_ON&&__gh("section",{style:{position:"relative",minHeight:"clamp(440px,64vh,680px)",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden",margin:"clamp(48px,9vw,110px) 0"},"data-gufi-src":"page.tsx:7087"},__gh("div",{style:{position:"absolute",inset:0,backgroundImage:`url(${HERITAGE_IMG})`,backgroundSize:"cover",backgroundPosition:"center",zIndex:0,animation:"kenBurns 28s ease-in-out infinite alternate"},"data-gufi-src":"page.tsx:7088"}),__gh("div",{style:{position:"absolute",inset:0,background:"linear-gradient(180deg, rgba(18,8,12,.35) 0%, rgba(18,8,12,.55) 55%, rgba(18,8,12,.8) 100%)",zIndex:1},"data-gufi-src":"page.tsx:7089"}),__gh("div",{style:{position:"relative",zIndex:2,textAlign:"center",maxWidth:680,padding:"0 28px"},"data-gufi-src":"page.tsx:7090"},SEASON_TAG&&__gh("div",{style:{fontFamily:"var(--sn)",fontSize:10,letterSpacing:".32em",textTransform:"uppercase",color:"var(--sand)",marginBottom:18},"data-gufi-src":"page.tsx:7091"},SEASON_TAG),HERITAGE_TITLE&&__gh("h2",{style:{fontFamily:"var(--sf)",fontSize:"clamp(2rem,4.6vw,3.6rem)",fontWeight:300,lineHeight:1.12,color:"var(--tl)",margin:"0 0 22px",textShadow:"0 4px 40px rgba(0,0,0,.45)"},"data-gufi-src":"page.tsx:7092"},HERITAGE_TITLE),HERITAGE_TEXT&&__gh("p",{style:{fontFamily:"var(--sn)",fontSize:"clamp(13px,1.4vw,15px)",lineHeight:1.9,color:"rgba(244,238,227,.88)",fontWeight:300,margin:0,textShadow:"0 2px 20px rgba(0,0,0,.45)"},"data-gufi-src":"page.tsx:7093"},HERITAGE_TEXT)))),resenas:()=>__gh(__gf,null,__gh("section",{className:"RS","data-gufi-src":"page.tsx:7113"},__gh("div",{className:"RS-i SEC-aire","data-gufi-src":"page.tsx:7114"},__gh("div",{className:"SEC-over rv","data-gufi-src":"page.tsx:7115"},tr("Lo que dicen")),__gh("h2",{className:"SEC-h rv rv-1","data-gufi-src":"page.tsx:7117"},resenas.length>0?tr("Gente que ya lo ha probado"):CITAS_ON?conPro(tr("\xBFYa te ha tratado {pro}?")):tr("\xBFYa has comprado aqu\xED?")),resenas.length===0&&__gh("p",{className:"RS-invita","data-gufi-src":"page.tsx:7118"},tr(CITAS_ON?"Cu\xE9ntalo en dos l\xEDneas. Ayuda a quien est\xE1 dudando si llamar.":"Cu\xE9ntalo en dos l\xEDneas. Ayuda a quien est\xE1 dudando si comprar.")),__gh("div",{className:"RS-g","data-gufi-src":"page.tsx:7119"},resenas.slice(0,6).map((r,i)=>__gh("figure",{className:`RS-c rv rv-${Math.min(i+1,4)}`,key:r.id,"data-gufi-src":"page.tsx:7121"},Number(r.rating)>0&&__gh("div",{className:"RS-est","aria-label":`${Number(r.rating)} de 5`,"data-gufi-src":"page.tsx:7123"},"\u2605\u2605\u2605\u2605\u2605".slice(0,Math.round(Number(r.rating)))),str(r.titulo)?__gh("div",{className:"RS-t","data-gufi-src":"page.tsx:7127"},str(r.titulo)):null,__gh("blockquote",{className:"RS-x","data-gufi-src":"page.tsx:7128"},str(r.texto)),__gh("figcaption",{className:"RS-n","data-gufi-src":"page.tsx:7129"},str(r.nombre)||tr("Cliente"),r.verificada===!0&&__gh("span",{className:"RS-v","data-gufi-src":"page.tsx:7131"},tr("Verificada")))))),resenaHecha?__gh("p",{className:"RS-ok","data-gufi-src":"page.tsx:7141"},conPro(tr("Gracias. {pro} la revisa y la publica."))):user?resenaAbierta?__gh("form",{className:"RS-f",onSubmit:e=>{e.preventDefault();let fd=new FormData(e.currentTarget);enviarResena(str(fd.get("texto")),str(fd.get("titulo")))},"data-gufi-src":"page.tsx:7144"},__gh("div",{className:"RS-f-est",role:"radiogroup","aria-label":tr("Tu valoraci\xF3n"),"data-gufi-src":"page.tsx:7149"},[1,2,3,4,5].map(n2=>__gh("button",{type:"button",key:n2,className:`RS-f-e ${resenaEstrellas>=n2?"on":""}`,"aria-label":`${n2}`,onClick:()=>setResenaEstrellas(n2),"data-gufi-src":"page.tsx:7151"},"\u2605"))),__gh("input",{name:"titulo",maxLength:120,placeholder:tr("Un titular (opcional)"),"data-gufi-src":"page.tsx:7157"}),__gh("textarea",{name:"texto",required:!0,rows:4,placeholder:tr("\xBFQu\xE9 te pasaba y c\xF3mo fue? Lo que te habr\xEDa gustado leer a ti antes de llamar."),"data-gufi-src":"page.tsx:7158"}),__gh("div",{className:"RS-f-b","data-gufi-src":"page.tsx:7159"},__gh("button",{type:"submit",className:"H-cta-fill",disabled:resenaEnviando,"data-gufi-src":"page.tsx:7160"},resenaEnviando?"\u2026":tr("Enviar mi rese\xF1a")),__gh("button",{type:"button",className:"RS-f-x",onClick:()=>setResenaAbierta(!1),"data-gufi-src":"page.tsx:7163"},tr("Cancelar")))):__gh("button",{className:"H-cta-out RS-abrir",onClick:()=>setResenaAbierta(!0),"data-gufi-src":"page.tsx:7167"},resenas.length>0?tr("Dejar mi rese\xF1a"):tr("S\xE9 el primero en contarlo")):__gh("button",{className:"H-cta-out RS-abrir",onClick:()=>{syncSy(),setAuthMode("login"),setAuthOpen(!0)},"data-gufi-src":"page.tsx:7172"},tr("Entra para dejar la tuya"))))),test:()=>__gh(__gf,null,quizPreguntas.length>0&&__gh("section",{className:"S QZ-cta","data-gufi-src":"page.tsx:7184"},__gh("div",{"data-gufi-src":"page.tsx:7185"},__gh("span",{className:"QZ-cta-ov","data-gufi-src":"page.tsx:7188"},tr(quizDeConsulta?"Antes de la sesi\xF3n":"\xBFNo sabes por d\xF3nde empezar?")),__gh("h2",{"data-gufi-src":"page.tsx:7189"},tr(quizDeConsulta?"Cu\xE9ntale tu caso":"Te ayudamos a elegir")),__gh("p",{"data-gufi-src":"page.tsx:7190"},quizPreguntas.length," ",quizPreguntas.length===1?tr("pregunta"):tr("preguntas")," \xB7 ",tr("menos de un minuto"))),__gh("button",{className:"cta",onClick:abrirQuiz,"data-gufi-src":"page.tsx:7192"},tr(quizDeConsulta?"Contar mi caso":"Hacer el test")))),packs:()=>__gh(__gf,null,packs.length>0&&__gh("section",{className:"S PKS",id:"packs","data-gufi-src":"page.tsx:7201"},__gh("div",{style:{textAlign:"center",marginBottom:"clamp(28px,4vw,44px)"},"data-gufi-src":"page.tsx:7202"},__gh("span",{style:{fontSize:10,letterSpacing:".2em",textTransform:"uppercase",color:"var(--t3)",display:"block",marginBottom:12,fontWeight:500},"data-gufi-src":"page.tsx:7203"},tr("Packs")),__gh("h2",{style:{fontSize:"clamp(2.2rem,4.5vw,3.6rem)",marginBottom:8},"data-gufi-src":"page.tsx:7204"},tr("Comprado junto, sale mejor"))),__gh("div",{className:"PK-g","data-gufi-src":"page.tsx:7206"},packs.map(pk=>{let tope=stockDePack(pk),agotado=tope!==null&&tope<=0;return __gh("a",{key:pk.id,className:"PK",href:gufi.router.url(`/pack/${encodeURIComponent(String(pk.id))}`),onClick:alNavegar(()=>{try{gufi.track?.selectItem("Packs",itemDePackMedido(pk))}catch{}abrirPack(pk)}),"data-gufi-src":"page.tsx:7211"},__gh("div",{className:"PK-img","data-gufi-src":"page.tsx:7212"},pk.fotoPropia?__gh(RetryImg,{src:pk.fotoPropia,alt:str(pk.nombre),loading:"lazy",decoding:"async"}):pk.fotos.length>0?__gh("span",{className:`PK-ab n${pk.fotos.length}`,"data-gufi-src":"page.tsx:7216"},pk.fotos.map((u,i)=>__gh(RetryImg,{key:i,src:u,alt:pk.fotosAlt[i],loading:"lazy",decoding:"async"}))):__gh(RetryImg,{src:IMG_PLACEHOLDER,alt:str(pk.nombre),loading:"lazy",decoding:"async"}),pk.badge&&__gh("span",{className:"PK-bd","data-gufi-src":"page.tsx:7222"},str(pk.badge)),agotado&&__gh("span",{className:"PK-out","data-gufi-src":"page.tsx:7223"},tr("Sin stock"))),__gh("div",{className:"PK-b","data-gufi-src":"page.tsx:7225"},__gh("div",{className:"PK-n","data-gufi-src":"page.tsx:7226"},str(pk.nombre)),pk.tagline&&__gh("div",{className:"PK-tl","data-gufi-src":"page.tsx:7227"},str(pk.tagline)),__gh("div",{className:"PK-c","data-gufi-src":"page.tsx:7228"},pk.lineas.length," ",pk.lineas.length===1?tr("producto"):tr("productos")),__gh("div",{className:"PK-p","data-gufi-src":"page.tsx:7229"},__gh("span",{className:"nw","data-gufi-src":"page.tsx:7230"},price(pk.precio)),pk.ahorro>0&&__gh("span",{className:"og","data-gufi-src":"page.tsx:7231"},price(pk.suelto))),pk.ahorro>0&&pk.mostrar_ahorro!==!1&&__gh("div",{className:"PK-sv","data-gufi-src":"page.tsx:7234"},tr("Ahorras")," ",price(pk.ahorro))))})))),catalogo:()=>__gh(__gf,null,__gh("section",{className:"S",id:"shop",style:{paddingTop:"clamp(80px,12vw,140px)"},"data-gufi-src":"page.tsx:7246"},__gh("div",{style:{textAlign:"center",marginBottom:"clamp(32px,5vw,56px)"},"data-gufi-src":"page.tsx:7247"},__gh("span",{style:{fontSize:10,letterSpacing:".2em",textTransform:"uppercase",color:"var(--t3)",display:"block",marginBottom:12,fontWeight:500},"data-gufi-src":"page.tsx:7248"},String(s2.shop_overline||"")||(prods.length>0?tr("Colecci\xF3n completa"):tr("Pr\xF3ximamente"))),tituloDeCategoria?__gh("h1",{style:{fontSize:"clamp(2.5rem,5vw,4.5rem)",marginBottom:8},"data-gufi-src":"page.tsx:7250"},str(categoriaActual.nombre)):__gh("h2",{style:{fontSize:"clamp(2.5rem,5vw,4.5rem)",marginBottom:8},"data-gufi-src":"page.tsx:7251"},String(s2.shop_title||"")||(prods.length>0?tr("Toda la colecci\xF3n"):tr("Tu tienda"))),__gh("span",{style:{fontSize:13,color:"var(--t3)",fontWeight:400},"data-gufi-src":"page.tsx:7252"},prods.length>0?`${filtered.length}${tr(" productos")}`:tr("A\xFAn sin productos \u2014 a\xF1ade el primero \u2193"))),__gh("div",{className:"F",style:{justifyContent:"center"},"data-gufi-src":"page.tsx:7254"},__gh("a",{className:filter==null?"a":"",href:hrefInicio,onClick:alNavegar(()=>selectCat(null)),"data-gufi-src":"page.tsx:7255"},tr("Todo")),cats.map(c=>__gh("a",{key:c.id,className:filter===c.id?"a":"",href:hrefCategoria(c),onClick:alNavegar(()=>selectCat(c.id)),"data-gufi-src":"page.tsx:7256"},str(c.nombre)))),__gh("div",{style:{maxWidth:360,margin:"-12px auto clamp(28px,4vw,40px)",position:"relative"},"data-gufi-src":"page.tsx:7258"},__gh("input",{id:"shop-search",value:search,onChange:e=>setSearch(e.target.value),placeholder:tr("Buscar productos..."),style:{width:"100%",padding:"12px 20px 12px 40px",border:"1.5px solid rgba(0,0,0,.08)",borderRadius:50,fontSize:13,fontWeight:400,outline:"none",background:"#fafafa",transition:"border-color .2s"},onFocus:e=>e.currentTarget.style.borderColor="rgba(0,0,0,.2)",onBlur:e=>e.currentTarget.style.borderColor="rgba(0,0,0,.08)","data-gufi-src":"page.tsx:7259"}),__gh("svg",{viewBox:"0 0 24 24",width:"15",height:"15",fill:"none",stroke:"var(--t3)",strokeWidth:"1.8",style:{position:"absolute",left:16,top:"50%",transform:"translateY(-50%)",pointerEvents:"none"},"data-gufi-src":"page.tsx:7260"},__gh("circle",{cx:"11",cy:"11",r:"8","data-gufi-src":"page.tsx:7260"}),__gh("path",{d:"m21 21-4.35-4.35","data-gufi-src":"page.tsx:7260"})),search&&__gh("button",{onClick:()=>setSearch(""),style:{position:"absolute",right:14,top:"50%",transform:"translateY(-50%)",fontSize:16,color:"var(--t3)",lineHeight:1},"data-gufi-src":"page.tsx:7261"},"\u2715")),prods.length===0?__gh("div",{className:"G-empty","data-gufi-src":"page.tsx:7264"},__gh("div",{className:"G","aria-hidden":"true","data-gufi-src":"page.tsx:7265"},Array.from({length:8}).map((_,i)=>__gh("div",{className:"C C-sk",key:`sk-${i}`,"data-gufi-src":"page.tsx:7267"},__gh("div",{className:"C-img","data-gufi-src":"page.tsx:7268"}),__gh("div",{className:"C-f","data-gufi-src":"page.tsx:7269"},__gh("div",{className:"C-n-sk","data-gufi-src":"page.tsx:7270"}),__gh("div",{className:"C-p-sk","data-gufi-src":"page.tsx:7271"}))))),__gh("div",{className:"G-cta","data-gufi-src":"page.tsx:7276"},__gh("div",{className:"G-cta-ic","data-gufi-src":"page.tsx:7277"},"+"),__gh("h3",{"data-gufi-src":"page.tsx:7278"},tr("Tu primer producto aparecer\xE1 aqu\xED")),__gh("p",{"data-gufi-src":"page.tsx:7279"},tr("Empieza a construir tu cat\xE1logo desde el panel")),__gh("button",{onClick:()=>notify(tr("A\xF1ade tu primer producto desde el panel admin")),"data-gufi-src":"page.tsx:7280"},tr("A\xF1adir producto")))):__gh(__gf,null,__gh("div",{className:"G","data-gufi-src":"page.tsx:7285"},filtered.map(p=>__gh(Card,{key:p.id,p}))),filtered.length===0&&__gh("div",{style:{textAlign:"center",padding:"80px 0",color:"var(--t3)",fontSize:14},"data-gufi-src":"page.tsx:7286"},tr("No hay productos en esta categor\xEDa."))))),galeria:()=>__gh(__gf,null,GALLERY_ON&&__gh("section",{style:{margin:"clamp(48px,9vw,110px) auto",maxWidth:1280,padding:"0 clamp(16px,4vw,48px)"},"data-gufi-src":"page.tsx:7294"},__gh("div",{style:{textAlign:"center",marginBottom:"clamp(28px,4vw,48px)"},"data-gufi-src":"page.tsx:7295"},__gh("div",{style:{fontFamily:"var(--sn)",fontSize:10,letterSpacing:".3em",textTransform:"uppercase",color:"var(--ac)",marginBottom:12},"data-gufi-src":"page.tsx:7296"},tr("Inspiraci\xF3n")),GALLERY_TITLE&&__gh("h2",{style:{fontFamily:"var(--sf)",fontSize:"clamp(2rem,4vw,3.4rem)",fontWeight:300,color:"var(--t1)",margin:0},"data-gufi-src":"page.tsx:7297"},GALLERY_TITLE)),__gh("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))",gap:"clamp(8px,1.2vw,16px)"},"data-gufi-src":"page.tsx:7299"},GALLERY_IMAGES.map((src,i)=>__gh("div",{key:`gal-${i}`,style:{aspectRatio:"1 / 1",borderRadius:14,overflow:"hidden",background:"var(--bgc)"},"data-gufi-src":"page.tsx:7301"},__gh(RetryImg,{src,alt:"",loading:"lazy",style:{width:"100%",height:"100%",objectFit:"cover",display:"block",transition:"transform 1.2s var(--el)"},onMouseEnter:e=>{e.currentTarget.style.transform="scale(1.06)"},onMouseLeave:e=>{e.currentTarget.style.transform="scale(1)"}})))))),redes:()=>__gh(__gf,null,IG_URL&&__gh("section",{style:{textAlign:"center",padding:"clamp(60px,10vw,100px) var(--pm)",background:"var(--bgd)",color:"var(--tl)"},"data-gufi-src":"page.tsx:7313"},__gh("div",{style:{fontFamily:"var(--sn)",fontSize:10,letterSpacing:".3em",textTransform:"uppercase",color:"var(--sand)",marginBottom:18},"data-gufi-src":"page.tsx:7314"},__L==="es"?"Redes sociales":"Social media"),__gh("h2",{style:{fontFamily:"var(--sf)",fontSize:"clamp(2rem,4vw,3.2rem)",fontWeight:300,marginBottom:24,color:"var(--tl)"},"data-gufi-src":"page.tsx:7317"},__L==="es"?"S\xEDguenos en Instagram":"Follow us on Instagram"),__gh("a",{href:IG_URL,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",gap:12,padding:"14px 32px",borderRadius:50,border:"1px solid rgba(244,238,227,.25)",color:"var(--tl)",fontFamily:"var(--sn)",fontSize:12,letterSpacing:".12em",textTransform:"uppercase",textDecoration:"none",transition:"all .4s var(--el)"},onMouseEnter:e=>{e.currentTarget.style.borderColor="var(--sand)",e.currentTarget.style.color="var(--sand)"},onMouseLeave:e=>{e.currentTarget.style.borderColor="rgba(244,238,227,.25)",e.currentTarget.style.color="var(--tl)"},"data-gufi-src":"page.tsx:7320"},__gh("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor",strokeWidth:"1.5","data-gufi-src":"page.tsx:7342"},__gh("rect",{x:"3",y:"3",width:"18",height:"18",rx:"5","data-gufi-src":"page.tsx:7343"}),__gh("circle",{cx:"12",cy:"12",r:"4","data-gufi-src":"page.tsx:7344"}),__gh("circle",{cx:"17.5",cy:"6.5",r:"1",fill:"currentColor",stroke:"none","data-gufi-src":"page.tsx:7345"})),IG_HANDLE)))};return ordenPortada.map(sid=>__gh("div",{key:sid,"data-seccion":sid,"data-gufi-src":"page.tsx:7356"},BLOQUES[sid]?.()??null))})(),__gh("footer",{className:"FT","data-gufi-src":"page.tsx:7361"},__gh("div",{className:"FT-inner","data-gufi-src":"page.tsx:7362"},TIENDA_ON&&__gh("div",{className:"FT-news","data-gufi-src":"page.tsx:7365"},__gh("div",{className:"ftn-head","data-gufi-src":"page.tsx:7366"},__gh("h3",{"data-gufi-src":"page.tsx:7367"},tr("\xDAnete al club")),__gh("p",{"data-gufi-src":"page.tsx:7368"},"\u22125% ",tr("en tu primera compra"))),__gh("form",{onSubmit:e=>{e.preventDefault(),notify(tr("Bienvenido al club \u2014 5% de descuento aplicado")),e.target.reset()},"data-gufi-src":"page.tsx:7370"},__gh("div",{className:"ftn-iw","data-gufi-src":"page.tsx:7371"},__gh("input",{type:"email",placeholder:tr("Tu correo electr\xF3nico"),required:!0,autoComplete:"off","data-gufi-src":"page.tsx:7372"})),__gh("button",{type:"submit","data-gufi-src":"page.tsx:7374"},tr("Suscribirme"),__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7375"},__gh("line",{x1:"4",y1:"12",x2:"20",y2:"12","data-gufi-src":"page.tsx:7375"}),__gh("polyline",{points:"14 6 20 12 14 18","data-gufi-src":"page.tsx:7375"}))))),__gh("div",{className:"FT-g","data-gufi-src":"page.tsx:7381"},__gh("div",{className:"FT-br","data-gufi-src":"page.tsx:7382"},__gh("div",{className:"lg","data-gufi-src":"page.tsx:7383"},LOGO_SRC?__gh(RetryImg,{src:LOGO_SRC,alt:BRAND_DISPLAY,style:{height:28,width:"auto",objectFit:"contain",filter:"brightness(0) invert(1)"}}):__gh("h2",{"data-gufi-src":"page.tsx:7384"},BRAND_DISPLAY),__gh("span",{className:"tick","data-gufi-src":"page.tsx:7385"})),__gh("p",{className:"tagline","data-gufi-src":"page.tsx:7387"},SEASON_TAG||(__L==="es"?"Hecho con tiempo y oficio.":"Made with time and craft.")),(IG_URL||TT_URL||waHref||EMAIL_PUB||TW_URL||FB_URL)&&__gh("div",{className:"FT-soc","data-gufi-src":"page.tsx:7389"},IG_URL&&__gh("a",{href:IG_URL,target:"_blank",rel:"noopener noreferrer","aria-label":"Instagram","data-gufi-src":"page.tsx:7391"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7391"},__gh("rect",{x:"3",y:"3",width:"18",height:"18",rx:"5","data-gufi-src":"page.tsx:7391"}),__gh("circle",{cx:"12",cy:"12",r:"4","data-gufi-src":"page.tsx:7391"}),__gh("circle",{cx:"17.5",cy:"6.5",r:"1",fill:"currentColor",stroke:"none","data-gufi-src":"page.tsx:7391"}))),TT_URL&&__gh("a",{href:TT_URL,target:"_blank",rel:"noopener noreferrer","aria-label":"TikTok","data-gufi-src":"page.tsx:7394"},__gh("svg",{viewBox:"0 0 24 24",fill:"currentColor","data-gufi-src":"page.tsx:7394"},__gh("path",{d:"M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5.8 20.1a6.34 6.34 0 0 0 10.86-4.43V9.59a8.16 8.16 0 0 0 4.77 1.51V7.69a4.85 4.85 0 0 1-1.84-1z","data-gufi-src":"page.tsx:7394"}))),waHref&&__gh("a",{href:waHref,target:"_blank",rel:"noopener noreferrer","aria-label":"WhatsApp","data-gufi-src":"page.tsx:7397"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7397"},__gh("path",{d:"M20.52 3.48A11.93 11.93 0 0 0 12 0C5.37 0 0 5.37 0 12a11.94 11.94 0 0 0 1.64 6.06L0 24l6.11-1.6A11.94 11.94 0 0 0 12 24c6.63 0 12-5.37 12-12 0-3.2-1.25-6.21-3.48-8.52zM12 21.82a9.83 9.83 0 0 1-5.01-1.37l-.36-.21-3.63.95.97-3.54-.23-.37A9.81 9.81 0 1 1 21.82 12 9.83 9.83 0 0 1 12 21.82z","data-gufi-src":"page.tsx:7397"}),__gh("path",{d:"M17.4 14.4c-.3-.15-1.77-.87-2.05-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.17-.17.2-.35.22-.65.07-.3-.15-1.27-.47-2.42-1.5-.9-.8-1.5-1.78-1.67-2.08-.17-.3-.02-.46.13-.6.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.62-.92-2.22-.24-.58-.49-.5-.67-.51l-.57-.01c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48 0 1.46 1.06 2.87 1.21 3.07.15.2 2.1 3.21 5.09 4.5.71.31 1.27.49 1.7.63.71.23 1.36.2 1.87.12.57-.08 1.77-.72 2.02-1.42.25-.7.25-1.3.17-1.42-.07-.12-.27-.2-.57-.35z","data-gufi-src":"page.tsx:7397"}))),EMAIL_PUB&&__gh("a",{href:`mailto:${EMAIL_PUB}`,"aria-label":"Email","data-gufi-src":"page.tsx:7400"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7400"},__gh("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2","data-gufi-src":"page.tsx:7400"}),__gh("path",{d:"M4 7l8 6 8-6","data-gufi-src":"page.tsx:7400"}))),TW_URL&&__gh("a",{href:TW_URL,target:"_blank",rel:"noopener noreferrer","aria-label":"X","data-gufi-src":"page.tsx:7403"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7403"},__gh("path",{d:"M4 4l16 16M20 4L4 20","data-gufi-src":"page.tsx:7403"}))),FB_URL&&__gh("a",{href:FB_URL,target:"_blank",rel:"noopener noreferrer","aria-label":"Facebook","data-gufi-src":"page.tsx:7406"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7406"},__gh("path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z","data-gufi-src":"page.tsx:7406"}))))),TIENDA_ON&&__gh("div",{className:"FT-c","data-gufi-src":"page.tsx:7411"},__gh("h4",{"data-gufi-src":"page.tsx:7411"},tr("Tienda")),__gh("ul",{"data-gufi-src":"page.tsx:7411"},cats.slice(0,4).map(c=>__gh("li",{key:c.id,"data-gufi-src":"page.tsx:7413"},__gh("a",{href:hrefCategoria(c),onClick:alNavegar(()=>{selectCat(c.id),document.getElementById("shop")?.scrollIntoView({behavior:"smooth"})}),"data-gufi-src":"page.tsx:7413"},str(c.nombre)))),__gh("li",{"data-gufi-src":"page.tsx:7415"},__gh("a",{href:hrefInicio,onClick:alNavegar(()=>{selectCat(null),document.getElementById("shop")?.scrollIntoView({behavior:"smooth"})}),"data-gufi-src":"page.tsx:7415"},tr("Ver todo"))))),__gh("div",{className:"FT-c","data-gufi-src":"page.tsx:7417"},__gh("h4",{"data-gufi-src":"page.tsx:7417"},tr("Ayuda")),__gh("ul",{"data-gufi-src":"page.tsx:7417"},__gh("li",{"data-gufi-src":"page.tsx:7418"},__gh("button",{onClick:()=>{syncSy(),user?go("account"):(setAuthMode("login"),setAuthOpen(!0))},"data-gufi-src":"page.tsx:7418"},tr("Mi cuenta"))),CITAS_ON&&__gh("li",{"data-gufi-src":"page.tsx:7419"},__gh("button",{onClick:()=>{syncSy(),user?go("miscitas"):(setAuthMode("login"),setAuthOpen(!0))},"data-gufi-src":"page.tsx:7419"},tr("Mis citas"))),TIENDA_ON&&__gh(__gf,null,__gh("li",{"data-gufi-src":"page.tsx:7421"},__gh("button",{onClick:()=>{syncSy(),user?go("orders"):(setAuthMode("login"),setAuthOpen(!0))},"data-gufi-src":"page.tsx:7421"},tr("Pedidos"))),__gh("li",{"data-gufi-src":"page.tsx:7422"},__gh("button",{onClick:()=>setLegalPage("shipping"),"data-gufi-src":"page.tsx:7422"},tr("Env\xEDos"))),__gh("li",{"data-gufi-src":"page.tsx:7423"},__gh("button",{onClick:()=>setLegalPage("returns"),"data-gufi-src":"page.tsx:7423"},tr("Devoluciones"))),__gh("li",{"data-gufi-src":"page.tsx:7424"},__gh("button",{onClick:()=>setLegalPage("sizing"),"data-gufi-src":"page.tsx:7424"},tr("Gu\xEDa de tallas")))))),__gh("div",{className:"FT-c","data-gufi-src":"page.tsx:7427"},__gh("h4",{"data-gufi-src":"page.tsx:7427"},tr("Legal")),__gh("ul",{"data-gufi-src":"page.tsx:7427"},__gh("li",{"data-gufi-src":"page.tsx:7428"},__gh("button",{onClick:()=>setLegalPage("privacy"),"data-gufi-src":"page.tsx:7428"},tr("Privacidad"))),__gh("li",{"data-gufi-src":"page.tsx:7429"},__gh("button",{onClick:()=>setLegalPage("terms"),"data-gufi-src":"page.tsx:7429"},tr("T\xE9rminos"))),__gh("li",{"data-gufi-src":"page.tsx:7430"},__gh("button",{onClick:()=>setLegalPage("cookies"),"data-gufi-src":"page.tsx:7430"},tr("Cookies"))),__gh("li",{"data-gufi-src":"page.tsx:7433"},__gh("button",{onClick:abrirPreferenciasCookies,"data-gufi-src":"page.tsx:7433"},tr("Preferencias de cookies"))),!user&&TIENDA_ON&&__gh("li",{"data-gufi-src":"page.tsx:7436"},__gh("button",{onClick:()=>{setLookupResult(null),setLookupError(""),setLookupOpen(!0)},"data-gufi-src":"page.tsx:7436"},tr("Ver mi pedido"))),__gh("li",{"data-gufi-src":"page.tsx:7437"},__gh("button",{onClick:()=>setLegalPage("contact"),"data-gufi-src":"page.tsx:7437"},tr("Contacto")))))),TIENDA_ON&&__gh("div",{className:"FT-trust","data-gufi-src":"page.tsx:7441"},__gh("div",{"data-gufi-src":"page.tsx:7442"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7442"},__gh("path",{d:"M3 12h13M12 5l7 7-7 7","data-gufi-src":"page.tsx:7442"})),tr("Env\xEDo gratis +"),freeThreshold,"\u20AC"),__gh("div",{"data-gufi-src":"page.tsx:7443"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7443"},__gh("path",{d:"M3 12a9 9 0 109-9M3 12V6m0 6h6","data-gufi-src":"page.tsx:7443"})),tr("14 d\xEDas de devoluci\xF3n")),__gh("div",{"data-gufi-src":"page.tsx:7444"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7444"},__gh("path",{d:"M12 3l7 3v6c0 4-3 7-7 9-4-2-7-5-7-9V6l7-3z","data-gufi-src":"page.tsx:7444"})),tr("Pago seguro")),__gh("div",{"data-gufi-src":"page.tsx:7445"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7445"},__gh("rect",{x:"5",y:"11",width:"14",height:"9",rx:"2","data-gufi-src":"page.tsx:7445"}),__gh("path",{d:"M8 11V8a4 4 0 018 0v3","data-gufi-src":"page.tsx:7445"})),tr("100% original"))),__gh("div",{className:"FT-bt","data-gufi-src":"page.tsx:7448"},__gh("div",{className:"ft-copy","data-gufi-src":"page.tsx:7449"},"\xA9 2026 ",__gh("b",{"data-gufi-src":"page.tsx:7449"},BRAND_DISPLAY)," \xB7 ",tr("Hecho en Espa\xF1a")),__gh("div",{className:"ft-meta","data-gufi-src":"page.tsx:7450"},__gh("span",{className:"ft-locale","data-gufi-src":"page.tsx:7451"},__gh("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","data-gufi-src":"page.tsx:7451"},__gh("circle",{cx:"12",cy:"12",r:"9","data-gufi-src":"page.tsx:7451"}),__gh("path",{d:"M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18","data-gufi-src":"page.tsx:7451"})),tr("ES \xB7 EUR \u20AC")),__gh("button",{onClick:()=>setLegalPage("privacy"),"data-gufi-src":"page.tsx:7452"},tr("Privacidad")),__gh("button",{onClick:()=>setLegalPage("terms"),"data-gufi-src":"page.tsx:7453"},tr("T\xE9rminos")),__gh("button",{"data-gufi-src":"page.tsx:7454"},tr("Cookies"))))))),view==="citas"&&__gh("main",{"data-gufi-src":"page.tsx:7463"},__gh("div",{className:"RC","data-gufi-src":"page.tsx:7464"},citaPago?__gh("div",{className:"RC-ok","data-gufi-src":"page.tsx:7471"},citaPago.fase==="comprobando"&&__gh(__gf,null,__gh("h2",{"data-gufi-src":"page.tsx:7473"},tr("Confirmando el pago\u2026")),__gh("p",{"data-gufi-src":"page.tsx:7474"},tr("Un segundo: estamos comprobando con el banco que ha entrado."))),citaPago.fase==="pagada"&&__gh(__gf,null,__gh("h2",{"data-gufi-src":"page.tsx:7477"},tr("Pagado. Tu hora es tuya.")),__gh("div",{className:"RC-ok-res","data-gufi-src":"page.tsx:7478"},__gh("span",{"data-gufi-src":"page.tsx:7479"},str(citaPago.datos?.servicio)),__gh("b",{"data-gufi-src":"page.tsx:7480"},diaLargo(String(citaPago.datos?.fecha||""))," \xB7 ",str(citaPago.datos?.hora))),__gh("p",{"data-gufi-src":"page.tsx:7482"},tr("Hemos cobrado")," ",__gh("b",{"data-gufi-src":"page.tsx:7483"},price(Number(citaPago.datos?.importe||0))),"."," ",String(citaPago.datos?.estadoCita)==="confirmada"?tr("La cita est\xE1 confirmada."):conPro("{pro} la revisa y te confirma antes de la sesi\xF3n."))),citaPago.fase==="tarda"&&__gh(__gf,null,__gh("h2",{"data-gufi-src":"page.tsx:7490"},tr("El pago est\xE1 tardando en confirmarse")),__gh("p",{"data-gufi-src":"page.tsx:7491"},conPro("No cierres nada: en cuanto el banco lo confirme, la hora queda tuya y {pro} lo ve en su agenda. Si en unos minutos no te llega nada, escr\xEDbele."))),citaPago.fase==="sin_pago"&&__gh(__gf,null,__gh("h2",{"data-gufi-src":"page.tsx:7494"},tr("No se ha completado el pago")),__gh("p",{"data-gufi-src":"page.tsx:7495"},tr("No te hemos cobrado nada y la hora vuelve a quedar libre en unos minutos. Puedes intentarlo otra vez cuando quieras."))),__gh("button",{className:"H-cta-out",style:{marginTop:10},onClick:()=>{setCitaPago(null),setCitaHora(""),setCitaFecha(""),setCitaServicio(null),recargarMes(mesDe(hoyMadrid()))},"data-gufi-src":"page.tsx:7497"},citaPago.fase==="sin_pago"?tr("Elegir otra hora"):tr("Volver"))):citaHecha?__gh("div",{className:"RC-ok","data-gufi-src":"page.tsx:7504"},__gh("h2",{"data-gufi-src":"page.tsx:7505"},CONFIRMA_SOLA?"Tu cita est\xE1 reservada":"Tu cita est\xE1 pedida"),__gh("div",{className:"RC-ok-res","data-gufi-src":"page.tsx:7506"},__gh("span",{"data-gufi-src":"page.tsx:7507"},citaHecha.servicio),__gh("b",{"data-gufi-src":"page.tsx:7508"},diaLargo(citaHecha.fecha)," \xB7 ",citaHecha.hora)),__gh("p",{"data-gufi-src":"page.tsx:7510"},conPro(CONFIRMA_SOLA?"El hueco es tuyo. Si te surge algo, avisa a {pro} y se cambia sin problema.":"{pro} la revisa y te la confirma por tel\xE9fono o por correo antes de la sesi\xF3n. Si necesitas cambiarla, cont\xE9stale a ese mismo mensaje.")),AGENDA_RESERVA_NOTA&&__gh("p",{"data-gufi-src":"page.tsx:7515"},conPro(AGENDA_RESERVA_NOTA)),__gh("button",{className:"H-cta-out",style:{marginTop:10},onClick:()=>{setCitaHecha(null),setCitaHora(""),setCitaFecha(""),setCitaServicio(null),go("store")},"data-gufi-src":"page.tsx:7516"},tr("Volver al inicio"))):__gh(__gf,null,__gh("div",{className:"RC-head","data-gufi-src":"page.tsx:7523"},__gh("div",{className:"SEC-over","data-gufi-src":"page.tsx:7524"},SEASON_TAG||"Fisioterapia a domicilio"),__gh("h1",{className:"SEC-h","data-gufi-src":"page.tsx:7525"},"Reserva tu cita"),__gh("p",{className:"SEC-sub","data-gufi-src":"page.tsx:7526"},conPro(String(s2.agenda_sub||"Elige el tipo de sesi\xF3n, el d\xEDa y la hora. {pro} te confirma la cita antes de la sesi\xF3n.")))),notasPrefill&&__gh("div",{className:"RC-caso","data-gufi-src":"page.tsx:7537"},__gh("div",{className:"RC-caso-h","data-gufi-src":"page.tsx:7538"},__gh("span",{"data-gufi-src":"page.tsx:7539"},tr("Lo que nos has contado")),__gh("button",{onClick:()=>setNotasPrefill(""),"data-gufi-src":"page.tsx:7540"},tr("Quitar"))),notasPrefill.split(` `).filter(Boolean).map((l,i)=>__gh("div",{className:"RC-caso-l",key:i,"data-gufi-src":"page.tsx:7543"},l)),__gh("p",{className:"RC-caso-p","data-gufi-src":"page.tsx:7545"},conPro(tr("Se lo pasamos a {pro} con tu cita.")))),__gh("div",{className:"RC-paso","data-gufi-src":"page.tsx:7550"},__gh("div",{className:"RC-paso-t","data-gufi-src":"page.tsx:7551"},__gh("span",{className:"RC-paso-n","data-gufi-src":"page.tsx:7552"},"01"),__gh("h2",{"data-gufi-src":"page.tsx:7553"},tr("Tipo de sesi\xF3n")),citaServicio?__gh("em",{"data-gufi-src":"page.tsx:7554"},str(servicios.find(x=>Number(x.id)===Number(citaServicio))?.nombre||"")):null),__gh("div",{className:"RC-svc","data-gufi-src":"page.tsx:7556"},servicios.map(sv=>__gh("button",{key:sv.id,type:"button",className:Number(citaServicio)===Number(sv.id)?"a":"",onClick:()=>setCitaServicio(Number(sv.id)),"data-gufi-src":"page.tsx:7558"},__gh("span",{className:"RC-svc-n","data-gufi-src":"page.tsx:7564"},str(sv.nombre)),str(sv.descripcion)&&__gh("span",{className:"RC-svc-d","data-gufi-src":"page.tsx:7565"},str(sv.descripcion)),__gh("span",{className:"RC-svc-m","data-gufi-src":"page.tsx:7566"},MOSTRAR_PRECIO&&num(sv.precio)>0&&__gh("span",{className:"RC-svc-p","data-gufi-src":"page.tsx:7567"},price(sv.precio)),num(sv.duracion_min)>0&&__gh("span",{className:"RC-svc-dur","data-gufi-src":"page.tsx:7568"},num(sv.duracion_min)," min"),esOnlineSv(sv)&&__gh("span",{className:"SV-tag","data-gufi-src":"page.tsx:7569"},tr("Online"))),MOSTRAR_PRECIO&&promoDe(sv)!==null&&__gh("span",{className:"RC-svc-promo","data-gufi-src":"page.tsx:7572"},tr("Primera sesi\xF3n")," ",__gh("b",{"data-gufi-src":"page.tsx:7572"},price(promoDe(sv)))))))),__gh("div",{className:"RC-paso","data-gufi-src":"page.tsx:7583"},__gh("div",{className:"RC-paso-t","data-gufi-src":"page.tsx:7584"},__gh("span",{className:"RC-paso-n","data-gufi-src":"page.tsx:7585"},"02"),__gh("h2",{"data-gufi-src":"page.tsx:7586"},tr("D\xEDa y hora")),citaFecha&&citaHora?__gh("em",{"data-gufi-src":"page.tsx:7587"},diaLargo(citaFecha)," \xB7 ",citaHora):null),__gh("div",{className:"CAL-w","data-gufi-src":"page.tsx:7590"},__gh("div",{className:"CAL","data-gufi-src":"page.tsx:7591"},__gh("div",{className:"CAL-top","data-gufi-src":"page.tsx:7592"},__gh("button",{type:"button",className:"CAL-nav","aria-label":tr("Mes anterior"),disabled:citaMes<=mesActual(),onClick:()=>setCitaMes(mesMas(citaMes,-1)),"data-gufi-src":"page.tsx:7593"},__gh("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","data-gufi-src":"page.tsx:7600"},__gh("path",{d:"M15 18l-6-6 6-6","data-gufi-src":"page.tsx:7600"}))),__gh("span",{className:"CAL-mes","data-gufi-src":"page.tsx:7602"},nombreMes(citaMes)),__gh("button",{type:"button",className:"CAL-nav","aria-label":tr("Mes siguiente"),disabled:citaMes>=mesMas(mesActual(),11),onClick:()=>setCitaMes(mesMas(citaMes,1)),"data-gufi-src":"page.tsx:7603"},__gh("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round","data-gufi-src":"page.tsx:7610"},__gh("path",{d:"M9 18l6-6-6-6","data-gufi-src":"page.tsx:7610"})))),__gh("div",{className:"CAL-dow","data-gufi-src":"page.tsx:7613"},["L","M","X","J","V","S","D"].map((d,i)=>__gh("span",{key:i,"data-gufi-src":"page.tsx:7614"},d))),__gh("div",{className:"CAL-g","data-gufi-src":"page.tsx:7616"},rejillaMes(citaMes).map((iso,i)=>{if(!iso)return __gh("span",{className:"hueco",key:`h${i}`,"data-gufi-src":"page.tsx:7618"});let pasado=iso{setCitaFecha(iso),setCitaHora("")},"data-gufi-src":"page.tsx:7626"},Number(iso.slice(8)),!bloqueado&&d&&d.o>0&&__gh("span",{className:"CAL-pt","data-gufi-src":"page.tsx:7635"}))})),__gh("div",{className:"CAL-ley","data-gufi-src":"page.tsx:7640"},__gh("i",{"data-gufi-src":"page.tsx:7641"},__gh("span",{className:"CAL-pt","data-gufi-src":"page.tsx:7641"})," ",tr("Con parte del d\xEDa cogido")),__gh("i",{style:{textDecoration:"line-through",opacity:.55},"data-gufi-src":"page.tsx:7642"},tr("Sin huecos")),__gh("i",{style:{opacity:.45},"data-gufi-src":"page.tsx:7643"},tr("En gris, no trabaja")))),__gh("div",{"data-gufi-src":"page.tsx:7647"},!citaFecha&&__gh("div",{className:"RC-aviso","data-gufi-src":"page.tsx:7649"},"Elige un d\xEDa en el calendario y te ense\xF1o las horas que quedan libres."),citaFecha&&__gh(__gf,null,__gh("div",{className:"RC-dia","data-gufi-src":"page.tsx:7652"},diaLargo(citaFecha)),citaAgenda==="cargando"&&__gh("div",{className:"RC-aviso","data-gufi-src":"page.tsx:7653"},"Mirando la agenda\u2026"),citaAgenda==="error"&&__gh("div",{className:"RC-aviso mal","data-gufi-src":"page.tsx:7655"},"No he podido consultar la agenda (",citaAgendaError,"). Vuelve a elegir el d\xEDa o int\xE9ntalo en un momento \u2014 no reservo a ciegas para no darte una hora ocupada."),citaAgenda==="listo"&&(()=>{if(citaHoras.length===0)return __gh("div",{className:"RC-aviso","data-gufi-src":"page.tsx:7662"},conPro("Ese d\xEDa {pro} no atiende. Prueba con otro."));let libres=citaHoras.filter(h=>!citaOcupadas.includes(h)&&!horaPasada(h));return libres.length===0?__gh("div",{className:"RC-aviso","data-gufi-src":"page.tsx:7666"},"Ese d\xEDa no queda ning\xFAn hueco. Prueba con otro."):__gh(__gf,null,__gh("div",{className:"RC-horas","data-gufi-src":"page.tsx:7669"},citaHoras.map(h=>{let cogida=citaOcupadas.includes(h)||horaPasada(h);return __gh("button",{key:h,type:"button",disabled:cogida,className:citaHora===h?"a":"",onClick:()=>setCitaHora(h),title:cogida?tr("Hora no disponible"):void 0,"data-gufi-src":"page.tsx:7673"},h)})),__gh("p",{className:"RC-legal",style:{marginTop:14},"data-gufi-src":"page.tsx:7684"},libres.length===1?"Queda 1 hueco este d\xEDa.":`Quedan ${libres.length} huecos este d\xEDa.`))})())))),PEDIR_CUENTA&&!user?__gh("div",{className:"RC-paso","data-gufi-src":"page.tsx:7704"},__gh("div",{className:"RC-paso-t","data-gufi-src":"page.tsx:7705"},__gh("span",{className:"RC-paso-n","data-gufi-src":"page.tsx:7706"},"03"),__gh("h2",{"data-gufi-src":"page.tsx:7707"},tr("Entra en tu cuenta"))),__gh("div",{className:"RC-entrar","data-gufi-src":"page.tsx:7709"},__gh("p",{"data-gufi-src":"page.tsx:7710"},conPro("Para pedir hora hace falta una cuenta: es lo que permite avisarte cuando {pro} confirme la cita y que puedas verla y cambiarla.")),__gh("div",{className:"RC-entrar-bt","data-gufi-src":"page.tsx:7713"},__gh("button",{type:"button",className:"RC-enviar",onClick:()=>{pendingAfterLogin.current="cita",setAuthMode("login"),setAuthOpen(!0)},"data-gufi-src":"page.tsx:7714"},tr("Entrar")),__gh("button",{type:"button",className:"RC-crear",onClick:()=>{pendingAfterLogin.current="cita",setAuthMode("register"),setAuthOpen(!0)},"data-gufi-src":"page.tsx:7719"},tr("Crear cuenta"))),__gh("div",{className:"RC-legal","data-gufi-src":"page.tsx:7725"},tr("Tarda menos de un minuto y no te pedimos nada m\xE1s que tu nombre, tu correo y un tel\xE9fono.")))):__gh("div",{className:"RC-paso","data-gufi-src":"page.tsx:7729"},__gh("div",{className:"RC-paso-t","data-gufi-src":"page.tsx:7730"},__gh("span",{className:"RC-paso-n","data-gufi-src":"page.tsx:7731"},"03"),__gh("h2",{"data-gufi-src":"page.tsx:7732"},tr("Tus datos"))),__gh("form",{className:"RC-form",onSubmit:enviarCita,key:`rc-${user?.id||0}-${telDeUsuario}-${dirDeUsuario}`,"data-gufi-src":"page.tsx:7739"},__gh("label",{className:"ancho","data-gufi-src":"page.tsx:7745"},tr("Nombre y apellidos"),__gh("input",{name:"nombre",type:"text",required:!0,autoComplete:"name",defaultValue:str(user?.nombre||""),placeholder:"Nombre y apellidos","data-gufi-src":"page.tsx:7747"})),__gh("label",{"data-gufi-src":"page.tsx:7749"},tr("Tel\xE9fono"),__gh("input",{name:"telefono",type:"tel",required:!0,autoComplete:"tel",defaultValue:telDeUsuario,placeholder:"600 000 000","data-gufi-src":"page.tsx:7751"})),__gh("label",{"data-gufi-src":"page.tsx:7753"},tr("Email"),__gh("input",{name:"email",type:"email",required:!0,autoComplete:"email",defaultValue:str(user?.email||""),placeholder:"tu@correo.com","data-gufi-src":"page.tsx:7755"})),citaEsOnline?__gh("div",{className:"RC-aviso",style:{gridColumn:"1/-1"},"data-gufi-src":"page.tsx:7762"},"Es una sesi\xF3n ",__gh("strong",{"data-gufi-src":"page.tsx:7763"},"online"),": no hace falta direcci\xF3n."," ",conPro("{pro} te manda el enlace de la videollamada al confirmarte la cita.")):__gh("div",{className:"ancho RC-dir","data-gufi-src":"page.tsx:7767"},__gh("div",{className:"RC-dir-t","data-gufi-src":"page.tsx:7768"},tr("Direcci\xF3n donde vas a recibir la sesi\xF3n")),__gh("label",{className:"RC-dir-c","data-gufi-src":"page.tsx:7769"},__gh("span",{"data-gufi-src":"page.tsx:7769"},tr("Calle")),__gh("input",{value:citaDir.calle,required:!0,autoComplete:"address-line1",onChange:e=>{tocarDir(),setCitaDir(d=>({...d,calle:e.target.value}))},"data-gufi-src":"page.tsx:7770"})),__gh("div",{className:"RC-dir-4","data-gufi-src":"page.tsx:7773"},__gh("label",{className:"RC-dir-c","data-gufi-src":"page.tsx:7774"},__gh("span",{"data-gufi-src":"page.tsx:7774"},tr("N\xFAmero")),__gh("input",{value:citaDir.sinNumero?"s/n":citaDir.numero,disabled:citaDir.sinNumero,onChange:e=>{tocarDir(),setCitaDir(d=>({...d,numero:e.target.value}))},"data-gufi-src":"page.tsx:7775"})),__gh("label",{className:"RC-dir-c","data-gufi-src":"page.tsx:7778"},__gh("span",{"data-gufi-src":"page.tsx:7778"},tr("Portal")),__gh("input",{value:citaDir.portal,onChange:e=>{tocarDir(),setCitaDir(d=>({...d,portal:e.target.value}))},"data-gufi-src":"page.tsx:7779"})),__gh("label",{className:"RC-dir-c","data-gufi-src":"page.tsx:7781"},__gh("span",{"data-gufi-src":"page.tsx:7781"},tr("Piso")),__gh("input",{value:citaDir.piso,onChange:e=>{tocarDir(),setCitaDir(d=>({...d,piso:e.target.value}))},"data-gufi-src":"page.tsx:7782"})),__gh("label",{className:"RC-dir-c","data-gufi-src":"page.tsx:7784"},__gh("span",{"data-gufi-src":"page.tsx:7784"},tr("Puerta")),__gh("input",{value:citaDir.puerta,onChange:e=>{tocarDir(),setCitaDir(d=>({...d,puerta:e.target.value}))},"data-gufi-src":"page.tsx:7785"}))),__gh("label",{className:"RC-dir-sn","data-gufi-src":"page.tsx:7788"},__gh("input",{type:"checkbox",checked:citaDir.sinNumero,onChange:e=>{tocarDir(),setCitaDir(d=>({...d,sinNumero:e.target.checked}))},"data-gufi-src":"page.tsx:7789"}),__gh("span",{"data-gufi-src":"page.tsx:7791"},tr("Sin n\xFAmero (s/n)"))),__gh("label",{className:"RC-dir-c","data-gufi-src":"page.tsx:7793"},__gh("span",{"data-gufi-src":"page.tsx:7793"},tr("C\xF3digo postal")),__gh("input",{value:citaDir.cp,inputMode:"numeric",maxLength:5,onChange:e=>{tocarDir(),setCitaDir(d=>({...d,cp:e.target.value.replace(/\D/g,"").slice(0,5)}))},"data-gufi-src":"page.tsx:7794"})),citaDir.cp.length===5&&getCityFromCP(citaDir.cp)&&__gh("div",{className:"RC-dir-cp","data-gufi-src":"page.tsx:7798"},getCityFromCP(citaDir.cp),", ",tr("Espa\xF1a"))),__gh("label",{className:"ancho","data-gufi-src":"page.tsx:7802"},tr("Qu\xE9 te pasa (opcional)"),__gh("textarea",{key:notasPrefill?"con-test":"vacio",name:"notas",defaultValue:notasPrefill,placeholder:"Cu\xE9ntale brevemente qu\xE9 te duele, desde cu\xE1ndo y si tienes alguna prueba m\xE9dica.","data-gufi-src":"page.tsx:7807"})),citaLista&&__gh("div",{className:"RC-resumen","data-gufi-src":"page.tsx:7814"},__gh("span",{"data-gufi-src":"page.tsx:7815"},__gh("b",{"data-gufi-src":"page.tsx:7815"},str(servicios.find(x=>Number(x.id)===Number(citaServicio))?.nombre||""))),__gh("span",{"data-gufi-src":"page.tsx:7816"},diaLargo(citaFecha)," \xB7 ",__gh("b",{"data-gufi-src":"page.tsx:7816"},citaHora)),(()=>{if(!MOSTRAR_PRECIO)return null;let sv=servicios.find(x=>Number(x.id)===Number(citaServicio));if(!(num(sv?.precio)>0))return null;let promo=promoDe(sv);return promo!==null?__gh("span",{"data-gufi-src":"page.tsx:7823"},price(sv.precio)," \xB7 ",__gh("b",{"data-gufi-src":"page.tsx:7823"},price(promo))," ",tr("si es tu primera sesi\xF3n")):__gh("span",{"data-gufi-src":"page.tsx:7824"},price(sv.precio))})()),citaError&&__gh("div",{className:"RC-aviso mal",style:{gridColumn:"1/-1"},"data-gufi-src":"page.tsx:7829"},citaError),__gh("button",{className:"RC-enviar",type:"submit",disabled:!citaLista||citaEnviando,"data-gufi-src":"page.tsx:7831"},tr(citaEnviando?"Enviando\u2026":"Pedir esta cita")),!citaLista&&__gh("div",{className:"RC-legal","data-gufi-src":"page.tsx:7835"},"Faltan por elegir: ",[citaServicio?null:"el tipo de sesi\xF3n",citaFecha?null:"el d\xEDa",citaHora?null:"la hora"].filter(Boolean).join(", "),"."),__gh("div",{className:"RC-legal","data-gufi-src":"page.tsx:7843"},"Tus datos se usan solo para atender esta cita."," ",CONFIRMA_SOLA?__gh(__gf,null,"La hora queda ",__gh("strong",{"data-gufi-src":"page.tsx:7846"},"reservada")," en cuanto la pidas."):__gh(__gf,null,"La reserva queda como ",__gh("strong",{"data-gufi-src":"page.tsx:7847"},"pendiente")," ",conPro("hasta que {pro} te la confirma.")))))))),view==="about"&&__gh("main",{style:{paddingTop:48},"data-gufi-src":"page.tsx:7858"},__gh("div",{style:{maxWidth:1100,margin:"0 auto",padding:"clamp(48px,7vw,90px) clamp(20px,5vw,56px)"},"data-gufi-src":"page.tsx:7860"},__gh("div",{style:{display:"flex",flexWrap:"wrap",gap:"clamp(28px,4vw,52px)",alignItems:"flex-start"},"data-gufi-src":"page.tsx:7865"},FAMILY_IMG&&__gh("div",{className:"AB-foto",style:{flex:"0 1 300px",borderRadius:16,overflow:"hidden",boxShadow:"0 20px 60px rgba(0,0,0,.08)"},"data-gufi-src":"page.tsx:7874"},__gh(RetryImg,{src:FAMILY_IMG,alt:FAMILY_TITLE||"",style:{width:"100%",height:"auto",objectFit:"cover",display:"block"}})),__gh("div",{style:{flex:"1 1 420px",maxWidth:"68ch"},"data-gufi-src":"page.tsx:7880"},__gh("h2",{style:{fontSize:"clamp(1.6rem,3vw,2.4rem)",fontWeight:400,lineHeight:1.15,color:"var(--t1)",margin:"0 0 20px",letterSpacing:".01em"},"data-gufi-src":"page.tsx:7881"},FAMILY_TITLE||"\xBFQui\xE9nes somos?"),FAMILY_TEXT.split(/\n\s*\n/).map(par=>par.trim()).filter(Boolean).map((par,i)=>par.startsWith("## ")?__gh("h3",{key:i,style:{fontSize:"clamp(1.05rem,1.6vw,1.3rem)",fontWeight:640,letterSpacing:"-.025em",color:"var(--t1)",margin:i===0?"0 0 14px":"38px 0 14px",lineHeight:1.2},"data-gufi-src":"page.tsx:7890"},par.slice(3)):__gh("p",{key:i,style:{fontSize:"clamp(14px,1.35vw,15.5px)",lineHeight:1.75,color:"var(--t2)",margin:"0 0 16px"},"data-gufi-src":"page.tsx:7895"},par.split(/(\*\*[^*]+\*\*)/g).filter(Boolean).map((tr2,j)=>tr2.startsWith("**")&&tr2.endsWith("**")?__gh("strong",{key:j,style:{color:"var(--t1)",fontWeight:620},"data-gufi-src":"page.tsx:7900"},tr2.slice(2,-2)):__gh(import_react3.default.Fragment,{key:j},tr2)))))),__gh("div",{style:{maxWidth:720,margin:"clamp(48px,7vw,90px) auto 0",textAlign:"center",padding:"clamp(32px,5vw,56px)",background:"var(--bgc)",borderRadius:20,border:"1px solid rgba(207,196,176,.25)"},"data-gufi-src":"page.tsx:7910"},CITAS_ON?__gh("button",{className:"H-cta-fill",onClick:()=>irAReservar(),style:{marginTop:8},"data-gufi-src":"page.tsx:7916"},tr(AGENDA_CTA)):__gh("button",{className:"cta",onClick:()=>go("store"),style:{marginTop:36},"data-gufi-src":"page.tsx:7917"},tr("Ver la colecci\xF3n")),IG_URL&&__gh("a",{href:IG_URL,target:"_blank",rel:"noopener noreferrer",style:{display:"inline-flex",alignItems:"center",gap:12,marginTop:24,padding:"14px 32px",borderRadius:50,background:"var(--brand-nav-bg, #1a1a1a)",color:"var(--sand, #C9A24B)",fontFamily:"var(--sn)",fontSize:12,letterSpacing:".14em",textTransform:"uppercase",textDecoration:"none",fontWeight:500,transition:"all .4s var(--el)",boxShadow:"0 4px 16px rgba(0,0,0,.12)"},onMouseEnter:e=>{e.currentTarget.style.transform="translateY(-2px)",e.currentTarget.style.boxShadow="0 8px 24px rgba(0,0,0,.18)"},onMouseLeave:e=>{e.currentTarget.style.transform="translateY(0)",e.currentTarget.style.boxShadow="0 4px 16px rgba(0,0,0,.12)"},"data-gufi-src":"page.tsx:7921"},__gh("svg",{viewBox:"0 0 24 24",width:"18",height:"18",fill:"none",stroke:"currentColor",strokeWidth:"1.6",style:{flexShrink:0},"data-gufi-src":"page.tsx:7946"},__gh("rect",{x:"3",y:"3",width:"18",height:"18",rx:"5","data-gufi-src":"page.tsx:7947"}),__gh("circle",{cx:"12",cy:"12",r:"4","data-gufi-src":"page.tsx:7948"}),__gh("circle",{cx:"17.5",cy:"6.5",r:"1.5",fill:"currentColor",stroke:"none","data-gufi-src":"page.tsx:7949"})),__L==="es"?"S\xEDguenos en Instagram":"Follow us on Instagram")))),view==="checkout"&&__gh("div",{className:"CHK","data-gufi-src":"page.tsx:7960"},__gh("div",{className:"CHK-form",style:{padding:"clamp(24px,4vw,56px)",paddingTop:"clamp(32px,4vw,48px)"},"data-gufi-src":"page.tsx:7962"},__gh("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:32},"data-gufi-src":"page.tsx:7963"},__gh("span",{style:{fontWeight:900,fontSize:18,letterSpacing:".08em",textTransform:"uppercase",cursor:"pointer",display:"inline-flex",alignItems:"center"},onClick:()=>go("store"),"data-gufi-src":"page.tsx:7964"},LOGO_SRC?__gh(RetryImg,{src:LOGO_SRC,alt:BRAND_DISPLAY,style:{height:28,width:"auto",objectFit:"contain",display:"block"}}):BRAND),__gh("button",{onClick:()=>go("store"),style:{fontSize:11,letterSpacing:".06em",textTransform:"uppercase",fontWeight:500,color:"var(--t2)"},"data-gufi-src":"page.tsx:7969"},tr("\u2190 Seguir comprando"))),__gh("form",{onSubmit:handleCheckout,"data-gufi-src":"page.tsx:7973"},__gh("div",{style:{marginBottom:24},"data-gufi-src":"page.tsx:7974"},__gh("div",{style:{fontSize:11,fontWeight:600,letterSpacing:".08em",textTransform:"uppercase",marginBottom:12},"data-gufi-src":"page.tsx:7975"},tr("Contacto")),__gh("input",{name:"email",type:"email",required:!0,defaultValue:user?.email||guest?.email||"",placeholder:tr("Email"),onChange:e=>{user||setGuestEmail(e.target.value)},style:{width:"100%",padding:"14px 18px",border:"1.5px solid rgba(0,0,0,.1)",outline:"none",fontSize:14,marginBottom:8,borderRadius:12,transition:"border-color .2s, box-shadow .2s"},onFocus:e=>{e.target.style.borderColor="#635BFF",e.target.style.boxShadow="0 0 0 3px rgba(99,91,255,.1)"},onBlur:e=>{e.target.style.borderColor="rgba(0,0,0,.1)",e.target.style.boxShadow="none"},"data-gufi-src":"page.tsx:7976"}),!user&&__gh(__gf,null,__gh("input",{name:"email_confirm",type:"email",required:!0,value:guestEmailConfirm,onChange:e=>setGuestEmailConfirm(e.target.value),placeholder:tr("Repite tu email"),style:{width:"100%",padding:"14px 18px",border:`1.5px solid ${guestEmailConfirm&&!guestEmailMatch?"#e74c3c":"rgba(0,0,0,.1)"}`,outline:"none",fontSize:14,marginBottom:8,borderRadius:12},"data-gufi-src":"page.tsx:7985"}),guestEmailConfirm&&!guestEmailMatch&&__gh("div",{style:{fontSize:12,color:"#c0392b",fontWeight:600,marginBottom:8},"data-gufi-src":"page.tsx:7995"},tr("Los dos emails no coinciden")),__gh("div",{style:{fontSize:11,color:"var(--t3)",marginBottom:8,lineHeight:1.5},"data-gufi-src":"page.tsx:7997"},tr("Ah\xED te enviamos la confirmaci\xF3n y el seguimiento. Compras sin cuenta: podr\xE1s crearla despu\xE9s con el mismo email.")))),__gh("div",{style:{marginBottom:24},"data-gufi-src":"page.tsx:8008"},__gh("div",{style:{fontSize:11,fontWeight:600,letterSpacing:".08em",textTransform:"uppercase",marginBottom:12},"data-gufi-src":"page.tsx:8009"},tr("Direcci\xF3n de env\xEDo")),__gh("div",{style:{marginBottom:12},"data-gufi-src":"page.tsx:8015"},__gh("label",{style:{display:"block",fontSize:11,fontWeight:700,color:"rgba(0,0,0,.7)",textTransform:"uppercase",letterSpacing:".05em",marginBottom:6},"data-gufi-src":"page.tsx:8016"},tr("C\xF3digo postal")," ",__gh("span",{style:{color:"#c0392b"},"data-gufi-src":"page.tsx:8017"},"*")),__gh("input",{name:"cp",required:!0,inputMode:"numeric",pattern:"[0-9]{5}",maxLength:5,value:cpInput,onChange:e=>setCpInput(e.target.value.replace(/\D/g,"").slice(0,5)),placeholder:"28001",autoFocus:!0,style:{width:"100%",padding:"14px 18px",border:`1.5px solid ${cpZoneBlocked||cpInvalidFormat?"#e74c3c":cpCity?"#27ae60":"rgba(0,0,0,.1)"}`,outline:"none",fontSize:16,marginBottom:6,borderRadius:12,fontWeight:600,letterSpacing:".04em"},onFocus:e=>{!cpZoneBlocked&&!cpInvalidFormat&&!cpCity&&(e.target.style.borderColor="#635BFF",e.target.style.boxShadow="0 0 0 3px rgba(99,91,255,.1)")},onBlur:e=>{!cpZoneBlocked&&!cpInvalidFormat&&!cpCity&&(e.target.style.borderColor="rgba(0,0,0,.1)",e.target.style.boxShadow="none")},"data-gufi-src":"page.tsx:8019"}),cpInput.length===5&&cpCity&&!cpZoneBlocked&&__gh("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:4,fontSize:12,color:"#1b6b3a",fontWeight:600},"data-gufi-src":"page.tsx:8034"},__gh("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"#1b6b3a",strokeWidth:"2","data-gufi-src":"page.tsx:8035"},__gh("path",{d:"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z","data-gufi-src":"page.tsx:8035"}),__gh("circle",{cx:"12",cy:"10",r:"3","data-gufi-src":"page.tsx:8035"})),cpCity,", ",tr("Espa\xF1a")," \xB7 ",tr("Env\xEDo")," ",shipFree?tr("Gratis"):price(cpShipBase)),(cpZoneBlocked||cpInvalidFormat)&&__gh("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px",marginBottom:4,marginTop:4,fontSize:12,color:"#c0392b",fontWeight:600,background:"#fdedec",border:"1px solid #f5b7b1",borderRadius:8},"data-gufi-src":"page.tsx:8040"},__gh("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"#c0392b",strokeWidth:"2.5",style:{flexShrink:0},"data-gufi-src":"page.tsx:8041"},__gh("circle",{cx:"12",cy:"12",r:"10","data-gufi-src":"page.tsx:8041"}),__gh("line",{x1:"12",y1:"8",x2:"12",y2:"12","data-gufi-src":"page.tsx:8041"}),__gh("line",{x1:"12",y1:"16",x2:"12.01",y2:"16","data-gufi-src":"page.tsx:8041"})),__gh("span",{"data-gufi-src":"page.tsx:8042"},tr("No realizamos env\xEDos a esta direcci\xF3n"),cpZoneBlocked?` \xB7 ${tr("Canarias, Ceuta o Melilla")}`:"")),!cpInput&&__gh("div",{style:{fontSize:11,color:"var(--t3)",marginTop:4},"data-gufi-src":"page.tsx:8046"},tr("Lo necesitamos para calcular el env\xEDo y activar el pago."))),cpDirectory&&cpInput.length===5&&cpLocalidades.length===0&&!cpZoneBlocked&&__gh("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px",marginBottom:12,fontSize:12,color:"#c0392b",fontWeight:600,background:"#fdedec",border:"1px solid #f5b7b1",borderRadius:8},"data-gufi-src":"page.tsx:8062"},__gh("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"#c0392b",strokeWidth:"2.5",style:{flexShrink:0},"data-gufi-src":"page.tsx:8063"},__gh("circle",{cx:"12",cy:"12",r:"10","data-gufi-src":"page.tsx:8063"}),__gh("line",{x1:"12",y1:"8",x2:"12",y2:"12","data-gufi-src":"page.tsx:8063"}),__gh("line",{x1:"12",y1:"16",x2:"12.01",y2:"16","data-gufi-src":"page.tsx:8063"})),__gh("span",{"data-gufi-src":"page.tsx:8064"},tr("No encontramos ese c\xF3digo postal. Rev\xEDsalo, por favor."))),cpDirectory&&cpInput.length===5&&cpLocalidades.length>0&&__gh("div",{style:{marginBottom:12},"data-gufi-src":"page.tsx:8068"},__gh("label",{style:{display:"block",fontSize:11,fontWeight:700,color:"rgba(0,0,0,.7)",textTransform:"uppercase",letterSpacing:".05em",marginBottom:6},"data-gufi-src":"page.tsx:8069"},tr("Localidad")," ",__gh("span",{style:{color:"#c0392b"},"data-gufi-src":"page.tsx:8070"},"*")),cpLocalidades.length===1?__gh("div",{style:{padding:"14px 18px",border:"1.5px solid rgba(0,0,0,.1)",fontSize:14,borderRadius:12,background:"rgba(0,0,0,.02)"},"data-gufi-src":"page.tsx:8073"},cpLocalidades[0]):__gh("select",{value:localidadSel,onChange:e=>setLocalidadSel(e.target.value),style:{width:"100%",padding:"14px 18px",border:`1.5px solid ${localidadSel?"#27ae60":"rgba(0,0,0,.1)"}`,outline:"none",fontSize:14,borderRadius:12,background:"#fff"},"data-gufi-src":"page.tsx:8075"},__gh("option",{value:"","data-gufi-src":"page.tsx:8080"},tr("Elige tu localidad")),cpLocalidades.map(l=>__gh("option",{key:l,value:l,"data-gufi-src":"page.tsx:8081"},l)))),__gh("input",{name:"nombre",required:!0,value:nombreInput,onChange:e=>setNombreInput(e.target.value),placeholder:tr("Nombre y apellidos *"),style:{width:"100%",padding:"14px 18px",border:"1.5px solid rgba(0,0,0,.1)",outline:"none",fontSize:14,marginBottom:10,borderRadius:12},onFocus:e=>{e.target.style.borderColor="#635BFF",e.target.style.boxShadow="0 0 0 3px rgba(99,91,255,.1)"},onBlur:e=>{e.target.style.borderColor="rgba(0,0,0,.1)",e.target.style.boxShadow="none"},"data-gufi-src":"page.tsx:8087"}),__gh("input",{name:"telefono",type:"tel",required:!0,value:telefonoInput,onChange:e=>setTelefonoInput(e.target.value),placeholder:tr("Tel\xE9fono"),style:{width:"100%",padding:"14px 18px",border:"1.5px solid rgba(0,0,0,.1)",outline:"none",fontSize:14,marginBottom:10,borderRadius:12},onFocus:e=>{e.target.style.borderColor="#635BFF",e.target.style.boxShadow="0 0 0 3px rgba(99,91,255,.1)"},onBlur:e=>{e.target.style.borderColor="rgba(0,0,0,.1)",e.target.style.boxShadow="none"},"data-gufi-src":"page.tsx:8088"}),__gh("input",{name:"direccion",required:!0,value:direccionInput,onChange:e=>setDireccionInput(e.target.value),placeholder:tr("Calle, n\xFAmero, piso\u2026 *"),style:{width:"100%",padding:"14px 18px",border:"1.5px solid rgba(0,0,0,.1)",outline:"none",fontSize:14,marginBottom:10,borderRadius:12},onFocus:e=>{e.target.style.borderColor="#635BFF",e.target.style.boxShadow="0 0 0 3px rgba(99,91,255,.1)"},onBlur:e=>{e.target.style.borderColor="rgba(0,0,0,.1)",e.target.style.boxShadow="none"},"data-gufi-src":"page.tsx:8089"}),__gh("input",{name:"notas",defaultValue:user?.notas||"",placeholder:tr("Notas de env\xEDo (opcional)"),style:{width:"100%",padding:"14px 18px",border:"1.5px solid rgba(0,0,0,.1)",outline:"none",fontSize:14,borderRadius:12},onFocus:e=>{e.target.style.borderColor="#635BFF",e.target.style.boxShadow="0 0 0 3px rgba(99,91,255,.1)"},onBlur:e=>{e.target.style.borderColor="rgba(0,0,0,.1)",e.target.style.boxShadow="none"},"data-gufi-src":"page.tsx:8090"}),__gh("input",{type:"hidden",name:"ciudad",value:shipCity,"data-gufi-src":"page.tsx:8091"}),__gh("input",{type:"hidden",name:"pais",value:"ES","data-gufi-src":"page.tsx:8092"})),checkoutError&&__gh("div",{style:{background:"#fef2f2",border:"1px solid #fecaca",padding:14,marginBottom:16,fontSize:13,color:"#991b1b",borderRadius:4},"data-gufi-src":"page.tsx:8095"},checkoutError),__gh("button",{type:"submit",disabled:checkoutLoading||!canPay,style:{width:"100%",padding:16,background:"#0a0a0a",color:"#fff",fontSize:14,fontWeight:600,letterSpacing:".03em",borderRadius:50,transition:"opacity .2s",opacity:canPay?checkoutLoading?.7:1:.4,marginTop:12,cursor:canPay?"pointer":"not-allowed"},onClick:()=>{canPay&&setCheckoutError("")},onMouseEnter:e=>{canPay&&!checkoutLoading&&(e.currentTarget.style.opacity=".85")},onMouseLeave:e=>{canPay&&!checkoutLoading&&(e.currentTarget.style.opacity="1")},"data-gufi-src":"page.tsx:8097"},checkoutLoading?tr("Procesando..."):canPay?isZeroPay?`${tr("Confirmar pedido \u2014 ")}${price(orderTotal)}`:`${tr("Pagar \u2014 ")}${price(orderTotal)}`:tr("Completa la direcci\xF3n")),__gh("div",{style:{display:"flex",gap:16,justifyContent:"center",marginTop:20,fontSize:11,color:"var(--t3)"},"data-gufi-src":"page.tsx:8108"},__gh("span",{"data-gufi-src":"page.tsx:8109"},tr("Pol\xEDtica de devoluci\xF3n")),__gh("span",{"data-gufi-src":"page.tsx:8109"},"\xB7"),__gh("span",{"data-gufi-src":"page.tsx:8109"},tr("Env\xEDos")),__gh("span",{"data-gufi-src":"page.tsx:8109"},"\xB7"),__gh("span",{"data-gufi-src":"page.tsx:8109"},tr("Privacidad"))))),__gh("div",{className:"CHK-sum",style:{padding:"clamp(24px,4vw,48px)",paddingTop:"clamp(32px,4vw,48px)",background:"#fafafa"},"data-gufi-src":"page.tsx:8115"},cart.map((x,i)=>__gh("div",{key:i,style:{display:"flex",gap:14,marginBottom:16,alignItems:"flex-start"},"data-gufi-src":"page.tsx:8117"},__gh("div",{style:{position:"relative",width:72,height:90,background:"#fff",borderRadius:12,overflow:"hidden",border:"1px solid rgba(0,0,0,.06)",flexShrink:0},"data-gufi-src":"page.tsx:8118"},__gh(RetryImg,{src:x.imagen,alt:altProducto(x.nombre,x.size),style:{width:"100%",height:"100%",objectFit:"cover"}}),__gh("span",{style:{position:"absolute",top:-4,right:-4,width:22,height:22,background:"var(--t1)",color:"#fff",borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",fontSize:10,fontWeight:700,boxShadow:"0 2px 6px rgba(0,0,0,.15)"},"data-gufi-src":"page.tsx:8120"},x.qty)),__gh("div",{style:{flex:1,minWidth:0},"data-gufi-src":"page.tsx:8122"},__gh("div",{style:{fontSize:13,fontWeight:600},"data-gufi-src":"page.tsx:8123"},x.nombre),__gh("div",{style:{fontSize:11,color:"var(--t3)",marginBottom:8},"data-gufi-src":"page.tsx:8124"},x.size),__gh("div",{style:{display:"flex",alignItems:"center",gap:8},"data-gufi-src":"page.tsx:8125"},__gh("div",{style:{display:"flex",alignItems:"center",background:"#f5f5f5",borderRadius:50,overflow:"hidden"},"data-gufi-src":"page.tsx:8126"},__gh("button",{onClick:()=>updateQty(i,-1),style:{width:28,height:28,display:"flex",alignItems:"center",justifyContent:"center",fontSize:14},"data-gufi-src":"page.tsx:8127"},"\u2212"),__gh("span",{style:{width:20,textAlign:"center",fontSize:12,fontWeight:600},"data-gufi-src":"page.tsx:8128"},x.qty),__gh("button",{onClick:()=>updateQty(i,1),style:{width:28,height:28,display:"flex",alignItems:"center",justifyContent:"center",fontSize:14},"data-gufi-src":"page.tsx:8129"},"+")),__gh("button",{onClick:()=>removeFromCart(i),style:{fontSize:10,color:"var(--t3)",transition:"color .2s"},onMouseEnter:e=>e.target.style.color="#c0392b",onMouseLeave:e=>e.target.style.color="var(--t3)","data-gufi-src":"page.tsx:8131"},tr("Eliminar")))),__gh("div",{style:{fontSize:14,fontWeight:700,fontVariantNumeric:"tabular-nums",flexShrink:0},"data-gufi-src":"page.tsx:8134"},price(x.precio*x.qty)))),__gh("div",{style:{borderTop:"1px solid var(--bl)",marginTop:24,paddingTop:20},"data-gufi-src":"page.tsx:8138"},appliedCoupon?__gh("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"12px 16px",background:"#f4faf6",border:"1px solid #d1e9d7",borderRadius:12,marginBottom:20},"data-gufi-src":"page.tsx:8140"},__gh("span",{style:{fontSize:12,fontWeight:600,color:"#1b6b3a",letterSpacing:".04em"},"data-gufi-src":"page.tsx:8141"},"\u2713 ",appliedCoupon.codigo,appliedCoupon.tipo==="porcentaje"&&` \xB7 -${appliedCoupon.valor}%`,appliedCoupon.tipo==="fijo"&&` \xB7 -${price(appliedCoupon.valor)}`,appliedCoupon.tipo==="envio_gratis"&&tr(" \xB7 Env\xEDo gratis")),__gh("button",{onClick:removeCoupon,style:{fontSize:12,color:"#999",padding:"2px 8px"},"data-gufi-src":"page.tsx:8147"},tr("Quitar"))):__gh("div",{style:{display:"flex",gap:8,marginBottom:20},"data-gufi-src":"page.tsx:8150"},__gh("input",{value:promoInput,onChange:e=>setPromoInput(e.target.value.toUpperCase()),placeholder:tr("C\xF3digo de descuento"),style:{flex:1,padding:"14px 18px",border:"1.5px solid rgba(0,0,0,.08)",outline:"none",fontSize:13,background:"#fff",borderRadius:12,textTransform:"uppercase",letterSpacing:".04em"},"data-gufi-src":"page.tsx:8151"}),__gh("button",{onClick:applyCoupon,disabled:promoLoading||!promoInput.trim(),style:{padding:"14px 24px",border:"1.5px solid rgba(0,0,0,.08)",fontSize:12,fontWeight:600,background:"#fff",borderRadius:12,transition:"border-color .2s",opacity:promoLoading||!promoInput.trim()?.5:1},"data-gufi-src":"page.tsx:8157"},promoLoading?"\u2026":tr("Aplicar")))),__gh("div",{style:{borderTop:"1px solid var(--bl)",paddingTop:16},"data-gufi-src":"page.tsx:8164"},__gh("div",{style:{display:"flex",justifyContent:"space-between",fontSize:13,marginBottom:6},"data-gufi-src":"page.tsx:8165"},__gh("span",{"data-gufi-src":"page.tsx:8166"},tr("Subtotal \xB7 "),cart.reduce((s3,x)=>s3+x.qty,0),tr(" art\xEDculos")),__gh("span",{style:{fontWeight:500},"data-gufi-src":"page.tsx:8167"},price(cartTotal))),couponDiscount>0&&__gh("div",{style:{display:"flex",justifyContent:"space-between",fontSize:13,marginBottom:6,color:"#1b6b3a"},"data-gufi-src":"page.tsx:8170"},__gh("span",{"data-gufi-src":"page.tsx:8171"},tr("Descuento "),appliedCoupon?.codigo),__gh("span",{"data-gufi-src":"page.tsx:8172"},"-",price(couponDiscount))),__gh("div",{style:{display:"flex",justifyContent:"space-between",fontSize:13,marginBottom:16,color:"var(--t2)"},"data-gufi-src":"page.tsx:8175"},__gh("span",{"data-gufi-src":"page.tsx:8176"},tr("Env\xEDo")),__gh("span",{"data-gufi-src":"page.tsx:8177"},shipCost===0?tr("Gratis"):price(shipCost))),__gh("div",{style:{display:"flex",justifyContent:"space-between",fontSize:18,fontWeight:800,paddingTop:12,borderTop:"1px solid var(--bl)"},"data-gufi-src":"page.tsx:8179"},__gh("span",{"data-gufi-src":"page.tsx:8180"},tr("Total")),__gh("span",{"data-gufi-src":"page.tsx:8181"},__gh("small",{style:{fontSize:11,fontWeight:400,color:"var(--t3)",marginRight:6},"data-gufi-src":"page.tsx:8181"},"EUR"),price(orderTotal)))))),__gh(CheckoutVerifier,{active:view==="checkout-processing"||view==="checkout-success-pending",companyId:gufi?.siteInfo?.company_id,onPaid:()=>{setView("checkout-success"),loadOrders()},onTimeout:()=>setVerifyTimedOut(!0)}),view==="checkout-processing"&&__gh("div",{className:"SU",style:{alignItems:"center",textAlign:"center"},"data-gufi-src":"page.tsx:8196"},__gh("div",{style:{width:44,height:44,borderRadius:"50%",border:"2.5px solid #e5e5e5",borderTopColor:"#0a0a0a",animation:"sp 0.85s linear infinite",margin:"0 auto 28px"},"data-gufi-src":"page.tsx:8197"}),__gh("h1",{style:{fontWeight:600,letterSpacing:"-0.02em"},"data-gufi-src":"page.tsx:8203"},tr("Procesando tu pago")),__gh("p",{style:{color:"var(--t3)",maxWidth:360,margin:"8px auto 0"},"data-gufi-src":"page.tsx:8204"},tr("Esto solo durar\xE1 unos segundos. No cierres esta ventana.")),__gh("style",{"data-gufi-src":"page.tsx:8207"},"@keyframes sp { to { transform: rotate(360deg); } }")),view==="pack"&&(packAbierto?(()=>{let tope=stockDePack(packAbierto),agotado=tope!==null&&tope<=0;return __gh("div",{className:"PKD","data-gufi-src":"page.tsx:8219"},__gh("button",{className:"PKD-back",onClick:()=>go("store"),"data-gufi-src":"page.tsx:8220"},tr("\u2190 Seguir comprando")),__gh("div",{className:"PKD-w","data-gufi-src":"page.tsx:8221"},__gh("div",{className:"PKD-img","data-gufi-src":"page.tsx:8222"},packAbierto.fotoPropia?__gh(RetryImg,{src:packAbierto.fotoPropia,alt:str(packAbierto.nombre)}):packAbierto.fotos.length>0?__gh("span",{className:`PK-ab n${packAbierto.fotos.length}`,"data-gufi-src":"page.tsx:8226"},packAbierto.fotos.map((u,i)=>__gh(RetryImg,{key:i,src:u,alt:packAbierto.fotosAlt[i]}))):__gh(RetryImg,{src:IMG_PLACEHOLDER,alt:str(packAbierto.nombre)})),__gh("div",{className:"PKD-info","data-gufi-src":"page.tsx:8233"},packAbierto.badge&&__gh("span",{className:"PKD-bd","data-gufi-src":"page.tsx:8234"},str(packAbierto.badge)),__gh("h1",{"data-gufi-src":"page.tsx:8235"},str(packAbierto.nombre)),packAbierto.tagline&&__gh("p",{className:"PKD-tl","data-gufi-src":"page.tsx:8236"},str(packAbierto.tagline)),__gh("div",{className:"PKD-p","data-gufi-src":"page.tsx:8238"},__gh("span",{className:"nw","data-gufi-src":"page.tsx:8239"},price(packAbierto.precio)),packAbierto.ahorro>0&&__gh("span",{className:"og","data-gufi-src":"page.tsx:8240"},price(packAbierto.suelto)),packAbierto.ahorro>0&&packAbierto.mostrar_ahorro!==!1&&__gh("span",{className:"PKD-sv","data-gufi-src":"page.tsx:8242"},tr("Ahorras")," ",price(packAbierto.ahorro))),packAbierto.descripcion&&__gh("p",{className:"PKD-d","data-gufi-src":"page.tsx:8246"},str(packAbierto.descripcion)),__gh("div",{className:"PKD-list","data-gufi-src":"page.tsx:8248"},__gh("div",{className:"PKD-list-t","data-gufi-src":"page.tsx:8249"},tr("Qu\xE9 llevas dentro")),packAbierto.lineas.map((l,i)=>__gh("a",{key:i,className:"PKD-it",href:hrefProducto(l.prod),onClick:alNavegar(()=>abrirDesdeLista("Contenido del pack",l.prod)),"data-gufi-src":"page.tsx:8251"},__gh("span",{className:"PKD-it-img","data-gufi-src":"page.tsx:8252"},__gh(RetryImg,{src:img(l.prod),alt:str(l.prod.nombre),loading:"lazy"})),__gh("span",{className:"PKD-it-b","data-gufi-src":"page.tsx:8255"},__gh("span",{className:"PKD-it-n","data-gufi-src":"page.tsx:8256"},str(l.prod.nombre)),__gh("span",{className:"PKD-it-q","data-gufi-src":"page.tsx:8257"},l.cantidad>1?`${l.cantidad} ${tr("unidades")}`:`1 ${tr("unidad")}`,l.esRegalo&&__gh("em",{className:"PKD-it-gift","data-gufi-src":"page.tsx:8259"}," \xB7 ",tr("de regalo")))),__gh("span",{className:"PKD-it-pr","data-gufi-src":"page.tsx:8262"},l.esRegalo?tr("Gratis"):price(getPrice(l.prod)*l.cantidad))))),__gh("button",{className:"fb PKD-cta",disabled:agotado||SHOP_CLOSED,onClick:()=>addPackToCart(packAbierto),"data-gufi-src":"page.tsx:8267"},agotado?tr("Sin stock"):`${tr("A\xF1adir el pack")} \xB7 ${price(packAbierto.precio)}`),!agotado&&tope!==null&&tope<=3&&__gh("div",{className:"PKD-few","data-gufi-src":"page.tsx:8271"},tr("Solo quedan")," ",tope))))})():__gh("div",{className:"SU","data-gufi-src":"page.tsx:8280"},__gh("h1",{"data-gufi-src":"page.tsx:8281"},tr("Este pack ya no est\xE1 disponible")),__gh("p",{"data-gufi-src":"page.tsx:8282"},tr("Puede que lo hayamos retirado o que se haya quedado sin alguno de sus productos.")),__gh("button",{className:"fb",onClick:()=>go("store"),"data-gufi-src":"page.tsx:8283"},tr("Ver la tienda")))),view==="checkout-success"&&__gh("div",{className:"SU","data-gufi-src":"page.tsx:8289"},__gh("h1",{"data-gufi-src":"page.tsx:8290"},tr("Gracias por tu compra")),__gh("span",{className:"oid","data-gufi-src":"page.tsx:8291"},lastOrderId),__gh("p",{"data-gufi-src":"page.tsx:8292"},tr("Tu pedido ha sido confirmado. Recibir\xE1s un email con los detalles y el seguimiento del env\xEDo.")),user?__gh("button",{className:"fb",onClick:()=>go("orders"),"data-gufi-src":"page.tsx:8294"},tr("Ver mis pedidos")):__gh(__gf,null,__gh("p",{style:{fontSize:13,color:"var(--t3)",marginTop:-8,marginBottom:18},"data-gufi-src":"page.tsx:8301"},tr("Te lo enviamos a")," ",__gh("strong",{"data-gufi-src":"page.tsx:8302"},guest?.email),"."),__gh("button",{className:"fb",onClick:()=>{setAuthMode("register"),setAuthOpen(!0)},"data-gufi-src":"page.tsx:8304"},tr("Crear cuenta y guardar mi pedido"))),__gh("button",{onClick:()=>go("store"),style:{marginTop:16,fontSize:12,fontWeight:600,letterSpacing:".04em",textTransform:"uppercase",color:"var(--t3)"},"data-gufi-src":"page.tsx:8307"},tr("Seguir comprando"))),view==="checkout-success-pending"&&!verifyTimedOut&&__gh("div",{className:"SU","data-gufi-src":"page.tsx:8312"},__gh("h1",{"data-gufi-src":"page.tsx:8313"},tr("Confirmando tu pago")),__gh("span",{className:"oid","data-gufi-src":"page.tsx:8314"},lastOrderId),__gh("p",{"data-gufi-src":"page.tsx:8315"},tr("Estamos validando el pago con el banco. Esto normalmente tarda menos de un minuto.")),LEGAL_CTX.email_contacto&&__gh("p",{style:{marginTop:18,fontSize:13,color:"var(--t3)"},"data-gufi-src":"page.tsx:8317"},tr("Si no recibes el email de confirmaci\xF3n en unos minutos, escr\xEDbenos a")," ",__gh("a",{href:`mailto:${LEGAL_CTX.email_contacto}?subject=Pedido%20${encodeURIComponent(lastOrderId)}%20sin%20confirmar`,style:{textDecoration:"underline",fontWeight:600},"data-gufi-src":"page.tsx:8319"},LEGAL_CTX.email_contacto)," ",tr("con tu n\xFAmero de pedido")," ",__gh("strong",{"data-gufi-src":"page.tsx:8320"},lastOrderId),"."),__gh("button",{className:"fb",onClick:()=>go("store"),"data-gufi-src":"page.tsx:8323"},tr("Seguir comprando"))),view==="checkout-success-pending"&&verifyTimedOut&&__gh("div",{className:"SU","data-gufi-src":"page.tsx:8328"},__gh("h1",{"data-gufi-src":"page.tsx:8329"},tr("No hemos podido confirmar tu pago")),__gh("span",{className:"oid","data-gufi-src":"page.tsx:8330"},lastOrderId),__gh("p",{"data-gufi-src":"page.tsx:8331"},tr("Tu tarjeta puede haber sido cobrada, pero no hemos podido confirmar el pedido en nuestro sistema.")," ",__gh("strong",{"data-gufi-src":"page.tsx:8332"},tr("No vuelvas a pagar."))," ",LEGAL_CTX.email_contacto?__gh(__gf,null,tr("Escr\xEDbenos a")," ",__gh("a",{href:`mailto:${LEGAL_CTX.email_contacto}?subject=Pedido%20${encodeURIComponent(lastOrderId)}%20sin%20confirmar`,style:{textDecoration:"underline",fontWeight:600},"data-gufi-src":"page.tsx:8334"},LEGAL_CTX.email_contacto)," ",tr("con tu n\xFAmero de pedido")," ",__gh("strong",{"data-gufi-src":"page.tsx:8334"},lastOrderId)," ",tr("y lo resolvemos.")):__gh(__gf,null,tr("Contacta con la tienda con tu n\xFAmero de pedido")," ",__gh("strong",{"data-gufi-src":"page.tsx:8335"},lastOrderId)," ",tr("para que lo resolvamos."))),__gh("button",{className:"fb",onClick:()=>go("store"),"data-gufi-src":"page.tsx:8338"},tr("Volver a la tienda"))),view==="account"&&user&&__gh("div",{className:"AC","data-gufi-src":"page.tsx:8343"},__gh("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:48},"data-gufi-src":"page.tsx:8344"},__gh("button",{onClick:()=>go("store"),style:{fontSize:12,fontWeight:500,color:"var(--t3)",display:"flex",alignItems:"center",gap:6},"data-gufi-src":"page.tsx:8345"},tr("\u2190 Volver")),__gh("div",{style:{display:"flex",gap:16},"data-gufi-src":"page.tsx:8346"},__gh("button",{onClick:()=>{setPwdError(""),setPwdModal({mode:"change"})},style:{fontSize:11,fontWeight:500,color:"var(--t3)",letterSpacing:".04em"},"data-gufi-src":"page.tsx:8350"},tr("Cambiar contrase\xF1a")),__gh("button",{onClick:logout,style:{fontSize:11,fontWeight:500,color:"var(--t3)",letterSpacing:".04em"},"data-gufi-src":"page.tsx:8351"},tr("Cerrar sesi\xF3n")))),__gh("div",{style:{marginBottom:48},"data-gufi-src":"page.tsx:8355"},__gh("span",{style:{fontSize:11,letterSpacing:".12em",textTransform:"uppercase",color:"var(--t3)",fontWeight:500,display:"block",marginBottom:12},"data-gufi-src":"page.tsx:8356"},tr("Mi cuenta")),__gh("h1",{style:{fontSize:"clamp(2rem,5vw,3.5rem)",marginBottom:4,textTransform:"none",letterSpacing:"-.02em"},"data-gufi-src":"page.tsx:8357"},tr("Hola, "),user.nombre),__gh("p",{style:{color:"var(--t3)",fontSize:14,fontWeight:400,textTransform:"none",letterSpacing:0},"data-gufi-src":"page.tsx:8358"},user.email)),__gh("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12,marginBottom:24},"data-gufi-src":"page.tsx:8363"},__gh("div",{style:{padding:28,background:"#f8f8f8",borderRadius:16},"data-gufi-src":"page.tsx:8367"},__gh("div",{style:{fontSize:32,fontWeight:800,marginBottom:4},"data-gufi-src":"page.tsx:8368"},orders.length),__gh("div",{style:{fontSize:12,color:"var(--t3)",fontWeight:500,textTransform:"uppercase",letterSpacing:".06em"},"data-gufi-src":"page.tsx:8369"},tr("Pedidos"))),__gh("div",{style:{padding:28,background:"#f8f8f8",borderRadius:16},"data-gufi-src":"page.tsx:8371"},__gh("div",{style:{fontSize:32,fontWeight:800,marginBottom:4},"data-gufi-src":"page.tsx:8372"},price(orders.filter(o=>o.estado!=="cancelado").reduce((s3,o)=>s3+o.total,0))),__gh("div",{style:{fontSize:12,color:"var(--t3)",fontWeight:500,textTransform:"uppercase",letterSpacing:".06em"},"data-gufi-src":"page.tsx:8373"},tr("Total gastado")))),__gh("div",{style:{marginTop:32,marginBottom:24,padding:28,background:"#f8f8f8",borderRadius:16},"data-gufi-src":"page.tsx:8379"},__gh("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:addrEditing?16:0},"data-gufi-src":"page.tsx:8380"},__gh("div",{style:{fontSize:11,fontWeight:600,letterSpacing:".08em",textTransform:"uppercase",color:"var(--t3)"},"data-gufi-src":"page.tsx:8381"},tr("Mis datos")),!addrEditing&&__gh("button",{onClick:()=>{setAddrEditing(!0)},style:{fontSize:11,fontWeight:600,color:"var(--t1)",textDecoration:"underline",textUnderlineOffset:3},"data-gufi-src":"page.tsx:8383"},tr("Editar"))),addrEditing?__gh("div",{className:"MD","data-gufi-src":"page.tsx:8402"},__gh("div",{className:"MD-2","data-gufi-src":"page.tsx:8406"},__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8407"},__gh("span",{"data-gufi-src":"page.tsx:8407"},tr("Nombre")),__gh("input",{value:addrForm.nombre,autoComplete:"given-name",onChange:e=>setAddrForm(f=>({...f,nombre:e.target.value})),"data-gufi-src":"page.tsx:8408"})),__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8411"},__gh("span",{"data-gufi-src":"page.tsx:8411"},tr("Apellidos")),__gh("input",{value:addrForm.apellidos,autoComplete:"family-name",onChange:e=>setAddrForm(f=>({...f,apellidos:e.target.value})),"data-gufi-src":"page.tsx:8412"}))),__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8416"},__gh("span",{"data-gufi-src":"page.tsx:8416"},tr("Tel\xE9fono")),__gh("div",{className:"MD-tel","data-gufi-src":"page.tsx:8417"},__gh("span",{className:"MD-pre","data-gufi-src":"page.tsx:8418"},"+34"),__gh("input",{value:addrForm.telefono,type:"tel",inputMode:"tel",autoComplete:"tel",onChange:e=>setAddrForm(f=>({...f,telefono:e.target.value})),"data-gufi-src":"page.tsx:8419"}))),__gh("div",{className:"MD-sep","data-gufi-src":"page.tsx:8423"},tr("D\xF3nde vas a recibir la sesi\xF3n")),__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8424"},__gh("span",{"data-gufi-src":"page.tsx:8424"},tr("Calle")),__gh("input",{value:addrForm.calle,autoComplete:"address-line1",onChange:e=>setAddrForm(f=>({...f,calle:e.target.value})),"data-gufi-src":"page.tsx:8425"})),__gh("div",{className:"MD-4","data-gufi-src":"page.tsx:8428"},__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8429"},__gh("span",{"data-gufi-src":"page.tsx:8429"},tr("N\xFAmero")),__gh("input",{value:addrForm.sinNumero?"s/n":addrForm.numero,disabled:addrForm.sinNumero,onChange:e=>setAddrForm(f=>({...f,numero:e.target.value})),"data-gufi-src":"page.tsx:8430"})),__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8433"},__gh("span",{"data-gufi-src":"page.tsx:8433"},tr("Portal")),__gh("input",{value:addrForm.portal,onChange:e=>setAddrForm(f=>({...f,portal:e.target.value})),"data-gufi-src":"page.tsx:8434"})),__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8437"},__gh("span",{"data-gufi-src":"page.tsx:8437"},tr("Piso")),__gh("input",{value:addrForm.piso,onChange:e=>setAddrForm(f=>({...f,piso:e.target.value})),"data-gufi-src":"page.tsx:8438"})),__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8441"},__gh("span",{"data-gufi-src":"page.tsx:8441"},tr("Puerta")),__gh("input",{value:addrForm.puerta,onChange:e=>setAddrForm(f=>({...f,puerta:e.target.value})),"data-gufi-src":"page.tsx:8442"}))),__gh("label",{className:"MD-sn","data-gufi-src":"page.tsx:8446"},__gh("input",{type:"checkbox",checked:addrForm.sinNumero,onChange:e=>setAddrForm(f=>({...f,sinNumero:e.target.checked})),"data-gufi-src":"page.tsx:8447"}),__gh("span",{"data-gufi-src":"page.tsx:8449"},tr("Sin n\xFAmero (s/n)"))),__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8451"},__gh("span",{"data-gufi-src":"page.tsx:8451"},tr("C\xF3digo postal")),__gh("input",{value:addrForm.codigo_postal,inputMode:"numeric",maxLength:5,className:addrForm.codigo_postal.length===5?addrCpCity?"ok":"mal":"",onChange:e=>setAddrForm(f=>({...f,codigo_postal:e.target.value.replace(/\D/g,"").slice(0,5)})),"data-gufi-src":"page.tsx:8452"})),addrForm.codigo_postal.length===5&&__gh("div",{className:`MD-cp ${addrCpCity?"ok":"mal"}`,"data-gufi-src":"page.tsx:8458"},addrCpCity?`${addrCpCity}, ${tr("Espa\xF1a")}`:tr("C\xF3digo postal no v\xE1lido o fuera de zona de env\xEDo")),__gh("label",{className:"MD-c","data-gufi-src":"page.tsx:8462"},__gh("span",{"data-gufi-src":"page.tsx:8462"},tr("C\xF3mo llegar (opcional)")),__gh("textarea",{value:addrForm.notas,rows:2,placeholder:tr("El portero no funciona, llama al m\xF3vil\u2026"),onChange:e=>setAddrForm(f=>({...f,notas:e.target.value})),"data-gufi-src":"page.tsx:8463"})),__gh("div",{style:{display:"flex",gap:8},"data-gufi-src":"page.tsx:8468"},__gh("button",{onClick:()=>setAddrEditing(!1),style:{flex:1,padding:14,fontSize:12,fontWeight:600,letterSpacing:".04em",textTransform:"uppercase",borderRadius:50,border:"1.5px solid rgba(0,0,0,.12)",color:"var(--t1)",transition:"opacity .2s"},"data-gufi-src":"page.tsx:8469"},tr("\u2190 Volver")),__gh("button",{onClick:saveAddress,disabled:addrSaving||!addrForm.calle.trim()||!addrCpCity||!addrForm.telefono.replace(/\D/g,""),style:{flex:2,padding:14,background:"#0a0a0a",color:"#fff",fontSize:12,fontWeight:600,letterSpacing:".04em",textTransform:"uppercase",borderRadius:50,transition:"opacity .2s",opacity:!addrForm.calle.trim()||!addrCpCity||addrSaving?.4:1,cursor:!addrForm.calle.trim()||!addrCpCity?"not-allowed":"pointer"},"data-gufi-src":"page.tsx:8470"},tr(addrSaving?"Guardando...":"Guardar direcci\xF3n")))):user.direccion?__gh("div",{style:{marginTop:12,fontSize:14,lineHeight:1.6,color:"var(--t1)"},"data-gufi-src":"page.tsx:8389"},(user.nombre||user.apellidos)&&__gh("div",{style:{fontWeight:500},"data-gufi-src":"page.tsx:8390"},[user.nombre,user.apellidos].filter(Boolean).join(" ")),__gh("div",{"data-gufi-src":"page.tsx:8391"},user.direccion),__gh("div",{"data-gufi-src":"page.tsx:8392"},user.codigo_postal,user.ciudad?`, ${user.ciudad}`:getCityFromCP(String(user.codigo_postal||""))?`, ${getCityFromCP(String(user.codigo_postal||""))}`:""),telTexto(user.telefono)&&__gh("div",{style:{color:"var(--t3)",marginTop:4},"data-gufi-src":"page.tsx:8393"},telTexto(user.telefono))):__gh("div",{style:{marginTop:12},"data-gufi-src":"page.tsx:8396"},__gh("p",{style:{fontSize:13,color:"var(--t3)",fontWeight:400,textTransform:"none",letterSpacing:0,lineHeight:1.5},"data-gufi-src":"page.tsx:8397"},tr("A\xF1ade tu direcci\xF3n de env\xEDo para agilizar tus pr\xF3ximos pedidos.")),__gh("button",{onClick:()=>setAddrEditing(!0),style:{marginTop:12,fontSize:12,fontWeight:600,color:"var(--t1)",textDecoration:"underline",textUnderlineOffset:3},"data-gufi-src":"page.tsx:8398"},tr("Editar")))),CITAS_ON&&__gh("button",{onClick:()=>go("miscitas"),style:{width:"100%",padding:18,background:"transparent",color:"var(--t1)",border:"1.5px solid rgba(0,0,0,.12)",fontSize:13,fontWeight:600,letterSpacing:".04em",textTransform:"uppercase",borderRadius:50,marginBottom:10},"data-gufi-src":"page.tsx:8481"},tr("Ver mis citas")),SEG_ON&&__gh("button",{onClick:()=>go("seguimiento"),style:{width:"100%",padding:18,background:"transparent",color:"var(--t1)",border:"1.5px solid rgba(0,0,0,.12)",fontSize:13,fontWeight:600,letterSpacing:".04em",textTransform:"uppercase",borderRadius:50,marginBottom:10},"data-gufi-src":"page.tsx:8484"},conPro(tr("Ver mis {varios}"))),__gh("button",{onClick:()=>go("orders"),style:{width:"100%",padding:18,background:"#0a0a0a",color:"#fff",fontSize:13,fontWeight:600,letterSpacing:".04em",textTransform:"uppercase",borderRadius:50,transition:"opacity .2s"},"data-gufi-src":"page.tsx:8486"},tr("Ver mis pedidos"))),view==="seguimiento"&&(()=>{let hoyE=hoyMadrid(),hechasDe=(id2,dia)=>seg.hechos.filter(h=>Number(h.item)===Number(id2)&&String(h.dia).slice(0,10)===dia).reduce((n,h)=>n+Number(h.veces||1),0),dias14=Array.from({length:14},(_,i)=>{let d=new Date(hoyE+"T12:00:00");return d.setDate(d.getDate()-(13-i)),d.toISOString().slice(0,10)}),totalHoy=seg.items.reduce((n,e)=>n+Math.min(hechasDe(e.id,hoyE),e.vecesDia),0),metaHoy=seg.items.reduce((n,e)=>n+e.vecesDia,0);return __gh("div",{className:"SG","data-gufi-src":"page.tsx:8515"},__gh("button",{className:"cta",onClick:()=>go(user?"account":"store"),style:{marginBottom:28},"data-gufi-src":"page.tsx:8516"},tr("\u2190 Volver")),__gh("h1",{"data-gufi-src":"page.tsx:8517"},conPro(tr("Mis {varios}"))),user?segFallo?__gh(__gf,null,__gh("p",{className:"MC-vacio",style:{color:"#c0392b"},"data-gufi-src":"page.tsx:8522"},segFallo),__gh("button",{className:"H-cta-out",onClick:()=>cargarSeguimiento(),"data-gufi-src":"page.tsx:8523"},tr("Reintentar"))):seg.items.length===0?__gh("p",{className:"MC-vacio","data-gufi-src":"page.tsx:8526"},conPro(tr("Aqu\xED aparecer\xE1 lo que {pro} te deje despu\xE9s de una sesi\xF3n."))):__gh(__gf,null,__gh("div",{className:"SG-hoy","data-gufi-src":"page.tsx:8529"},__gh("div",{className:"SG-hoy-t","data-gufi-src":"page.tsx:8530"},tr("Hoy")),__gh("div",{className:"SG-hoy-n","data-gufi-src":"page.tsx:8531"},totalHoy,__gh("span",{"data-gufi-src":"page.tsx:8531"}," / ",metaHoy)),__gh("div",{className:"SG-hoy-b","data-gufi-src":"page.tsx:8532"},__gh("i",{style:{width:`${metaHoy?Math.round(totalHoy/metaHoy*100):0}%`},"data-gufi-src":"page.tsx:8532"}))),seg.items.map(e=>{let hechas=hechasDe(e.id,hoyE),completo=hechas>=e.vecesDia;return __gh("div",{className:`SG-c ${completo?"ok":""}`,key:e.id,"data-gufi-src":"page.tsx:8539"},__gh("div",{className:"SG-c-h","data-gufi-src":"page.tsx:8540"},__gh("div",{"data-gufi-src":"page.tsx:8541"},__gh("div",{className:"SG-c-n","data-gufi-src":"page.tsx:8542"},e.nombre),__gh("div",{className:"SG-c-d","data-gufi-src":"page.tsx:8543"},[String(e.dosis||"").trim(),e.vecesDia>1?`${e.vecesDia} veces al d\xEDa`:""].filter(Boolean).join(" \xB7 "))),__gh("div",{className:"SG-marcas","data-gufi-src":"page.tsx:8548"},Array.from({length:e.vecesDia},(_,i)=>__gh("button",{key:i,className:`SG-m ${imarcarItem(e.id,i{let n=hechasDe(e.id,d),lleno=n>=e.vecesDia;return __gh("span",{key:d,className:`SG-p ${lleno?"full":n>0?"medio":""}`,title:`${d}: ${n}`,"data-gufi-src":"page.tsx:8565"})})))}),__gh("p",{className:"SG-pie","data-gufi-src":"page.tsx:8571"},conPro(tr("{pro} ve lo que vas marcando: as\xED lo ajusta en la siguiente sesi\xF3n.")))):__gh("p",{className:"MC-vacio","data-gufi-src":"page.tsx:8519"},conPro(tr("Entra en tu cuenta para ver tus {varios}."))))})(),view==="miscitas"&&(()=>{let hoyM=hoyMadrid(),proximas=misCitas.filter(c=>c.fecha>=hoyM&&c.estado!=="cancelada").sort((a,b)=>(a.fecha+a.hora).localeCompare(b.fecha+b.hora)),pasadas=misCitas.filter(c=>!(c.fecha>=hoyM&&c.estado!=="cancelada")).sort((a,b)=>(b.fecha+b.hora).localeCompare(a.fecha+a.hora)),rotulo={esperando_pago:"Pendiente de pago",pendiente:"Por confirmar",confirmada:"Confirmada",completada:"Hecha",cancelada:"Cancelada"},siguiente=proximas[0];return __gh("div",{className:"MC","data-gufi-src":"page.tsx:8595"},__gh("button",{className:"cta",onClick:()=>go(user?"account":"store"),style:{marginBottom:28},"data-gufi-src":"page.tsx:8596"},tr("\u2190 Volver")),__gh("h1",{"data-gufi-src":"page.tsx:8597"},tr("Mis citas")),user?citasFallo?__gh(__gf,null,__gh("p",{className:"MC-vacio",style:{color:"#c0392b"},"data-gufi-src":"page.tsx:8603"},citasFallo),__gh("button",{className:"H-cta-out",onClick:()=>cargarMisCitas(),"data-gufi-src":"page.tsx:8604"},tr("Reintentar"))):misCitas.length===0?__gh(__gf,null,__gh("p",{className:"MC-vacio","data-gufi-src":"page.tsx:8608"},tr("Todav\xEDa no has pedido ninguna cita.")),__gh("button",{className:"H-cta-fill",onClick:()=>irAReservar(),"data-gufi-src":"page.tsx:8609"},tr(AGENDA_CTA))):__gh(__gf,null,siguiente&&__gh("div",{className:"MC-next","data-gufi-src":"page.tsx:8615"},__gh("div",{className:"MC-next-t","data-gufi-src":"page.tsx:8616"},tr("Tu pr\xF3xima cita")),__gh("div",{className:"MC-next-d","data-gufi-src":"page.tsx:8617"},diaLargo(siguiente.fecha)),__gh("div",{className:"MC-next-h","data-gufi-src":"page.tsx:8618"},siguiente.hora),__gh("div",{className:"MC-next-s","data-gufi-src":"page.tsx:8619"},siguiente.servicio),siguiente.direccion&&__gh("div",{className:"MC-next-x","data-gufi-src":"page.tsx:8620"},siguiente.direccion),__gh("span",{className:`MC-est ${siguiente.estado}`,"data-gufi-src":"page.tsx:8621"},rotulo[siguiente.estado]||siguiente.estado)),__gh("div",{className:"MC-res","data-gufi-src":"page.tsx:8625"},__gh("div",{"data-gufi-src":"page.tsx:8626"},__gh("b",{"data-gufi-src":"page.tsx:8626"},proximas.length),__gh("span",{"data-gufi-src":"page.tsx:8626"},(proximas.length===1,tr("por venir")))),__gh("div",{"data-gufi-src":"page.tsx:8627"},__gh("b",{"data-gufi-src":"page.tsx:8627"},misCitas.filter(c=>c.estado==="completada").length),__gh("span",{"data-gufi-src":"page.tsx:8627"},tr("hechas"))),__gh("div",{"data-gufi-src":"page.tsx:8628"},__gh("b",{"data-gufi-src":"page.tsx:8628"},misCitas.filter(c=>c.estado==="pendiente").length),__gh("span",{"data-gufi-src":"page.tsx:8628"},tr("por confirmar")))),proximas.length>1&&__gh("div",{className:"MC-g","data-gufi-src":"page.tsx:8632"},__gh("h2",{"data-gufi-src":"page.tsx:8633"},tr("Despu\xE9s")),proximas.slice(1).map(c=>__gh("div",{className:"MC-c",key:c.id,"data-gufi-src":"page.tsx:8635"},__gh("div",{className:"MC-c-d","data-gufi-src":"page.tsx:8636"},__gh("b",{"data-gufi-src":"page.tsx:8636"},diaLargo(c.fecha))," \xB7 ",c.hora),__gh("div",{className:"MC-c-s","data-gufi-src":"page.tsx:8637"},c.servicio),__gh("span",{className:`MC-est ${c.estado}`,"data-gufi-src":"page.tsx:8638"},rotulo[c.estado]||c.estado)))),pasadas.length>0&&__gh("div",{className:"MC-g MC-pas","data-gufi-src":"page.tsx:8645"},__gh("h2",{"data-gufi-src":"page.tsx:8646"},tr("Anteriores")),pasadas.map(c=>__gh("div",{className:"MC-c",key:c.id,"data-gufi-src":"page.tsx:8648"},__gh("div",{className:"MC-c-d","data-gufi-src":"page.tsx:8649"},__gh("b",{"data-gufi-src":"page.tsx:8649"},diaLargo(c.fecha))," \xB7 ",c.hora),__gh("div",{className:"MC-c-s","data-gufi-src":"page.tsx:8650"},c.servicio),__gh("span",{className:`MC-est ${c.estado}`,"data-gufi-src":"page.tsx:8651"},rotulo[c.estado]||c.estado)))),__gh("button",{className:"H-cta-fill",style:{marginTop:26},onClick:()=>irAReservar(),"data-gufi-src":"page.tsx:8657"},tr("Pedir otra cita"))):__gh("p",{className:"MC-vacio","data-gufi-src":"page.tsx:8600"},tr("Entra en tu cuenta para ver tus citas.")))})(),view==="orders"&&__gh("div",{className:"OR","data-gufi-src":"page.tsx:8665"},__gh("button",{className:"cta",onClick:()=>go(user?"account":"store"),style:{marginBottom:32},"data-gufi-src":"page.tsx:8666"},tr("\u2190 Volver")),successBanner&&__gh("div",{role:"status",style:{background:"#e8f7ee",border:"1px solid #1b6b3a",color:"#1b6b3a",padding:"14px 18px",borderRadius:12,marginBottom:20,display:"flex",alignItems:"center",gap:10,fontSize:13,textTransform:"none",letterSpacing:0,fontWeight:500},"data-gufi-src":"page.tsx:8668"},__gh("span",{"aria-hidden":!0,style:{width:18,height:18,borderRadius:"50%",background:"#1b6b3a",color:"#fff",display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:700,flexShrink:0},"data-gufi-src":"page.tsx:8669"},"\u2713"),__gh("span",{"data-gufi-src":"page.tsx:8670"},successBanner)),__gh("h1",{"data-gufi-src":"page.tsx:8673"},tr("Mis pedidos")),orders.length===0?__gh("p",{style:{color:"var(--t2)",textTransform:"none",letterSpacing:0,fontWeight:400},"data-gufi-src":"page.tsx:8674"},tr("A\xFAn no tienes pedidos.")):orders.slice((ordersPage-1)*ORDERS_PAGE_SIZE,ordersPage*ORDERS_PAGE_SIZE).map(o=>{let steps=["pagado","preparado","enviado","entregado"],currentStep=steps.indexOf(o.estado),tracking=o.tracking||o.numero_seguimiento,carrier=o.carrier||o.metodo_envio||"SEUR";return __gh("div",{className:"OR-card",key:o.id,"data-gufi-src":"page.tsx:8680"},__gh("div",{className:"OR-top","data-gufi-src":"page.tsx:8681"},__gh("span",{className:"OR-id","data-gufi-src":"page.tsx:8682"},o.id),__gh("span",{className:"OR-date","data-gufi-src":"page.tsx:8683"},(()=>{let d=new Date(o.fecha),locale=__L==="en"?"en-GB":"es-ES",fmt=d.toLocaleDateString(locale,{day:"numeric",month:"long",year:"numeric"}),hora=d.toLocaleTimeString(locale,{hour:"2-digit",minute:"2-digit"});return`${fmt} \xB7 ${hora}`})()),__gh("span",{className:`OR-badge ${o.estado}`,"data-gufi-src":"page.tsx:8690"},etiquetaEstado(o.estado))),__gh("div",{style:{display:"flex",alignItems:"center",gap:0,margin:"16px 0",padding:"16px 0",borderTop:"1px solid var(--bl)",borderBottom:"1px solid var(--bl)"},"data-gufi-src":"page.tsx:8693"},steps.map((step,i)=>__gh(import_react3.default.Fragment,{key:step},__gh("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",flex:1,gap:6},"data-gufi-src":"page.tsx:8696"},__gh("div",{style:{width:28,height:28,borderRadius:"50%",background:i<=currentStep?"var(--t1)":"var(--bgc)",color:i<=currentStep?"#fff":"var(--t3)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,fontWeight:700,transition:"all .3s"},"data-gufi-src":"page.tsx:8697"},i<=currentStep?"\u2713":i+1),__gh("span",{style:{fontSize:9,letterSpacing:".06em",textTransform:"uppercase",color:i<=currentStep?"var(--t1)":"var(--t3)",fontWeight:600},"data-gufi-src":"page.tsx:8700"},tr(step==="pagado"?"Pagado":step==="preparado"?"Preparado":step==="enviado"?"En camino":"Entregado"))),i{let shown=o.items.slice(0,2),remaining=o.items.length-2;return __gh(__gf,null,shown.map((x,i)=>__gh("div",{key:i,style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,fontSize:13,color:"var(--t2)",textTransform:"none",letterSpacing:0,fontWeight:400},"data-gufi-src":"page.tsx:8716"},__gh("div",{style:{display:"flex",alignItems:"center",gap:10,minWidth:0,flex:1},"data-gufi-src":"page.tsx:8717"},__gh(RetryImg,{src:x.imagen||IMG_PLACEHOLDER,alt:altProducto(x.nombre,x.size),style:{width:44,height:44,objectFit:"cover",borderRadius:4,flexShrink:0,background:"var(--bgc)"}}),__gh("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},"data-gufi-src":"page.tsx:8719"},x.nombre,x.size?` \xB7 ${x.size}`:""," \xB7 ",x.qty,tr(" ud"))),__gh("span",{style:{color:"var(--t3)",whiteSpace:"nowrap"},"data-gufi-src":"page.tsx:8721"},"\xD7 ",price(x.precio)))),remaining>0&&__gh("div",{style:{fontSize:12,color:"var(--t3)",fontStyle:"italic",textTransform:"none",letterSpacing:0,fontWeight:400},"data-gufi-src":"page.tsx:8725"},tr("y "),remaining,tr(" m\xE1s...")))})()),__gh("div",{style:{marginTop:14,paddingTop:14,borderTop:"1px solid var(--bl)",display:"flex",flexDirection:"column",gap:4},"data-gufi-src":"page.tsx:8732"},__gh("div",{style:{display:"flex",justifyContent:"space-between",fontSize:12,color:"var(--t3)",textTransform:"none",letterSpacing:0,fontWeight:400},"data-gufi-src":"page.tsx:8733"},__gh("span",{"data-gufi-src":"page.tsx:8734"},tr("Subtotal")),__gh("span",{"data-gufi-src":"page.tsx:8734"},price(o.subtotal))),o.cupon_codigo&&(o.descuento||0)>0&&__gh("div",{style:{display:"flex",justifyContent:"space-between",fontSize:12,color:"#1b6b3a",textTransform:"none",letterSpacing:0,fontWeight:500},"data-gufi-src":"page.tsx:8737"},__gh("span",{"data-gufi-src":"page.tsx:8738"},tr("Cup\xF3n "),o.cupon_codigo),__gh("span",{"data-gufi-src":"page.tsx:8738"},"-",price(o.descuento||0))),(o.envio||0)>0&&__gh("div",{style:{display:"flex",justifyContent:"space-between",fontSize:12,color:"var(--t3)",textTransform:"none",letterSpacing:0,fontWeight:400},"data-gufi-src":"page.tsx:8742"},__gh("span",{"data-gufi-src":"page.tsx:8743"},tr("Env\xEDo")),__gh("span",{"data-gufi-src":"page.tsx:8743"},price(o.envio))),__gh("div",{style:{display:"flex",justifyContent:"space-between",fontSize:14,fontWeight:700,marginTop:6},"data-gufi-src":"page.tsx:8746"},__gh("span",{"data-gufi-src":"page.tsx:8747"},tr("Total")),__gh("span",{"data-gufi-src":"page.tsx:8747"},price(o.total)))),(tracking||o.metodo_envio||o.estado==="pagado")&&__gh("div",{style:{marginTop:14,paddingTop:14,borderTop:"1px solid var(--bl)",display:"flex",justifyContent:"space-between",alignItems:"center",gap:12,flexWrap:"wrap"},"data-gufi-src":"page.tsx:8752"},__gh("div",{style:{display:"flex",flexDirection:"column",gap:4,fontSize:12,color:"var(--t3)",textTransform:"none",letterSpacing:0,fontWeight:400},"data-gufi-src":"page.tsx:8753"},o.metodo_envio&&__gh("span",{"data-gufi-src":"page.tsx:8754"},tr("Env\xEDo: "),o.metodo_envio),tracking&&__gh("span",{"data-gufi-src":"page.tsx:8755"},tr("Tracking: "),tracking),!tracking&&o.estado==="pagado"&&__gh("span",{style:{fontStyle:"italic"},"data-gufi-src":"page.tsx:8756"},tr("Tu pedido ser\xE1 enviado en 24-48h"))),tracking&&__gh("a",{href:`https://www.seur.com/livetracking/?segOnlineIdentificador=${tracking}`,target:"_blank",rel:"noopener noreferrer",style:{fontSize:11,letterSpacing:".06em",textTransform:"uppercase",fontWeight:600,padding:"8px 16px",background:"var(--t1)",color:"#fff",display:"inline-flex",alignItems:"center",gap:6,transition:"background .2s"},"data-gufi-src":"page.tsx:8759"},tr("Seguir env\xEDo ("),carrier,")")))}),orders.length>ORDERS_PAGE_SIZE&&(()=>{let totalPages=Math.ceil(orders.length/ORDERS_PAGE_SIZE),goPage=p=>{setOrdersPage(Math.min(totalPages,Math.max(1,p)));try{window.scrollTo({top:0,behavior:"smooth"})}catch{}};return __gh("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:18,marginTop:28},"data-gufi-src":"page.tsx:8775"},__gh("button",{className:"cta",onClick:()=>goPage(ordersPage-1),disabled:ordersPage<=1,style:{opacity:ordersPage<=1?.35:1,cursor:ordersPage<=1?"default":"pointer"},"data-gufi-src":"page.tsx:8776"},tr("\u2190 Anterior")),__gh("span",{style:{fontSize:12,color:"var(--t3)",letterSpacing:".04em",textTransform:"none",fontWeight:500},"data-gufi-src":"page.tsx:8777"},ordersPage," / ",totalPages),__gh("button",{className:"cta",onClick:()=>goPage(ordersPage+1),disabled:ordersPage>=totalPages,style:{opacity:ordersPage>=totalPages?.35:1,cursor:ordersPage>=totalPages?"default":"pointer"},"data-gufi-src":"page.tsx:8778"},tr("Siguiente \u2192")))})()),__gh("div",{className:`P ${pdp?"o":""}`,"data-gufi-src":"page.tsx:8786"},pdp&&(()=>{let original=Number(pdp.precio),sale=Number(pdp.precio_oferta),discount=Number.isFinite(original)&&Number.isFinite(sale)&&sale>0&&saleNumber(c.id)===categoriaDe(pdp));return __gh(__gf,null,__gh("div",{className:"P-top","data-gufi-src":"page.tsx:8791"},__gh("div",{className:"P-crumbs","data-gufi-src":"page.tsx:8792"},tr("Tienda")," \u2014 ",catName?str(catName.nombre):""," \u2014 ",__gh("b",{"data-gufi-src":"page.tsx:8792"},str(pdp.nombre))),__gh("a",{className:"P-logo",href:hrefInicio,onClick:alNavegar(closePdp),"data-gufi-src":"page.tsx:8793"},LOGO_SRC?__gh(RetryImg,{src:LOGO_SRC,alt:BRAND_DISPLAY,style:{height:18,width:"auto",objectFit:"contain"}}):BRAND_DISPLAY),__gh("button",{className:"P-x",onClick:closePdp,"data-gufi-src":"page.tsx:8794"},tr("Cerrar")," \u2715")),__gh("div",{className:"P-g","data-gufi-src":"page.tsx:8796"},__gh("div",{className:"P-gl","data-gufi-src":"page.tsx:8797"},__gh("div",{className:"P-gl-frame",ref:gallerySwipe.frameRef,style:{touchAction:"none",userSelect:"none",WebkitUserSelect:"none",cursor:pdpGallery.count>1?"grab":"zoom-in"},"data-gufi-src":"page.tsx:8798"},__gh("div",{style:{display:"flex",width:`${pdpGallery.count*100}%`,height:"100%",transform:`translateX(calc(-${pdpPhotoIdx*(100/pdpGallery.count)}% + ${gallerySwipe.dragX}px))`,transition:gallerySwipe.isDragging?"none":"transform .35s var(--el)"},"data-gufi-src":"page.tsx:8803"},pdpGallery.shots.map((src,i)=>__gh("div",{key:i,style:{width:`${100/pdpGallery.count}%`,height:"100%",flexShrink:0},"data-gufi-src":"page.tsx:8811"},__gh(RetryImg,{src,alt:i===0?altProducto(pdp.nombre,...Object.values(pdpSelections),pdpSz):`${altProducto(pdp.nombre,...Object.values(pdpSelections),pdpSz)} (${i+1})`,draggable:!1,style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}})))),discount>0&&__gh("span",{className:"P-gl-discount","data-gufi-src":"page.tsx:8821"},"-",discount,"%"),pdpGallery.count>1&&__gh("div",{className:"P-gl-dots","data-gufi-src":"page.tsx:8823"},pdpGallery.shots.map((_,i)=>__gh("span",{key:i,className:pdpPhotoIdx===i?"active":"",onClick:e=>{e.stopPropagation(),setPdpPhotoIdx(i)},"data-gufi-src":"page.tsx:8825"}))),pdpGallery.count>1&&__gh(__gf,null,__gh("button",{className:"P-gl-nav P-gl-prev",onClick:e=>{e.stopPropagation(),setPdpPhotoIdx(prev=>Math.max(prev-1,0))},onPointerDown:e=>e.stopPropagation(),onTouchStart:e=>e.stopPropagation(),disabled:pdpPhotoIdx===0,"aria-label":"Previous","data-gufi-src":"page.tsx:8831"},"\u2039"),__gh("button",{className:"P-gl-nav P-gl-next",onClick:e=>{e.stopPropagation(),setPdpPhotoIdx(prev=>Math.min(prev+1,pdpGallery.count-1))},onPointerDown:e=>e.stopPropagation(),onTouchStart:e=>e.stopPropagation(),disabled:pdpPhotoIdx===pdpGallery.count-1,"aria-label":"Next","data-gufi-src":"page.tsx:8839"},"\u203A"))),pdpGallery.count>1&&__gh("div",{className:"P-gl-thumbs","data-gufi-src":"page.tsx:8851"},pdpGallery.shots.map((src,i)=>__gh("div",{key:i,className:`P-gl-th ${pdpPhotoIdx===i?"active":""}`,onClick:()=>setPdpPhotoIdx(i),"data-gufi-src":"page.tsx:8853"},__gh(RetryImg,{src,alt:`${altProducto(pdp.nombre,...Object.values(pdpSelections),pdpSz)} (${i+1})`}))))),__gh("div",{className:"P-nf","data-gufi-src":"page.tsx:8860"},__gh("div",{className:"P-cat","data-gufi-src":"page.tsx:8861"},catName?str(catName.nombre):""),__gh("h1",{"data-gufi-src":"page.tsx:8862"},str(pdp.nombre)),(()=>{let baseGetPrice=getPrice(pdp),variantPrice=pickVariantPrice(pdp,pdpSelections);return variantPrice!==baseGetPrice?__gh("div",{className:"P-pr","data-gufi-src":"page.tsx:8865"},__gh("span",{"data-gufi-src":"page.tsx:8865"},price(variantPrice)),__gh("small",{"data-gufi-src":"page.tsx:8865"},tr("IVA incluido"))):__gh("div",{className:"P-pr","data-gufi-src":"page.tsx:8866"},hasSale(pdp)?__gh(__gf,null,__gh("span",{className:"og","data-gufi-src":"page.tsx:8866"},price(pdp.precio)),__gh("span",{className:"nw","data-gufi-src":"page.tsx:8866"},price(pdp.precio_oferta))):__gh("span",{"data-gufi-src":"page.tsx:8866"},price(pdp.precio)),__gh("small",{"data-gufi-src":"page.tsx:8866"},tr("IVA incluido")))})(),(()=>{let desc=pdp.descripcion,_cfg=parseProductVariantesConfig(pdp);if(_cfg.groups.length>0&&_cfg.groups.every(g=>pdpSelections[g.tipo])){let cd=_cfg.combos.find(c=>c.key===selectionToKey(pdpSelections))?.descripcion;typeof cd=="string"&&cd.trim()&&(desc=cd)}return desc?__gh("div",{className:"desc","data-gufi-src":"page.tsx:8871"},str(desc)):null})(),__gh("div",{className:"P-hr","data-gufi-src":"page.tsx:8873"}),(()=>{let groups=parseProductVariantes(pdp);if(groups.length>0)return groups.map((g,gi)=>{let sel=pdpSelections[g.tipo],selValor=sel?(g.valores||[]).find(vv=>String(vv.value||"").trim()===String(sel).trim()):null,medidasLine="";if(selValor&&selValor.medidas){let parts=[];selValor.medidas.largo&&parts.push(`${tr("Largo")} ${selValor.medidas.largo}`),selValor.medidas.ancho&&parts.push(`${tr("Ancho")} ${selValor.medidas.ancho}`),parts.length&&(medidasLine=parts.join(" \xB7 "))}return __gh(import_react3.default.Fragment,{key:`${g.tipo}-${gi}`},__gh("div",{className:"P-lb","data-gufi-src":"page.tsx:8888"},g.tipo),__gh("div",{className:"sz","data-gufi-src":"page.tsx:8889"},g.valores.map(vv=>__gh("button",{key:vv.value,className:pdpSelections[g.tipo]===vv.value?"ac":"",onClick:()=>setPdpSelections(prev=>({...prev,[g.tipo]:vv.value})),"data-gufi-src":"page.tsx:8889"},vv.value))),medidasLine&&__gh("div",{style:{fontSize:11,color:"var(--t3)",marginTop:-8,marginBottom:16,letterSpacing:".04em"},"data-gufi-src":"page.tsx:8890"},medidasLine))});let pdpOpts=getVariantOptions(pdp);if(pdpOpts.length>0){let medidasLine="";try{let vc=typeof pdp.variantes_config=="string"?JSON.parse(pdp.variantes_config):pdp.variantes_config,groups2=vc&&Array.isArray(vc.groups)?vc.groups:[];for(let g of groups2){let v=(g.valores||[]).find(vv=>String(vv.value||"").trim()===String(pdpSz||"").trim());if(v&&v.medidas){let parts=[];v.medidas.largo&&parts.push(`${tr("Largo")} ${v.medidas.largo}`),v.medidas.ancho&&parts.push(`${tr("Ancho")} ${v.medidas.ancho}`),parts.length&&(medidasLine=parts.join(" \xB7 "));break}}}catch{}return __gh(__gf,null,__gh("div",{className:"P-lb","data-gufi-src":"page.tsx:8918"},VARIANT_LABEL),__gh("div",{className:"sz","data-gufi-src":"page.tsx:8919"},pdpOpts.map(s3=>__gh("button",{key:s3,className:pdpSz===s3?"ac":"",onClick:()=>setPdpSz(s3),"data-gufi-src":"page.tsx:8919"},s3))),medidasLine&&__gh("div",{style:{fontSize:11,color:"var(--t3)",marginTop:-8,marginBottom:16,letterSpacing:".04em"},"data-gufi-src":"page.tsx:8920"},medidasLine))}return null})(),(()=>{let{groups,combos}=parseProductVariantesConfig(pdp),currentCombo=groups.length>0&&groups.every(g=>pdpSelections[g.tipo])&&combos.length>0?combos.find(c=>c.key===selectionToKey(pdpSelections)):null,szForStock="";if(groups.length>0){let sizeGroup=groups.find(g=>/talla|size/i.test(g.tipo))||groups[0];sizeGroup&&(szForStock=String(pdpSelections[sizeGroup.tipo]||""))}else szForStock=String(pdpSz||"");let effStock=availableStock(pdp,szForStock),isOutOfStock=isOutOfStockParent(pdp)||(currentCombo?effStock!==null&&effStock<=0:effStock!==null&&effStock<=0&&!!szForStock),lowStock=effStock!==null&&effStock>0&&effStock<5;return __gh(__gf,null,__gh("button",{className:`atb ${pdpOk?"ok":""}`,disabled:isOutOfStock,style:isOutOfStock?{opacity:.5,cursor:"not-allowed"}:void 0,onClick:()=>{if(isOutOfStock)return;let variantLabel="";if(groups.length>0){let missing=groups.find(g=>!pdpSelections[g.tipo]);if(missing){notify(tr("Selecciona")+" "+missing.tipo.toLowerCase());return}variantLabel=groups.length===1?String(pdpSelections[groups[0].tipo]||""):groups.map(g=>`${g.tipo}: ${pdpSelections[g.tipo]}`).join(" \xB7 ")}else if(getVariantOptions(pdp).length>0){if(!pdpSz){notify(tr("Selecciona una talla"));return}variantLabel=pdpSz}let variantImage=pickVariantImage(pdp,pdpSelections),variantPrice=pickVariantPrice(pdp,pdpSelections);setPdpOk(!0),setTimeout(()=>{addToCart(pdp,variantLabel,!0,variantImage,variantPrice),setPdpOk(!1)},600)},"data-gufi-src":"page.tsx:8950"},tr(isOutOfStock?"Agotado":pdpOk?"A\xF1adido \u2713":"A\xF1adir a la bolsa")),isOutOfStock&&(avisoHecho[`${pdp.id}::${szForStock||""}`]?__gh("div",{style:{marginTop:10,textAlign:"center",fontSize:12,color:"#1b6b3a",fontWeight:600},"data-gufi-src":"page.tsx:8962"},tr("Hecho. Te escribimos en cuanto vuelva.")):__gh("form",{style:{marginTop:10,display:"flex",gap:8},onSubmit:e=>{e.preventDefault();let fd=new FormData(e.currentTarget);apuntarseAviso(pdp,szForStock||"",str(fd.get("aviso_email")))},"data-gufi-src":"page.tsx:8965"},__gh("input",{name:"aviso_email",type:"email",required:!0,defaultValue:user?.email||guest?.email||"",placeholder:tr("Tu email"),style:{flex:1,padding:"12px 14px",border:"1.5px solid rgba(0,0,0,.12)",borderRadius:50,fontSize:13,outline:"none"},"data-gufi-src":"page.tsx:8969"}),__gh("button",{type:"submit",disabled:avisoBusy,style:{padding:"12px 18px",borderRadius:50,background:"#0a0a0a",color:"#fff",fontSize:11,fontWeight:600,letterSpacing:".06em",textTransform:"uppercase",opacity:avisoBusy?.6:1},"data-gufi-src":"page.tsx:8975"},avisoBusy?"\u2026":tr("Av\xEDsame")))),lowStock&&__gh("div",{style:{fontSize:11,color:"#b04a2f",marginTop:8,marginBottom:8,letterSpacing:".04em",fontWeight:500,textAlign:"center"},"data-gufi-src":"page.tsx:8980"},effStock===1?"Solo queda":tr("Solo quedan")," ",effStock," ",tr("en stock")))})(),__gh("button",{className:"awl",onClick:()=>toggleWish(pdp.id),"data-gufi-src":"page.tsx:8983"},__gh(HeartSvg,{f:wish.has(pdp.id)}),wish.has(pdp.id)?tr("En favoritos"):tr("A\xF1adir a favoritos")),__gh("div",{style:{display:"flex",flexDirection:"column",gap:11,padding:"20px 0",borderTop:"1px solid rgba(19,36,26,.1)",borderBottom:"1px solid rgba(19,36,26,.1)",margin:"8px 0"},"data-gufi-src":"page.tsx:8984"},__gh("div",{style:{display:"flex",alignItems:"center",gap:12,fontFamily:"var(--sn)",fontSize:12,fontWeight:300},"data-gufi-src":"page.tsx:8985"},__gh("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"#c2a878",strokeWidth:"1.3","data-gufi-src":"page.tsx:8985"},__gh("path",{d:"M3 12h13M12 5l7 7-7 7","data-gufi-src":"page.tsx:8985"})),tr("Env\xEDo gratis a partir de "),freeThreshold,"\u20AC"),__gh("div",{style:{display:"flex",alignItems:"center",gap:12,fontFamily:"var(--sn)",fontSize:12,fontWeight:300},"data-gufi-src":"page.tsx:8986"},__gh("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"#c2a878",strokeWidth:"1.3","data-gufi-src":"page.tsx:8986"},__gh("path",{d:"M3 12a9 9 0 109-9M3 12V6m0 6h6","data-gufi-src":"page.tsx:8986"})),tr("14 d\xEDas de devoluci\xF3n")),__gh("div",{style:{display:"flex",alignItems:"center",gap:12,fontFamily:"var(--sn)",fontSize:12,fontWeight:300},"data-gufi-src":"page.tsx:8987"},__gh("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"#c2a878",strokeWidth:"1.3","data-gufi-src":"page.tsx:8987"},__gh("path",{d:"M12 3l7 3v6c0 4-3 7-7 9-4-2-7-5-7-9V6l7-3z","data-gufi-src":"page.tsx:8987"})),tr("Pago seguro"))))),(()=>{let{recs,compradosJuntos}=recsFicha;return recs.length===0?null:__gh("div",{className:"P-recs","data-gufi-src":"page.tsx:8996"},__gh("div",{className:"P-recs-hd","data-gufi-src":"page.tsx:8997"},__gh("h2",{"data-gufi-src":"page.tsx:8998"},tr(compradosJuntos?"Quien compr\xF3 esto tambi\xE9n compr\xF3":"Tambi\xE9n te puede gustar"))),__gh("div",{className:"P-recs-grid","data-gufi-src":"page.tsx:9000"},recs.map(p=>__gh("a",{key:p.id,className:"P-rec",href:hrefProducto(p),onClick:alNavegar(()=>{syncSy(),abrirDesdeLista(nombreRecomendados,p),window.scrollTo(0,0)}),"data-gufi-src":"page.tsx:9002"},__gh("div",{className:"P-rec-img","data-gufi-src":"page.tsx:9003"},__gh(RetryImg,{src:img(p),alt:str(p.nombre),loading:"lazy"})),__gh("div",{className:"P-rec-n","data-gufi-src":"page.tsx:9004"},str(p.nombre)),__gh("div",{className:"P-rec-p","data-gufi-src":"page.tsx:9005"},price(getPrice(p)))))))})())})()),__gh("div",{className:`Dbk ${wishOpen?"o":""}`,onClick:()=>setWishOpen(!1),"data-gufi-src":"page.tsx:9016"}),__gh("aside",{className:`D ${wishOpen?"o":""}`,"data-gufi-src":"page.tsx:9017"},__gh("div",{className:"D-hd","data-gufi-src":"page.tsx:9018"},__gh("h3",{"data-gufi-src":"page.tsx:9018"},tr("Favoritos")," (",wish.size,")"),__gh("button",{onClick:()=>setWishOpen(!1),"data-gufi-src":"page.tsx:9018"},"\u2715")),__gh("div",{className:"D-bd","data-gufi-src":"page.tsx:9019"},wish.size===0?__gh("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%",padding:"60px 28px",textAlign:"center"},"data-gufi-src":"page.tsx:9020"},__gh("div",{style:{width:80,height:80,borderRadius:"50%",background:"#f5f5f5",display:"flex",alignItems:"center",justifyContent:"center",marginBottom:24},"data-gufi-src":"page.tsx:9021"},__gh("svg",{viewBox:"0 0 24 24",width:"32",height:"32",fill:"none",stroke:"#ccc",strokeWidth:"1.2","data-gufi-src":"page.tsx:9022"},__gh("path",{d:"M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z","data-gufi-src":"page.tsx:9022"}))),__gh("h3",{style:{fontSize:18,fontWeight:700,marginBottom:8,textTransform:"none",letterSpacing:"-.01em"},"data-gufi-src":"page.tsx:9024"},tr("A\xFAn no tienes favoritos")),__gh("p",{style:{fontSize:13,color:"var(--t3)",marginBottom:28,lineHeight:1.5,maxWidth:240},"data-gufi-src":"page.tsx:9025"},tr("Explora la colecci\xF3n y guarda las piezas que m\xE1s te gusten.")),__gh("button",{onClick:()=>setWishOpen(!1),style:{padding:"14px 32px",background:"#0a0a0a",color:"#fff",fontSize:12,fontWeight:600,letterSpacing:".04em",textTransform:"uppercase",borderRadius:50,transition:"opacity .2s"},"data-gufi-src":"page.tsx:9026"},tr("Explorar la tienda"))):Array.from(wish).map(pid=>{let p=prods.find(pr=>pr.id===pid);if(!p)return null;let opts=getVariantOptions(p);return __gh("div",{className:"ci",key:pid,"data-gufi-src":"page.tsx:9033"},__gh("div",{className:"ci-i","data-gufi-src":"page.tsx:9034"},__gh(RetryImg,{src:img(p),alt:str(p.nombre)})),__gh("div",{className:"ci-f","data-gufi-src":"page.tsx:9035"},__gh("div",{className:"ci-n","data-gufi-src":"page.tsx:9036"},str(p.nombre)),__gh("div",{className:"ci-pr","data-gufi-src":"page.tsx:9037"},price(getPrice(p))),__gh("button",{className:"ci-rm",onClick:()=>toggleWish(pid),"data-gufi-src":"page.tsx:9038"},tr("Quitar"))))})),wish.size>0&&__gh("div",{className:"D-ft","data-gufi-src":"page.tsx:9044"},__gh("button",{className:"D-co",style:{background:"#0a0a0a",color:"#fff"},onClick:()=>{let added=0;Array.from(wish).forEach(pid=>{let p=prods.find(pr=>pr.id===pid);if(!p)return;let opts=getVariantOptions(p),sz=opts.length>0?opts[0]:"";addToCart(p,sz),added++}),added>0&&(setWishOpen(!1),setTimeout(()=>setCartOpen(!0),300))},"data-gufi-src":"page.tsx:9045"},tr("A\xF1adir al carrito todos mis favoritos")),__gh("button",{className:"D-cs",onClick:()=>setWishOpen(!1),"data-gufi-src":"page.tsx:9057"},tr("Seguir comprando")))),__gh("div",{className:`Dbk ${cartOpen?"o":""}`,onClick:()=>setCartOpen(!1),"data-gufi-src":"page.tsx:9062"}),__gh("aside",{className:`D ${cartOpen?"o":""}`,"data-gufi-src":"page.tsx:9063"},__gh("div",{className:"D-hd","data-gufi-src":"page.tsx:9064"},__gh("h3",{"data-gufi-src":"page.tsx:9064"},tr("Bolsa ("),cartCount,")"),__gh("button",{onClick:()=>setCartOpen(!1),"data-gufi-src":"page.tsx:9064"},"\u2715")),cartCount>0&&__gh("div",{className:"D-sp","data-gufi-src":"page.tsx:9065"},cartTotalsetCartOpen(!1),style:{padding:"14px 32px",background:"#0a0a0a",color:"#fff",fontSize:12,fontWeight:600,letterSpacing:".04em",textTransform:"uppercase",borderRadius:50,transition:"opacity .2s"},"data-gufi-src":"page.tsx:9074"},tr("Explorar la tienda"))):cart.map((x,i)=>__gh("div",{className:"ci",key:`${x.productId}-${x.size}-${i}`,"data-gufi-src":"page.tsx:9077"},__gh("div",{className:"ci-i","data-gufi-src":"page.tsx:9078"},__gh(RetryImg,{src:x.imagen,alt:altProducto(x.nombre,x.size)})),__gh("div",{className:"ci-f","data-gufi-src":"page.tsx:9079"},__gh("div",{className:"ci-n","data-gufi-src":"page.tsx:9080"},x.nombre),x.packId?(()=>{let pk=packs.find(k=>Number(k.id)===Number(x.packId));return __gh("div",{className:"ci-m","data-gufi-src":"page.tsx:9085"},tr("Pack"),pk?` \xB7 ${pk.lineas.length} ${pk.lineas.length===1?tr("producto"):tr("productos")}`:"")})():null,x.size&&__gh("div",{className:"ci-m","data-gufi-src":"page.tsx:9087"},VARIANT_LABEL,": ",x.size),__gh("div",{className:"ci-q","data-gufi-src":"page.tsx:9088"},__gh("button",{onClick:()=>updateQty(i,-1),"data-gufi-src":"page.tsx:9088"},"\u2212"),__gh("span",{"data-gufi-src":"page.tsx:9088"},x.qty),__gh("button",{onClick:()=>updateQty(i,1),"data-gufi-src":"page.tsx:9088"},"+")),__gh("div",{className:"ci-pr","data-gufi-src":"page.tsx:9089"},price(x.precio*x.qty)),__gh("button",{className:"ci-rm",onClick:()=>removeFromCart(i),"data-gufi-src":"page.tsx:9090"},tr("Eliminar")))))),cart.length>0&&__gh("div",{className:"D-ft","data-gufi-src":"page.tsx:9095"},appliedCoupon?__gh("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",background:"#f4faf6",border:"1px solid #d1e9d7",borderRadius:10,marginBottom:10},"data-gufi-src":"page.tsx:9098"},__gh("span",{style:{fontSize:11,fontWeight:600,color:"#1b6b3a",letterSpacing:".04em"},"data-gufi-src":"page.tsx:9099"},"\u2713 ",appliedCoupon.codigo,appliedCoupon.tipo==="porcentaje"&&` \xB7 -${appliedCoupon.valor}%`,appliedCoupon.tipo==="fijo"&&` \xB7 -${price(appliedCoupon.valor)}`,appliedCoupon.tipo==="envio_gratis"&&tr(" \xB7 Env\xEDo gratis")),__gh("button",{onClick:removeCoupon,style:{fontSize:11,color:"#999",padding:"2px 8px"},"data-gufi-src":"page.tsx:9105"},"\xD7")):__gh("div",{style:{display:"flex",gap:6,marginBottom:10},"data-gufi-src":"page.tsx:9108"},__gh("input",{value:promoInput,onChange:e=>setPromoInput(e.target.value.toUpperCase()),placeholder:tr("C\xF3digo cup\xF3n"),style:{flex:1,padding:"10px 12px",fontSize:12,border:"1px solid rgba(0,0,0,.1)",borderRadius:10,outline:"none",textTransform:"uppercase",letterSpacing:".04em"},"data-gufi-src":"page.tsx:9109"}),__gh("button",{onClick:applyCoupon,disabled:promoLoading||!promoInput.trim(),style:{padding:"10px 14px",fontSize:11,fontWeight:600,background:"#fff",border:"1px solid rgba(0,0,0,.12)",borderRadius:10,letterSpacing:".04em",opacity:promoLoading||!promoInput.trim()?.5:1},"data-gufi-src":"page.tsx:9115"},promoLoading?"\u2026":tr("Aplicar"))),__gh("div",{className:"tt","data-gufi-src":"page.tsx:9120"},__gh("span",{"data-gufi-src":"page.tsx:9120"},tr("Subtotal")),__gh("span",{"data-gufi-src":"page.tsx:9120"},price(cartTotal))),couponDiscount>0&&__gh("div",{className:"tt",style:{color:"#1b6b3a"},"data-gufi-src":"page.tsx:9121"},__gh("span",{"data-gufi-src":"page.tsx:9121"},tr("Descuento")),__gh("span",{"data-gufi-src":"page.tsx:9121"},"-",price(couponDiscount))),__gh("div",{className:"tt","data-gufi-src":"page.tsx:9122"},__gh("span",{"data-gufi-src":"page.tsx:9122"},tr("Env\xEDo")),__gh("span",{"data-gufi-src":"page.tsx:9122"},shipCost===0?tr("Gratis"):price(shipCost))),__gh("div",{className:"tt big","data-gufi-src":"page.tsx:9123"},__gh("span",{"data-gufi-src":"page.tsx:9123"},tr("Total")),__gh("span",{"data-gufi-src":"page.tsx:9123"},price(orderTotal))),__gh("button",{className:"D-co",disabled:SHOP_CLOSED,style:{background:SHOP_CLOSED?"#999":"#0a0a0a",color:"#fff",fontSize:11,letterSpacing:".06em",cursor:SHOP_CLOSED?"not-allowed":"pointer",opacity:SHOP_CLOSED?.55:1},onClick:()=>{if(SHOP_CLOSED){notify(SHOP_CLOSED_MSG);return}if(!user&&!guest){pendingAfterLogin.current="checkout",setCartOpen(!1),syncSy(),setAuthMode("login"),setAuthOpen(!0),notify(tr("Inicia sesi\xF3n para continuar"));return}setCartOpen(!1),go("checkout")},"data-gufi-src":"page.tsx:9130"},tr("Tramitar pedido \u2192")),!user&&!SHOP_CLOSED&&__gh("button",{className:"D-cs",style:{marginTop:8},onClick:()=>{setCartOpen(!1),setGuest({email:""}),go("checkout")},"data-gufi-src":"page.tsx:9140"},tr("Comprar sin cuenta")),__gh("button",{className:"D-cs",onClick:()=>setCartOpen(!1),"data-gufi-src":"page.tsx:9144"},tr("Seguir comprando")))),__gh("button",{className:`SUB ${abajoDelTodo?"v":""}`,"aria-label":tr("Volver arriba"),onClick:()=>window.scrollTo({top:0,behavior:"smooth"}),"data-gufi-src":"page.tsx:9153"},__gh("svg",{viewBox:"0 0 24 24",width:"17",height:"17",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","data-gufi-src":"page.tsx:9158"},__gh("path",{d:"M12 19V5M5 12l7-7 7 7","data-gufi-src":"page.tsx:9158"}))))}function subst(text,ctx){return text.replace(/\{\{\s*razon_social\s*\}\}/g,ctx.razon_social||ctx.brand_name||"\u2014").replace(/\{\{\s*cif\s*\}\}/g,ctx.cif||"\u2014").replace(/\{\{\s*email_contacto\s*\}\}/g,ctx.email_contacto||"\u2014").replace(/\{\{\s*direccion_fiscal\s*\}\}/g,ctx.direccion_fiscal||"\u2014").replace(/\{\{\s*website_url\s*\}\}/g,ctx.website_url||"\u2014").replace(/\{\{\s*brand_name\s*\}\}/g,ctx.brand_name||ctx.razon_social||"\u2014")}function LegalModal({page,ctx,customTermsText,customPrivacyText,onClose,rawVariants,rawP,rawC}){let title=page==="terms"?tr("T\xE9rminos y Condiciones"):page==="privacy"?tr("Pol\xEDtica de Privacidad"):page==="cookies"?"Pol\xEDtica de Cookies":page==="shipping"?"Env\xEDos":page==="returns"?"Devoluciones":page==="contact"?"Contacto":"Gu\xEDa de tallas",customText=page==="terms"?customTermsText:customPrivacyText;return __gh("div",{onClick:onClose,style:{position:"fixed",inset:0,zIndex:9999,background:"rgba(0,0,0,0.55)",backdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",padding:16},"data-gufi-src":"page.tsx:9215"},__gh("div",{onClick:e=>e.stopPropagation(),style:{background:"#fff",borderRadius:16,width:"100%",maxWidth:680,maxHeight:"85vh",display:"flex",flexDirection:"column",overflow:"hidden",boxShadow:"0 25px 80px rgba(0,0,0,0.3)"},"data-gufi-src":"page.tsx:9224"},__gh("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"16px 20px",borderBottom:"1px solid #f4f4f5",flexShrink:0},"data-gufi-src":"page.tsx:9233"},__gh("h2",{style:{fontSize:15,fontWeight:600,color:"#18181b",margin:0,flex:1},"data-gufi-src":"page.tsx:9234"},title),__gh("button",{onClick:onClose,"aria-label":tr("Cerrar"),style:{width:32,height:32,background:"#f4f4f5",border:0,borderRadius:"50%",cursor:"pointer",fontSize:16},"data-gufi-src":"page.tsx:9235"},"\u2715")),__gh("div",{style:{flex:1,overflowY:"auto",padding:"24px 20px"},"data-gufi-src":"page.tsx:9241"},__gh("div",{className:"legal-content","data-gufi-src":"page.tsx:9242"},customText&&(page==="terms"||page==="privacy")?__gh("div",{style:{whiteSpace:"pre-wrap",fontSize:13,color:"#52525b",lineHeight:1.7},"data-gufi-src":"page.tsx:9244"},subst(customText,ctx)):page==="terms"?__gh(DefaultTerms,{ctx}):page==="privacy"?__gh(DefaultPrivacy,{ctx}):page==="cookies"?__gh(DefaultCookies,null):page==="shipping"?__gh(DefaultShipping,null):page==="returns"?__gh(DefaultReturns,null):page==="contact"?__gh(DefaultContact,{ctx}):__gh(DefaultSizing,{rawVariants,rawP,rawC}))),__gh("div",{style:{flexShrink:0,padding:"14px 20px",borderTop:"1px solid #f4f4f5"},"data-gufi-src":"page.tsx:9264"},__gh("button",{onClick:onClose,style:{width:"100%",padding:"10px 16px",background:"#18181b",color:"#fff",fontSize:13,fontWeight:600,border:0,borderRadius:12,cursor:"pointer"},"data-gufi-src":"page.tsx:9265"},tr("Cerrar")))),__gh("style",{"data-gufi-src":"page.tsx:9276"},` .legal-content h3 { font-size: 15px; font-weight: 700; color: #18181b; margin-top: 28px; margin-bottom: 8px; } .legal-content h3:first-child { margin-top: 0; } .legal-content p { font-size: 13px; color: #52525b; line-height: 1.7; margin-bottom: 12px; } .legal-content ul { padding-left: 20px; margin-bottom: 12px; } .legal-content li { font-size: 13px; color: #52525b; line-height: 1.7; margin-bottom: 4px; } .legal-content strong { color: #27272a; } `))}function DefaultTerms({ctx}){let brand=ctx.brand_name||ctx.razon_social||(__L==="es"?"la tienda":"the store"),razon=ctx.razon_social||brand,cif=ctx.cif||"\u2014",email=ctx.email_contacto||"\u2014",direccion=ctx.direccion_fiscal||"\u2014",url=ctx.website_url||"\u2014",locale=__L==="en"?"en-GB":"es-ES";return __L==="en"?__gh(__gf,null,__gh("p",{"data-gufi-src":"page.tsx:9299"},__gh("strong",{"data-gufi-src":"page.tsx:9299"},"Last updated:")," ",new Date().toLocaleDateString(locale,{year:"numeric",month:"long"})),__gh("h3",{"data-gufi-src":"page.tsx:9300"},"1. General information"),__gh("p",{"data-gufi-src":"page.tsx:9301"},"These terms govern the use of the online store of ",__gh("strong",{"data-gufi-src":"page.tsx:9301"},razon)," (Tax ID: ",cif,"), with address at ",direccion,", accessible at ",url,' (hereinafter, "',brand,'"). By placing an order, you accept these terms.'),__gh("h3",{"data-gufi-src":"page.tsx:9302"},"2. Products and prices"),__gh("p",{"data-gufi-src":"page.tsx:9303"},"Prices include VAT and are shown in euros. ",brand," reserves the right to modify prices without prior notice, although confirmed orders will be honored at the purchase price. Images are illustrative and may vary slightly."),__gh("h3",{"data-gufi-src":"page.tsx:9304"},"3. Purchase process"),__gh("ul",{"data-gufi-src":"page.tsx:9305"},__gh("li",{"data-gufi-src":"page.tsx:9306"},"Select products and add them to the cart."),__gh("li",{"data-gufi-src":"page.tsx:9307"},"Enter your shipping and billing details."),__gh("li",{"data-gufi-src":"page.tsx:9308"},"Confirm the order and complete payment."),__gh("li",{"data-gufi-src":"page.tsx:9309"},"You will receive a confirmation email with the order details.")),__gh("p",{"data-gufi-src":"page.tsx:9311"},"The contract is finalized when you receive the order confirmation."),__gh("h3",{"data-gufi-src":"page.tsx:9312"},"4. Payment methods"),__gh("p",{"data-gufi-src":"page.tsx:9313"},"We accept credit/debit card payments through a secure gateway. All payments are processed securely with SSL encryption."),__gh("h3",{"data-gufi-src":"page.tsx:9314"},"5. Shipping"),__gh("ul",{"data-gufi-src":"page.tsx:9315"},__gh("li",{"data-gufi-src":"page.tsx:9316"},__gh("strong",{"data-gufi-src":"page.tsx:9316"},"Mainland"),": delivery in 24-48 business hours."),__gh("li",{"data-gufi-src":"page.tsx:9317"},__gh("strong",{"data-gufi-src":"page.tsx:9317"},"Free shipping")," on orders above the amount indicated on the shipping page."),__gh("li",{"data-gufi-src":"page.tsx:9318"},"Delivery times are estimates and may vary for reasons beyond ",brand,"'s control.")),__gh("h3",{"data-gufi-src":"page.tsx:9320"},"6. Returns"),__gh("p",{"data-gufi-src":"page.tsx:9321"},"You have ",__gh("strong",{"data-gufi-src":"page.tsx:9321"},"14 calendar days")," from receipt of the order to request a return, in accordance with Royal Legislative Decree 1/2007 (Consumer Law). Products must be unopened and in their original packaging. To initiate a return, contact us at ",email,"."),__gh("p",{"data-gufi-src":"page.tsx:9322"},"The refund will be processed using the same payment method within a maximum of 14 days from receipt of the returned product."),__gh("h3",{"data-gufi-src":"page.tsx:9323"},"7. Warranties"),__gh("p",{"data-gufi-src":"page.tsx:9324"},"All our products comply with current regulations. If you receive a defective or damaged product, contact us within 48 hours to resolve it."),__gh("h3",{"data-gufi-src":"page.tsx:9325"},"8. Liability"),__gh("p",{"data-gufi-src":"page.tsx:9326"},brand," will not be liable for damages arising from improper use of the products. Images and descriptions are illustrative."),__gh("h3",{"data-gufi-src":"page.tsx:9327"},"9. Intellectual property"),__gh("p",{"data-gufi-src":"page.tsx:9328"},"All store content (texts, images, logos, design) is the property of ",razon,". Reproduction without written authorization is prohibited."),__gh("h3",{"data-gufi-src":"page.tsx:9329"},"10. Applicable law"),__gh("p",{"data-gufi-src":"page.tsx:9330"},"These terms are governed by Spanish law. For any dispute, the parties submit to the competent courts of the consumer's domicile. Controller data: ",razon,", Tax ID ",cif,", ",direccion,". Contact: ",email,".")):__gh(__gf,null,__gh("p",{"data-gufi-src":"page.tsx:9336"},__gh("strong",{"data-gufi-src":"page.tsx:9336"},"\xDAltima actualizaci\xF3n:")," ",new Date().toLocaleDateString("es-ES",{year:"numeric",month:"long"})),__gh("h3",{"data-gufi-src":"page.tsx:9338"},"1. Informaci\xF3n general"),__gh("p",{"data-gufi-src":"page.tsx:9339"},"Estas condiciones regulan el uso de la tienda online de ",__gh("strong",{"data-gufi-src":"page.tsx:9340"},razon)," (CIF: ",cif,"), con domicilio en ",direccion,", accesible en ",url,' (en adelante, "',brand,'"). Al realizar un pedido, aceptas estas condiciones.'),__gh("h3",{"data-gufi-src":"page.tsx:9345"},"2. Productos y precios"),__gh("p",{"data-gufi-src":"page.tsx:9346"},"Los precios incluyen IVA y se expresan en euros. ",brand," se reserva el derecho de modificar precios sin previo aviso, aunque los pedidos confirmados se respetar\xE1n al precio de compra. Las im\xE1genes son orientativas y pueden variar ligeramente."),__gh("h3",{"data-gufi-src":"page.tsx:9352"},"3. Proceso de compra"),__gh("ul",{"data-gufi-src":"page.tsx:9353"},__gh("li",{"data-gufi-src":"page.tsx:9354"},"Selecciona los productos y a\xF1\xE1delos al carrito."),__gh("li",{"data-gufi-src":"page.tsx:9355"},"Introduce tus datos de env\xEDo y facturaci\xF3n."),__gh("li",{"data-gufi-src":"page.tsx:9356"},"Confirma el pedido y realiza el pago."),__gh("li",{"data-gufi-src":"page.tsx:9357"},"Recibir\xE1s un email de confirmaci\xF3n con los detalles del pedido.")),__gh("p",{"data-gufi-src":"page.tsx:9359"},"El contrato se perfecciona en el momento en que recibes la confirmaci\xF3n del pedido."),__gh("h3",{"data-gufi-src":"page.tsx:9361"},"4. M\xE9todos de pago"),__gh("p",{"data-gufi-src":"page.tsx:9362"},"Aceptamos pago con tarjeta de cr\xE9dito/d\xE9bito a trav\xE9s de pasarela segura. Todos los pagos se procesan de forma segura con cifrado SSL."),__gh("h3",{"data-gufi-src":"page.tsx:9367"},"5. Env\xEDos"),__gh("ul",{"data-gufi-src":"page.tsx:9368"},__gh("li",{"data-gufi-src":"page.tsx:9369"},__gh("strong",{"data-gufi-src":"page.tsx:9369"},"Pen\xEDnsula"),": entrega en 24-48 horas laborables."),__gh("li",{"data-gufi-src":"page.tsx:9370"},__gh("strong",{"data-gufi-src":"page.tsx:9370"},"Env\xEDo gratuito")," en pedidos superiores al importe indicado en la p\xE1gina de env\xEDos."),__gh("li",{"data-gufi-src":"page.tsx:9371"},"Los plazos son estimados y pueden variar por causas ajenas a ",brand,".")),__gh("h3",{"data-gufi-src":"page.tsx:9374"},"6. Devoluciones"),__gh("p",{"data-gufi-src":"page.tsx:9375"},"Dispones de ",__gh("strong",{"data-gufi-src":"page.tsx:9376"},"14 d\xEDas naturales")," desde la recepci\xF3n del pedido para solicitar una devoluci\xF3n, conforme al Real Decreto Legislativo 1/2007 (Ley de Consumidores). Los productos deben estar sin abrir y en su embalaje original. Para iniciar una devoluci\xF3n, contacta con nosotros en ",email,"."),__gh("p",{"data-gufi-src":"page.tsx:9381"},"El reembolso se realizar\xE1 por el mismo m\xE9todo de pago en un plazo m\xE1ximo de 14 d\xEDas desde la recepci\xF3n del producto devuelto."),__gh("h3",{"data-gufi-src":"page.tsx:9386"},"7. Garant\xEDas"),__gh("p",{"data-gufi-src":"page.tsx:9387"},"Todos nuestros productos cumplen la normativa vigente. Si recibes un producto defectuoso o da\xF1ado, contacta con nosotros en un plazo de 48 horas para gestionarlo."),__gh("h3",{"data-gufi-src":"page.tsx:9392"},"8. Responsabilidad"),__gh("p",{"data-gufi-src":"page.tsx:9393"},brand," no ser\xE1 responsable de da\xF1os derivados del uso inadecuado de los productos. Las im\xE1genes y descripciones tienen car\xE1cter orientativo."),__gh("h3",{"data-gufi-src":"page.tsx:9398"},"9. Propiedad intelectual"),__gh("p",{"data-gufi-src":"page.tsx:9399"},"Todo el contenido de la tienda (textos, im\xE1genes, logos, dise\xF1o) es propiedad de"," ",razon,". Queda prohibida su reproducci\xF3n sin autorizaci\xF3n por escrito."),__gh("h3",{"data-gufi-src":"page.tsx:9404"},"10. Legislaci\xF3n aplicable"),__gh("p",{"data-gufi-src":"page.tsx:9405"},"Estas condiciones se rigen por la legislaci\xF3n espa\xF1ola. Para cualquier controversia, las partes se someten a los juzgados y tribunales competentes del domicilio del consumidor. Datos del responsable: ",razon,", CIF ",cif,", ",direccion,". Contacto: ",email,"."))}function DefaultPrivacy({ctx}){let brand=ctx.brand_name||ctx.razon_social||(__L==="es"?"la tienda":"the store"),razon=ctx.razon_social||brand,cif=ctx.cif||"\u2014",email=ctx.email_contacto||"\u2014",direccion=ctx.direccion_fiscal||"\u2014",locale=__L==="en"?"en-GB":"es-ES";return __L==="en"?__gh(__gf,null,__gh("p",{"data-gufi-src":"page.tsx:9424"},__gh("strong",{"data-gufi-src":"page.tsx:9424"},"Last updated:")," ",new Date().toLocaleDateString(locale,{year:"numeric",month:"long"})),__gh("h3",{"data-gufi-src":"page.tsx:9425"},"1. Data controller"),__gh("p",{"data-gufi-src":"page.tsx:9426"},__gh("strong",{"data-gufi-src":"page.tsx:9426"},razon)," (Tax ID: ",cif,"), with address at ",direccion,", is responsible for processing your personal data. You can contact us at ",__gh("strong",{"data-gufi-src":"page.tsx:9426"},email),"."),__gh("h3",{"data-gufi-src":"page.tsx:9427"},"2. Data we collect"),__gh("p",{"data-gufi-src":"page.tsx:9428"},"We collect the data you provide when:"),__gh("ul",{"data-gufi-src":"page.tsx:9429"},__gh("li",{"data-gufi-src":"page.tsx:9430"},"Creating an account: name, email, phone (optional)."),__gh("li",{"data-gufi-src":"page.tsx:9431"},"Placing an order: shipping address, billing details."),__gh("li",{"data-gufi-src":"page.tsx:9432"},"Subscribing to the newsletter: email and name."),__gh("li",{"data-gufi-src":"page.tsx:9433"},"Browsing the store: browsing data via cookies.")),__gh("h3",{"data-gufi-src":"page.tsx:9435"},"3. Purpose of processing"),__gh("p",{"data-gufi-src":"page.tsx:9436"},"We use your data to:"),__gh("ul",{"data-gufi-src":"page.tsx:9437"},__gh("li",{"data-gufi-src":"page.tsx:9438"},__gh("strong",{"data-gufi-src":"page.tsx:9438"},"Manage your account")," and provide access to the store."),__gh("li",{"data-gufi-src":"page.tsx:9439"},__gh("strong",{"data-gufi-src":"page.tsx:9439"},"Process orders"),", manage shipping and returns."),__gh("li",{"data-gufi-src":"page.tsx:9440"},__gh("strong",{"data-gufi-src":"page.tsx:9440"},"Marketing communications"),": only if you have given explicit consent. You may unsubscribe at any time."),__gh("li",{"data-gufi-src":"page.tsx:9441"},__gh("strong",{"data-gufi-src":"page.tsx:9441"},"Improve our services")," through anonymized usage analytics.")),__gh("h3",{"data-gufi-src":"page.tsx:9443"},"4. Legal basis"),__gh("ul",{"data-gufi-src":"page.tsx:9444"},__gh("li",{"data-gufi-src":"page.tsx:9445"},__gh("strong",{"data-gufi-src":"page.tsx:9445"},"Performance of contract"),": to process orders and manage your account."),__gh("li",{"data-gufi-src":"page.tsx:9446"},__gh("strong",{"data-gufi-src":"page.tsx:9446"},"Consent"),": for marketing communications and newsletter."),__gh("li",{"data-gufi-src":"page.tsx:9447"},__gh("strong",{"data-gufi-src":"page.tsx:9447"},"Legitimate interest"),": to improve our services and prevent fraud.")),__gh("h3",{"data-gufi-src":"page.tsx:9449"},"5. Recipients"),__gh("p",{"data-gufi-src":"page.tsx:9450"},"Your data may be shared with: logistics providers (for shipping), payment gateways (to process transactions) and technology providers (hosting and management tools). We do not sell your data to third parties."),__gh("h3",{"data-gufi-src":"page.tsx:9451"},"6. Retention"),__gh("p",{"data-gufi-src":"page.tsx:9452"},'We keep your data while your account is active. Order data is kept for the legal period (5 years). You can request deletion of your account at any time from the "My account" section or by writing to ',email,"."),__gh("h3",{"data-gufi-src":"page.tsx:9453"},"7. Your rights"),__gh("p",{"data-gufi-src":"page.tsx:9454"},"You have the right to:"),__gh("ul",{"data-gufi-src":"page.tsx:9455"},__gh("li",{"data-gufi-src":"page.tsx:9456"},__gh("strong",{"data-gufi-src":"page.tsx:9456"},"Access")," your personal data."),__gh("li",{"data-gufi-src":"page.tsx:9457"},__gh("strong",{"data-gufi-src":"page.tsx:9457"},"Rectify")," inaccurate or incomplete data."),__gh("li",{"data-gufi-src":"page.tsx:9458"},__gh("strong",{"data-gufi-src":"page.tsx:9458"},"Erase"),' your data ("right to be forgotten").'),__gh("li",{"data-gufi-src":"page.tsx:9459"},__gh("strong",{"data-gufi-src":"page.tsx:9459"},"Object")," to the processing of your data."),__gh("li",{"data-gufi-src":"page.tsx:9460"},__gh("strong",{"data-gufi-src":"page.tsx:9460"},"Portability"),": receive your data in a structured format."),__gh("li",{"data-gufi-src":"page.tsx:9461"},__gh("strong",{"data-gufi-src":"page.tsx:9461"},"Withdraw consent")," at any time.")),__gh("p",{"data-gufi-src":"page.tsx:9463"},"To exercise these rights, write to us at ",__gh("strong",{"data-gufi-src":"page.tsx:9463"},email),". You may also file a complaint with the Spanish Data Protection Agency (AEPD) at ",__gh("strong",{"data-gufi-src":"page.tsx:9463"},"www.aepd.es"),"."),__gh("h3",{"data-gufi-src":"page.tsx:9464"},"8. Security"),__gh("p",{"data-gufi-src":"page.tsx:9465"},"We apply technical and organizational measures to protect your data: SSL/TLS encryption, restricted access, backups and continuous monitoring.")):__gh(__gf,null,__gh("p",{"data-gufi-src":"page.tsx:9471"},__gh("strong",{"data-gufi-src":"page.tsx:9471"},"\xDAltima actualizaci\xF3n:")," ",new Date().toLocaleDateString("es-ES",{year:"numeric",month:"long"})),__gh("h3",{"data-gufi-src":"page.tsx:9473"},"1. Responsable del tratamiento"),__gh("p",{"data-gufi-src":"page.tsx:9474"},__gh("strong",{"data-gufi-src":"page.tsx:9475"},razon)," (CIF: ",cif,"), con domicilio en ",direccion,", es responsable del tratamiento de tus datos personales. Puedes contactar con nosotros en"," ",__gh("strong",{"data-gufi-src":"page.tsx:9477"},email),"."),__gh("h3",{"data-gufi-src":"page.tsx:9480"},"2. Datos que recogemos"),__gh("p",{"data-gufi-src":"page.tsx:9481"},"Recogemos los datos que nos proporcionas al:"),__gh("ul",{"data-gufi-src":"page.tsx:9482"},__gh("li",{"data-gufi-src":"page.tsx:9483"},"Crear una cuenta: nombre, email, tel\xE9fono (opcional)."),__gh("li",{"data-gufi-src":"page.tsx:9484"},"Realizar un pedido: direcci\xF3n de env\xEDo, datos de facturaci\xF3n."),__gh("li",{"data-gufi-src":"page.tsx:9485"},"Suscribirte a la newsletter: email y nombre."),__gh("li",{"data-gufi-src":"page.tsx:9486"},"Navegar por la tienda: datos de navegaci\xF3n mediante cookies.")),__gh("h3",{"data-gufi-src":"page.tsx:9489"},"3. Finalidad del tratamiento"),__gh("p",{"data-gufi-src":"page.tsx:9490"},"Utilizamos tus datos para:"),__gh("ul",{"data-gufi-src":"page.tsx:9491"},__gh("li",{"data-gufi-src":"page.tsx:9492"},__gh("strong",{"data-gufi-src":"page.tsx:9492"},"Gestionar tu cuenta")," y proporcionarte acceso a la tienda."),__gh("li",{"data-gufi-src":"page.tsx:9493"},__gh("strong",{"data-gufi-src":"page.tsx:9493"},"Procesar pedidos"),", gestionar env\xEDos y devoluciones."),__gh("li",{"data-gufi-src":"page.tsx:9494"},__gh("strong",{"data-gufi-src":"page.tsx:9494"},"Comunicaciones comerciales"),": solo si has dado tu consentimiento expl\xEDcito. Puedes darte de baja en cualquier momento."),__gh("li",{"data-gufi-src":"page.tsx:9495"},__gh("strong",{"data-gufi-src":"page.tsx:9495"},"Mejorar nuestros servicios")," mediante an\xE1lisis anonimizados de uso.")),__gh("h3",{"data-gufi-src":"page.tsx:9498"},"4. Base legal"),__gh("ul",{"data-gufi-src":"page.tsx:9499"},__gh("li",{"data-gufi-src":"page.tsx:9500"},__gh("strong",{"data-gufi-src":"page.tsx:9500"},"Ejecuci\xF3n del contrato"),": para procesar pedidos y gestionar tu cuenta."),__gh("li",{"data-gufi-src":"page.tsx:9501"},__gh("strong",{"data-gufi-src":"page.tsx:9501"},"Consentimiento"),": para comunicaciones comerciales y newsletter."),__gh("li",{"data-gufi-src":"page.tsx:9502"},__gh("strong",{"data-gufi-src":"page.tsx:9502"},"Inter\xE9s leg\xEDtimo"),": para mejorar nuestros servicios y prevenir fraude.")),__gh("h3",{"data-gufi-src":"page.tsx:9505"},"5. Destinatarios"),__gh("p",{"data-gufi-src":"page.tsx:9506"},"Tus datos podr\xE1n ser comunicados a: proveedores de log\xEDstica (para env\xEDos), pasarelas de pago (para procesar transacciones) y proveedores tecnol\xF3gicos (alojamiento y herramientas de gesti\xF3n). No vendemos tus datos a terceros."),__gh("h3",{"data-gufi-src":"page.tsx:9512"},"6. Conservaci\xF3n"),__gh("p",{"data-gufi-src":"page.tsx:9513"},'Conservamos tus datos mientras mantengas tu cuenta activa. Los datos de pedidos se conservan durante el plazo legal (5 a\xF1os). Puedes solicitar la eliminaci\xF3n de tu cuenta en cualquier momento desde la secci\xF3n "Mi cuenta" o escribiendo a ',email,"."),__gh("h3",{"data-gufi-src":"page.tsx:9519"},"7. Tus derechos"),__gh("p",{"data-gufi-src":"page.tsx:9520"},"Tienes derecho a:"),__gh("ul",{"data-gufi-src":"page.tsx:9521"},__gh("li",{"data-gufi-src":"page.tsx:9522"},__gh("strong",{"data-gufi-src":"page.tsx:9522"},"Acceder")," a tus datos personales."),__gh("li",{"data-gufi-src":"page.tsx:9523"},__gh("strong",{"data-gufi-src":"page.tsx:9523"},"Rectificar")," datos inexactos o incompletos."),__gh("li",{"data-gufi-src":"page.tsx:9524"},__gh("strong",{"data-gufi-src":"page.tsx:9524"},"Suprimir"),' tus datos ("derecho al olvido").'),__gh("li",{"data-gufi-src":"page.tsx:9525"},__gh("strong",{"data-gufi-src":"page.tsx:9525"},"Oponerte")," al tratamiento de tus datos."),__gh("li",{"data-gufi-src":"page.tsx:9526"},__gh("strong",{"data-gufi-src":"page.tsx:9526"},"Portabilidad"),": recibir tus datos en formato estructurado."),__gh("li",{"data-gufi-src":"page.tsx:9527"},__gh("strong",{"data-gufi-src":"page.tsx:9527"},"Retirar el consentimiento")," en cualquier momento.")),__gh("p",{"data-gufi-src":"page.tsx:9529"},"Para ejercer estos derechos, escr\xEDbenos a ",__gh("strong",{"data-gufi-src":"page.tsx:9530"},email),". Tambi\xE9n puedes presentar una reclamaci\xF3n ante la Agencia Espa\xF1ola de Protecci\xF3n de Datos (AEPD) en ",__gh("strong",{"data-gufi-src":"page.tsx:9532"},"www.aepd.es"),"."),__gh("h3",{"data-gufi-src":"page.tsx:9535"},"8. Seguridad"),__gh("p",{"data-gufi-src":"page.tsx:9536"},"Aplicamos medidas t\xE9cnicas y organizativas para proteger tus datos: cifrado SSL/TLS, acceso restringido, copias de seguridad y monitorizaci\xF3n continua."))}function DefaultCookies(){return __gh(__gf,null,__gh("h3",{"data-gufi-src":"page.tsx:9547"},"1. \xBFQu\xE9 son las cookies?"),__gh("p",{"data-gufi-src":"page.tsx:9548"},"Las cookies son peque\xF1os archivos de texto que se almacenan en tu dispositivo cuando visitas nuestra web. Nos ayudan a recordar tus preferencias, entender c\xF3mo interact\xFAas con el sitio y mejorar tu experiencia de compra."),__gh("h3",{"data-gufi-src":"page.tsx:9554"},"2. Tipos de cookies que utilizamos"),__gh("ul",{"data-gufi-src":"page.tsx:9555"},__gh("li",{"data-gufi-src":"page.tsx:9556"},__gh("strong",{"data-gufi-src":"page.tsx:9556"},"Cookies t\xE9cnicas (necesarias):")," imprescindibles para el funcionamiento de la tienda. Permiten la navegaci\xF3n, el acceso a \xE1reas seguras y la gesti\xF3n del carrito de compra."),__gh("li",{"data-gufi-src":"page.tsx:9557"},__gh("strong",{"data-gufi-src":"page.tsx:9557"},"Cookies de preferencias:")," recuerdan tus elecciones (idioma, regi\xF3n, etc.) para ofrecerte una experiencia personalizada."),__gh("li",{"data-gufi-src":"page.tsx:9558"},__gh("strong",{"data-gufi-src":"page.tsx:9558"},"Cookies anal\xEDticas:")," nos permiten conocer el n\xFAmero de visitantes y analizar el uso de la web para mejorar nuestros servicios. Toda la informaci\xF3n se recopila de forma an\xF3nima."),__gh("li",{"data-gufi-src":"page.tsx:9559"},__gh("strong",{"data-gufi-src":"page.tsx:9559"},"Cookies de marketing:")," utilizadas para mostrarte contenido relevante y publicidad personalizada, solo si has dado tu consentimiento.")),__gh("h3",{"data-gufi-src":"page.tsx:9562"},"3. Gesti\xF3n de cookies"),__gh("p",{"data-gufi-src":"page.tsx:9563"},"Puedes permitir, bloquear o eliminar las cookies instaladas en tu dispositivo desde la configuraci\xF3n de tu navegador. Ten en cuenta que desactivar ciertas cookies puede afectar al funcionamiento de la tienda y limitar algunos servicios."),__gh("h3",{"data-gufi-src":"page.tsx:9569"},"4. Consentimiento"),__gh("p",{"data-gufi-src":"page.tsx:9570"},"Al continuar navegando por nuestra web, aceptas el uso de cookies de acuerdo con esta pol\xEDtica. En cualquier momento puedes revocar tu consentimiento modificando la configuraci\xF3n de tu navegador."))}function DefaultShipping(){return __gh(__gf,null,__gh("h3",{"data-gufi-src":"page.tsx:9581"},"Zona de env\xEDo"),__gh("p",{"data-gufi-src":"page.tsx:9582"},"Realizamos env\xEDos a ",__gh("strong",{"data-gufi-src":"page.tsx:9583"},"toda Espa\xF1a (Pen\xEDnsula)"),". Actualmente ",__gh("strong",{"data-gufi-src":"page.tsx:9583"},"no realizamos env\xEDos fuera de este espacio territorial"),". Islas Baleares, Canarias, Ceuta y Melilla no est\xE1n incluidas en nuestra zona de env\xEDo."),__gh("h3",{"data-gufi-src":"page.tsx:9586"},"Costes de env\xEDo"),__gh("p",{"data-gufi-src":"page.tsx:9587"},"El coste de env\xEDo var\xEDa en funci\xF3n de la ",__gh("strong",{"data-gufi-src":"page.tsx:9588"},"distancia")," y el ",__gh("strong",{"data-gufi-src":"page.tsx:9588"},"peso")," del paquete. El importe exacto se calcula autom\xE1ticamente en el checkout una vez introduzcas tu c\xF3digo postal."),__gh("h3",{"data-gufi-src":"page.tsx:9591"},"Env\xEDo gratuito"),__gh("p",{"data-gufi-src":"page.tsx:9592"},"Los env\xEDos son ",__gh("strong",{"data-gufi-src":"page.tsx:9593"},"gratuitos en pedidos superiores a 60 \u20AC"),". Para pedidos inferiores a ese importe, se aplicar\xE1 la tarifa correspondiente seg\xFAn destino y peso."),__gh("h3",{"data-gufi-src":"page.tsx:9596"},"Plazo de entrega"),__gh("p",{"data-gufi-src":"page.tsx:9597"},"El tiempo estimado de entrega en Pen\xEDnsula es de ",__gh("strong",{"data-gufi-src":"page.tsx:9598"},"24-48 horas laborables")," desde la confirmaci\xF3n del pedido. Durante campa\xF1as especiales o periodos de alta demanda, los plazos pueden extenderse ligeramente."))}function DefaultReturns(){return __gh(__gf,null,__gh("h3",{"data-gufi-src":"page.tsx:9607"},"Plazo para devoluciones"),__gh("p",{"data-gufi-src":"page.tsx:9608"},"Dispones de ",__gh("strong",{"data-gufi-src":"page.tsx:9609"},"14 d\xEDas naturales")," desde la recepci\xF3n de tu pedido para solicitar una devoluci\xF3n."),__gh("h3",{"data-gufi-src":"page.tsx:9612"},"Condiciones"),__gh("p",{"data-gufi-src":"page.tsx:9613"},"Los productos deben estar ",__gh("strong",{"data-gufi-src":"page.tsx:9614"},"sin usar, en perfecto estado")," y con su ",__gh("strong",{"data-gufi-src":"page.tsx:9614"},"embalaje original"),". No se aceptar\xE1n prendas que presenten signos de uso, lavado o alteraci\xF3n."),__gh("h3",{"data-gufi-src":"page.tsx:9617"},"C\xF3mo devolver"),__gh("p",{"data-gufi-src":"page.tsx:9618"},"Para iniciar una devoluci\xF3n, contacta con nosotros a trav\xE9s del email de atenci\xF3n al cliente indicando tu n\xFAmero de pedido. Te indicaremos los pasos a seguir y, si procede, te facilitaremos la etiqueta de env\xEDo."),__gh("h3",{"data-gufi-src":"page.tsx:9622"},"Reembolso"),__gh("p",{"data-gufi-src":"page.tsx:9623"},"Una vez recibamos el paquete y comprobemos que cumple las condiciones, procederemos al reembolso en un plazo m\xE1ximo de 14 d\xEDas mediante el mismo m\xE9todo de pago utilizado en la compra. Los gastos de env\xEDo originales no son reembolsables salvo defecto de f\xE1brica."))}function DefaultContact({ctx}){let email=ctx.email_contacto||"";return __gh(__gf,null,__gh("h3",{"data-gufi-src":"page.tsx:9634"},"Atenci\xF3n al cliente"),__gh("p",{"data-gufi-src":"page.tsx:9635"},"\xBFTienes alguna duda sobre tu pedido, una devoluci\xF3n o simplemente quieres saludarnos? Escr\xEDbenos y te responderemos lo antes posible."),__gh("h3",{"data-gufi-src":"page.tsx:9640"},"Email"),__gh("p",{"data-gufi-src":"page.tsx:9641"},__gh("a",{href:`mailto:${email}`,style:{color:"#18181b",fontWeight:600},"data-gufi-src":"page.tsx:9642"},email)),__gh("h3",{"data-gufi-src":"page.tsx:9645"},"Horario de atenci\xF3n"),__gh("p",{"data-gufi-src":"page.tsx:9646"},"De lunes a viernes, de 9:00 a 18:00 (hora peninsular)."),__gh("h3",{"data-gufi-src":"page.tsx:9650"},"Redes sociales"),__gh("p",{"data-gufi-src":"page.tsx:9651"},ctx.website_url?__gh(__gf,null,"Tambi\xE9n puedes escribirnos desde ",__gh("strong",{"data-gufi-src":"page.tsx:9652"},ctx.website_url),"."):null))}function DefaultSizing({rawVariants,rawP,rawC}){let tables=(0,import_react3.useMemo)(()=>{let variants=Array.isArray(rawVariants)?rawVariants:[],products=Array.isArray(rawP)?rawP:[],categories=Array.isArray(rawC)?rawC:[],catMap={};categories.forEach(c=>{c?.id&&(catMap[Number(c.id)]=String(c.nombre||""))});let prodMap={};products.forEach(p=>{p?.id&&(prodMap[Number(p.id)]=p)});let byCat={};return variants.forEach(v=>{if(v?.__deleted_at__)return;let pid=v?.producto&&typeof v.producto=="object"?v.producto.id:v?.producto,prod=prodMap[Number(pid)];if(!prod)return;let catId=categoriaDe(prod),catName=catId!=null&&catMap[catId]||"General";byCat[catName]||(byCat[catName]=[]);let largo=v.largo?String(v.largo).trim():"",ancho=v.ancho?String(v.ancho).trim():"";(largo||ancho)&&byCat[catName].push({producto:String(prod.nombre||""),talla:String(v.value||""),largo,ancho})}),byCat},[rawVariants,rawP,rawC]),hasData=Object.keys(tables).length>0;return __gh(__gf,null,__gh("p",{style:{marginBottom:20},"data-gufi-src":"page.tsx:9704"},"Al seleccionar cada talla en la ficha de producto aparecer\xE1n las medidas correspondientes. A continuaci\xF3n te presentamos una gu\xEDa orientativa con las medidas reales de nuestras prendas."),hasData?Object.entries(tables).map(([catName,rows])=>{if(rows.length===0)return null;let seen=new Map;rows.forEach(r=>{seen.has(r.talla)||seen.set(r.talla,{largo:r.largo,ancho:r.ancho})});let uniqueRows=Array.from(seen.entries()).map(([talla,m])=>({talla,...m})),sizeOrder=["XS","S","M","L","XL","XXL","XXXL","\xDANICA","UNICA"];uniqueRows.sort((a,b)=>{let ia=sizeOrder.indexOf(a.talla.toUpperCase()),ib=sizeOrder.indexOf(b.talla.toUpperCase());return ia!==-1&&ib!==-1?ia-ib:ia!==-1?-1:ib!==-1?1:a.talla.localeCompare(b.talla)});let hasLargo=uniqueRows.some(r=>r.largo),hasAncho=uniqueRows.some(r=>r.ancho);return __gh(import_react3.default.Fragment,{key:catName},__gh("h3",{"data-gufi-src":"page.tsx:9737"},catName),__gh("div",{style:{overflowX:"auto",marginBottom:24},"data-gufi-src":"page.tsx:9738"},__gh("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:13},"data-gufi-src":"page.tsx:9739"},__gh("thead",{"data-gufi-src":"page.tsx:9740"},__gh("tr",{style:{background:"#f4f4f5"},"data-gufi-src":"page.tsx:9741"},__gh("th",{style:{padding:"10px 12px",textAlign:"left",borderBottom:"1px solid #e4e4e7",fontWeight:600},"data-gufi-src":"page.tsx:9742"},"Talla"),hasAncho&&__gh("th",{style:{padding:"10px 12px",textAlign:"left",borderBottom:"1px solid #e4e4e7",fontWeight:600},"data-gufi-src":"page.tsx:9743"},"Ancho"),hasLargo&&__gh("th",{style:{padding:"10px 12px",textAlign:"left",borderBottom:"1px solid #e4e4e7",fontWeight:600},"data-gufi-src":"page.tsx:9744"},"Largo"))),__gh("tbody",{"data-gufi-src":"page.tsx:9747"},uniqueRows.map((r,i)=>__gh("tr",{key:i,"data-gufi-src":"page.tsx:9749"},__gh("td",{style:{padding:"10px 12px",borderBottom:"1px solid #f4f4f5",fontWeight:500},"data-gufi-src":"page.tsx:9750"},r.talla),hasAncho&&__gh("td",{style:{padding:"10px 12px",borderBottom:"1px solid #f4f4f5"},"data-gufi-src":"page.tsx:9751"},r.ancho||"\u2014"),hasLargo&&__gh("td",{style:{padding:"10px 12px",borderBottom:"1px solid #f4f4f5"},"data-gufi-src":"page.tsx:9752"},r.largo||"\u2014")))))))}):__gh("p",{style:{color:"#71717a",fontSize:13},"data-gufi-src":"page.tsx:9762"},"No hay datos de medidas disponibles en este momento. Al seleccionar cada talla en la ficha de producto aparecer\xE1n las medidas correspondientes."),__gh("p",{style:{fontSize:12,color:"#71717a",marginTop:16},"data-gufi-src":"page.tsx:9768"},__gh("em",{"data-gufi-src":"page.tsx:9769"},"Nota:")," las medidas indicadas son las reales de cada prenda. Si necesitas ayuda para elegir tu talla, escr\xEDbenos y te ayudamos."))}function comboEffectiveStock(combo,groups){let cs=combo?.stock,cn=typeof cs=="number"?cs:parseInt(String(cs),10);if(Number.isFinite(cn)&&cn>0)return cn;let minStock=1/0,anyExplicit=!1;for(let[tipo,val]of Object.entries(combo?.combo||{})){let group=Array.isArray(groups)?groups.find(g=>g?.tipo===tipo):null;if(!group)continue;let valObj=(group.valores||[]).find(v=>(typeof v=="string"?v:v?.value)===val);if(!valObj||typeof valObj=="string")continue;let s2=valObj.stock;if(s2==null||s2==="")continue;let n=typeof s2=="number"?s2:parseInt(String(s2),10);Number.isFinite(n)&&(anyExplicit=!0,n0)return!combos.some(c=>{let eff=comboEffectiveStock(c,groups);return eff===null||eff>0})}catch{}let s2=p.stock;if(s2==null||s2==="")return!1;let n=typeof s2=="number"?s2:parseInt(String(s2),10);return Number.isFinite(n)?n===0:!1}function useDragGallery(itemCount,currentIndex,setIndex){let frameRef=(0,import_react3.useRef)(null),[dragX,setDragX]=(0,import_react3.useState)(0),[isDragging,setIsDragging]=(0,import_react3.useState)(!1),dragStateRef=(0,import_react3.useRef)({isDragging:!1,startX:0,startIdx:0}),indexRef=(0,import_react3.useRef)(currentIndex);return(0,import_react3.useEffect)(()=>{indexRef.current=currentIndex},[currentIndex]),(0,import_react3.useEffect)(()=>{let el=frameRef.current;if(!el||itemCount<=1)return;let start=clientX=>{dragStateRef.current={isDragging:!0,startX:clientX,startIdx:indexRef.current},setIsDragging(!0),setDragX(0)},move=clientX=>{dragStateRef.current.isDragging&&setDragX(clientX-dragStateRef.current.startX)},end=clientX=>{if(!dragStateRef.current.isDragging)return;dragStateRef.current.isDragging=!1,setIsDragging(!1);let dx=clientX-dragStateRef.current.startX,threshold=50;dx<-threshold?setIndex(Math.min(dragStateRef.current.startIdx+1,itemCount-1)):dx>threshold&&setIndex(Math.max(dragStateRef.current.startIdx-1,0)),setDragX(0)},onTouchStart=e=>{e.target?.closest(".P-gl-nav")||start(e.touches[0].clientX)},onTouchMove=e=>{dragStateRef.current.isDragging&&(e.preventDefault(),move(e.touches[0].clientX))},onTouchEnd=e=>{dragStateRef.current.isDragging&&(e.preventDefault(),end(e.changedTouches[0].clientX))};el.addEventListener("touchstart",onTouchStart,{passive:!1}),el.addEventListener("touchmove",onTouchMove,{passive:!1}),el.addEventListener("touchend",onTouchEnd,{passive:!1}),el.addEventListener("touchcancel",onTouchEnd,{passive:!1});let onMouseDown=e=>{e.target?.closest(".P-gl-nav")||start(e.clientX)},onMouseMove=e=>{dragStateRef.current.isDragging&&move(e.clientX)},onMouseUp=e=>{dragStateRef.current.isDragging&&end(e.clientX)};return el.addEventListener("mousedown",onMouseDown),window.addEventListener("mousemove",onMouseMove),window.addEventListener("mouseup",onMouseUp),()=>{el.removeEventListener("touchstart",onTouchStart),el.removeEventListener("touchmove",onTouchMove),el.removeEventListener("touchend",onTouchEnd),el.removeEventListener("touchcancel",onTouchEnd),el.removeEventListener("mousedown",onMouseDown),window.removeEventListener("mousemove",onMouseMove),window.removeEventListener("mouseup",onMouseUp)}},[itemCount,setIndex]),{dragX,isDragging,frameRef}}function Page({id,gufi}){return __gh(Storefront,{id,gufi})}var stdin_default=Page;