{"version":3,"file":"shared-lib.BeWy5BDe.mjs","names":["p","r","e","a","c","n","u","s","f","o","g","useState","getCalApi","Cal","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","css","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","metadata","siteMetadata","metadataVersion","__FramerMetadata__","metadata","siteMetadata"],"sources":["https:/ga.jspm.io/npm:@calcom/embed-react@1.5.0/dist/Cal.es.mjs","https:/framerusercontent.com/modules/3kSszCA7P49KbVg8UUZO/JpyaizoTPW5l4RsfyKkh/Calcom.js","https:/framerusercontent.com/modules/hhj4HDDhfj3qI2uPjhgw/pPWPUlth1o5IVFkNMu30/dAYKJMdsB.js","https:/framerusercontent.com/modules/zW76SwpAddmT3kxzWyiQ/zayOoN1nXNswLWtDptk4/f3wGzB2C4.js","https:/framerusercontent.com/modules/pEHTLOTTk9UsiwbshajD/DteAovrUtyPQDFwpNF0g/FVTQqWVYU.js","https:/framerusercontent.com/modules/w5FblMKQup0UgM45Bem6/m3QIlO5pAeX67pReYiTn/TolOZuNWh.js","https:/framerusercontent.com/modules/u2QEWUgaziw8WAMD0cBF/SaD4IUHofTphKGSEnpln/CkmbSN7jL.js","https:/framerusercontent.com/modules/tUNJT4ezGPtM8X3mBzMP/titLeObWBAGZB3tIshzX/X1vq8HmM0.js","https:/framerusercontent.com/modules/iZklQjJeIWg8FYUiiPqg/srJzvjb9jlPlEbARMhSH/siteMetadata.js","https:/framerusercontent.com/modules/q9EcHAja0GG501p7ZrmZ/Y5KDAzYdkYcktXIUu5px/augiA20Il.js","https:/framerusercontent.com/modules/9RLczVeoNkZarSJdMiez/9GXPUpQgSw3LfxxrleDR/jcIX63KvZ.js"],"sourcesContent":["import e,{useState as r,useEffect as n,useRef as o}from\"react\";const a=\"https://app.cal.com/embed/embed.js\";function X(e=a){(function(e,r,n){let p=function(e,r){e.q.push(r)},o=e.document;e.Cal=e.Cal||function(){let a=e.Cal,c=arguments;if(a.loaded||(a.ns={},a.q=a.q||[],o.head.appendChild(o.createElement(\"script\")).src=r,a.loaded=!0),c[0]!==n)p(a,c);else{const l=function(){p(l,arguments)},e=c[1];l.q=l.q||[],typeof e==\"string\"?(a.ns[e]=a.ns[e]||l,p(a.ns[e],c),p(a,[\"initNamespace\",e])):p(a,c)}}})(window,e,\"init\");return window.Cal}X.toString();function cr(e){const[o,a]=r();return n((()=>{a((()=>X(e)))}),[]),o}var c={exports:{}},s={};\n/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var f;function dr(){if(f)return s;f=1;var r=e,n=Symbol.for(\"react.element\"),o=Symbol.for(\"react.fragment\"),a=Object.prototype.hasOwnProperty,c=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,y={key:!0,ref:!0,__self:!0,__source:!0};function u(e,r,o){var s,f={},d=null,v=null;o!==void 0&&(d=\"\"+o),r.key!==void 0&&(d=\"\"+r.key),r.ref!==void 0&&(v=r.ref);for(s in r)a.call(r,s)&&!y.hasOwnProperty(s)&&(f[s]=r[s]);if(e&&e.defaultProps)for(s in r=e.defaultProps,r)f[s]===void 0&&(f[s]=r[s]);return{$$typeof:n,type:e,key:d,ref:v,props:f,_owner:c.current}}return s.Fragment=o,s.jsx=u,s.jsxs=u,s}var y={};\n/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var d;function vr(){return d||(d=1,process.env.NODE_ENV!==\"production\"&&function(){var r=e,n=Symbol.for(\"react.element\"),o=Symbol.for(\"react.portal\"),a=Symbol.for(\"react.fragment\"),c=Symbol.for(\"react.strict_mode\"),s=Symbol.for(\"react.profiler\"),f=Symbol.for(\"react.provider\"),d=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),g=Symbol.for(\"react.suspense_list\"),b=Symbol.for(\"react.memo\"),_=Symbol.for(\"react.lazy\"),w=Symbol.for(\"react.offscreen\"),k=Symbol.iterator,S=\"@@iterator\";function xe(e){if(e===null||typeof e!=\"object\")return null;var r=k&&e[k]||e[S];return typeof r==\"function\"?r:null}var E=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function h(e){for(var r=arguments.length,n=new Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];je(\"error\",e,n)}function je(e,r,n){var o=E.ReactDebugCurrentFrame,a=o.getStackAddendum();a!==\"\"&&(r+=\"%s\",n=n.concat([a]));var c=n.map((function(e){return String(e)}));c.unshift(\"Warning: \"+r),Function.prototype.apply.call(console[e],console,c)}var R,P=!1,T=!1,x=!1,C=!1,$=!1;R=Symbol.for(\"react.module.reference\");function $e(e){return!!(typeof e==\"string\"||typeof e==\"function\"||e===a||e===s||$||e===c||e===m||e===g||C||e===w||P||T||x||typeof e==\"object\"&&e!==null&&(e.$$typeof===_||e.$$typeof===b||e.$$typeof===f||e.$$typeof===d||e.$$typeof===v||e.$$typeof===R||e.getModuleId!==void 0))}function We(e,r,n){var o=e.displayName;if(o)return o;var a=r.displayName||r.name||\"\";return a!==\"\"?n+\"(\"+a+\")\":n}function ee(e){return e.displayName||\"Context\"}function O(e){if(e==null)return null;if(typeof e.tag==\"number\"&&h(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case a:return\"Fragment\";case o:return\"Portal\";case s:return\"Profiler\";case c:return\"StrictMode\";case m:return\"Suspense\";case g:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case d:var r=e;return ee(r)+\".Consumer\";case f:var n=e;return ee(n._context)+\".Provider\";case v:return We(e,e.render,\"ForwardRef\");case b:var y=e.displayName||null;return y!==null?y:O(e.type)||\"Memo\";case _:var w=e,k=w._payload,S=w._init;try{return O(S(k))}catch{return null}}return null}var N,D,F,I,z,A,q,M=Object.assign,Y=0;function se(){}se.__reactDisabledLog=!0;function Ye(){if(Y===0){N=console.log,D=console.info,F=console.warn,I=console.error,z=console.group,A=console.groupCollapsed,q=console.groupEnd;var e={configurable:!0,enumerable:!0,value:se,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}Y++}function Le(){if(Y--,Y===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:M({},e,{value:N}),info:M({},e,{value:D}),warn:M({},e,{value:F}),error:M({},e,{value:I}),group:M({},e,{value:z}),groupCollapsed:M({},e,{value:A}),groupEnd:M({},e,{value:q})})}Y<0&&h(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}var J,V=E.ReactCurrentDispatcher;function W(e,r,n){if(J===void 0)try{throw Error()}catch(e){var o=e.stack.trim().match(/\\n( *(at )?)/);J=o&&o[1]||\"\"}return\"\\n\"+J+e}var H,Z=!1;var G=typeof WeakMap==\"function\"?WeakMap:Map;H=new G;function le(e,r){if(!e||Z)return\"\";var n=H.get(e);if(n!==void 0)return n;var o;Z=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var c;c=V.current,V.current=null,Ye();try{if(r){var i=function(){throw Error()};if(Object.defineProperty(i.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(i,[])}catch(e){o=e}Reflect.construct(e,[],i)}else{try{i.call()}catch(e){o=e}e.call(i.prototype)}}else{try{throw Error()}catch(e){o=e}e()}}catch(r){if(r&&o&&typeof r.stack==\"string\"){for(var s=r.stack.split(\"\\n\"),f=o.stack.split(\"\\n\"),y=s.length-1,d=f.length-1;y>=1&&d>=0&&s[y]!==f[d];)d--;for(;y>=1&&d>=0;y--,d--)if(s[y]!==f[d]){if(y!==1||d!==1)do{if(y--,d--,d<0||s[y]!==f[d]){var v=\"\\n\"+s[y].replace(\" at new \",\" at \");return e.displayName&&v.includes(\"<anonymous>\")&&(v=v.replace(\"<anonymous>\",e.displayName)),typeof e==\"function\"&&H.set(e,v),v}}while(y>=1&&d>=0);break}}}finally{Z=!1,V.current=c,Le(),Error.prepareStackTrace=a}var m=e?e.displayName||e.name:\"\",g=m?W(m):\"\";return typeof e==\"function\"&&H.set(e,g),g}function Ue(e,r,n){return le(e,!1)}function Ve(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function L(e,r,n){if(e==null)return\"\";if(typeof e==\"function\")return le(e,Ve(e));if(typeof e==\"string\")return W(e);switch(e){case m:return W(\"Suspense\");case g:return W(\"SuspenseList\")}if(typeof e==\"object\")switch(e.$$typeof){case v:return Ue(e.render);case b:return L(e.type,r,n);case _:var o=e,a=o._payload,c=o._init;try{return L(c(a),r,n)}catch{}}return\"\"}var Q=Object.prototype.hasOwnProperty,re={},te=E.ReactDebugCurrentFrame;function U(e){if(e){var r=e._owner,n=L(e.type,e._source,r?r.type:null);te.setExtraStackFrame(n)}else te.setExtraStackFrame(null)}function Me(e,r,n,o,a){var c=Function.call.bind(Q);for(var s in e)if(c(e,s)){var f=void 0;try{if(typeof e[s]!=\"function\"){var y=Error((o||\"React class\")+\": \"+n+\" type `\"+s+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[s]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw y.name=\"Invariant Violation\",y}f=e[s](r,s,o,n,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(e){f=e}f&&!(f instanceof Error)&&(U(a),h(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",o||\"React class\",n,s,typeof f),U(null)),f instanceof Error&&!(f.message in re)&&(re[f.message]=!0,U(a),h(\"Failed %s type: %s\",n,f.message),U(null))}}var ne=Array.isArray;function B(e){return ne(e)}function Be(e){var r=typeof Symbol==\"function\"&&Symbol.toStringTag,n=r&&e[Symbol.toStringTag]||e.constructor.name||\"Object\";return n}function Je(e){try{return de(e),!1}catch{return!0}}function de(e){return\"\"+e}function ve(e){if(Je(e))return h(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",Be(e)),de(e)}var oe,ae,ie,ce=E.ReactCurrentOwner,ue={key:!0,ref:!0,__self:!0,__source:!0};ie={};function ze(e){if(Q.call(e,\"ref\")){var r=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Ke(e){if(Q.call(e,\"key\")){var r=Object.getOwnPropertyDescriptor(e,\"key\").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function He(e,r){if(typeof e.ref==\"string\"&&ce.current&&r&&ce.current.stateNode!==r){var n=O(ce.current.type);ie[n]||(h('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',O(ce.current.type),e.ref),ie[n]=!0)}}function Xe(e,r){var t=function(){oe||(oe=!0,h(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:t,configurable:!0})}function Ze(e,r){var t=function(){ae||(ae=!0,h(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",r))};t.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:t,configurable:!0})}var Qe=function(e,r,o,a,c,s,f){var y={$$typeof:n,type:e,key:r,ref:o,props:f,_owner:s};return y._store={},Object.defineProperty(y._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(y,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.defineProperty(y,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:c}),Object.freeze&&(Object.freeze(y.props),Object.freeze(y)),y};function er(e,r,n,o,a){var c,s={},f=null,y=null;n!==void 0&&(ve(n),f=\"\"+n),Ke(r)&&(ve(r.key),f=\"\"+r.key),ze(r)&&(y=r.ref,He(r,a));for(c in r)Q.call(r,c)&&!ue.hasOwnProperty(c)&&(s[c]=r[c]);if(e&&e.defaultProps){var d=e.defaultProps;for(c in d)s[c]===void 0&&(s[c]=d[c])}if(f||y){var v=typeof e==\"function\"?e.displayName||e.name||\"Unknown\":e;f&&Xe(s,v),y&&Ze(s,v)}return Qe(e,f,y,a,o,ce.current,s)}var fe=E.ReactCurrentOwner,pe=E.ReactDebugCurrentFrame;function j(e){if(e){var r=e._owner,n=L(e.type,e._source,r?r.type:null);pe.setExtraStackFrame(n)}else pe.setExtraStackFrame(null)}var me;me=!1;function K(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===n}function be(){if(fe.current){var e=O(fe.current.type);if(e)return\"\\n\\nCheck the render method of `\"+e+\"`.\"}return\"\"}function rr(e){if(e!==void 0){var r=e.fileName.replace(/^.*[\\\\\\/]/,\"\"),n=e.lineNumber;return\"\\n\\nCheck your code at \"+r+\":\"+n+\".\"}return\"\"}var ge={};function tr(e){var r=be();if(!r){var n=typeof e==\"string\"?e:e.displayName||e.name;n&&(r=\"\\n\\nCheck the top-level render call using <\"+n+\">.\")}return r}function Ee(e,r){if(e._store&&!e._store.validated&&e.key==null){e._store.validated=!0;var n=tr(r);if(!ge[n]){ge[n]=!0;var o=\"\";e&&e._owner&&e._owner!==fe.current&&(o=\" It was passed a child from \"+O(e._owner.type)+\".\"),j(e),h('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,o),j(null)}}}function ye(e,r){if(typeof e==\"object\")if(B(e))for(var n=0;n<e.length;n++){var o=e[n];K(o)&&Ee(o,r)}else if(K(e))e._store&&(e._store.validated=!0);else if(e){var a=xe(e);if(typeof a==\"function\"&&a!==e.entries)for(var c,s=a.call(e);!(c=s.next()).done;)K(c.value)&&Ee(c.value,r)}}function nr(e){var r=e.type;if(r!=null&&typeof r!=\"string\"){var n;if(typeof r==\"function\")n=r.propTypes;else{if(typeof r!=\"object\"||r.$$typeof!==v&&r.$$typeof!==b)return;n=r.propTypes}if(n){var o=O(r);Me(n,e.props,\"prop\",o,e)}else if(r.PropTypes!==void 0&&!me){me=!0;var a=O(r);h(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",a||\"Unknown\")}typeof r.getDefaultProps==\"function\"&&!r.getDefaultProps.isReactClassApproved&&h(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function ar(e){for(var r=Object.keys(e.props),n=0;n<r.length;n++){var o=r[n];if(o!==\"children\"&&o!==\"key\"){j(e),h(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",o),j(null);break}}e.ref!==null&&(j(e),h(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),j(null))}function Re(e,r,o,c,s,f){var y=$e(e);if(!y){var d=\"\";(e===void 0||typeof e==\"object\"&&e!==null&&Object.keys(e).length===0)&&(d+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var v=rr(s);d+=v||be();var m;e===null?m=\"null\":B(e)?m=\"array\":e!==void 0&&e.$$typeof===n?(m=\"<\"+(O(e.type)||\"Unknown\")+\" />\",d=\" Did you accidentally export a JSX literal instead of a component?\"):m=typeof e,h(\"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",m,d)}var g=er(e,r,o,s,f);if(g==null)return g;if(y){var b=r.children;if(b!==void 0)if(c)if(B(b)){for(var _=0;_<b.length;_++)ye(b[_],e);Object.freeze&&Object.freeze(b)}else h(\"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\");else ye(b,e)}return e===a?ar(g):nr(g),g}function ir(e,r,n){return Re(e,r,n,!0)}function or(e,r,n){return Re(e,r,n,!1)}var he=or,_e=ir;y.Fragment=a,y.jsx=he,y.jsxs=_e}()),y}process.env.NODE_ENV===\"production\"?c.exports=dr():c.exports=vr();var v=c.exports;const m=v.jsx,mr=function(e){const{calLink:r,calOrigin:a,namespace:c=\"\",config:s,initConfig:f={},embedJsUrl:y,...d}=e;if(!r)throw new Error(\"calLink is required\");const v=o(!1),g=cr(y),b=o(null);return n((()=>{if(!g||v.current||!b.current)return;v.current=!0;const e=b.current;c?(g(\"init\",c,{...f,origin:a}),g.ns[c](\"inline\",{elementOrSelector:e,calLink:r,config:s})):(g(\"init\",{...f,origin:a}),g(\"inline\",{elementOrSelector:e,calLink:r,config:s}))}),[g,r,s,c,a,f]),g?m(\"div\",{ref:b,...d}):null},g=mr;function Er(e){const r=typeof e==\"string\"?{embedJsUrl:e}:e??{},{namespace:n=\"\",embedJsUrl:o}=r;return new Promise((function p(e){const r=X(o);r(\"init\",n);const a=n?r.ns[n]:r;a?e(a):setTimeout((()=>{p(e)}),50)}))}export{g as default,Er as getCalApi};\n//# sourceMappingURL=Cal.es.mjs.map\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import Cal,{getCalApi}from\"@calcom/embed-react\";import{useState,useEffect}from\"react\";import{RenderTarget}from\"framer\";var BookerLayouts;var EmbedTheme;/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicHeight 575\n * @framerIntrinsicWidth 1000\n */export default function Calcom(props){const{layout,eventLink,darkTheme,lightTheme,theme,showEventTypeDetails,namespace=\"\"}=props;const[error,setError]=useState();const[embedInfo,setEmbedInfo]=useState({origin:\"\",username:\"\",eventTypeSlug:\"\",namespace:\"\"});const isOnCavas=RenderTarget.current()===RenderTarget.canvas;let _namespace=namespace===\"\"&&embedInfo.namespace===\"\"?`uniqueId-${Math.floor(Math.random()*1e3)}`:namespace!==\"\"?namespace:embedInfo.namespace;useEffect(()=>{(async function(){let url=null;let normalizedLink=eventLink?.trim()||\"\";if(!/^https?:\\/\\//i.test(normalizedLink)){normalizedLink=\"https://\"+normalizedLink;}try{url=new URL(normalizedLink?.trim());}catch(err){console.error(`Incorrect URL: ${eventLink?.trim()} \n`,err);alert(`Incorrect URL: ${eventLink?.trim()} `);url=null;return;}const origin=url.origin;const[username,eventTypeSlug=\"\"]=url.pathname.slice(1).split(\"/\");if(!username){console.error(\"URL must include at least username.\");alert(`URL must include at least username.`);return;}setEmbedInfo(prev=>({...prev,origin,username,eventTypeSlug,namespace:_namespace}));const cal=await getCalApi({namespace:_namespace});cal(\"ui\",{cssVarsPerTheme:{light:{\"cal-brand\":lightTheme},dark:{\"cal-brand\":darkTheme}},hideEventTypeDetails:!showEventTypeDetails,layout:layout,theme:theme});})();},[eventLink,layout,lightTheme,darkTheme,theme,showEventTypeDetails]);return /*#__PURE__*/_jsx(Cal,{namespace:_namespace,calLink:`${embedInfo.username}/${embedInfo.eventTypeSlug}`,style:isOnCavas?{height:\"100%\",overflow:\"clip\"}:{width:\"100%\",height:\"100%\",overflow:\"scroll\"},config:{layout,theme},calOrigin:embedInfo.origin},`${eventLink}-${_namespace}`);}addPropertyControls(Calcom,{eventLink:{title:\"Event Link\",type:ControlType.String,defaultValue:\"https://cal.com/framer-placeholder/default\"},theme:{type:ControlType.Enum,options:[\"auto\",\"light\",\"dark\"],optionTitles:[\"Auto\",\"Light\",\"Dark\"],defaultValue:\"auto\"},lightTheme:{type:ControlType.Color,defaultValue:\"#292929\",title:\"Light Color\"},darkTheme:{type:ControlType.Color,defaultValue:\"#fafafa\",title:\"Dark Color\"},showEventTypeDetails:{type:ControlType.Enum,title:\"Event Info\",defaultValue:true,displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[true,false],optionTitles:[\"Show\",\"Hide\"]},layout:{type:ControlType.Enum,options:[\"month_view\",\"column_view\",\"week_view\"],optionTitles:[\"Month View\",\"Column View\",\"Week View\"],defaultValue:\"month_view\"}});Calcom.displayName=\"Cal.com\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Calcom\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"575\",\"framerIntrinsicWidth\":\"1000\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Calcom.map","// Generated by Framer (4420582)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Medium\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-MediumItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/khkJkwSL66WFg8SX6Wa726c.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/0E7IMbDzcGABpBwwqNEt60wU0w.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/NTJ0nQgIF0gcDelS14zQ9NR9Q.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/QrcNhgEPfRl0LS8qz5Ln8olanl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JEXmejW8mXOYMtt0hyRg811kHac.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/Bo5CNzBv77CafbxOtKIkpw9egw.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/uy9s0iWuxiNnVt8EpTI3gzohpwo.woff2\",weight:\"500\"}]}];export const css=['.framer-NaV76 .framer-styles-preset-9ud4br:not(.rich-text-wrapper), .framer-NaV76 .framer-styles-preset-9ud4br.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.02em; --framer-line-height: 23px; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-122aedcc-10bb-482a-ab20-e08fbef1f63e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-NaV76\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (4420582)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/pKRFNWFoZl77qYCAIp84lN1h944.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"}]}];export const css=['.framer-TmUtQ .framer-styles-preset-hf8r4f:not(.rich-text-wrapper), .framer-TmUtQ .framer-styles-preset-hf8r4f.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: -0.01em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-40dfed2f-212d-4270-9db6-b73847609a14, rgba(255, 255, 255, 0.7)); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-TmUtQ\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (4420582)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Medium\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-MediumItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/khkJkwSL66WFg8SX6Wa726c.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/0E7IMbDzcGABpBwwqNEt60wU0w.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/NTJ0nQgIF0gcDelS14zQ9NR9Q.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/QrcNhgEPfRl0LS8qz5Ln8olanl8.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JEXmejW8mXOYMtt0hyRg811kHac.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/Bo5CNzBv77CafbxOtKIkpw9egw.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/uy9s0iWuxiNnVt8EpTI3gzohpwo.woff2\",weight:\"500\"}]}];export const css=['.framer-UJM53 .framer-styles-preset-2hemna:not(.rich-text-wrapper), .framer-UJM53 .framer-styles-preset-2hemna.rich-text-wrapper h2 { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 34px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -1.8px; --framer-line-height: 42px; --framer-paragraph-spacing: 40px; --framer-text-alignment: center; --framer-text-color: var(--token-122aedcc-10bb-482a-ab20-e08fbef1f63e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1199px) and (min-width: 810px) { .framer-UJM53 .framer-styles-preset-2hemna:not(.rich-text-wrapper), .framer-UJM53 .framer-styles-preset-2hemna.rich-text-wrapper h2 { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 32px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -1.8px; --framer-line-height: 42px; --framer-paragraph-spacing: 40px; --framer-text-alignment: center; --framer-text-color: var(--token-122aedcc-10bb-482a-ab20-e08fbef1f63e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-UJM53 .framer-styles-preset-2hemna:not(.rich-text-wrapper), .framer-UJM53 .framer-styles-preset-2hemna.rich-text-wrapper h2 { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 28px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -1.8px; --framer-line-height: 42px; --framer-paragraph-spacing: 40px; --framer-text-alignment: center; --framer-text-color: var(--token-122aedcc-10bb-482a-ab20-e08fbef1f63e, #ffffff); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-UJM53\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (504870a)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-jGsQ8 .framer-styles-preset-ijg1pa:not(.rich-text-wrapper), .framer-jGsQ8 .framer-styles-preset-ijg1pa.rich-text-wrapper a { --framer-link-hover-text-color: var(--token-122aedcc-10bb-482a-ab20-e08fbef1f63e, #ffffff); --framer-link-text-color: #000000; transition-delay: 0s; transition-duration: 0.4s; transition-property: color; transition-timing-function: cubic-bezier(0.44, 0, 0.56, 1); }\"];export const className=\"framer-jGsQ8\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (504870a)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Medium\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-MediumItalic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5A3Ce6C9YYmCjpQx9M4inSaKU.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/Qx95Xyt0Ka3SGhinnbXIGpEIyP4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6mJuEAguuIuMog10gGvH5d3cl8.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/xYYWaj7wCU5zSQH0eXvSaS19wo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/otTaNuNpVK4RbdlT7zDDdKvQBA.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/UjlFhCnUjxhNfep4oYBPqnEssyo.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/DolVirEGb34pEXEp8t8FQBSK4.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/khkJkwSL66WFg8SX6Wa726c.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/0E7IMbDzcGABpBwwqNEt60wU0w.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/NTJ0nQgIF0gcDelS14zQ9NR9Q.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/QrcNhgEPfRl0LS8qz5Ln8olanl8.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JEXmejW8mXOYMtt0hyRg811kHac.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/Bo5CNzBv77CafbxOtKIkpw9egw.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/uy9s0iWuxiNnVt8EpTI3gzohpwo.woff2\",weight:\"500\"}]}];export const css=['.framer-kPUzY .framer-styles-preset-n17amk:not(.rich-text-wrapper), .framer-kPUzY .framer-styles-preset-n17amk.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: -0.02em; --framer-line-height: 19px; --framer-paragraph-spacing: 19px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-kPUzY\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (504870a)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/u2QEWUgaziw8WAMD0cBF/SaD4IUHofTphKGSEnpln/CkmbSN7jL.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/w5FblMKQup0UgM45Bem6/m3QIlO5pAeX67pReYiTn/TolOZuNWh.js\";const enabledGestures={EtUyofLDN:{hover:true}};const serializationHash=\"framer-te6pp\";const variantClassNames={EtUyofLDN:\"framer-v-1cvjytj\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:450,type:\"spring\"};const transformTemplate1=(_,t)=>`translateX(-50%) ${t}`;const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({chatWithUs,height,id,link,width,...props})=>{return{...props,MJ9Ebf5ET:link??props.MJ9Ebf5ET,sq67Ol4a3:chatWithUs??props.sq67Ol4a3??\"Chat with us\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,sq67Ol4a3,MJ9Ebf5ET,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"EtUyofLDN\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:MJ9Ebf5ET,motionChild:true,nodeId:\"EtUyofLDN\",openInNewTab:false,scopeId:\"X1vq8HmM0\",smoothScroll:true,children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1cvjytj\",className,classNames)} framer-1wpcqxw`,\"data-framer-name\":\"Primary\",layoutDependency:layoutDependency,layoutId:\"EtUyofLDN\",ref:refBinding,style:{backgroundColor:\"var(--token-122aedcc-10bb-482a-ab20-e08fbef1f63e, rgb(255, 255, 255))\",borderBottomLeftRadius:34,borderBottomRightRadius:34,borderTopLeftRadius:34,borderTopRightRadius:34,opacity:1,...style},variants:{\"EtUyofLDN-hover\":{opacity:.95}},...addPropertyOverrides({\"EtUyofLDN-hover\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-n17amk\",\"data-styles-preset\":\"CkmbSN7jL\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ed98769c-8eba-4e24-a350-c40c4d3e6d78, rgb(0, 0, 0)))\"},children:/*#__PURE__*/_jsx(Link,{href:\"https://wa.me/+9779768424924\",motionChild:true,nodeId:\"zBDKJrz1e\",openInNewTab:true,relValues:[],scopeId:\"X1vq8HmM0\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-ijg1pa\",\"data-styles-preset\":\"TolOZuNWh\",children:\"Chat with us\"})})})}),className:\"framer-1r5hldp\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"zBDKJrz1e\",style:{\"--extracted-r6o4lv\":\"var(--token-ed98769c-8eba-4e24-a350-c40c4d3e6d78, rgb(0, 0, 0))\",\"--framer-paragraph-spacing\":\"0px\"},text:sq67Ol4a3,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"EtUyofLDN-hover\":{transformTemplate:transformTemplate1}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-n17amk\",\"data-styles-preset\":\"CkmbSN7jL\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ed98769c-8eba-4e24-a350-c40c4d3e6d78, rgb(0, 0, 0)))\"},children:\"Chat with us\"})}),className:\"framer-1gdgo2w\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"Kkry7FpH9\",style:{\"--extracted-r6o4lv\":\"var(--token-ed98769c-8eba-4e24-a350-c40c4d3e6d78, rgb(0, 0, 0))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},text:sq67Ol4a3,transformTemplate:transformTemplate1,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"EtUyofLDN-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-n17amk\",\"data-styles-preset\":\"CkmbSN7jL\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ed98769c-8eba-4e24-a350-c40c4d3e6d78, rgb(0, 0, 0)))\"},children:/*#__PURE__*/_jsx(Link,{href:\"https://wa.me/+9779768424924\",motionChild:true,nodeId:\"Kkry7FpH9\",openInNewTab:true,relValues:[],scopeId:\"X1vq8HmM0\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-ijg1pa\",\"data-styles-preset\":\"TolOZuNWh\",children:\"Chat with us\"})})})}),transformTemplate:undefined}},baseVariant,gestureVariant)})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-te6pp.framer-1wpcqxw, .framer-te6pp .framer-1wpcqxw { display: block; }\",\".framer-te6pp.framer-1cvjytj { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 6px; height: min-content; justify-content: center; overflow: hidden; padding: 10px 28px 10px 28px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-te6pp .framer-1r5hldp { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-te6pp .framer-1gdgo2w { -webkit-user-select: none; bottom: -25px; flex: none; height: auto; left: 50%; position: absolute; user-select: none; white-space: pre; width: auto; z-index: 1; }\",\".framer-te6pp.framer-v-1cvjytj.hover .framer-1r5hldp { left: 50%; position: absolute; top: -25px; z-index: 1; }\",\".framer-te6pp.framer-v-1cvjytj.hover .framer-1gdgo2w { bottom: unset; left: unset; position: relative; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 39\n * @framerIntrinsicWidth 142\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"M391K7Kr4\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"sq67Ol4a3\":\"chatWithUs\",\"MJ9Ebf5ET\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerX1vq8HmM0=withCSS(Component,css,\"framer-te6pp\");export default FramerX1vq8HmM0;FramerX1vq8HmM0.displayName=\"Button\";FramerX1vq8HmM0.defaultProps={height:39,width:142};addPropertyControls(FramerX1vq8HmM0,{sq67Ol4a3:{defaultValue:\"Chat with us\",displayTextArea:false,placeholder:\"\",title:\"Chat with us\",type:ControlType.String},MJ9Ebf5ET:{title:\"Link\",type:ControlType.Link}});addFonts(FramerX1vq8HmM0,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerX1vq8HmM0\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"39\",\"framerVariables\":\"{\\\"sq67Ol4a3\\\":\\\"chatWithUs\\\",\\\"MJ9Ebf5ET\\\":\\\"link\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"M391K7Kr4\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"142\",\"framerAutoSizeImages\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (504870a)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:'  <div id=\"dream-wedding-chatbot-container\"></div>\\n\\n    <!-- Firebase SDK -->\\n    <script src=\"https://www.gstatic.com/firebasejs/8.10.1/firebase-app.js\"></script>\\n    <script src=\"https://www.gstatic.com/firebasejs/8.10.1/firebase-database.js\"></script>\\n    <script>\\n      // Your web app\\'s Firebase configuration\\n      const firebaseConfig = {\\n        apiKey: \"AIzaSyCQtfNHYG7Ijhl6auvx5CRZNL7W5hb34PE\",\\n        authDomain: \"luma-chatbot-54080.firebaseapp.com\",\\n        databaseURL: \"https://luma-chatbot-54080-default-rtdb.asia-southeast1.firebasedatabase.app\",\\n        projectId: \"luma-chatbot-54080\",\\n        storageBucket: \"luma-chatbot-54080.appspot.com\",\\n        messagingSenderId: \"900425518937\",\\n        appId: \"1:900425518937:web:19611cd9a4f1caa1cd0648\",\\n        measurementId: \"G-7QVKS4STK3\"\\n      };\\n      // Initialize Firebase\\n      if (!firebase.apps.length) {\\n        firebase.initializeApp(firebaseConfig);\\n      }\\n    </script>\\n    \\n    <!-- This script contains the entire chatbot application, bundled into one place. -->\\n    <script type=\"text/babel\" data-type=\"module\">\\n      import React, { useState, useEffect, useRef, useCallback, useMemo } from \\'react\\';\\n      import ReactDOM from \\'react-dom/client\\';\\n      import { GoogleGenAI, Type } from \"@google/genai\";\\n\\n      // --- INLINED CODE FROM ALL .tsx / .ts FILES ---\\n\\n      // --- from types.ts ---\\n      const MessageAuthor = {\\n        USER: \\'user\\',\\n        AI: \\'ai\\',\\n        SYSTEM: \\'system\\',\\n      };\\n\\n      // --- from components/icons/ChatIcon.tsx ---\\n      const ChatIcon = () => (\\n        <svg\\n          xmlns=\"http://www.w3.org/2000/svg\"\\n          className=\"h-7 w-7\"\\n          viewBox=\"0 0 24 24\"\\n          strokeWidth=\"1.5\"\\n          stroke=\"currentColor\"\\n          fill=\"none\"\\n          strokeLinecap=\"round\"\\n          strokeLinejoin=\"round\"\\n        >\\n          <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\\n          <path d=\"M21 14l-3 -3h-7a1 1 0 0 1 -1 -1v-6a1 1 0 0 1 1 -1h9a1 1 0 0 1 1 1v10\" />\\n          <path d=\"M14 15v2a1 1 0 0 1 -1 1h-7l-3 3v-10a1 1 0 0 1 1 -1h2\" />\\n        </svg>\\n      );\\n\\n      // --- from components/icons/CloseIcon.tsx ---\\n      const CloseIcon = () => (\\n        <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\\n          <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\\n        </svg>\\n      );\\n\\n      // --- from components/icons/SendIcon.tsx ---\\n      const SendIcon = () => (\\n        <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-6 w-6 transform rotate-45 -mr-1 -mt-1\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\\n          <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 19l9 2-9-18-9 18 9-2zm0 0v-8\" />\\n        </svg>\\n      );\\n      \\n      // --- from components/icons/BookingIcon.tsx ---\\n      const BookingIcon = () => (\\n        <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\\n          <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" />\\n        </svg>\\n      );\\n\\n      // --- from components/icons/ClearIcon.tsx ---\\n      const ClearIcon = () => (\\n        <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\\n          <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16\" />\\n        </svg>\\n      );\\n\\n      // --- from components/icons/SaveIcon.tsx ---\\n      const SaveIcon = () => (\\n          <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\\n              <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4\" />\\n          </svg>\\n      );\\n      \\n      // --- from components/icons/DeleteIcon.tsx ---\\n      const DeleteIcon = () => (\\n        <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\\n          <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\" d=\"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16\" />\\n        </svg>\\n      );\\n\\n      // --- from services/firebaseService.ts ---\\n      const addBooking = (details) => {\\n        return new Promise((resolve, reject) => {\\n          const db = firebase.database();\\n          const newBookingRef = db.ref(\\'bookings\\').push();\\n          const newBooking = {\\n            ...details,\\n            status: \\'Remaining to call\\',\\n            notes: \\'\\',\\n            createdAt: Date.now(),\\n          };\\n          newBookingRef.set(newBooking)\\n            .then(() => {\\n              console.log(\\'--- Firebase Submission SUCCESSFUL ---\\');\\n              resolve();\\n            })\\n            .catch((error) => {\\n              console.error(\\'--- Firebase Submission FAILED ---\\', error);\\n              reject(error);\\n            });\\n        });\\n      };\\n      const listenForBookings = (callback) => {\\n        const db = firebase.database();\\n        const bookingsRef = db.ref(\\'bookings\\');\\n        const listener = bookingsRef.on(\\'value\\', (snapshot) => {\\n          const bookingsData = snapshot.val();\\n          if (bookingsData) {\\n            const bookingsArray = Object.keys(bookingsData).map(key => ({\\n              id: key,\\n              ...bookingsData[key]\\n            }));\\n            callback(bookingsArray);\\n          } else {\\n            callback([]);\\n          }\\n        }, (error) => {\\n            console.error(\"Firebase listener error:\", error);\\n        });\\n        return () => bookingsRef.off(\\'value\\', listener);\\n      };\\n      const updateBooking = (updatedBooking) => {\\n          const { id, ...bookingData } = updatedBooking;\\n          const db = firebase.database();\\n          return db.ref(`bookings/${id}`).update(bookingData);\\n      };\\n      const deleteBooking = (bookingId) => {\\n          const db = firebase.database();\\n          return db.ref(`bookings/${bookingId}`).remove();\\n      };\\n      \\n      // --- from services/geminiService.ts ---\\n      const systemInstruction = `You are Dream Wedding AI, a friendly and professional assistant for the Dream Wedding photography website. Your goal is to help users with their questions about our services, provide information, and assist them with booking a session. Be concise, warm, and helpful. Do not mention that you are an AI model unless directly asked. Keep your responses brief and to the point.`;\\n      const openBookingFormTool = {\\n        name: \\'openBookingForm\\',\\n        description: \\'Opens the booking form for the user when they express a clear intent to book a session, schedule an appointment, or check availability.\\',\\n        parameters: { type: Type.OBJECT, properties: {} },\\n      };\\n      let ai = null;\\n      const getAiClient = () => {\\n        if (ai) return ai;\\n        const API_KEY = \"AIzaSyDpTbKuPrVRt-xkuI0Bz4cJuUjMFdnwIvs\";\\n        if (!API_KEY) {\\n          console.error(\"Gemini API key not found.\");\\n          return null;\\n        }\\n        try {\\n          ai = new GoogleGenAI({ apiKey: API_KEY });\\n          return ai;\\n        } catch (error) {\\n          console.error(\"Failed to initialize GoogleGenAI:\", error);\\n          return null;\\n        }\\n      };\\n      const getChatResponse = async (chatInstance, history) => {\\n        const aiClient = getAiClient();\\n        if (!aiClient) {\\n          throw new Error(\"Gemini client could not be initialized. Please check your API key configuration.\");\\n        }\\n        let chat = chatInstance;\\n        if (!chat) {\\n          const userHistory = history.filter(m => m.author !== MessageAuthor.SYSTEM).map(m => ({\\n              role: m.author === MessageAuthor.USER ? \\'user\\' : \\'model\\',\\n              parts: [{ text: m.content }]\\n          }));\\n          chat = aiClient.chats.create({\\n            model: \\'gemini-2.5-flash\\',\\n            history: userHistory.slice(0, -1),\\n            config: {\\n              systemInstruction: systemInstruction,\\n              tools: [{ functionDeclarations: [openBookingFormTool] }],\\n            },\\n          });\\n        }\\n        const lastMessage = history[history.length - 1];\\n        try {\\n          const result = await chat.sendMessage({ message: lastMessage.content });\\n          return { response: result.text, chat, functionCalls: result.functionCalls };\\n        } catch (error) {\\n          console.error(\"Gemini API error:\", error);\\n          throw new Error(\"Failed to communicate with the Gemini API.\");\\n        }\\n      };\\n      \\n      // --- from hooks/useChat.ts ---\\n      const useChat = () => {\\n        const [messages, setMessages] = useState([]);\\n        const [isLoading, setIsLoading] = useState(false);\\n        const [userName, setUserNameState] = useState(null);\\n        const [isBookingFormTriggered, setIsBookingFormTriggered] = useState(false);\\n        const chatRef = useRef(null);\\n        const CHAT_STORAGE_KEY = \\'dream-wedding-chat\\';\\n        const CHAT_SESSION_TIMEOUT = 60 * 60 * 1000;\\n\\n        const setUserName = (name) => {\\n          setUserNameState(name);\\n          const storedData = JSON.parse(localStorage.getItem(CHAT_STORAGE_KEY) || \\'{}\\');\\n          localStorage.setItem(CHAT_STORAGE_KEY, JSON.stringify({ ...storedData, userName: name }));\\n        };\\n        const saveStateToLocalStorage = useCallback((currentMessages, currentUserName) => {\\n          const chatData = {\\n            userName: currentUserName,\\n            messages: currentMessages,\\n            timestamp: Date.now(),\\n          };\\n          localStorage.setItem(CHAT_STORAGE_KEY, JSON.stringify(chatData));\\n        }, []);\\n        useEffect(() => {\\n          try {\\n            const storedData = localStorage.getItem(CHAT_STORAGE_KEY);\\n            if (storedData) {\\n              const { userName: storedUserName, messages: storedMessages, timestamp } = JSON.parse(storedData);\\n              if (Date.now() - timestamp < CHAT_SESSION_TIMEOUT) {\\n                if (storedUserName) setUserNameState(storedUserName);\\n                if (storedMessages) setMessages(storedMessages);\\n              } else {\\n                localStorage.removeItem(CHAT_STORAGE_KEY);\\n                setMessages([{ author: MessageAuthor.AI, content: \"Welcome to Dream Wedding! I\\'m your AI assistant. How can I help you today?\" }]);\\n              }\\n            } else {\\n               setMessages([{ author: MessageAuthor.AI, content: \"Welcome to Dream Wedding! I\\'m your AI assistant. How can I help you today?\" }]);\\n            }\\n          } catch (error) { console.error(\"Failed to parse chat history from localStorage\", error); }\\n        }, []);\\n        useEffect(() => {\\n          if (userName && messages.length > 0) {\\n            saveStateToLocalStorage(messages, userName);\\n          }\\n        }, [messages, userName, saveStateToLocalStorage]);\\n        const sendMessage = async (content) => {\\n          const userMessage = { author: MessageAuthor.USER, content };\\n          const newMessages = [...messages, userMessage];\\n          setMessages(newMessages);\\n          setIsLoading(true);\\n          try {\\n            const { response, chat, functionCalls } = await getChatResponse(chatRef.current, newMessages);\\n            chatRef.current = chat;\\n            if (functionCalls && functionCalls.find((fc) => fc.name === \\'openBookingForm\\')) {\\n              setIsBookingFormTriggered(true);\\n            }\\n            if (response) {\\n              const aiMessage = { author: MessageAuthor.AI, content: response };\\n              setMessages((prevMessages) => [...prevMessages, aiMessage]);\\n            }\\n          } catch (error) {\\n            console.error(\"Failed to get response from Gemini API:\", error);\\n            const errorMessage = { author: MessageAuthor.AI, content: \"I\\'m sorry, I\\'m having trouble connecting right now. Please try again in a moment.\" };\\n            setMessages((prevMessages) => [...prevMessages, errorMessage]);\\n          } finally {\\n            setIsLoading(false);\\n          }\\n        };\\n        const clearChat = () => {\\n          setMessages([{ author: MessageAuthor.AI, content: `Hi ${userName || \\'\\'}! Your chat has been cleared. How can I help you start over?` }]);\\n          localStorage.removeItem(CHAT_STORAGE_KEY);\\n          saveStateToLocalStorage([], userName);\\n          chatRef.current = null;\\n        };\\n        const saveChat = () => {\\n          const chatHistory = messages.map((msg) => `${msg.author.toUpperCase()}: ${msg.content}`).join(\\'\\\\n\\');\\n          const blob = new Blob([chatHistory], { type: \\'text/plain;charset=utf-8\\' });\\n          const url = URL.createObjectURL(blob);\\n          const link = document.createElement(\\'a\\');\\n          link.href = url;\\n          link.download = `dream-wedding-chat-${new Date().toISOString()}.txt`;\\n          document.body.appendChild(link);\\n          link.click();\\n          document.body.removeChild(link);\\n        };\\n        const handleBookingFormOpened = useCallback(() => { setIsBookingFormTriggered(false); }, []);\\n        return { messages, sendMessage, clearChat, saveChat, isLoading, userName, setUserName, isBookingFormTriggered, handleBookingFormOpened };\\n      };\\n\\n      // --- from components/BookingForm.tsx ---\\n      const BookingForm = ({ onClose, userName }) => {\\n        const [details, setDetails] = useState({ name: userName, phone: \\'\\', email: \\'\\', date: \\'\\', message: \\'\\' });\\n        const [isSubmitting, setIsSubmitting] = useState(false);\\n        const [isSuccess, setIsSuccess] = useState(false);\\n        const [error, setError] = useState(\\'\\');\\n        const handleChange = (e) => { setDetails({ ...details, [e.target.name]: e.target.value }); };\\n        const handleSubmit = async (e) => {\\n          e.preventDefault();\\n          if (!details.name || !details.phone || !details.date) {\\n            setError(\\'Please fill in all required fields: Name, Phone, and Date.\\');\\n            return;\\n          }\\n          setError(\\'\\');\\n          setIsSubmitting(true);\\n          try {\\n            await addBooking(details);\\n            setIsSuccess(true);\\n          } catch (err) { setError(\\'Something went wrong. Please try again later.\\');\\n          } finally { setIsSubmitting(false); }\\n        };\\n        return (\\n          <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none\">\\n            <div className=\"bg-brand-bg text-brand-text rounded-2xl shadow-xl p-6 w-full max-w-md relative animate-fade-in-up border border-brand-muted/50 pointer-events-auto\">\\n              <button onClick={onClose} className=\"absolute top-4 right-4 text-brand-text-muted hover:text-brand-text transition-colors\" aria-label=\"Close booking form\"><CloseIcon /></button>\\n              {isSuccess ? (\\n                <div className=\"text-center py-8\">\\n                  <h3 className=\"text-3xl font-serif font-bold text-brand-gold mb-2\">Thank You</h3>\\n                  <p className=\"text-brand-text-muted\">Your booking request has been received. We will reach out to you soon to confirm the details.</p>\\n                  <button onClick={onClose} className=\"mt-6 bg-gradient-to-br from-brand-gold to-brand-gold-light text-brand-bg px-6 py-2 rounded-md font-bold hover:brightness-110 transition-all duration-300\">Close</button>\\n                </div>\\n              ) : (\\n                <>\\n                  <h3 className=\"text-3xl font-serif font-bold text-center mb-6 text-brand-gold\">Book a Session</h3>\\n                  <form onSubmit={handleSubmit} className=\"space-y-4\">\\n                    <div>\\n                      <label htmlFor=\"name\" className=\"block text-sm font-medium text-brand-text-muted\">Name*</label>\\n                      <input type=\"text\" name=\"name\" id=\"name\" value={details.name} onChange={handleChange} required className=\"mt-1 w-full px-4 py-2 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-2 focus:ring-brand-gold transition-all text-brand-text\" />\\n                    </div>\\n                    <div>\\n                      <label htmlFor=\"phone\" className=\"block text-sm font-medium text-brand-text-muted\">Phone Number*</label>\\n                      <input type=\"tel\" name=\"phone\" id=\"phone\" value={details.phone} onChange={handleChange} required className=\"mt-1 w-full px-4 py-2 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-2 focus:ring-brand-gold transition-all text-brand-text\" />\\n                    </div>\\n                    <div>\\n                      <label htmlFor=\"email\" className=\"block text-sm font-medium text-brand-text-muted\">Email (Optional)</label>\\n                      <input type=\"email\" name=\"email\" id=\"email\" value={details.email} onChange={handleChange} className=\"mt-1 w-full px-4 py-2 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-2 focus:ring-brand-gold transition-all text-brand-text\" />\\n                    </div>\\n                    <div>\\n                      <label htmlFor=\"date\" className=\"block text-sm font-medium text-brand-text-muted\">Preferred Date*</label>\\n                      <input type=\"date\" name=\"date\" id=\"date\" value={details.date} onChange={handleChange} required className=\"mt-1 w-full px-4 py-2 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-2 focus:ring-brand-gold transition-all text-brand-text\" />\\n                    </div>\\n                    <div>\\n                      <label htmlFor=\"message\" className=\"block text-sm font-medium text-brand-text-muted\">Message</label>\\n                      <textarea name=\"message\" id=\"message\" value={details.message} onChange={handleChange} rows={3} className=\"mt-1 w-full px-4 py-2 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-2 focus:ring-brand-gold transition-all text-brand-text\"></textarea>\\n                    </div>\\n                    {error && <p className=\"text-red-400 text-sm\">{error}</p>}\\n                    <button type=\"submit\" disabled={isSubmitting} className=\"w-full bg-gradient-to-br from-brand-gold to-brand-gold-light text-brand-bg px-6 py-3 rounded-md font-bold hover:brightness-110 transition-all duration-300 disabled:bg-brand-muted disabled:text-brand-text-muted disabled:cursor-not-allowed\">{isSubmitting ? \\'Submitting...\\' : \\'Request Booking\\'}</button>\\n                  </form>\\n                </>\\n              )}\\n            </div>\\n             <style>{`@keyframes fade-in-up { from { opacity: 0; transform: translateY(10px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } .animate-fade-in-up { animation: fade-in-up 0.4s ease-out forwards; }`}</style>\\n          </div>\\n        );\\n      };\\n\\n      // --- from components/ChatWindow.tsx ---\\n      const ChatWindow = ({ onClose, onSendClick }) => {\\n        const { messages, sendMessage, clearChat, saveChat, isLoading, userName, setUserName, isBookingFormTriggered, handleBookingFormOpened } = useChat();\\n        const [input, setInput] = useState(\\'\\');\\n        const [tempName, setTempName] = useState(\\'\\');\\n        const [showBookingForm, setShowBookingForm] = useState(false);\\n        const messagesEndRef = useRef(null);\\n        const scrollToBottom = () => { messagesEndRef.current?.scrollIntoView({ behavior: \\'smooth\\' }); };\\n        useEffect(() => { scrollToBottom(); }, [messages, isLoading]);\\n        useEffect(() => { if (isBookingFormTriggered) { setShowBookingForm(true); handleBookingFormOpened(); } }, [isBookingFormTriggered, handleBookingFormOpened]);\\n        const handleSend = (e) => { e.preventDefault(); if (onSendClick) onSendClick(); if (input.trim()) { sendMessage(input); setInput(\\'\\'); } };\\n        const handleNameSubmit = (e) => { e.preventDefault(); if(tempName.trim()) { setUserName(tempName.trim()); } };\\n        return (\\n          <div className=\"fixed inset-0 sm:bottom-24 sm:right-5 sm:inset-auto z-50 flex items-center justify-center p-0 sm:p-4 animate-fade-in-up pointer-events-none\">\\n            <div className=\"w-full h-full sm:w-[400px] sm:h-[600px] bg-brand-bg shadow-2xl rounded-none sm:rounded-2xl flex flex-col border border-brand-muted/50 pointer-events-auto\">\\n              <header className=\"p-4 flex justify-between items-center text-brand-text flex-shrink-0 border-b border-brand-muted\">\\n                <h3 className=\"font-serif font-bold text-2xl text-brand-gold\">Dream Wedding</h3>\\n                <button onClick={onClose} className=\"text-brand-text-muted hover:text-brand-text transition-colors\" aria-label=\"Close chat\"><CloseIcon /></button>\\n              </header>\\n              {!userName ? (\\n                <div className=\"flex flex-col items-center justify-center h-full p-6 text-center text-brand-text\">\\n                  <h4 className=\"text-3xl font-serif font-bold text-brand-gold mb-2\">Welcome</h4>\\n                  <p className=\"mb-8 text-brand-text-muted\">Please enter your name to begin.</p>\\n                  <form onSubmit={handleNameSubmit} className=\"w-full max-w-sm\">\\n                    <input type=\"text\" value={tempName} onChange={(e) => setTempName(e.target.value)} placeholder=\"Your Name\" className=\"w-full px-4 py-3 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-2 focus:ring-brand-gold transition-all text-brand-text placeholder-brand-text-muted\" />\\n                    <button type=\"submit\" className=\"mt-4 w-full bg-gradient-to-br from-brand-gold to-brand-gold-light text-brand-bg px-6 py-3 rounded-md font-bold hover:brightness-110 transition-all duration-300\">Start Chatting</button>\\n                  </form>\\n                </div>\\n              ) : (\\n                <>\\n                  <div className=\"flex-1 p-4 overflow-y-auto space-y-4\">\\n                    {messages.map((msg, index) => (\\n                      <div key={index} className={`flex flex-col ${msg.author === MessageAuthor.USER ? \\'items-end animate-fade-in-right\\' : \\'items-start animate-fade-in-left\\'}`}>\\n                        <p className=\"text-xs text-brand-text-muted mb-1 px-1\">{msg.author === MessageAuthor.USER ? userName : \\'Dream Wedding AI\\'}</p>\\n                        <div className={`max-w-xs md:max-w-sm px-4 py-2.5 rounded-2xl ${msg.author === MessageAuthor.USER ? \\'bg-gradient-to-br from-brand-gold to-brand-gold-light text-brand-bg rounded-br-none\\' : \\'bg-brand-surface text-brand-text rounded-bl-none\\'}`}>\\n                          <p className=\"text-sm break-words\">{msg.content}</p>\\n                        </div>\\n                      </div>\\n                    ))}\\n                    {isLoading && (\\n                       <div className=\"flex flex-col items-start animate-fade-in-left\">\\n                         <p className=\"text-xs text-brand-text-muted mb-1 px-1\">Dream Wedding AI</p>\\n                         <div className=\"bg-brand-surface text-brand-text rounded-2xl rounded-bl-none px-4 py-3 flex items-center space-x-2\">\\n                            <span className=\"w-2 h-2 bg-brand-text-muted rounded-full animate-pulse delay-75\"></span>\\n                            <span className=\"w-2 h-2 bg-brand-text-muted rounded-full animate-pulse delay-150\"></span>\\n                            <span className=\"w-2 h-2 bg-brand-text-muted rounded-full animate-pulse delay-300\"></span>\\n                         </div>\\n                      </div>\\n                    )}\\n                    <div ref={messagesEndRef} />\\n                  </div>\\n                  <div className=\"p-4 bg-brand-bg rounded-b-2xl border-t border-brand-muted\">\\n                    <div className=\"grid grid-cols-3 sm:grid-cols-3 gap-2 mb-3\">\\n                      <button onClick={() => setShowBookingForm(true)} className=\"text-xs text-brand-text-muted py-2 px-2 rounded-md hover:bg-brand-surface transition-colors flex items-center justify-center gap-1.5\"><BookingIcon />Book</button>\\n                      <button onClick={clearChat} className=\"text-xs text-brand-text-muted py-2 px-2 rounded-md hover:bg-brand-surface transition-colors flex items-center justify-center gap-1.5\"><ClearIcon />Clear</button>\\n                      <button onClick={saveChat} className=\"text-xs text-brand-text-muted py-2 px-2 rounded-md hover:bg-brand-surface transition-colors flex items-center justify-center gap-1.5\"><SaveIcon />Save</button>\\n                    </div>\\n                    <form onSubmit={handleSend} className=\"flex items-center space-x-2\">\\n                      <input type=\"text\" value={input} onChange={(e) => setInput(e.target.value)} placeholder=\"Type a message...\" className=\"flex-1 px-4 py-2 rounded-full bg-brand-surface text-brand-text border border-brand-muted focus:outline-none focus:ring-2 focus:ring-brand-gold transition-all placeholder-brand-text-muted\" />\\n                      <button type=\"submit\" className=\"bg-gradient-to-br from-brand-gold to-brand-gold-light text-brand-bg w-10 h-10 rounded-full flex items-center justify-center flex-shrink-0 hover:brightness-110 transition-colors\" aria-label=\"Send message\"><SendIcon /></button>\\n                    </form>\\n                  </div>\\n                </>\\n              )}\\n            </div>\\n            {showBookingForm && <BookingForm onClose={() => setShowBookingForm(false)} userName={userName || \\'\\'} />}\\n             <style>{`@keyframes fade-in-up { from { opacity: 0; transform: translateY(10px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes fade-in-left { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: translateX(0); } } @keyframes fade-in-right { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: translateX(0); } } .animate-fade-in-up { animation: fade-in-up 0.4s ease-out forwards; } .animate-fade-in-left { animation: fade-in-left 0.3s ease-out forwards; } .animate-fade-in-right { animation: fade-in-right 0.3s ease-out forwards; }`}</style>\\n          </div>\\n        );\\n      };\\n\\n      // --- from components/ChatBubble.tsx ---\\n      const ChatBubble = ({ onClick, isHidden }) => {\\n        return (\\n          <button\\n            onClick={onClick}\\n            className={`fixed bottom-5 right-5 z-40 bg-gradient-to-br from-brand-gold to-brand-gold-light text-brand-bg w-16 h-16 rounded-full flex items-center justify-center shadow-lg transform transition-all duration-300 ease-in-out hover:scale-110 hover:brightness-110 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-brand-bg focus:ring-brand-gold-light ${ isHidden ? \\'scale-0 opacity-0\\' : \\'scale-100 opacity-100\\' }`}\\n            style={{ boxShadow: \\'0 0 20px 5px rgba(212, 175, 55, 0.2)\\' }}\\n            aria-label=\"Open chat\"\\n          >\\n            <ChatIcon />\\n          </button>\\n        );\\n      };\\n      \\n      // --- from components/Chatbot.tsx ---\\n      const Chatbot = ({ isOpen, onOpen, onClose, onSendClick }) => {\\n        return (\\n          <div className=\"pointer-events-auto\">\\n            <ChatBubble onClick={onOpen} isHidden={isOpen} />\\n            {isOpen && <ChatWindow onClose={onClose} onSendClick={onSendClick} />}\\n          </div>\\n        );\\n      };\\n\\n      // --- from components/PasswordModal.tsx ---\\n      const PasswordModal = ({ onClose, onSubmit }) => {\\n        const [password, setPassword] = useState(\\'\\');\\n        const [error, setError] = useState(\\'\\');\\n        const handleSubmit = (e) => {\\n          e.preventDefault();\\n          const isSuccess = onSubmit(password);\\n          if (!isSuccess) {\\n            setError(\\'Incorrect password. Please try again.\\');\\n            setPassword(\\'\\');\\n          }\\n        };\\n        return (\\n          <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none\">\\n            <div className=\"bg-brand-bg text-brand-text rounded-2xl shadow-xl p-6 w-full max-w-sm relative animate-fade-in-up border border-brand-muted/50 pointer-events-auto\">\\n              <button onClick={onClose} className=\"absolute top-4 right-4 text-brand-text-muted hover:text-brand-text transition-colors\" aria-label=\"Close password prompt\"><CloseIcon /></button>\\n              <h3 className=\"text-2xl font-serif font-bold text-center mb-4 text-brand-gold\">Admin Access</h3>\\n              <p className=\"text-center text-brand-text-muted mb-6\">Enter the password to view the booking dashboard.</p>\\n              <form onSubmit={handleSubmit} className=\"space-y-4\">\\n                <div>\\n                  <label htmlFor=\"password\" className=\"sr-only\">Password</label>\\n                  <input type=\"password\" name=\"password\" id=\"password\" value={password} onChange={(e) => { setPassword(e.target.value); setError(\\'\\'); }} required className=\"w-full px-4 py-2 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-2 focus:ring-brand-gold transition-all text-brand-text\" placeholder=\"Password\"/>\\n                </div>\\n                {error && <p className=\"text-red-400 text-sm text-center\">{error}</p>}\\n                <button type=\"submit\" className=\"w-full bg-gradient-to-br from-brand-gold to-brand-gold-light text-brand-bg px-6 py-2.5 rounded-md font-bold hover:brightness-110 transition-all duration-300\">Unlock Dashboard</button>\\n              </form>\\n            </div>\\n             <style>{`@keyframes fade-in-up { from { opacity: 0; transform: translateY(10px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } .animate-fade-in-up { animation: fade-in-up 0.4s ease-out forwards; }`}</style>\\n          </div>\\n        );\\n      };\\n\\n      // --- from components/BookingCard.tsx ---\\n      const BookingCard = ({ booking, onUpdate, onDelete }) => {\\n          const STATUS_TEXT_COLORS = { \\'Remaining to call\\': \\'text-amber-400\\', \\'Called\\': \\'text-sky-400\\', \\'Fixed\\': \\'text-emerald-400\\', \\'Cancelled\\': \\'text-red-400\\' };\\n          const STATUS_OPTIONS = [\\'Remaining to call\\', \\'Called\\', \\'Fixed\\', \\'Cancelled\\'];\\n          const [status, setStatus] = useState(booking.status);\\n          const [notes, setNotes] = useState(booking.notes);\\n          const [isSaving, setIsSaving] = useState(false);\\n          const [isSaved, setIsSaved] = useState(false);\\n          useEffect(() => { setIsSaved(false); }, [status, notes]);\\n          const handleSave = () => {\\n            setIsSaving(true);\\n            const updatedBooking = { ...booking, status, notes };\\n            onUpdate(updatedBooking);\\n            setTimeout(() => { setIsSaving(false); setIsSaved(true); setTimeout(() => setIsSaved(false), 2000); }, 500);\\n          };\\n          const handleDelete = () => { if (window.confirm(\\'Are you sure you want to delete this booking? This action cannot be undone.\\')) { onDelete(booking.id); } };\\n          const hasChanges = status !== booking.status || notes !== booking.notes;\\n          return (\\n            <div className=\"bg-brand-surface p-4 rounded-lg border border-brand-muted flex flex-col justify-between\">\\n              <div>\\n                <div className=\"flex justify-between items-start flex-wrap gap-2 mb-2\">\\n                  <div>\\n                    <p className=\"font-bold text-lg text-brand-text\">{booking.name}</p>\\n                    <p className=\"text-sm text-brand-text-muted break-all\">{booking.phone}{booking.email && ` | ${booking.email}`}</p>\\n                    <p className=\"text-xs text-brand-text-muted mt-1 italic\">\\n                      Requested: {new Date(booking.createdAt).toLocaleString(undefined, { dateStyle: \\'medium\\', timeStyle: \\'short\\' })}\\n                    </p>\\n                  </div>\\n                  <div className=\"text-right\">\\n                    <p className=\"text-xs text-brand-text-muted\">Preferred Date</p>\\n                    <p className=\"text-sm font-semibold text-brand-text\">\\n                      {new Date(booking.date).toLocaleDateString(undefined, { year: \\'numeric\\', month: \\'long\\', day: \\'numeric\\' })}\\n                    </p>\\n                  </div>\\n                </div>\\n                {booking.message && <p className=\"mt-3 text-sm bg-brand-bg p-3 rounded text-brand-text-muted\">{booking.message}</p>}\\n              </div>\\n              <div className=\"mt-4 pt-4 border-t border-brand-muted space-y-3\">\\n                <div>\\n                  <label className=\"text-xs font-medium text-brand-text-muted\">Status - <span className={`${STATUS_TEXT_COLORS[status]} font-bold`}>{status}</span></label>\\n                  <select value={status} onChange={(e) => setStatus(e.target.value)} className=\"w-full mt-1 px-3 py-2 rounded-md bg-brand-bg border border-brand-muted focus:outline-none focus:ring-1 focus:ring-brand-gold\">\\n                    {STATUS_OPTIONS.map(opt => <option key={opt} value={opt}>{opt}</option>)}\\n                  </select>\\n                </div>\\n                <div>\\n                    <label className=\"text-xs font-medium text-brand-text-muted\">Notes</label>\\n                    <textarea value={notes} onChange={(e) => setNotes(e.target.value)} rows={3} placeholder=\"Add private notes...\" className=\"w-full mt-1 p-2 rounded-md bg-brand-bg border border-brand-muted focus:outline-none focus:ring-1 focus:ring-brand-gold text-sm\"></textarea>\\n                </div>\\n                <div className=\"flex justify-between items-center gap-2\">\\n                    <button onClick={handleDelete} className=\"text-brand-text-muted px-3 py-1.5 rounded-md font-semibold text-sm hover:bg-red-500 hover:text-white transition-all duration-300 flex items-center gap-1.5\"><DeleteIcon />Delete</button>\\n                    <div className=\"flex items-center gap-2\">\\n                        {isSaved && <span className=\"text-xs text-green-400\">Saved!</span>}\\n                        <button onClick={handleSave} disabled={!hasChanges || isSaving} className=\"bg-gradient-to-br from-brand-gold to-brand-gold-light text-brand-bg px-4 py-1.5 rounded-md font-bold text-sm hover:brightness-110 transition-all duration-300 disabled:bg-brand-muted disabled:text-brand-text-muted disabled:cursor-not-allowed flex items-center gap-1.5\"><SaveIcon />{isSaving ? \\'Saving...\\' : \\'Save\\'}</button>\\n                    </div>\\n                </div>\\n              </div>\\n            </div>\\n          );\\n      };\\n      \\n      // --- from components/BookingDashboard.tsx ---\\n      const BookingDashboard = ({ onClose }) => {\\n        const STATUS_OPTIONS = [\\'Remaining to call\\', \\'Called\\', \\'Fixed\\', \\'Cancelled\\'];\\n        const [bookings, setBookings] = useState([]);\\n        const [isLoading, setIsLoading] = useState(true);\\n        const [filterStatus, setFilterStatus] = useState(\\'All\\');\\n        const [searchTerm, setSearchTerm] = useState(\\'\\');\\n        const [sortBy, setSortBy] = useState(\\'newest\\');\\n        useEffect(() => {\\n          setIsLoading(true);\\n          const unsubscribe = listenForBookings((fetchedBookings) => {\\n            setBookings(fetchedBookings);\\n            setIsLoading(false);\\n          });\\n          return () => { unsubscribe(); };\\n        }, []);\\n        const handleUpdateBooking = async (updatedBooking) => {\\n          setBookings(prev => prev.map(b => b.id === updatedBooking.id ? updatedBooking : b));\\n          try { await updateBooking(updatedBooking); } catch (error) { console.error(\"Failed to update booking:\", error); }\\n        };\\n        const handleDeleteBooking = async (bookingId) => {\\n          setBookings(prev => prev.filter(b => b.id !== bookingId));\\n          try { await deleteBooking(bookingId); } catch (error) { console.error(\"Failed to delete booking:\", error); alert(\\'Error: Could not delete the booking.\\'); }\\n        };\\n        const filteredAndSortedBookings = useMemo(() => {\\n          return bookings\\n            .filter(booking => {\\n              const matchesStatus = filterStatus === \\'All\\' || booking.status === filterStatus;\\n              const matchesSearch = searchTerm === \\'\\' || booking.name.toLowerCase().includes(searchTerm.toLowerCase()) || booking.phone.toLowerCase().includes(searchTerm.toLowerCase());\\n              return matchesStatus && matchesSearch;\\n            })\\n            .sort((a, b) => { return sortBy === \\'newest\\' ? b.createdAt - a.createdAt : a.createdAt - b.createdAt; });\\n        }, [bookings, filterStatus, searchTerm, sortBy]);\\n        return (\\n          <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none\">\\n            <div className=\"bg-brand-bg text-brand-text rounded-2xl shadow-xl p-6 w-full max-w-6xl h-[90vh] relative animate-fade-in-up flex flex-col border border-brand-muted/50 pointer-events-auto\">\\n              <button onClick={onClose} className=\"absolute top-4 right-4 text-brand-text-muted hover:text-brand-text transition-colors z-20\" aria-label=\"Close dashboard\"><CloseIcon /></button>\\n              <h3 className=\"text-3xl font-serif font-bold text-center mb-4 text-brand-gold\">Booking Dashboard</h3>\\n              <div className=\"flex flex-col sm:flex-row gap-4 mb-4 p-1\">\\n                <div className=\"flex-1\">\\n                  <label htmlFor=\"search\" className=\"text-xs text-brand-text-muted\">Search Name/Phone</label>\\n                  <input id=\"search\" type=\"text\" placeholder=\"Search...\" value={searchTerm} onChange={(e) => setSearchTerm(e.target.value)} className=\"w-full px-3 py-2 mt-1 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-1 focus:ring-brand-gold\" />\\n                </div>\\n                <div className=\"flex-1 sm:flex-initial\">\\n                   <label htmlFor=\"filterStatus\" className=\"text-xs text-brand-text-muted\">Filter by Status</label>\\n                  <select value={filterStatus} onChange={(e) => setFilterStatus(e.target.value)} className=\"w-full px-3 py-2 mt-1 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-1 focus:ring-brand-gold\">\\n                    <option value=\"All\">All Statuses</option>\\n                    {STATUS_OPTIONS.map(status => <option key={status} value={status}>{status}</option>)}\\n                  </select>\\n                </div>\\n                 <div className=\"flex-1 sm:flex-initial\">\\n                   <label htmlFor=\"sortBy\" className=\"text-xs text-brand-text-muted\">Sort by</label>\\n                  <select value={sortBy} onChange={(e) => setSortBy(e.target.value)} className=\"w-full px-3 py-2 mt-1 rounded-md bg-brand-surface border border-brand-muted focus:outline-none focus:ring-1 focus:ring-brand-gold\">\\n                    <option value=\"newest\">Newest First</option>\\n                    <option value=\"oldest\">Oldest First</option>\\n                  </select>\\n                </div>\\n              </div>\\n              <div className=\"flex-1 overflow-y-auto pr-2\">\\n                  {isLoading ? (<div className=\"flex justify-center items-center h-full\"><p className=\"text-brand-text-muted\">Loading bookings...</p></div>\\n                  ) : filteredAndSortedBookings.length === 0 ? (<div className=\"flex justify-center items-center h-full\"><p className=\"text-brand-text-muted\">No bookings match the current filters.</p></div>\\n                  ) : (\\n                      <div className=\"grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-4\">\\n                          {filteredAndSortedBookings.map((booking) => (<BookingCard key={booking.id} booking={booking} onUpdate={handleUpdateBooking} onDelete={handleDeleteBooking} />))}\\n                      </div>\\n                  )}\\n              </div>\\n            </div>\\n             <style>{`@keyframes fade-in-up { from { opacity: 0; transform: translateY(10px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } .animate-fade-in-up { animation: fade-in-up 0.4s ease-out forwards; }`}</style>\\n          </div>\\n        );\\n      };\\n      \\n      // --- from App.tsx ---\\n      const App = () => {\\n        const [isChatOpen, setIsChatOpen] = useState(false);\\n        const [isDashboardOpen, setIsDashboardOpen] = useState(false);\\n        const [isPasswordModalOpen, setIsPasswordModalOpen] = useState(false);\\n        const [sendClickCount, setSendClickCount] = useState(0);\\n        const handleSendClick = () => { setSendClickCount(prev => prev + 1); };\\n        useEffect(() => {\\n          if (sendClickCount >= 15) { setIsPasswordModalOpen(true); setSendClickCount(0); }\\n        }, [sendClickCount]);\\n        const handlePasswordSubmit = (password) => {\\n          if (password === \\'book000\\') { setIsPasswordModalOpen(false); setIsDashboardOpen(true); return true; }\\n          return false;\\n        };\\n        const isAnythingOpen = isChatOpen || isDashboardOpen || isPasswordModalOpen;\\n        return (\\n          <div className={`${!isAnythingOpen ? \\'pointer-events-none\\' : \\'\\'}`}>\\n            <Chatbot isOpen={isChatOpen} onOpen={() => setIsChatOpen(true)} onClose={() => setIsChatOpen(false)} onSendClick={handleSendClick} />\\n            {isPasswordModalOpen && <PasswordModal onClose={() => setIsPasswordModalOpen(false)} onSubmit={handlePasswordSubmit} />}\\n            {isDashboardOpen && <BookingDashboard onClose={() => setIsDashboardOpen(false)} />}\\n          </div>\\n        );\\n      };\\n      \\n      // --- from index.tsx ---\\n      const containerId = \\'dream-wedding-chatbot-container\\';\\n      let rootElement = document.getElementById(containerId);\\n      if (!rootElement) {\\n        rootElement = document.createElement(\\'div\\');\\n        rootElement.id = containerId;\\n        document.body.appendChild(rootElement);\\n      }\\n      const root = ReactDOM.createRoot(rootElement);\\n      root.render(<React.StrictMode><App /></React.StrictMode>);\\n\\n    </script>',customHTMLHeadEnd:\" <link rel=\\\"preconnect\\\" href=\\\"https://fonts.googleapis.com\\\">\\n    <link rel=\\\"preconnect\\\" href=\\\"https://fonts.gstatic.com\\\" crossorigin=\\\"\\\">\\n    <link href=\\\"https://fonts.googleapis.com/css2?family=Manrope:wght@400;700&amp;family=Playfair+Display:wght@700&amp;display=swap\\\" rel=\\\"stylesheet\\\">\\n    <script src=\\\"https://cdn.tailwindcss.com\\\"></script>\\n    <script>\\n      tailwind.config = {\\n        theme: {\\n          extend: {\\n            fontFamily: {\\n              sans: ['Manrope', 'sans-serif'],\\n              serif: ['Playfair Display', 'serif'],\\n            },\\n            colors: {\\n              'brand-bg': '#121212',\\n              'brand-surface': '#1e1e1e',\\n              'brand-muted': '#2a2a2a',\\n              'brand-text': '#f5f5f7',\\n              'brand-text-muted': '#a0a0a0',\\n              'brand-gold': '#d4af37',\\n              'brand-gold-light': '#e6c36f',\\n            }\\n          },\\n        },\\n      }\\n    </script>\\n    <style>\\n      /* Make the iframe background transparent for embedding */\\n      html, body {\\n        background-color: transparent;\\n      }\\n      /* This ensures the font is applied correctly on your site */\\n      body {\\n        font-family: 'Manrope', 'sans-serif';\\n      }\\n      /* Custom scrollbar for a more integrated look */\\n      ::-webkit-scrollbar {\\n        width: 8px;\\n      }\\n      ::-webkit-scrollbar-track {\\n        background: #1e1e1e;\\n      }\\n      ::-webkit-scrollbar-thumb {\\n        background-color: #4a4a4a;\\n        border-radius: 4px;\\n      }\\n      ::-webkit-scrollbar-thumb:hover {\\n        background-color: #6a6a6a;\\n      }\\n    </style>\\n\\n    <!-- This script translates the chatbot's code (TSX) so it can run in any browser. -->\\n    <script src=\\\"https://unpkg.com/@babel/standalone/babel.min.js\\\"></script>\\n\\n    <script type=\\\"importmap\\\">\\n    {\\n      \\\"imports\\\": {\\n        \\\"react\\\": \\\"https://aistudiocdn.com/react@^19.2.0\\\",\\n        \\\"react-dom/\\\": \\\"https://aistudiocdn.com/react-dom@^19.2.0/\\\",\\n        \\\"react/\\\": \\\"https://aistudiocdn.com/react@^19.2.0/\\\",\\n        \\\"@google/genai\\\": \\\"https://aistudiocdn.com/@google/genai@^1.28.0\\\"\\n      }\\n    }\\n    </script>\\n    <!-- ...to here, and paste it into the <head> of your HTML file. -    <!-- The chatbot will float on top of your existing website content. -->\\n\",description:\"Best photography agency in the town.\",favicon:\"https://framerusercontent.com/assets/keXvEeujIVteAS3PugpSoKhpEo.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/gceMOTvmqUkRSR7mnJBvjBLQ4.jpg\",title:\"Dream Wedding Photography\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (504870a)\nimport siteMetadata from\"https://framerusercontent.com/modules/iZklQjJeIWg8FYUiiPqg/srJzvjb9jlPlEbARMhSH/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"ikt910\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"1m96104\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-H5s1q\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (504870a)\nimport siteMetadata from\"https://framerusercontent.com/modules/iZklQjJeIWg8FYUiiPqg/srJzvjb9jlPlEbARMhSH/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"1rcmbdj\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"14fn88h\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"stllba\",mediaQuery:\"(max-width: 809.98px)\"}],customHTMLHeadEnd:\"<link rel=\\\"preconnect\\\" href=\\\"https://fonts.googleapis.com\\\">\\n    <link rel=\\\"preconnect\\\" href=\\\"https://fonts.gstatic.com\\\" crossorigin=\\\"\\\">\\n    <link href=\\\"https://fonts.googleapis.com/css2?family=Manrope:wght@400;700&amp;family=Playfair+Display:wght@700&amp;display=swap\\\" rel=\\\"stylesheet\\\">\\n    <script src=\\\"https://cdn.tailwindcss.com\\\"></script>\\n    <script>\\n      tailwind.config = {\\n        theme: {\\n          extend: {\\n            fontFamily: {\\n              sans: ['Manrope', 'sans-serif'],\\n              serif: ['Playfair Display', 'serif'],\\n            },\\n            colors: {\\n              'brand-bg': '#121212',\\n              'brand-surface': '#1e1e1e',\\n              'brand-muted': '#2a2a2a',\\n              'brand-text': '#f5f5f7',\\n              'brand-text-muted': '#a0a0a0',\\n              'brand-gold': '#d4af37',\\n              'brand-gold-light': '#e6c36f',\\n            }\\n          },\\n        },\\n      }\\n    </script>\\n    <style>\\n      /* This ensures the font is applied correctly on your site */\\n      body {\\n        font-family: 'Manrope', 'sans-serif';\\n      }\\n      /* Custom scrollbar for a more integrated look within the chatbot window */\\n      #dream-wedding-chatbot-container ::-webkit-scrollbar {\\n        width: 8px;\\n      }\\n      #dream-wedding-chatbot-container ::-webkit-scrollbar-track {\\n        background: #1e1e1e;\\n      }\\n      #dream-wedding-chatbot-container ::-webkit-scrollbar-thumb {\\n        background-color: #4a4a4a;\\n        border-radius: 4px;\\n      }\\n      #dream-wedding-chatbot-container ::-webkit-scrollbar-thumb:hover {\\n        background-color: #6a6a6a;\\n      }\\n    </style>\\n    <script type=\\\"importmap\\\">\\n    {\\n      \\\"imports\\\": {\\n        \\\"react\\\": \\\"https://aistudiocdn.com/react@^19.2.0\\\",\\n        \\\"react-dom/\\\": \\\"https://aistudiocdn.com/react-dom@^19.2.0/\\\",\\n        \\\"react/\\\": \\\"https://aistudiocdn.com/react@^19.2.0/\\\",\\n        \\\"@google/genai\\\": \\\"https://aistudiocdn.com/@google/genai@^1.28.0\\\"\\n      }\\n    }\\n    </script>\",description:siteMetadata(params,activeLocale).description,elements:{},framerSearch:{index:false},robots:\"noindex\",serializationId:\"framer-Lsvt1\",title:siteMetadata(params,activeLocale).title||\"404\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}