Changeset 3367536
- Timestamp:
- 09/25/2025 05:12:01 AM (6 months ago)
- Location:
- book-it-fast/trunk
- Files:
-
- 11 edited
-
bookitfast.php (modified) (1 diff)
-
build/editor.asset.php (modified) (1 diff)
-
build/editor.js (modified) (1 diff)
-
build/frontend-rtl.css (modified) (1 diff)
-
build/frontend.asset.php (modified) (1 diff)
-
build/frontend.css (modified) (1 diff)
-
build/frontend.js (modified) (1 diff)
-
build/gift-certificate-frontend-rtl.css (modified) (1 diff)
-
build/gift-certificate-frontend.asset.php (modified) (1 diff)
-
build/gift-certificate-frontend.css (modified) (1 diff)
-
readme.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
book-it-fast/trunk/bookitfast.php
r3364358 r3367536 9 9 * Text Domain: book-it-fast 10 10 * Domain Path: /languages 11 * Version: 1.0. 111 * Version: 1.0.2 12 12 * Requires at least: 5.0 13 13 * Tested up to: 6.8.2 -
book-it-fast/trunk/build/editor.asset.php
r3364358 r3367536 1 <?php return array('dependencies' => array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-primitives'), 'version' => ' 4645c04037578c9b0626');1 <?php return array('dependencies' => array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-primitives'), 'version' => '9e65f88e7442ec3d4b5f'); -
book-it-fast/trunk/build/editor.js
r3364358 r3367536 1 (()=>{var e={609:e=>{"use strict";e.exports=window.React},926:function(e,t,a){!function(e,t){"use strict";function a(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=a){var r,n,o=[],_n=!0,i=!1;try{for(a=a.call(e);!(_n=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);_n=!0);}catch(e){i=!0,n=e}finally{try{_n||null==a.return||a.return()}finally{if(i)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?c(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var u,m,p,d,f={exports:{}};f.exports=function(){if(d)return p;d=1;var e=m?u:(m=1,u="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");function t(){}function a(){}return a.resetWarningCache=t,p=function(){function r(t,a,r,n,o,i){if(i!==e){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function n(){return r}r.isRequired=r;var o={array:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:n,element:r,elementType:r,instanceOf:n,node:r,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:a,resetWarningCache:t};return o.PropTypes=o,o}}()();var b=s(f.exports), h=function(e,a,r){var n=!!r,o=t.useRef(r);t.useEffect((function(){o.current=r}),[r]),t.useEffect((function(){if(!n||!e)return function(){};var t=function(){o.current&&o.current.apply(o,arguments)};return e.on(a,t),function(){e.off(a,t)}}),[n,a,e,o])},y=function(e){var a=t.useRef(e);return t.useEffect((function(){a.current=e}),[e]),a.current},g=function(e){return null!==e&&"object"===n(e)},E="[object Object]",v=function e(t,a){if(!g(t)||!g(a))return t===a;var r=Array.isArray(t);if(r!==Array.isArray(a))return!1;var n=Object.prototype.toString.call(t)===E;if(n!==(Object.prototype.toString.call(a)===E))return!1;if(!n&&!r)return t===a;var o=Object.keys(t),i=Object.keys(a);if(o.length!==i.length)return!1;for(var l={},c=0;c<o.length;c+=1)l[o[c]]=!0;for(var s=0;s<i.length;s+=1)l[i[s]]=!0;var u=Object.keys(l);if(u.length!==o.length)return!1;var m=t,p=a;return u.every((function(t){return e(m[t],p[t])}))},R=function(e,t,a){return g(e)?Object.keys(e).reduce((function(n,i){var l=!g(t)||!v(e[i],t[i]);return a.includes(i)?(l&&console.warn("Unsupported prop change: options.".concat(i," is not a mutable property.")),n):l?r(r({},n||{}),{},o({},i,e[i])):n}),null):null},_="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",w=function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_;if(null===e||g(t=e)&&"function"==typeof t.elements&&"function"==typeof t.createToken&&"function"==typeof t.createPaymentMethod&&"function"==typeof t.confirmCardPayment)return e;throw new Error(a)},C=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_;if(function(e){return g(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then((function(e){return w(e,t)}))};var a=w(e,t);return null===a?{tag:"empty"}:{tag:"sync",stripe:a}},N=function(e){e&&e._registerWrapper&&e.registerAppInfo&&(e._registerWrapper({name:"react-stripe-js",version:"3.6.0"}),e.registerAppInfo({name:"react-stripe-js",version:"3.6.0",url:"https://stripe.com/docs/stripe-js/react"}))},k=t.createContext(null);k.displayName="ElementsContext";var S=function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e},x=function(e){var a=e.stripe,r=e.options,n=e.children,o=t.useMemo((function(){return C(a)}),[a]),i=l(t.useState((function(){return{stripe:"sync"===o.tag?o.stripe:null,elements:"sync"===o.tag?o.stripe.elements(r):null}})),2),c=i[0],s=i[1];t.useEffect((function(){var e=!0,t=function(e){s((function(t){return t.stripe?t:{stripe:e,elements:e.elements(r)}}))};return"async"!==o.tag||c.stripe?"sync"!==o.tag||c.stripe||t(o.stripe):o.stripePromise.then((function(a){a&&e&&t(a)})),function(){e=!1}}),[o,c,r]);var u=y(a);t.useEffect((function(){null!==u&&u!==a&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")}),[u,a]);var m=y(r);return t.useEffect((function(){if(c.elements){var e=R(r,m,["clientSecret","fonts"]);e&&c.elements.update(e)}}),[r,m,c.elements]),t.useEffect((function(){N(c.stripe)}),[c.stripe]),t.createElement(k.Provider,{value:c},n)};x.propTypes={stripe:b.any,options:b.object};var P=function(e){var a=t.useContext(k);return S(a,e)},j=function(e){return(0,e.children)(P("mounts <ElementsConsumer>"))};j.propTypes={children:b.func.isRequired};var T=["on","session"],I=t.createContext(null);I.displayName="CheckoutSdkContext";var O=function(e,t){if(!e)throw new Error("Could not find CheckoutProvider context; You need to wrap the part of your app that ".concat(t," in an <CheckoutProvider> provider."));return e},F=t.createContext(null);F.displayName="CheckoutContext";var A=function(e){var a=e.stripe,r=e.options,n=e.children,o=t.useMemo((function(){return C(a,"Invalid prop `stripe` supplied to `CheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")}),[a]),c=l(t.useState(null),2),s=c[0],u=c[1],m=l(t.useState((function(){return{stripe:"sync"===o.tag?o.stripe:null,checkoutSdk:null}})),2),p=m[0],d=m[1],f=function(e,t){d((function(a){return a.stripe&&a.checkoutSdk?a:{stripe:e,checkoutSdk:t}}))},b=t.useRef(!1);t.useEffect((function(){var e=!0;return"async"!==o.tag||p.stripe?"sync"===o.tag&&o.stripe&&!b.current&&(b.current=!0,o.stripe.initCheckout(r).then((function(e){e&&(f(o.stripe,e),e.on("change",u))}))):o.stripePromise.then((function(t){t&&e&&!b.current&&(b.current=!0,t.initCheckout(r).then((function(e){e&&(f(t,e),e.on("change",u))})))})),function(){e=!1}}),[o,p,r,u]);var h=y(a);t.useEffect((function(){null!==h&&h!==a&&console.warn("Unsupported prop change on CheckoutProvider: You cannot change the `stripe` prop after setting it.")}),[h,a]);var g=y(r);t.useEffect((function(){var e,t;if(p.checkoutSdk){var a=null==g||null===(e=g.elementsOptions)||void 0===e?void 0:e.appearance,n=null==r||null===(t=r.elementsOptions)||void 0===t?void 0:t.appearance;n&&!v(n,a)&&p.checkoutSdk.changeAppearance(n)}}),[r,g,p.checkoutSdk]),t.useEffect((function(){N(p.stripe)}),[p.stripe]);var E=t.useMemo((function(){return function(e,t){if(!e)return null;e.on,e.session;var a=i(e,T);return t?Object.assign(t,a):Object.assign(e.session(),a)}(p.checkoutSdk,s)}),[p.checkoutSdk,s]);return p.checkoutSdk?t.createElement(I.Provider,{value:p},t.createElement(F.Provider,{value:E},n)):null};A.propTypes={stripe:b.any,options:b.shape({fetchClientSecret:b.func.isRequired,elementsOptions:b.object}).isRequired};var B=function(e){var a=t.useContext(I),r=t.useContext(k);if(a&&r)throw new Error("You cannot wrap the part of your app that ".concat(e," in both <CheckoutProvider> and <Elements> providers."));return a?O(a,e):S(r,e)},D=["mode"],$=function(e,a){var r,n="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),o=a?function(e){B("mounts <".concat(n,">"));var a=e.id,r=e.className;return t.createElement("div",{id:a,className:r})}:function(a){var r,o=a.id,c=a.className,s=a.options,u=void 0===s?{}:s,m=a.onBlur,p=a.onFocus,d=a.onReady,f=a.onChange,b=a.onEscape,g=a.onClick,E=a.onLoadError,v=a.onLoaderStart,_=a.onNetworksChange,w=a.onConfirm,C=a.onCancel,N=a.onShippingAddressChange,k=a.onShippingRateChange,S=B("mounts <".concat(n,">")),x="elements"in S?S.elements:null,P="checkoutSdk"in S?S.checkoutSdk:null,j=l(t.useState(null),2),T=j[0],I=j[1],O=t.useRef(null),F=t.useRef(null);h(T,"blur",m),h(T,"focus",p),h(T,"escape",b),h(T,"click",g),h(T,"loaderror",E),h(T,"loaderstart",v),h(T,"networkschange",_),h(T,"confirm",w),h(T,"cancel",C),h(T,"shippingaddresschange",N),h(T,"shippingratechange",k),h(T,"change",f),d&&(r="expressCheckout"===e?d:function(){d(T)}),h(T,"ready",r),t.useLayoutEffect((function(){if(null===O.current&&null!==F.current&&(x||P)){var t=null;if(P)switch(e){case"payment":t=P.createPaymentElement(u);break;case"address":if(!("mode"in u))throw new Error("You must supply options.mode. mode must be 'billing' or 'shipping'.");var a=u.mode,r=i(u,D);if("shipping"===a)t=P.createShippingAddressElement(r);else{if("billing"!==a)throw new Error("Invalid options.mode. mode must be 'billing' or 'shipping'.");t=P.createBillingAddressElement(r)}break;case"expressCheckout":t=P.createExpressCheckoutElement(u);break;case"currencySelector":t=P.createCurrencySelectorElement();break;default:throw new Error("Invalid Element type ".concat(n,". You must use either the <PaymentElement />, <AddressElement options={{mode: 'shipping'}} />, <AddressElement options={{mode: 'billing'}} />, or <ExpressCheckoutElement />."))}else x&&(t=x.create(e,u));O.current=t,I(t),t&&t.mount(F.current)}}),[x,P,u]);var A=y(u);return t.useEffect((function(){if(O.current){var e=R(u,A,["paymentRequest"]);e&&"update"in O.current&&O.current.update(e)}}),[u,A]),t.useLayoutEffect((function(){return function(){if(O.current&&"function"==typeof O.current.destroy)try{O.current.destroy(),O.current=null}catch(e){}}}),[]),t.createElement("div",{id:o,className:c,ref:F})};return o.propTypes={id:b.string,className:b.string,onChange:b.func,onBlur:b.func,onFocus:b.func,onReady:b.func,onEscape:b.func,onClick:b.func,onLoadError:b.func,onLoaderStart:b.func,onNetworksChange:b.func,onConfirm:b.func,onCancel:b.func,onShippingAddressChange:b.func,onShippingRateChange:b.func,options:b.object},o.displayName=n,o.__elementType=e,o},G="undefined"==typeof window,M=t.createContext(null);M.displayName="EmbeddedCheckoutProviderContext";var L=function(){var e=t.useContext(M);if(!e)throw new Error("<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>");return e},z=G?function(e){var a=e.id,r=e.className;return L(),t.createElement("div",{id:a,className:r})}:function(e){var a=e.id,r=e.className,n=L().embeddedCheckout,o=t.useRef(!1),i=t.useRef(null);return t.useLayoutEffect((function(){return!o.current&&n&&null!==i.current&&(n.mount(i.current),o.current=!0),function(){if(o.current&&n)try{n.unmount(),o.current=!1}catch(e){}}}),[n]),t.createElement("div",{ref:i,id:a,className:r})},q=$("auBankAccount",G),U=$("card",G),H=$("cardNumber",G),Y=$("cardExpiry",G),W=$("cardCvc",G),V=$("fpxBank",G),Z=$("iban",G),J=$("idealBank",G),K=$("p24Bank",G),Q=$("epsBank",G),X=$("payment",G),ee=$("expressCheckout",G),te=$("currencySelector",G),ae=$("paymentRequestButton",G),re=$("linkAuthentication",G),ne=$("address",G),oe=$("shippingAddress",G),ie=$("paymentMethodMessaging",G),le=$("affirmMessage",G),ce=$("afterpayClearpayMessage",G);e.AddressElement=ne,e.AffirmMessageElement=le,e.AfterpayClearpayMessageElement=ce,e.AuBankAccountElement=q,e.CardCvcElement=W,e.CardElement=U,e.CardExpiryElement=Y,e.CardNumberElement=H,e.CheckoutProvider=A,e.CurrencySelectorElement=te,e.Elements=x,e.ElementsConsumer=j,e.EmbeddedCheckout=z,e.EmbeddedCheckoutProvider=function(e){var a=e.stripe,r=e.options,n=e.children,o=t.useMemo((function(){return C(a,"Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")}),[a]),i=t.useRef(null),c=t.useRef(null),s=l(t.useState({embeddedCheckout:null}),2),u=s[0],m=s[1];t.useEffect((function(){if(!c.current&&!i.current){var e=function(e){c.current||i.current||(c.current=e,i.current=c.current.initEmbeddedCheckout(r).then((function(e){m({embeddedCheckout:e})})))};"async"!==o.tag||c.current||!r.clientSecret&&!r.fetchClientSecret?"sync"!==o.tag||c.current||!r.clientSecret&&!r.fetchClientSecret||e(o.stripe):o.stripePromise.then((function(t){t&&e(t)}))}}),[o,r,u,c]),t.useEffect((function(){return function(){u.embeddedCheckout?(i.current=null,u.embeddedCheckout.destroy()):i.current&&i.current.then((function(){i.current=null,u.embeddedCheckout&&u.embeddedCheckout.destroy()}))}}),[u.embeddedCheckout]),t.useEffect((function(){N(c)}),[c]);var p=y(a);t.useEffect((function(){null!==p&&p!==a&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.")}),[p,a]);var d=y(r);return t.useEffect((function(){null!=d&&(null!=r?(void 0===r.clientSecret&&void 0===r.fetchClientSecret&&console.warn("Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`."),null!=d.clientSecret&&r.clientSecret!==d.clientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=d.fetchClientSecret&&r.fetchClientSecret!==d.fetchClientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=d.onComplete&&r.onComplete!==d.onComplete&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it."),null!=d.onShippingDetailsChange&&r.onShippingDetailsChange!==d.onShippingDetailsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it."),null!=d.onLineItemsChange&&r.onLineItemsChange!==d.onLineItemsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.")):console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them."))}),[d,r]),t.createElement(M.Provider,{value:u},n)},e.EpsBankElement=Q,e.ExpressCheckoutElement=ee,e.FpxBankElement=V,e.IbanElement=Z,e.IdealBankElement=J,e.LinkAuthenticationElement=re,e.P24BankElement=K,e.PaymentElement=X,e.PaymentMethodMessagingElement=ie,e.PaymentRequestButtonElement=ae,e.ShippingAddressElement=oe,e.useCheckout=function(){!function(e){var a=t.useContext(I);O(a,e)}("calls useCheckout()");var e=t.useContext(F);if(!e)throw new Error("Could not find Checkout Context; You need to wrap the part of your app that calls useCheckout() in an <CheckoutProvider> provider.");return e},e.useElements=function(){return P("calls useElements()").elements},e.useStripe=function(){return B("calls useStripe()").stripe}}(t,a(609))}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,a),o.exports}(()=>{"use strict";var e,t=a(609),r="https://js.stripe.com",n="".concat(r,"/v3"),o=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,i=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,l="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",c=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",a=document.createElement("script");a.src="".concat(n).concat(t);var r=document.head||document.body;if(!r)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return r.appendChild(a),a},s=null,u=null,m=null,p=!1,d=function(){return e||(e=(t=null,null!==s?s:(s=new Promise((function(e,a){if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&t&&console.warn(l),window.Stripe)e(window.Stripe);else try{var n=function(){for(var e,t=document.querySelectorAll('script[src^="'.concat(r,'"]')),a=0;a<t.length;a++){var n=t[a];if(e=n.src,o.test(e)||i.test(e))return n}return null}();if(n&&t)console.warn(l);else if(n){if(n&&null!==m&&null!==u){var s;n.removeEventListener("load",m),n.removeEventListener("error",u),null===(s=n.parentNode)||void 0===s||s.removeChild(n),n=c(t)}}else n=c(t);m=function(e,t){return function(){window.Stripe?e(window.Stripe):t(new Error("Stripe.js not available"))}}(e,a),u=function(e){return function(t){e(new Error("Failed to load Stripe.js",{cause:t}))}}(a),n.addEventListener("load",m),n.addEventListener("error",u)}catch(e){return void a(e)}else e(null)}))).catch((function(e){return s=null,Promise.reject(e)}))).catch((function(t){return e=null,Promise.reject(t)})));var t};Promise.resolve().then((function(){return d()})).catch((function(e){p||console.warn(e)}));var f=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];p=!0;var r=Date.now();return d().then((function(e){return function(e,t,a){if(null===e)return null;var r=t[0].match(/^pk_test/),n=function(e){return 3===e?"v3":e}(e.version);r&&"v3"!==n&&console.warn("Stripe.js@".concat(n," was loaded on the page, but @stripe/stripe-js@").concat("5.10.0"," expected Stripe.js@").concat("v3",". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));var o=e.apply(void 0,t);return function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"5.10.0",startTime:t})}(o,a),o}(e,t,r)}))},b=a(926);const h=function(){const e=document.querySelector('link[rel="https://api.w.org/"]');return e?e.href.replace(/\/$/,""):(window.wpApiSettings?.restUrl||"/wp-json").replace(/\/$/,"")}(),y=(f("your-publishable-key-here"),e=>new URLSearchParams(window.location.search).get(e)),g=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:o,includeIcons:i})=>{e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0);const l=e.availability?.available;return React.createElement("div",{className:`bif-tile ${t?"bif-selected":""} ${l?"":"is-unavailable"}`},o&&e.property_image&&React.createElement("div",{className:"bif-tile__hero"},React.createElement("img",{loading:"lazy",src:e.property_image,alt:e.property_name}),React.createElement("span",{className:"bif-chip "+(l?"":"unavailable")},((e,t,a)=>{if(e)return"Available";switch(t){case"Booked Out":return"Booked Out";case"No Tariff Set":return"No Rates Set";case"Min Nights":return`Minimum ${a||2} Nights`;default:return"Unavailable"}})(l,e.availability?.availability_reason,e.availability?.min_nights))),React.createElement("div",{className:"bif-tile__content"},React.createElement("h3",{className:"bif-tile__title"},e.property_name),i&&e.property_features&&React.createElement("ul",{className:"bif-amenities bif-amenities--slim"},1===e.property_features.wifi&&React.createElement("li",null,React.createElement("span",null,"📶 WiFi")),e.property_features.queen_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.queen_beds," Queen")),e.property_features.king_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.king_beds," King")),e.property_features.double_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.double_beds," Double")),e.property_features.single_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.single_beds," Single")),e.property_features.bunk_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.bunk_beds," Bunk")),e.property_features.sofa_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.sofa_beds," Sofa bed")),e.property_features.bedrooms&&React.createElement("li",null,React.createElement("span",null,"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":"")),e.property_features.living_areas&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":""))),e.availability?.dates&&React.createElement("div",{className:"bif-tile__rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-pill "+(e.availability?"ok":"na")},React.createElement("span",{className:"bif-pill__date"},e.date_formatted),React.createElement("strong",{className:"bif-pill__amt"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-tile__footer"},l?React.createElement("button",{onClick:a,className:"bif-btn "+(t?"bif-btn-selected":"bif-btn-select")},t?"✓ Selected":"Select"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled"},"Unavailable")),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount))))))))},E=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:o,includeIcons:i})=>{e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0);const l=e.availability?.available;return React.createElement("div",{className:`bif-row ${t?"bif-selected":""} ${l?"":"is-unavailable"} ${o&&e.property_image?"":"no-image"}`},o&&e.property_image&&React.createElement("div",{className:"bif-row__thumb"},React.createElement("img",{loading:"lazy",src:e.property_image,alt:e.property_name})),React.createElement("div",{className:"bif-row__main"},React.createElement("div",{className:"bif-row__top"},React.createElement("h3",{className:"bif-row__title"},e.property_name),React.createElement("span",{className:"bif-dot "+(c=l,c?"ok":"na"),"aria-hidden":"true"})),i&&e.property_features&&React.createElement("ul",{className:"bif-amenities bif-amenities--inline"},1===e.property_features.wifi&&React.createElement("li",null,React.createElement("span",null,"📶 WiFi")),e.property_features.queen_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.queen_beds," Queen")),e.property_features.king_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.king_beds," King")),e.property_features.double_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.double_beds," Double")),e.property_features.single_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.single_beds," Single")),e.property_features.bunk_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.bunk_beds," Bunk")),e.property_features.sofa_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.sofa_beds," Sofa bed")),e.property_features.bedrooms&&React.createElement("li",null,React.createElement("span",null,"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":"")),e.property_features.living_areas&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":"")))),e.availability?.dates&&React.createElement("div",{className:"bif-row__rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-rmini "+(e.availability?"ok":"na")},React.createElement("div",{className:"bif-rmini__date"},e.date_formatted),React.createElement("div",{className:"bif-rmini__amt"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-row__cta"},l?React.createElement("button",{onClick:a,className:"bif-btn "+(t?"bif-btn-selected":"bif-btn-select")},t?"✓ Selected":"Select"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled"},"Unavailable")),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras",style:{gridColumn:"1 / -1",marginTop:"1rem"}},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount)))))));var c},v=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:o,includeIcons:i})=>{const l=e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0)||0,c=e.availability?.available,s=(e,t,a)=>{if(e)return"Available";switch(t){case"Booked Out":return"Booked Out";case"No Tariff Set":return"No Rates Set";case"Min Nights":return`Minimum ${a||2} Nights`;default:return"Unavailable"}};return React.createElement("div",{className:`bif-property-card ${t?"bif-selected":""} ${c?"":"bif-unavailable"}`},React.createElement("div",{className:"bif-property-header"},o&&e.property_image&&React.createElement("div",{className:"bif-property-image"},React.createElement("img",{src:e.property_image,alt:e.property_name})),React.createElement("div",{className:"bif-property-info"},React.createElement("h3",{className:"bif-property-name"},e.property_name),e.property_description&&React.createElement("p",{className:"bif-property-description"},e.property_description),i&&e.property_features&&React.createElement("div",{className:"bif-property-icons"},1===e.property_features.wifi&&React.createElement("span",{className:"bif-property-icon",title:"WiFi Available"},"📶 WiFi"),e.property_features.queen_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.queen_beds} Queen bed${e.property_features.queen_beds>1?"s":""}`},"🛏️ ",e.property_features.queen_beds," Queen"),e.property_features.king_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.king_beds} King bed${e.property_features.king_beds>1?"s":""}`},"🛏️ ",e.property_features.king_beds," King"),e.property_features.double_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.double_beds} Double bed${e.property_features.double_beds>1?"s":""}`},"🛏️ ",e.property_features.double_beds," Double"),e.property_features.single_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.single_beds} Single bed${e.property_features.single_beds>1?"s":""}`},"🛏️ ",e.property_features.single_beds," Single"),e.property_features.bunk_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.bunk_beds} Bunk bed${e.property_features.bunk_beds>1?"s":""}`},"🛏️ ",e.property_features.bunk_beds," Bunk"),e.property_features.sofa_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.sofa_beds} Sofa bed${e.property_features.sofa_beds>1?"s":""}`},"🛋️ ",e.property_features.sofa_beds," Sofa bed"),e.property_features.bedrooms&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.bedrooms} bedroom${e.property_features.bedrooms>1?"s":""}`},"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":""),e.property_features.living_areas&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.living_areas} living area${e.property_features.living_areas>1?"s":""}`},"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":""))),React.createElement("div",{className:"bif-property-status-container"},React.createElement("span",{className:`bif-property-status ${((e,t)=>{if(e)return"bif-status-available";switch(t){case"Booked Out":return"bif-status-booked";case"No Tariff Set":return"bif-status-no-rate";case"Min Nights":return"bif-status-min-nights";default:return"bif-status-unavailable"}})(c,e.availability?.availability_reason)}`},s(c,e.availability?.availability_reason,e.availability?.min_nights)),c?React.createElement("button",{onClick:a,className:`bif-btn ${t?"bif-btn-selected":"bif-btn-select"} bif-header-btn`,style:{marginLeft:"0.75rem"}},t?"✓ Selected":"Select Property"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled bif-header-btn",style:{marginLeft:"0.75rem"}},s(c,e.availability?.availability_reason,e.availability?.min_nights)))),e.availability?.dates&&React.createElement("div",{className:"bif-availability-details"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Daily Rate Breakdown"),React.createElement("div",{className:"bif-daily-rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-daily-rate "+(e.availability?"bif-available":"bif-unavailable")},React.createElement("div",{className:"bif-date"},e.date_formatted),React.createElement("div",{className:"bif-rate"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-rate-summary"},React.createElement("div",{className:"bif-summary-row"},React.createElement("span",{className:"bif-total"},"Total: $",l)))),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount)))))))},R=({checkInDate:e,nights:t,onDateChange:a,onNightsChange:r,onCheckAvailability:n,isLoading:o,minNights:i,maxNights:l,buttonIcon:c="search"})=>{const s=(new Date).toISOString().split("T")[0],u={search:"🔍",calendar:"📅",home:"🏠",mapMarker:"📍",star:"⭐",pin:"📌",pinSmall:"📍",globe:"🌍"}[c]||"🔍";return React.createElement("div",{className:"bif-date-selector"},React.createElement("h2",{className:"bif-section-title"},"Select Your Dates"),React.createElement("div",{className:"bif-date-form"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Check-in Date"),React.createElement("input",{type:"date",value:e,onChange:e=>a(e.target.value),min:s,className:"bif-date-input"})),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Number of Nights"),React.createElement("select",{value:t,onChange:e=>r(parseInt(e.target.value)),className:"bif-nights-select"},[...Array(l-i+1).keys()].map((e=>{const t=i+e;return React.createElement("option",{key:t,value:t},t," ",1===t?"night":"nights")})))),React.createElement("div",{className:"bif-form-field"},React.createElement("button",{onClick:n,disabled:!e||o,className:"bif-btn bif-btn-primary bif-check-availability bif-has-icon-preview"},o?React.createElement(React.Fragment,null,React.createElement("div",{className:"bif-spinner"}),React.createElement("span",null,"Checking...")):React.createElement(React.Fragment,null,React.createElement("span",{className:"bif-icon-preview"},u),React.createElement("span",null,"Check Availability"))))))},_=({selectedProperties:e,selectedExtras:t,nights:a,total:r,discountCode:n,onDiscountCodeChange:o,onApplyDiscount:i,checkInDate:l,summary:c,showDiscount:s=!1,showRedeemGiftCertificate:u=!1,giftCertificate:m,onGiftCertificateChange:p,showGiftCertificateForm:d,onTriggerShowGiftCertificate:f,onApplyGiftCertificate:b,gcResult:h,gcLoading:y=!1})=>{Object.values(t).flat().reduce(((e,t)=>e+(t.amount||0)),0);const g=c&&parseFloat(c.order_discount_code_total||0)>0;return e&&0!==e.length?React.createElement("div",{className:"bif-booking-summary"},React.createElement("h3",{className:"bif-section-title"},"Booking Summary"),React.createElement("div",{className:"bif-summary-content"},e.map((e=>{const a=e.sub_total||e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0)||0,r=e.mandatory_extras_total||e.mandatory_extras?.reduce(((e,t)=>e+parseFloat(t.amount||0)),0)||0,n=e.optional_extras_total||0,o=parseFloat(a)+parseFloat(r)+parseFloat(n);return React.createElement("div",{key:e.id,className:"bif-property-summary"},React.createElement("h5",{className:"bif-property-summary-name"},e.property_name),React.createElement("div",{className:"bif-property-total"},React.createElement("div",{className:"bif-total-row"},React.createElement("span",null,"Property Subtotal"),React.createElement("span",null,"$",parseFloat(a).toFixed(2)))),e.mandatory_extras&&e.mandatory_extras.length>0&&React.createElement("div",{className:"bif-mandatory-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Mandatory Extras"),e.mandatory_extras.map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#dc2626"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))),e.optional_extras&&e.optional_extras.filter((e=>e.selected)).length>0&&React.createElement("div",{className:"bif-optional-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),e.optional_extras.filter((e=>e.selected)).map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#92400e"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))),React.createElement("div",{className:"bif-property-total"},React.createElement("div",{className:"bif-total-row bif-subtotal"},React.createElement("span",null,"Property Total"),React.createElement("span",null,"$",parseFloat(o).toFixed(2)))),!e.optional_extras&&t[e.id]&&t[e.id].length>0&&React.createElement("div",{className:"bif-optional-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Selected Optional Extras"),t[e.id].map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#92400e"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))))})),s&&React.createElement("div",{className:"bif-summary-section"},React.createElement("div",{className:"bif-discount-form"},React.createElement("input",{type:"text",placeholder:"Enter discount code",value:n,onChange:e=>o(e.target.value),className:"bif-discount-input"}),React.createElement("button",{onClick:()=>{n.trim()&&i(n)},className:"bif-btn bif-btn-secondary"},"Apply")),g&&React.createElement("div",{className:"bif-discount-applied"},"Discount code applied")),u&&c&&React.createElement("div",{className:"bif-summary-section"},React.createElement("div",{className:"bif-gift-certificate-section"},d?React.createElement("div",{className:"bif-gift-certificate-form"},React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Certificate Number:"),React.createElement("input",{type:"text",value:m.number,onChange:e=>p({...m,number:e.target.value}),className:"bif-form-control",placeholder:"Enter certificate number",disabled:y})),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Pin:"),React.createElement("input",{type:"number",value:m.pin,onChange:e=>p({...m,pin:e.target.value}),className:"bif-form-control",placeholder:"Enter pin",disabled:y}))),React.createElement("button",{className:"bif-btn bif-btn-secondary",onClick:b,disabled:y},y?"Applying...":"Apply")):React.createElement("button",{className:"bif-btn bif-btn-secondary",onClick:f},"Apply Gift Certificate"),h&&h.valid&&React.createElement("div",{className:"bif-gift-certificate-success"},React.createElement("p",null,"✅ Successfully Applied Gift Certificate"),React.createElement("p",null,h.result),parseFloat(h.total)-parseFloat(h.gc_amount_applied)==0?React.createElement("p",null,React.createElement("strong",null,"🎉 Your gift certificate covers the full amount! No additional payment required.")):React.createElement(React.Fragment,null,React.createElement("p",null,"Remaining balance to pay: ",React.createElement("strong",null,"$",(parseFloat(h.total)-parseFloat(h.gc_amount_applied)).toFixed(2))),React.createElement("p",{style:{fontSize:"0.875rem",color:"#6b7280"}},"*Credit card surcharge will be added at payment")),React.createElement("p",null,"Gift Certificate balance after order: ",React.createElement("strong",null,"$",parseFloat(h.gc_balance_after_order).toFixed(2)))))),React.createElement("div",{className:"bif-grand-total"},h&&h.valid&&React.createElement("div",{className:"bif-total-row"},React.createElement("span",null,"Order Total"),React.createElement("span",null,"$",parseFloat(h.total||c.order_grand_total).toFixed(2))),h&&h.valid&&React.createElement("div",{className:"bif-total-row",style:{color:"#059669"}},React.createElement("span",null,"Gift Certificate Applied"),React.createElement("span",null,"-$",parseFloat(h.gc_amount_applied).toFixed(2))),React.createElement("div",{className:"bif-total-main"},React.createElement("span",null,h&&h.valid&&parseFloat(h.total)-parseFloat(h.gc_amount_applied)==0?"Total Paid by Gift Certificate":h&&h.valid?"Balance Due":"Total Cost"),React.createElement("span",{className:"bif-total-amount"},"$",h&&h.valid?(parseFloat(h.total)-parseFloat(h.gc_amount_applied)).toFixed(2):parseFloat(r).toFixed(2))),h&&h.valid&&parseFloat(h.total)-parseFloat(h.gc_amount_applied)>0&&c&&c.order_has_surcharge&&React.createElement("div",{className:"bif-surcharge-note",style:{fontSize:"0.875rem",color:"#6b7280",marginTop:"0.5rem"}},"*Credit card surcharge will be added at payment"),c&&parseFloat(c.order_discount_code_total||0)>0&&React.createElement("div",{className:"bif-discount-text"},"Includes discount of $",parseFloat(c.order_discount_code_total||0).toFixed(2))))):null},w=({userDetails:e,onUpdateDetails:t,formErrors:a,showSuburb:r=!0,showPostcode:n=!0,showComments:o=!1})=>React.createElement("div",{className:"bif-customer-details"},React.createElement("h2",{className:"bif-section-title"},"Your Details"),React.createElement("div",{className:"bif-customer-form"},React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"First Name *"),React.createElement("input",{type:"text",value:e.firstName,onChange:e=>t("firstName",e.target.value),placeholder:"Enter your first name",className:a.firstName?"bif-error":""}),a.firstName&&React.createElement("div",{className:"bif-field-error"},a.firstName)),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Last Name *"),React.createElement("input",{type:"text",value:e.lastName,onChange:e=>t("lastName",e.target.value),placeholder:"Enter your last name",className:a.lastName?"bif-error":""}),a.lastName&&React.createElement("div",{className:"bif-field-error"},a.lastName))),React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Email *"),React.createElement("input",{type:"email",value:e.email,onChange:e=>t("email",e.target.value),placeholder:"Enter your email address",className:a.email?"bif-error":""}),a.email&&React.createElement("div",{className:"bif-field-error"},a.email)),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Phone *"),React.createElement("input",{type:"tel",value:e.phone,onChange:e=>t("phone",e.target.value),placeholder:"Enter your phone number",className:a.phone?"bif-error":""}),a.phone&&React.createElement("div",{className:"bif-field-error"},a.phone))),(n||r)&&React.createElement("div",{className:"bif-form-row"},n&&React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Postcode"),React.createElement("input",{type:"text",value:e.postcode,onChange:e=>t("postcode",e.target.value),placeholder:"Enter your postcode"})),r&&React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Suburb"),React.createElement("input",{type:"text",value:e.suburb,onChange:e=>t("suburb",e.target.value),placeholder:"Enter your suburb"}))),o&&React.createElement("div",{className:"bif-form-row bif-full-width"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Comments"),React.createElement("textarea",{value:e.comments,onChange:e=>t("comments",e.target.value),rows:4,placeholder:"Any special requests or comments..."}))))),C=({summary:e,propertyIds:a,userDetails:r,paymentType:n,giftCertificate:o})=>{const i=(0,b.useStripe)(),l=(0,b.useElements)(),[c,s]=(0,t.useState)(!1),[u,m]=(0,t.useState)(""),[p,d]=(0,t.useState)(!1),[f,y]=(0,t.useState)(""),g=async t=>{t.preventDefault(),s(!0),m("");try{let t={amount:"deposit"===n?e.order_deposit_amount:e.order_payable_now,currency:"AUD",summary:e,propertyIds:"string"==typeof a?a.split(",").map((e=>parseInt(e.trim()))):a,userDetails:r,paymentType:n};if("gift"===n&&o)t.giftCertificateApplied=!0,t.giftCertificate=o,t.amount=0;else{if(!i||!l)return void console.error("Stripe.js has not loaded yet.");const e=l.getElement(b.CardElement),{paymentMethod:a,error:r}=await i.createPaymentMethod({type:"card",card:e});if(r)return console.error(r),m(r.message),void s(!1);t.stripePaymentMethodId=a.id,o&&o.valid&&(t.giftCertificateApplied=!0,t.giftCertificate=o)}const c=await fetch(`${h}/bookitfast/v1/process-payment`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),u=await c.json();if(!u.success)throw new Error(u.message||"Payment failed.");console.log("Payment successful:",u),y(u.data.charge),d(!0)}catch(e){console.error("Payment error:",e),m(e.message)}finally{s(!1)}};return React.createElement("div",{className:"bif-payment-container"},React.createElement("h3",null,"gift"===n?"🎁 Gift Certificate Payment":"💳 Payment Details"),u&&React.createElement("div",{className:"bif-error-message"},u),p?React.createElement("div",{className:"bif-success-message"},React.createElement("p",null,React.createElement("strong",null,"✅ Payment Successful!")),f&&React.createElement("p",null,React.createElement("a",{href:f,target:"_blank",rel:"noopener noreferrer"},"📄 Click here to view your receipt"))):"gift"===n?React.createElement("div",{className:"bif-gift-certificate-payment-form"},React.createElement("div",{className:"bif-gift-certificate-summary"},React.createElement("p",null,"🎁 ",React.createElement("strong",null,"Paying with Gift Certificate")),React.createElement("p",null,"Amount: ",React.createElement("strong",null,"$",parseFloat(o.gc_amount_applied||0).toFixed(2))),React.createElement("p",null,"No credit card required - your gift certificate will be charged automatically.")),React.createElement("button",{onClick:g,disabled:c,className:"bif-btn bif-btn-primary bif-btn-large"},c?"Processing...":"Complete Booking")):React.createElement("form",{onSubmit:g,className:"bif-stripe-form"},React.createElement("div",{className:"bif-card-element-container"},React.createElement(b.CardElement,{options:{hidePostalCode:!0,style:{base:{fontSize:"16px",color:"#424770","::placeholder":{color:"#aab7c4"}},invalid:{color:"#9e2146"}}}})),React.createElement("button",{type:"submit",disabled:!i||c,className:"bif-btn bif-btn-primary bif-btn-large"},c?"Processing...":"Pay Now")))},N=({propertyIds:e="",showDiscount:a=!1,showSuburb:r=!0,showPostcode:n=!0,showRedeemGiftCertificate:o=!1,showComments:i=!1,buttonColor:l="#0073aa",buttonTextColor:c="#ffffff",minNights:s=1,maxNights:u=14,showPropertyImages:m=!1,includeIcons:p=!1,layoutStyle:d="cards",buttonIcon:N="search"})=>{const k=y("nights"),S=k&&!isNaN(k)?Math.max(parseInt(k,10),s):s,x=y("start"),P=y("discount"),j=x?(e=>{const t=e.split("-");if(3===t.length){const[e,a,r]=t.map(Number);if(!isNaN(e)&&!isNaN(a)&&!isNaN(r)){const t=new Date(r,a-1,e);return t.setHours(12,0,0,0),t.toISOString().split("T")[0]}}return null})(x):"",T="string"==typeof e?e:"",[I,O]=(0,t.useState)({date:j,nights:S}),[F,A]=(0,t.useState)(null),[B,D]=(0,t.useState)({}),[$,G]=(0,t.useState)(null),[M,L]=(0,t.useState)(null),[z,q]=(0,t.useState)(!1),[U,H]=(0,t.useState)(""),[Y,W]=(0,t.useState)({firstName:"",lastName:"",phone:"",email:"",postcode:"",suburb:"",comments:""}),[V,Z]=(0,t.useState)(!1),[J,K]=(0,t.useState)(!1),[Q,X]=(0,t.useState)(P),[ee,te]=(0,t.useState)(null),[ae,re]=(0,t.useState)(!1),[ne,oe]=(0,t.useState)(null),[ie,le]=(0,t.useState)({}),[ce,se]=(0,t.useState)({number:"",pin:""}),[ue,me]=(0,t.useState)(!1),[pe,de]=(0,t.useState)(null),[fe,be]=(0,t.useState)(!1),[he,ye]=(0,t.useState)({}),[ge,Ee]=(0,t.useState)(!1);(0,t.useEffect)((()=>{j&&S&&(console.log("Auto-checking availability with:",j,S),ve(j,S))}),[j,S]);const ve=async(e=I.date,t=I.nights)=>{if(!e||!T)return void console.warn("fetchAvailability skipped - Missing startDate or propertyIds");const a=I.date,r=T.split(",").filter((e=>""!==e.trim()));q(!0),H(""),Ee(!1);try{const e=await fetch(`${h}/bookitfast/v1/availability`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:r,start:a,nights:t})}),n=await e.json();A(n),Ee(!0);const o=Object.keys(n).reduce(((e,t)=>(e[t]=!1,e)),{});D(o)}catch(e){console.error(e),H("Failed to fetch availability. Please try again.")}finally{q(!1)}},Re=(e,t)=>{ye((a=>{const r=a[e]||{},n={...a,[e]:{...r,[t]:!r[t]}};return _e(B,Q,n,0),n}))},_e=async(e,t=null,a=he,r=0)=>{const n=I.date,o=I.nights,i=new Date(new Date(n).getTime()+864e5*o).toISOString().split("T")[0];q(!0),H("");try{const r=await fetch(`${h}/bookitfast/v1/availability/summary`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({selected:e,selected_optional_extras:a,start:n,end:i,discount_code:t||null})});if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);const o=await r.json();L(o),o.stripe_publishable_key&&G(f(o.stripe_publishable_key))}catch(n){console.error("Error fetching summary:",n),r<3?(console.log(`Retrying... Attempt ${r+1}`),await _e(e,t,a,r+1)):H("Failed to fetch summary. Please try again.")}finally{q(!1)}},we=e=>{(()=>{const e={};return Y.firstName.trim()||(e.firstName="First name is required"),Y.lastName.trim()||(e.lastName="Last name is required"),Y.email.trim()||(e.email="Email is required"),Y.phone.trim()||(e.phone="Phone is required"),V||(e.agreeToTerms="You must agree to the terms and conditions"),J||(e.consentToDataSharing="You must consent to data sharing with Book It Fast service"),le(e),0===Object.keys(e).length})()&&(oe(e),re(!0))},Ce=F?Object.entries(F).filter((([e])=>B[e])).map((([e,t])=>({id:e,...t,...M?.property_summaries?.[e]||{},selectedExtras:he[e],onToggleExtra:Re}))):[];return React.createElement("div",{className:"bif-booking-container",style:{"--bif-button-color":l,"--bif-button-color-hover":`${l}dd`,"--bif-button-color-active":`${l}bb`,"--bif-button-text-color":c}},React.createElement("div",{className:"bif-booking-steps"},React.createElement(R,{checkInDate:I.date,nights:I.nights,onDateChange:e=>O((t=>({...t,date:e}))),onNightsChange:e=>O((t=>({...t,nights:e}))),onCheckAvailability:ve,isLoading:z,minNights:s,maxNights:u,buttonIcon:N}),U&&React.createElement("div",{className:"bif-error-message"},U),ge&&F&&React.createElement("div",{className:"bif-property-list"},React.createElement("h2",{className:"bif-section-title"},"Available Properties"),React.createElement("div",{className:`bif-properties bif-properties--${d}`},Object.entries(F).map((([e,t])=>{const a={key:e,property:{id:e,...t,selectedExtras:he[e],onToggleExtra:Re},isSelected:B[e],onToggle:()=>(async e=>{const t={...B,[e]:!B[e]};D(t),Object.values(t).includes(!0)?await _e(t,Q):L(null)})(e),nights:I.nights,checkInDate:I.date,showPropertyImages:m,includeIcons:p};switch(d){case"grid":return React.createElement(g,a);case"rows":return React.createElement(E,a);default:return React.createElement(v,a)}})))),M&&Ce.length>0&&React.createElement(_,{selectedProperties:Ce,selectedExtras:he,nights:I.nights,total:(M.order_payable_now||0)-(M.order_surcharge||0),discountCode:Q,onDiscountCodeChange:X,onApplyDiscount:e=>{Object.keys(B).some((e=>B[e]))&&_e(B,e)},checkInDate:I.date,summary:M,showDiscount:a,showRedeemGiftCertificate:o,giftCertificate:ce,onGiftCertificateChange:se,showGiftCertificateForm:ue,onTriggerShowGiftCertificate:()=>{me(!0)},onApplyGiftCertificate:async e=>{if(e.preventDefault(),console.log("Gift Certificate: Apply button clicked"),console.log("Gift Certificate Data:",ce),console.log("Current Summary:",M),fe)return void console.log("Gift Certificate: Already processing, ignoring click");if(!M)return void console.error("Gift Certificate: No summary available");if(!ce.number||!ce.pin)return console.error("Gift Certificate: Missing number or pin"),void alert("Please enter both certificate number and pin");be(!0),console.log("Gift Certificate: Setting loading state to true");let t={...M};if(M.order_weekly_discount>0){console.log("Gift Certificate: Weekly discount detected, adjusting summary for gift certificate calculation"),console.log("Gift Certificate: Original order_grand_total:",M.order_grand_total),console.log("Gift Certificate: Order weekly discount:",M.order_weekly_discount),console.log("Gift Certificate: Order surcharge:",M.order_surcharge);const e=parseFloat(M.order_sub_total)+parseFloat(M.order_mandatory_extras_total);console.log("Gift Certificate: Total before weekly discount (excluding surcharge):",e),t={...M,order_grand_total:e.toString(),order_total_before_surcharge:e,order_payable_now:e.toString(),order_surcharge:0,order_has_surcharge:!1},console.log("Gift Certificate: Adjusted summary for gift certificate:",t)}const a={certificate:ce,summary:t};console.log("Gift Certificate: Sending request with data:",a);try{const e=await fetch(`${h}/bookitfast/v1/apply-gift-certificate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(console.log("Gift Certificate: Response status:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();console.log("Gift Certificate: Response data:",t),t.valid?(de(t),t.summary&&(L(t.summary),console.log("Gift Certificate: Updated summary:",t.summary)),console.log("Gift Certificate: Application successful"),console.log("Gift Certificate: Order payable now:",t.order_payable_now)):(console.error("Gift Certificate: API returned error:",t),alert(t.message||"Failed to apply gift certificate"))}catch(e){console.error("Gift Certificate: Error applying certificate:",e),alert("Error applying gift certificate. Please try again.")}finally{be(!1),console.log("Gift Certificate: Setting loading state to false")}},gcResult:pe,gcLoading:fe}),M&&Ce.length>0&&React.createElement(w,{userDetails:Y,onUpdateDetails:(e,t)=>{W((a=>({...a,[e]:t}))),ie[e]&&le((t=>({...t,[e]:null})))},formErrors:ie,showSuburb:r,showPostcode:n,showComments:i}),M&&Ce.length>0&&React.createElement("div",{className:"bif-terms-payment"},React.createElement("div",{className:"bif-terms-checkbox"},React.createElement("input",{type:"checkbox",id:"agreeToTerms",checked:V,onChange:()=>Z(!V)}),React.createElement("label",{htmlFor:"agreeToTerms"},"I have read and agree to the"," ",M.order_booking_conditions?.map(((e,t)=>React.createElement("span",{key:t},React.createElement("a",{href:e.url,target:"_blank",rel:"noopener noreferrer"},e.title),t<M.order_booking_conditions.length-2?", ":"",t===M.order_booking_conditions.length-2?" and ":"")))),ie.agreeToTerms&&React.createElement("div",{className:"bif-field-error"},ie.agreeToTerms)),React.createElement("div",{className:"bif-privacy-consent"},React.createElement("input",{type:"checkbox",id:"consentToDataSharing",checked:J,onChange:()=>K(!J)}),React.createElement("label",{htmlFor:"consentToDataSharing"},"I consent to my personal information being transmitted to and processed by Book It Fast (",React.createElement("a",{href:"https://bookitfast.app/privacy-policy",target:"_blank",rel:"noopener noreferrer"},"Privacy Policy"),") for booking and payment processing purposes."),ie.consentToDataSharing&&React.createElement("div",{className:"bif-field-error"},ie.consentToDataSharing)),!ae&&React.createElement("div",{className:"bif-payment-options"},Object.keys(ie).length>0&&React.createElement("div",{className:"bif-validation-error"},"Please complete all required fields before proceeding with payment."),pe&&pe.valid&&parseFloat(pe.total)-parseFloat(pe.gc_amount_applied)==0?React.createElement("div",{className:"bif-gift-certificate-payment"},React.createElement("div",{className:"bif-gift-certificate-full-coverage"},React.createElement("p",null,"🎉 ",React.createElement("strong",null,"Your gift certificate covers the full booking amount!")),React.createElement("p",null,"No additional payment required.")),React.createElement("button",{className:"bif-btn bif-btn-primary bif-btn-large",onClick:()=>we("gift")},"🎁 Complete Booking with Gift Certificate")):React.createElement(React.Fragment,null,M.order_surcharge>0&&parseFloat(M.order_payable_now||0)>0&&React.createElement("div",{className:"bif-surcharge-info"},React.createElement("p",null,"Please note a credit card surcharge applies of ",M.order_deposit_surcharge>0&&` $${M.order_deposit_surcharge} for deposit or `,"$",M.order_surcharge," for the full payment.")),M.order_deposit_amount>0?React.createElement("div",{className:"bif-payment-buttons"},React.createElement("button",{className:"bif-btn bif-btn-primary",onClick:()=>we("deposit")},"💳 Pay Deposit ($",M.order_deposit_amount,")"),React.createElement("button",{className:"bif-btn bif-btn-primary",onClick:()=>we("full")},"💳 Pay In Full ($",pe&&pe.valid?parseFloat(pe.order_payable_now).toFixed(2):M.order_payable_now,")")):React.createElement("button",{className:"bif-btn bif-btn-primary bif-btn-large",onClick:()=>we("full")},"💳 Complete Booking - $",pe&&pe.valid?parseFloat(pe.order_payable_now).toFixed(2):M.order_payable_now)))),M&&ae&&React.createElement("div",{className:"bif-payment-form-container"},"gift"===ne?React.createElement(C,{summary:M,propertyIds:T.split(",").map((e=>parseInt(e.trim()))),userDetails:Y,paymentType:ne,giftCertificate:pe}):$&&React.createElement(b.Elements,{stripe:$},React.createElement(C,{summary:M,propertyIds:T.split(",").map((e=>parseInt(e.trim()))),userDetails:Y,paymentType:ne,giftCertificate:pe})))))},k=window.wp.blocks,S=window.wp.blockEditor,x=window.wp.components,P=window.wp.primitives,j=window.ReactJSXRuntime,T=(0,j.jsx)(P.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(P.Path,{d:"M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"})}),I=(0,j.jsx)(P.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,j.jsx)(P.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z"})}),O=(0,j.jsx)(P.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(P.Path,{d:"M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"})}),F=(0,j.jsx)(P.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(P.Path,{d:"M12 9c-.8 0-1.5.7-1.5 1.5S11.2 12 12 12s1.5-.7 1.5-1.5S12.8 9 12 9zm0-5c-3.6 0-6.5 2.8-6.5 6.2 0 .8.3 1.8.9 3.1.5 1.1 1.2 2.3 2 3.6.7 1 3 3.8 3.2 3.9l.4.5.4-.5c.2-.2 2.6-2.9 3.2-3.9.8-1.2 1.5-2.5 2-3.6.6-1.3.9-2.3.9-3.1C18.5 6.8 15.6 4 12 4zm4.3 8.7c-.5 1-1.1 2.2-1.9 3.4-.5.7-1.7 2.2-2.4 3-.7-.8-1.9-2.3-2.4-3-.8-1.2-1.4-2.3-1.9-3.3-.6-1.4-.7-2.2-.7-2.5 0-2.6 2.2-4.7 5-4.7s5 2.1 5 4.7c0 .2-.1 1-.7 2.4z"})}),A=(0,j.jsx)(P.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(P.Path,{d:"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"})}),B=(0,j.jsx)(P.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(P.Path,{d:"m21.5 9.1-6.6-6.6-4.2 5.6c-1.2-.1-2.4.1-3.6.7-.1 0-.1.1-.2.1-.5.3-.9.6-1.2.9l3.7 3.7-5.7 5.7v1.1h1.1l5.7-5.7 3.7 3.7c.4-.4.7-.8.9-1.2.1-.1.1-.2.2-.3.6-1.1.8-2.4.6-3.6l5.6-4.1zm-7.3 3.5.1.9c.1.9 0 1.8-.4 2.6l-6-6c.8-.4 1.7-.5 2.6-.4l.9.1L15 4.9 19.1 9l-4.9 3.6z"})}),D=(0,j.jsx)(P.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,j.jsx)(P.Path,{d:"M10.97 10.159a3.382 3.382 0 0 0-2.857.955l1.724 1.723-2.836 2.913L7 17h1.25l2.913-2.837 1.723 1.723a3.38 3.38 0 0 0 .606-.825c.33-.63.446-1.343.35-2.032L17 10.695 13.305 7l-2.334 3.159Z"})}),$=(0,j.jsx)(P.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(P.Path,{d:"M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8Zm6.5 8c0 .6 0 1.2-.2 1.8h-2.7c0-.6.2-1.1.2-1.8s0-1.2-.2-1.8h2.7c.2.6.2 1.1.2 1.8Zm-.9-3.2h-2.4c-.3-.9-.7-1.8-1.1-2.4-.1-.2-.2-.4-.3-.5 1.6.5 3 1.6 3.8 3ZM12.8 17c-.3.5-.6 1-.8 1.3-.2-.3-.5-.8-.8-1.3-.3-.5-.6-1.1-.8-1.7h3.3c-.2.6-.5 1.2-.8 1.7Zm-2.9-3.2c-.1-.6-.2-1.1-.2-1.8s0-1.2.2-1.8H14c.1.6.2 1.1.2 1.8s0 1.2-.2 1.8H9.9ZM11.2 7c.3-.5.6-1 .8-1.3.2.3.5.8.8 1.3.3.5.6 1.1.8 1.7h-3.3c.2-.6.5-1.2.8-1.7Zm-1-1.2c-.1.2-.2.3-.3.5-.4.7-.8 1.5-1.1 2.4H6.4c.8-1.4 2.2-2.5 3.8-3Zm-1.8 8H5.7c-.2-.6-.2-1.1-.2-1.8s0-1.2.2-1.8h2.7c0 .6-.2 1.1-.2 1.8s0 1.2.2 1.8Zm-2 1.4h2.4c.3.9.7 1.8 1.1 2.4.1.2.2.4.3.5-1.6-.5-3-1.6-3.8-3Zm7.4 3c.1-.2.2-.3.3-.5.4-.7.8-1.5 1.1-2.4h2.4c-.8 1.4-2.2 2.5-3.8 3Z"})}),{useState:G,useEffect:M}=wp.element;(0,k.registerBlockType)("bookitfast/multi-embed",{title:"Book It Fast Availability",description:"A multi-property booking embed for WordPress.",icon:"calendar",category:"widgets",attributes:{propertyIds:{type:"string",default:""},showDiscount:{type:"boolean",default:!1},showSuburb:{type:"boolean",default:!1},showPostcode:{type:"boolean",default:!1},showRedeemGiftCertificate:{type:"boolean",default:!1},showComments:{type:"boolean",default:!1},buttonColor:{type:"string",default:"#0073aa"},buttonTextColor:{type:"string",default:"#ffffff"},minNights:{type:"number",default:1},maxNights:{type:"number",default:14},showPropertyImages:{type:"boolean",default:!1},includeIcons:{type:"boolean",default:!1},layoutStyle:{type:"string",default:"cards"},buttonIcon:{type:"string",default:"search"}},edit:({attributes:e,setAttributes:t})=>{const a=(0,S.useBlockProps)(),[r,n]=G([]),[o,i]=G(!0),[l,c]=G(null);return M((()=>{wp.apiFetch({path:"/bookitfast/v1/properties"}).then((e=>{e.success?n(e.properties):c("Failed to fetch properties.")})).catch((e=>{console.error("API Fetch Error:",e),c("Error fetching properties.")})).finally((()=>i(!1)))}),[]),React.createElement("div",a,React.createElement(S.InspectorControls,null,React.createElement(x.PanelBody,{title:"Search Options",initialOpen:!0},o?React.createElement("p",null,"Loading properties..."):l?React.createElement("p",{style:{color:"red"}},l):React.createElement(x.SelectControl,{multiple:!0,label:"Select Properties",value:e.propertyIds?e.propertyIds.split(","):[],options:r.map((e=>({label:e.title,value:e.id.toString()}))),onChange:e=>{const a=e.join(",");t({propertyIds:a})},__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}),React.createElement(x.RangeControl,{label:"Minimum Nights",value:e.minNights,onChange:e=>t({minNights:e}),min:1,max:30,step:1}),React.createElement(x.RangeControl,{label:"Maximum Nights",value:e.maxNights,onChange:e=>t({maxNights:e}),min:e.minNights||1,max:90,step:1}),React.createElement(x.ColorPalette,{label:"Button Color",value:e.buttonColor,onChange:e=>t({buttonColor:e}),colors:[{name:"Blue",color:"#0073aa"},{name:"Green",color:"#46b450"},{name:"Red",color:"#dc3232"},{name:"Orange",color:"#ff6900"},{name:"Purple",color:"#8224e3"},{name:"Dark",color:"#333333"}]}),React.createElement(x.ColorPalette,{label:"Button Text Color",value:e.buttonTextColor,onChange:e=>t({buttonTextColor:e}),colors:[{name:"White",color:"#ffffff"},{name:"Black",color:"#000000"},{name:"Dark Gray",color:"#333333"},{name:"Light Gray",color:"#666666"}]}),React.createElement("div",{style:{marginBottom:"16px"}},React.createElement("label",{style:{display:"block",marginBottom:"8px",fontSize:"11px",fontWeight:"500",textTransform:"uppercase",color:"#1e1e1e"}},"Button Icon"),React.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"8px",padding:"8px",border:"1px solid #ddd",borderRadius:"4px",backgroundColor:"#fff"}},[{icon:T,name:"search",label:"Search"},{icon:I,name:"calendar",label:"Calendar"},{icon:O,name:"home",label:"Home"},{icon:F,name:"mapMarker",label:"Map Marker"},{icon:A,name:"star",label:"Star"},{icon:B,name:"pin",label:"Pin"},{icon:D,name:"pinSmall",label:"Pin Small"},{icon:$,name:"globe",label:"Globe"}].map((({icon:a,name:r,label:n})=>React.createElement(x.Button,{key:r,onClick:()=>t({buttonIcon:r}),variant:e.buttonIcon===r?"primary":"secondary",style:{width:"48px",height:"48px",padding:"8px",display:"flex",alignItems:"center",justifyContent:"center"},title:n},React.createElement(x.Icon,{icon:a,size:20}))))),React.createElement("p",{style:{fontSize:"12px",color:"#757575",margin:"8px 0 0 0",fontStyle:"italic"}},"Select an icon for the search button"))),React.createElement(x.PanelBody,{title:"Results Layout",initialOpen:!1},React.createElement(x.SelectControl,{label:"Layout Style",value:e.layoutStyle,options:[{label:"Card List",value:"cards"},{label:"Grid Tiles",value:"grid"},{label:"Compact Rows",value:"rows"}],onChange:e=>t({layoutStyle:e}),help:"Choose how property results are displayed",__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}),React.createElement(x.ToggleControl,{label:"Show Property Images",checked:e.showPropertyImages,onChange:e=>t({showPropertyImages:e}),__nextHasNoMarginBottom:!0}),React.createElement(x.ToggleControl,{label:"Include Icons",checked:e.includeIcons,onChange:e=>t({includeIcons:e}),help:"Show icons for bed size, inclusions, etc.",__nextHasNoMarginBottom:!0})),React.createElement(x.PanelBody,{title:"Form Settings",initialOpen:!1},React.createElement(x.ToggleControl,{label:"Show Discount Field",checked:e.showDiscount,onChange:e=>t({showDiscount:e}),__nextHasNoMarginBottom:!0}),React.createElement(x.ToggleControl,{label:"Show Suburb Field",checked:e.showSuburb,onChange:e=>t({showSuburb:e}),__nextHasNoMarginBottom:!0}),React.createElement(x.ToggleControl,{label:"Show Postcode Field",checked:e.showPostcode,onChange:e=>t({showPostcode:e}),__nextHasNoMarginBottom:!0}),React.createElement(x.ToggleControl,{label:"Show Redeem Gift Certificate Section",checked:e.showRedeemGiftCertificate,onChange:e=>t({showRedeemGiftCertificate:e}),__nextHasNoMarginBottom:!0}),React.createElement(x.ToggleControl,{label:"Show Comments Field",checked:e.showComments,onChange:e=>t({showComments:e}),__nextHasNoMarginBottom:!0}))),React.createElement(N,{propertyIds:e.propertyIds,showDiscount:e.showDiscount,showSuburb:e.showSuburb,showPostcode:e.showPostcode,showRedeemGiftCertificate:e.showRedeemGiftCertificate,showComments:e.showComments,buttonColor:e.buttonColor,buttonTextColor:e.buttonTextColor,buttonIcon:e.buttonIcon,minNights:e.minNights,maxNights:e.maxNights,showPropertyImages:e.showPropertyImages,includeIcons:e.includeIcons,layoutStyle:e.layoutStyle}))},save:()=>null})})()})();1 (()=>{var e={609:e=>{"use strict";e.exports=window.React},926:function(e,t,a){!function(e,t){"use strict";function a(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},o=Object.keys(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)a=o[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=a){var r,n,o=[],_n=!0,i=!1;try{for(a=a.call(e);!(_n=(r=a.next()).done)&&(o.push(r.value),!t||o.length!==t);_n=!0);}catch(e){i=!0,n=e}finally{try{_n||null==a.return||a.return()}finally{if(i)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?c(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var u,m,p,d,f={exports:{}};f.exports=function(){if(d)return p;d=1;var e=m?u:(m=1,u="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");function t(){}function a(){}return a.resetWarningCache=t,p=function(){function r(t,a,r,n,o,i){if(i!==e){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function n(){return r}r.isRequired=r;var o={array:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:n,element:r,elementType:r,instanceOf:n,node:r,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:a,resetWarningCache:t};return o.PropTypes=o,o}}()();var b=s(f.exports),y=function(e,a,r){var n=!!r,o=t.useRef(r);t.useEffect((function(){o.current=r}),[r]),t.useEffect((function(){if(!n||!e)return function(){};var t=function(){o.current&&o.current.apply(o,arguments)};return e.on(a,t),function(){e.off(a,t)}}),[n,a,e,o])},h=function(e){var a=t.useRef(e);return t.useEffect((function(){a.current=e}),[e]),a.current},g=function(e){return null!==e&&"object"===n(e)},E="[object Object]",v=function e(t,a){if(!g(t)||!g(a))return t===a;var r=Array.isArray(t);if(r!==Array.isArray(a))return!1;var n=Object.prototype.toString.call(t)===E;if(n!==(Object.prototype.toString.call(a)===E))return!1;if(!n&&!r)return t===a;var o=Object.keys(t),i=Object.keys(a);if(o.length!==i.length)return!1;for(var l={},c=0;c<o.length;c+=1)l[o[c]]=!0;for(var s=0;s<i.length;s+=1)l[i[s]]=!0;var u=Object.keys(l);if(u.length!==o.length)return!1;var m=t,p=a;return u.every((function(t){return e(m[t],p[t])}))},R=function(e,t,a){return g(e)?Object.keys(e).reduce((function(n,i){var l=!g(t)||!v(e[i],t[i]);return a.includes(i)?(l&&console.warn("Unsupported prop change: options.".concat(i," is not a mutable property.")),n):l?r(r({},n||{}),{},o({},i,e[i])):n}),null):null},_="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",w=function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_;if(null===e||g(t=e)&&"function"==typeof t.elements&&"function"==typeof t.createToken&&"function"==typeof t.createPaymentMethod&&"function"==typeof t.confirmCardPayment)return e;throw new Error(a)},C=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_;if(function(e){return g(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then((function(e){return w(e,t)}))};var a=w(e,t);return null===a?{tag:"empty"}:{tag:"sync",stripe:a}},N=function(e){e&&e._registerWrapper&&e.registerAppInfo&&(e._registerWrapper({name:"react-stripe-js",version:"3.6.0"}),e.registerAppInfo({name:"react-stripe-js",version:"3.6.0",url:"https://stripe.com/docs/stripe-js/react"}))},k=t.createContext(null);k.displayName="ElementsContext";var S=function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e},x=function(e){var a=e.stripe,r=e.options,n=e.children,o=t.useMemo((function(){return C(a)}),[a]),i=l(t.useState((function(){return{stripe:"sync"===o.tag?o.stripe:null,elements:"sync"===o.tag?o.stripe.elements(r):null}})),2),c=i[0],s=i[1];t.useEffect((function(){var e=!0,t=function(e){s((function(t){return t.stripe?t:{stripe:e,elements:e.elements(r)}}))};return"async"!==o.tag||c.stripe?"sync"!==o.tag||c.stripe||t(o.stripe):o.stripePromise.then((function(a){a&&e&&t(a)})),function(){e=!1}}),[o,c,r]);var u=h(a);t.useEffect((function(){null!==u&&u!==a&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")}),[u,a]);var m=h(r);return t.useEffect((function(){if(c.elements){var e=R(r,m,["clientSecret","fonts"]);e&&c.elements.update(e)}}),[r,m,c.elements]),t.useEffect((function(){N(c.stripe)}),[c.stripe]),t.createElement(k.Provider,{value:c},n)};x.propTypes={stripe:b.any,options:b.object};var P=function(e){var a=t.useContext(k);return S(a,e)},O=function(e){return(0,e.children)(P("mounts <ElementsConsumer>"))};O.propTypes={children:b.func.isRequired};var j=["on","session"],T=t.createContext(null);T.displayName="CheckoutSdkContext";var I=function(e,t){if(!e)throw new Error("Could not find CheckoutProvider context; You need to wrap the part of your app that ".concat(t," in an <CheckoutProvider> provider."));return e},F=t.createContext(null);F.displayName="CheckoutContext";var A=function(e){var a=e.stripe,r=e.options,n=e.children,o=t.useMemo((function(){return C(a,"Invalid prop `stripe` supplied to `CheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")}),[a]),c=l(t.useState(null),2),s=c[0],u=c[1],m=l(t.useState((function(){return{stripe:"sync"===o.tag?o.stripe:null,checkoutSdk:null}})),2),p=m[0],d=m[1],f=function(e,t){d((function(a){return a.stripe&&a.checkoutSdk?a:{stripe:e,checkoutSdk:t}}))},b=t.useRef(!1);t.useEffect((function(){var e=!0;return"async"!==o.tag||p.stripe?"sync"===o.tag&&o.stripe&&!b.current&&(b.current=!0,o.stripe.initCheckout(r).then((function(e){e&&(f(o.stripe,e),e.on("change",u))}))):o.stripePromise.then((function(t){t&&e&&!b.current&&(b.current=!0,t.initCheckout(r).then((function(e){e&&(f(t,e),e.on("change",u))})))})),function(){e=!1}}),[o,p,r,u]);var y=h(a);t.useEffect((function(){null!==y&&y!==a&&console.warn("Unsupported prop change on CheckoutProvider: You cannot change the `stripe` prop after setting it.")}),[y,a]);var g=h(r);t.useEffect((function(){var e,t;if(p.checkoutSdk){var a=null==g||null===(e=g.elementsOptions)||void 0===e?void 0:e.appearance,n=null==r||null===(t=r.elementsOptions)||void 0===t?void 0:t.appearance;n&&!v(n,a)&&p.checkoutSdk.changeAppearance(n)}}),[r,g,p.checkoutSdk]),t.useEffect((function(){N(p.stripe)}),[p.stripe]);var E=t.useMemo((function(){return function(e,t){if(!e)return null;e.on,e.session;var a=i(e,j);return t?Object.assign(t,a):Object.assign(e.session(),a)}(p.checkoutSdk,s)}),[p.checkoutSdk,s]);return p.checkoutSdk?t.createElement(T.Provider,{value:p},t.createElement(F.Provider,{value:E},n)):null};A.propTypes={stripe:b.any,options:b.shape({fetchClientSecret:b.func.isRequired,elementsOptions:b.object}).isRequired};var D=function(e){var a=t.useContext(T),r=t.useContext(k);if(a&&r)throw new Error("You cannot wrap the part of your app that ".concat(e," in both <CheckoutProvider> and <Elements> providers."));return a?I(a,e):S(r,e)},B=["mode"],$=function(e,a){var r,n="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),o=a?function(e){D("mounts <".concat(n,">"));var a=e.id,r=e.className;return t.createElement("div",{id:a,className:r})}:function(a){var r,o=a.id,c=a.className,s=a.options,u=void 0===s?{}:s,m=a.onBlur,p=a.onFocus,d=a.onReady,f=a.onChange,b=a.onEscape,g=a.onClick,E=a.onLoadError,v=a.onLoaderStart,_=a.onNetworksChange,w=a.onConfirm,C=a.onCancel,N=a.onShippingAddressChange,k=a.onShippingRateChange,S=D("mounts <".concat(n,">")),x="elements"in S?S.elements:null,P="checkoutSdk"in S?S.checkoutSdk:null,O=l(t.useState(null),2),j=O[0],T=O[1],I=t.useRef(null),F=t.useRef(null);y(j,"blur",m),y(j,"focus",p),y(j,"escape",b),y(j,"click",g),y(j,"loaderror",E),y(j,"loaderstart",v),y(j,"networkschange",_),y(j,"confirm",w),y(j,"cancel",C),y(j,"shippingaddresschange",N),y(j,"shippingratechange",k),y(j,"change",f),d&&(r="expressCheckout"===e?d:function(){d(j)}),y(j,"ready",r),t.useLayoutEffect((function(){if(null===I.current&&null!==F.current&&(x||P)){var t=null;if(P)switch(e){case"payment":t=P.createPaymentElement(u);break;case"address":if(!("mode"in u))throw new Error("You must supply options.mode. mode must be 'billing' or 'shipping'.");var a=u.mode,r=i(u,B);if("shipping"===a)t=P.createShippingAddressElement(r);else{if("billing"!==a)throw new Error("Invalid options.mode. mode must be 'billing' or 'shipping'.");t=P.createBillingAddressElement(r)}break;case"expressCheckout":t=P.createExpressCheckoutElement(u);break;case"currencySelector":t=P.createCurrencySelectorElement();break;default:throw new Error("Invalid Element type ".concat(n,". You must use either the <PaymentElement />, <AddressElement options={{mode: 'shipping'}} />, <AddressElement options={{mode: 'billing'}} />, or <ExpressCheckoutElement />."))}else x&&(t=x.create(e,u));I.current=t,T(t),t&&t.mount(F.current)}}),[x,P,u]);var A=h(u);return t.useEffect((function(){if(I.current){var e=R(u,A,["paymentRequest"]);e&&"update"in I.current&&I.current.update(e)}}),[u,A]),t.useLayoutEffect((function(){return function(){if(I.current&&"function"==typeof I.current.destroy)try{I.current.destroy(),I.current=null}catch(e){}}}),[]),t.createElement("div",{id:o,className:c,ref:F})};return o.propTypes={id:b.string,className:b.string,onChange:b.func,onBlur:b.func,onFocus:b.func,onReady:b.func,onEscape:b.func,onClick:b.func,onLoadError:b.func,onLoaderStart:b.func,onNetworksChange:b.func,onConfirm:b.func,onCancel:b.func,onShippingAddressChange:b.func,onShippingRateChange:b.func,options:b.object},o.displayName=n,o.__elementType=e,o},G="undefined"==typeof window,M=t.createContext(null);M.displayName="EmbeddedCheckoutProviderContext";var L=function(){var e=t.useContext(M);if(!e)throw new Error("<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>");return e},z=G?function(e){var a=e.id,r=e.className;return L(),t.createElement("div",{id:a,className:r})}:function(e){var a=e.id,r=e.className,n=L().embeddedCheckout,o=t.useRef(!1),i=t.useRef(null);return t.useLayoutEffect((function(){return!o.current&&n&&null!==i.current&&(n.mount(i.current),o.current=!0),function(){if(o.current&&n)try{n.unmount(),o.current=!1}catch(e){}}}),[n]),t.createElement("div",{ref:i,id:a,className:r})},q=$("auBankAccount",G),U=$("card",G),H=$("cardNumber",G),Y=$("cardExpiry",G),W=$("cardCvc",G),V=$("fpxBank",G),Z=$("iban",G),J=$("idealBank",G),K=$("p24Bank",G),Q=$("epsBank",G),X=$("payment",G),ee=$("expressCheckout",G),te=$("currencySelector",G),ae=$("paymentRequestButton",G),re=$("linkAuthentication",G),ne=$("address",G),oe=$("shippingAddress",G),ie=$("paymentMethodMessaging",G),le=$("affirmMessage",G),ce=$("afterpayClearpayMessage",G);e.AddressElement=ne,e.AffirmMessageElement=le,e.AfterpayClearpayMessageElement=ce,e.AuBankAccountElement=q,e.CardCvcElement=W,e.CardElement=U,e.CardExpiryElement=Y,e.CardNumberElement=H,e.CheckoutProvider=A,e.CurrencySelectorElement=te,e.Elements=x,e.ElementsConsumer=O,e.EmbeddedCheckout=z,e.EmbeddedCheckoutProvider=function(e){var a=e.stripe,r=e.options,n=e.children,o=t.useMemo((function(){return C(a,"Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")}),[a]),i=t.useRef(null),c=t.useRef(null),s=l(t.useState({embeddedCheckout:null}),2),u=s[0],m=s[1];t.useEffect((function(){if(!c.current&&!i.current){var e=function(e){c.current||i.current||(c.current=e,i.current=c.current.initEmbeddedCheckout(r).then((function(e){m({embeddedCheckout:e})})))};"async"!==o.tag||c.current||!r.clientSecret&&!r.fetchClientSecret?"sync"!==o.tag||c.current||!r.clientSecret&&!r.fetchClientSecret||e(o.stripe):o.stripePromise.then((function(t){t&&e(t)}))}}),[o,r,u,c]),t.useEffect((function(){return function(){u.embeddedCheckout?(i.current=null,u.embeddedCheckout.destroy()):i.current&&i.current.then((function(){i.current=null,u.embeddedCheckout&&u.embeddedCheckout.destroy()}))}}),[u.embeddedCheckout]),t.useEffect((function(){N(c)}),[c]);var p=h(a);t.useEffect((function(){null!==p&&p!==a&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.")}),[p,a]);var d=h(r);return t.useEffect((function(){null!=d&&(null!=r?(void 0===r.clientSecret&&void 0===r.fetchClientSecret&&console.warn("Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`."),null!=d.clientSecret&&r.clientSecret!==d.clientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=d.fetchClientSecret&&r.fetchClientSecret!==d.fetchClientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=d.onComplete&&r.onComplete!==d.onComplete&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it."),null!=d.onShippingDetailsChange&&r.onShippingDetailsChange!==d.onShippingDetailsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it."),null!=d.onLineItemsChange&&r.onLineItemsChange!==d.onLineItemsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.")):console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them."))}),[d,r]),t.createElement(M.Provider,{value:u},n)},e.EpsBankElement=Q,e.ExpressCheckoutElement=ee,e.FpxBankElement=V,e.IbanElement=Z,e.IdealBankElement=J,e.LinkAuthenticationElement=re,e.P24BankElement=K,e.PaymentElement=X,e.PaymentMethodMessagingElement=ie,e.PaymentRequestButtonElement=ae,e.ShippingAddressElement=oe,e.useCheckout=function(){!function(e){var a=t.useContext(T);I(a,e)}("calls useCheckout()");var e=t.useContext(F);if(!e)throw new Error("Could not find Checkout Context; You need to wrap the part of your app that calls useCheckout() in an <CheckoutProvider> provider.");return e},e.useElements=function(){return P("calls useElements()").elements},e.useStripe=function(){return D("calls useStripe()").stripe}}(t,a(609))}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,a),o.exports}(()=>{"use strict";var e,t=a(609),r="https://js.stripe.com",n="".concat(r,"/v3"),o=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,i=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,l="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",c=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",a=document.createElement("script");a.src="".concat(n).concat(t);var r=document.head||document.body;if(!r)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return r.appendChild(a),a},s=null,u=null,m=null,p=!1,d=function(){return e||(e=(t=null,null!==s?s:(s=new Promise((function(e,a){if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&t&&console.warn(l),window.Stripe)e(window.Stripe);else try{var n=function(){for(var e,t=document.querySelectorAll('script[src^="'.concat(r,'"]')),a=0;a<t.length;a++){var n=t[a];if(e=n.src,o.test(e)||i.test(e))return n}return null}();if(n&&t)console.warn(l);else if(n){if(n&&null!==m&&null!==u){var s;n.removeEventListener("load",m),n.removeEventListener("error",u),null===(s=n.parentNode)||void 0===s||s.removeChild(n),n=c(t)}}else n=c(t);m=function(e,t){return function(){window.Stripe?e(window.Stripe):t(new Error("Stripe.js not available"))}}(e,a),u=function(e){return function(t){e(new Error("Failed to load Stripe.js",{cause:t}))}}(a),n.addEventListener("load",m),n.addEventListener("error",u)}catch(e){return void a(e)}else e(null)}))).catch((function(e){return s=null,Promise.reject(e)}))).catch((function(t){return e=null,Promise.reject(t)})));var t};Promise.resolve().then((function(){return d()})).catch((function(e){p||console.warn(e)}));var f=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];p=!0;var r=Date.now();return d().then((function(e){return function(e,t,a){if(null===e)return null;var r=t[0].match(/^pk_test/),n=function(e){return 3===e?"v3":e}(e.version);r&&"v3"!==n&&console.warn("Stripe.js@".concat(n," was loaded on the page, but @stripe/stripe-js@").concat("5.10.0"," expected Stripe.js@").concat("v3",". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));var o=e.apply(void 0,t);return function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"5.10.0",startTime:t})}(o,a),o}(e,t,r)}))},b=a(926);const y=function(){const e=document.querySelector('link[rel="https://api.w.org/"]');return e?e.href.replace(/\/$/,""):(window.wpApiSettings?.restUrl||"/wp-json").replace(/\/$/,"")}(),h=(f("your-publishable-key-here"),e=>new URLSearchParams(window.location.search).get(e)),g=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:o,includeIcons:i})=>{e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0);const l=e.availability?.available;return React.createElement("div",{className:`bif-tile ${t?"bif-selected":""} ${l?"":"is-unavailable"}`},o&&e.property_image&&React.createElement("div",{className:"bif-tile__hero"},React.createElement("img",{loading:"lazy",src:e.property_image,alt:e.property_name}),React.createElement("span",{className:"bif-chip "+(l?"":"unavailable")},((e,t,a)=>{if(e)return"Available";switch(t){case"Booked Out":return"Booked Out";case"No Tariff Set":return"No Rates Set";case"Min Nights":return`Minimum ${a||2} Nights`;default:return"Unavailable"}})(l,e.availability?.availability_reason,e.availability?.min_nights))),React.createElement("div",{className:"bif-tile__content"},React.createElement("h3",{className:"bif-tile__title"},e.property_name),i&&e.property_features&&React.createElement("ul",{className:"bif-amenities bif-amenities--slim"},1===e.property_features.wifi&&React.createElement("li",null,React.createElement("span",null,"📶 WiFi")),e.property_features.queen_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.queen_beds," Queen")),e.property_features.king_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.king_beds," King")),e.property_features.double_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.double_beds," Double")),e.property_features.single_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.single_beds," Single")),e.property_features.bunk_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.bunk_beds," Bunk")),e.property_features.sofa_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.sofa_beds," Sofa bed")),e.property_features.bedrooms&&React.createElement("li",null,React.createElement("span",null,"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":"")),e.property_features.living_areas&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":""))),e.availability?.dates&&React.createElement("div",{className:"bif-tile__rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-pill "+(e.availability?"ok":"na")},React.createElement("span",{className:"bif-pill__date"},e.date_formatted),React.createElement("strong",{className:"bif-pill__amt"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-tile__footer"},l?React.createElement("button",{onClick:a,className:"bif-btn "+(t?"bif-btn-selected":"bif-btn-select")},t?"✓ Selected":"Select"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled"},"Unavailable")),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount))))))))},E=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:o,includeIcons:i})=>{e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0);const l=e.availability?.available;return React.createElement("div",{className:`bif-row ${t?"bif-selected":""} ${l?"":"is-unavailable"} ${o&&e.property_image?"":"no-image"}`},o&&e.property_image&&React.createElement("div",{className:"bif-row__thumb"},React.createElement("img",{loading:"lazy",src:e.property_image,alt:e.property_name})),React.createElement("div",{className:"bif-row__main"},React.createElement("div",{className:"bif-row__top"},React.createElement("h3",{className:"bif-row__title"},e.property_name),React.createElement("span",{className:"bif-dot "+(c=l,c?"ok":"na"),"aria-hidden":"true"})),i&&e.property_features&&React.createElement("ul",{className:"bif-amenities bif-amenities--inline"},1===e.property_features.wifi&&React.createElement("li",null,React.createElement("span",null,"📶 WiFi")),e.property_features.queen_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.queen_beds," Queen")),e.property_features.king_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.king_beds," King")),e.property_features.double_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.double_beds," Double")),e.property_features.single_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.single_beds," Single")),e.property_features.bunk_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.bunk_beds," Bunk")),e.property_features.sofa_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.sofa_beds," Sofa bed")),e.property_features.bedrooms&&React.createElement("li",null,React.createElement("span",null,"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":"")),e.property_features.living_areas&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":"")))),e.availability?.dates&&React.createElement("div",{className:"bif-row__rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-rmini "+(e.availability?"ok":"na")},React.createElement("div",{className:"bif-rmini__date"},e.date_formatted),React.createElement("div",{className:"bif-rmini__amt"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-row__cta"},l?React.createElement("button",{onClick:a,className:"bif-btn "+(t?"bif-btn-selected":"bif-btn-select")},t?"✓ Selected":"Select"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled"},"Unavailable")),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras",style:{gridColumn:"1 / -1",marginTop:"1rem"}},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount)))))));var c},v=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:o,includeIcons:i})=>{const l=e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0)||0,c=e.availability?.available,s=(e,t,a)=>{if(e)return"Available";switch(t){case"Booked Out":return"Booked Out";case"No Tariff Set":return"No Rates Set";case"Min Nights":return`Minimum ${a||2} Nights`;default:return"Unavailable"}};return React.createElement("div",{className:`bif-property-card ${t?"bif-selected":""} ${c?"":"bif-unavailable"}`},React.createElement("div",{className:"bif-property-header"},o&&e.property_image&&React.createElement("div",{className:"bif-property-image"},React.createElement("img",{src:e.property_image,alt:e.property_name})),React.createElement("div",{className:"bif-property-info"},React.createElement("h3",{className:"bif-property-name"},e.property_name),e.property_description&&React.createElement("p",{className:"bif-property-description"},e.property_description),i&&e.property_features&&React.createElement("div",{className:"bif-property-icons"},1===e.property_features.wifi&&React.createElement("span",{className:"bif-property-icon",title:"WiFi Available"},"📶 WiFi"),e.property_features.queen_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.queen_beds} Queen bed${e.property_features.queen_beds>1?"s":""}`},"🛏️ ",e.property_features.queen_beds," Queen"),e.property_features.king_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.king_beds} King bed${e.property_features.king_beds>1?"s":""}`},"🛏️ ",e.property_features.king_beds," King"),e.property_features.double_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.double_beds} Double bed${e.property_features.double_beds>1?"s":""}`},"🛏️ ",e.property_features.double_beds," Double"),e.property_features.single_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.single_beds} Single bed${e.property_features.single_beds>1?"s":""}`},"🛏️ ",e.property_features.single_beds," Single"),e.property_features.bunk_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.bunk_beds} Bunk bed${e.property_features.bunk_beds>1?"s":""}`},"🛏️ ",e.property_features.bunk_beds," Bunk"),e.property_features.sofa_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.sofa_beds} Sofa bed${e.property_features.sofa_beds>1?"s":""}`},"🛋️ ",e.property_features.sofa_beds," Sofa bed"),e.property_features.bedrooms&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.bedrooms} bedroom${e.property_features.bedrooms>1?"s":""}`},"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":""),e.property_features.living_areas&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.living_areas} living area${e.property_features.living_areas>1?"s":""}`},"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":""))),React.createElement("div",{className:"bif-property-status-container"},React.createElement("span",{className:`bif-property-status ${((e,t)=>{if(e)return"bif-status-available";switch(t){case"Booked Out":return"bif-status-booked";case"No Tariff Set":return"bif-status-no-rate";case"Min Nights":return"bif-status-min-nights";default:return"bif-status-unavailable"}})(c,e.availability?.availability_reason)}`},s(c,e.availability?.availability_reason,e.availability?.min_nights)),c?React.createElement("button",{onClick:a,className:`bif-btn ${t?"bif-btn-selected":"bif-btn-select"} bif-header-btn`,style:{marginLeft:"0.75rem"}},t?"✓ Selected":"Select Property"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled bif-header-btn",style:{marginLeft:"0.75rem"}},s(c,e.availability?.availability_reason,e.availability?.min_nights)))),e.availability?.dates&&React.createElement("div",{className:"bif-availability-details"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Daily Rate Breakdown"),React.createElement("div",{className:"bif-daily-rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-daily-rate "+(e.availability?"bif-available":"bif-unavailable")},React.createElement("div",{className:"bif-date"},e.date_formatted),React.createElement("div",{className:"bif-rate"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-rate-summary"},React.createElement("div",{className:"bif-summary-row"},React.createElement("span",{className:"bif-total"},"Total: $",l)))),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount)))))))},R=({checkInDate:e,nights:t,onDateChange:a,onNightsChange:r,onCheckAvailability:n,isLoading:o,minNights:i,maxNights:l,buttonIcon:c="search"})=>{const s=(new Date).toISOString().split("T")[0],u={search:"🔍",calendar:"📅",home:"🏠",mapMarker:"📍",star:"⭐",pin:"📌",pinSmall:"📍",globe:"🌍"}[c]||"🔍";return React.createElement("div",{className:"bif-date-selector"},React.createElement("h2",{className:"bif-section-title"},"Select Your Dates"),React.createElement("div",{className:"bif-date-form"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Check-in Date"),React.createElement("input",{type:"date",value:e,onChange:e=>a(e.target.value),min:s,className:"bif-date-input"})),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Number of Nights"),React.createElement("select",{value:t,onChange:e=>r(parseInt(e.target.value)),className:"bif-nights-select"},[...Array(l-i+1).keys()].map((e=>{const t=i+e;return React.createElement("option",{key:t,value:t},t," ",1===t?"night":"nights")})))),React.createElement("div",{className:"bif-form-field"},React.createElement("button",{onClick:n,disabled:!e||o,className:"bif-btn bif-btn-primary bif-check-availability bif-has-icon-preview"},o?React.createElement(React.Fragment,null,React.createElement("div",{className:"bif-spinner"}),React.createElement("span",null,"Checking...")):React.createElement(React.Fragment,null,React.createElement("span",{className:"bif-icon-preview"},u),React.createElement("span",null,"Check Availability"))))))},_=({selectedProperties:e,selectedExtras:t,nights:a,total:r,discountCode:n,onDiscountCodeChange:o,onApplyDiscount:i,checkInDate:l,summary:c,showDiscount:s=!1,showRedeemGiftCertificate:u=!1,giftCertificate:m,onGiftCertificateChange:p,showGiftCertificateForm:d,onTriggerShowGiftCertificate:f,onApplyGiftCertificate:b,gcResult:y,gcLoading:h=!1})=>{Object.values(t).flat().reduce(((e,t)=>e+(t.amount||0)),0);const g=c&&parseFloat(c.order_discount_code_total||0)>0;return e&&0!==e.length?React.createElement("div",{className:"bif-booking-summary"},React.createElement("h3",{className:"bif-section-title"},"Booking Summary"),React.createElement("div",{className:"bif-summary-content"},e.map((e=>{const a=e.sub_total||e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0)||0,r=e.mandatory_extras_total||e.mandatory_extras?.reduce(((e,t)=>e+parseFloat(t.amount||0)),0)||0,n=e.optional_extras_total||0,o=parseFloat(a)+parseFloat(r)+parseFloat(n);return React.createElement("div",{key:e.id,className:"bif-property-summary"},React.createElement("h5",{className:"bif-property-summary-name"},e.property_name),React.createElement("div",{className:"bif-property-total"},React.createElement("div",{className:"bif-total-row"},React.createElement("span",null,"Property Subtotal"),React.createElement("span",null,"$",parseFloat(a).toFixed(2)))),e.mandatory_extras&&e.mandatory_extras.length>0&&React.createElement("div",{className:"bif-mandatory-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Mandatory Extras"),e.mandatory_extras.map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#dc2626"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))),e.optional_extras&&e.optional_extras.filter((e=>e.selected)).length>0&&React.createElement("div",{className:"bif-optional-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),e.optional_extras.filter((e=>e.selected)).map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#92400e"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))),React.createElement("div",{className:"bif-property-total"},React.createElement("div",{className:"bif-total-row bif-subtotal"},React.createElement("span",null,"Property Total"),React.createElement("span",null,"$",parseFloat(o).toFixed(2)))),!e.optional_extras&&t[e.id]&&t[e.id].length>0&&React.createElement("div",{className:"bif-optional-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Selected Optional Extras"),t[e.id].map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#92400e"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))))})),s&&React.createElement("div",{className:"bif-summary-section"},React.createElement("div",{className:"bif-discount-form"},React.createElement("input",{type:"text",placeholder:"Enter discount code",value:n,onChange:e=>o(e.target.value),className:"bif-discount-input"}),React.createElement("button",{onClick:()=>{n.trim()&&i(n)},className:"bif-btn bif-btn-secondary"},"Apply")),g&&React.createElement("div",{className:"bif-discount-applied"},"Discount code applied")),u&&c&&React.createElement("div",{className:"bif-summary-section"},React.createElement("div",{className:"bif-gift-certificate-section"},d?React.createElement("div",{className:"bif-gift-certificate-form"},React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Certificate Number:"),React.createElement("input",{type:"text",value:m.number,onChange:e=>p({...m,number:e.target.value}),className:"bif-form-control",placeholder:"Enter certificate number",disabled:h})),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Pin:"),React.createElement("input",{type:"number",value:m.pin,onChange:e=>p({...m,pin:e.target.value}),className:"bif-form-control",placeholder:"Enter pin",disabled:h}))),React.createElement("button",{className:"bif-btn bif-btn-secondary",onClick:b,disabled:h},h?"Applying...":"Apply")):React.createElement("button",{className:"bif-btn bif-btn-secondary",onClick:f},"Apply Gift Certificate"),y&&y.valid&&React.createElement("div",{className:"bif-gift-certificate-success"},React.createElement("p",null,"✅ Successfully Applied Gift Certificate"),React.createElement("p",null,y.result),parseFloat(y.total)-parseFloat(y.gc_amount_applied)==0?React.createElement("p",null,React.createElement("strong",null,"🎉 Your gift certificate covers the full amount! No additional payment required.")):React.createElement(React.Fragment,null,React.createElement("p",null,"Remaining balance to pay: ",React.createElement("strong",null,"$",(parseFloat(y.total)-parseFloat(y.gc_amount_applied)).toFixed(2))),React.createElement("p",{style:{fontSize:"0.875rem",color:"#6b7280"}},"*Credit card surcharge will be added at payment")),React.createElement("p",null,"Gift Certificate balance after order: ",React.createElement("strong",null,"$",parseFloat(y.gc_balance_after_order).toFixed(2)))))),React.createElement("div",{className:"bif-grand-total"},y&&y.valid&&React.createElement("div",{className:"bif-total-row"},React.createElement("span",null,"Order Total"),React.createElement("span",null,"$",parseFloat(y.total||c.order_grand_total).toFixed(2))),y&&y.valid&&React.createElement("div",{className:"bif-total-row",style:{color:"#059669"}},React.createElement("span",null,"Gift Certificate Applied"),React.createElement("span",null,"-$",parseFloat(y.gc_amount_applied).toFixed(2))),React.createElement("div",{className:"bif-total-main"},React.createElement("span",null,y&&y.valid&&parseFloat(y.total)-parseFloat(y.gc_amount_applied)==0?"Total Paid by Gift Certificate":y&&y.valid?"Balance Due":"Total Cost"),React.createElement("span",{className:"bif-total-amount"},"$",y&&y.valid?(parseFloat(y.total)-parseFloat(y.gc_amount_applied)).toFixed(2):parseFloat(r).toFixed(2))),y&&y.valid&&parseFloat(y.total)-parseFloat(y.gc_amount_applied)>0&&c&&c.order_has_surcharge&&React.createElement("div",{className:"bif-surcharge-note",style:{fontSize:"0.875rem",color:"#6b7280",marginTop:"0.5rem"}},"*Credit card surcharge will be added at payment"),c&&parseFloat(c.order_discount_code_total||0)>0&&React.createElement("div",{className:"bif-discount-text"},"Includes discount of $",parseFloat(c.order_discount_code_total||0).toFixed(2))))):null},w=({isOpen:e,onClose:a,title:r,content:n})=>((0,t.useEffect)((()=>(document.body.style.overflow=e?"hidden":"",()=>{document.body.style.overflow=""})),[e]),(0,t.useEffect)((()=>{const t=t=>{"Escape"===t.key&&e&&a()};return e&&document.addEventListener("keydown",t),()=>{document.removeEventListener("keydown",t)}}),[e,a]),e?React.createElement("div",{className:"bif-modal-overlay",onClick:a},React.createElement("div",{className:"bif-modal",onClick:e=>e.stopPropagation()},React.createElement("div",{className:"bif-modal-header"},React.createElement("h3",{className:"bif-modal-title"},r),React.createElement("button",{className:"bif-modal-close",onClick:a,"aria-label":"Close modal"},"×")),React.createElement("div",{className:"bif-modal-content",dangerouslySetInnerHTML:{__html:n}}))):null),C=({userDetails:e,onUpdateDetails:t,formErrors:a,showSuburb:r=!0,showPostcode:n=!0,showComments:o=!1})=>React.createElement("div",{className:"bif-customer-details"},React.createElement("h2",{className:"bif-section-title"},"Your Details"),React.createElement("div",{className:"bif-customer-form"},React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"First Name *"),React.createElement("input",{type:"text",value:e.firstName,onChange:e=>t("firstName",e.target.value),placeholder:"Enter your first name",className:a.firstName?"bif-error":""}),a.firstName&&React.createElement("div",{className:"bif-field-error"},a.firstName)),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Last Name *"),React.createElement("input",{type:"text",value:e.lastName,onChange:e=>t("lastName",e.target.value),placeholder:"Enter your last name",className:a.lastName?"bif-error":""}),a.lastName&&React.createElement("div",{className:"bif-field-error"},a.lastName))),React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Email *"),React.createElement("input",{type:"email",value:e.email,onChange:e=>t("email",e.target.value),placeholder:"Enter your email address",className:a.email?"bif-error":""}),a.email&&React.createElement("div",{className:"bif-field-error"},a.email)),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Phone *"),React.createElement("input",{type:"tel",value:e.phone,onChange:e=>t("phone",e.target.value),placeholder:"Enter your phone number",className:a.phone?"bif-error":""}),a.phone&&React.createElement("div",{className:"bif-field-error"},a.phone))),(n||r)&&React.createElement("div",{className:"bif-form-row"},n&&React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Postcode"),React.createElement("input",{type:"text",value:e.postcode,onChange:e=>t("postcode",e.target.value),placeholder:"Enter your postcode"})),r&&React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Suburb"),React.createElement("input",{type:"text",value:e.suburb,onChange:e=>t("suburb",e.target.value),placeholder:"Enter your suburb"}))),o&&React.createElement("div",{className:"bif-form-row bif-full-width"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Comments"),React.createElement("textarea",{value:e.comments,onChange:e=>t("comments",e.target.value),rows:4,placeholder:"Any special requests or comments..."}))))),N=({summary:e,propertyIds:a,userDetails:r,paymentType:n,giftCertificate:o})=>{const i=(0,b.useStripe)(),l=(0,b.useElements)(),[c,s]=(0,t.useState)(!1),[u,m]=(0,t.useState)(""),[p,d]=(0,t.useState)(!1),[f,h]=(0,t.useState)(""),g=async t=>{t.preventDefault(),s(!0),m("");try{let t={amount:"deposit"===n?e.order_deposit_amount:e.order_payable_now,currency:"AUD",summary:e,propertyIds:"string"==typeof a?a.split(",").map((e=>parseInt(e.trim()))):a,userDetails:r,paymentType:n};if("gift"===n&&o)t.giftCertificateApplied=!0,t.giftCertificate=o,t.amount=0;else{if(!i||!l)return void console.error("Stripe.js has not loaded yet.");const e=l.getElement(b.CardElement),{paymentMethod:a,error:r}=await i.createPaymentMethod({type:"card",card:e});if(r)return console.error(r),m(r.message),void s(!1);t.stripePaymentMethodId=a.id,o&&o.valid&&(t.giftCertificateApplied=!0,t.giftCertificate=o)}const c=await fetch(`${y}/bookitfast/v1/process-payment`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),u=await c.json();if(!u.success)throw new Error(u.message||"Payment failed.");console.log("Payment successful:",u),h(u.data.charge),d(!0)}catch(e){console.error("Payment error:",e),m(e.message)}finally{s(!1)}};return React.createElement("div",{className:"bif-payment-container"},React.createElement("h3",null,"gift"===n?"🎁 Gift Certificate Payment":"💳 Payment Details"),u&&React.createElement("div",{className:"bif-error-message"},u),p?React.createElement("div",{className:"bif-success-message"},React.createElement("p",null,React.createElement("strong",null,"✅ Payment Successful!")),f&&React.createElement("p",null,React.createElement("a",{href:f,target:"_blank",rel:"noopener noreferrer"},"📄 Click here to view your receipt"))):"gift"===n?React.createElement("div",{className:"bif-gift-certificate-payment-form"},React.createElement("div",{className:"bif-gift-certificate-summary"},React.createElement("p",null,"🎁 ",React.createElement("strong",null,"Paying with Gift Certificate")),React.createElement("p",null,"Amount: ",React.createElement("strong",null,"$",parseFloat(o.gc_amount_applied||0).toFixed(2))),React.createElement("p",null,"No credit card required - your gift certificate will be charged automatically.")),React.createElement("button",{onClick:g,disabled:c,className:"bif-btn bif-btn-primary bif-btn-large"},c?"Processing...":"Complete Booking")):React.createElement("form",{onSubmit:g,className:"bif-stripe-form"},React.createElement("div",{className:"bif-card-element-container"},React.createElement(b.CardElement,{options:{hidePostalCode:!0,style:{base:{fontSize:"16px",color:"#424770","::placeholder":{color:"#aab7c4"}},invalid:{color:"#9e2146"}}}})),React.createElement("button",{type:"submit",disabled:!i||c,className:"bif-btn bif-btn-primary bif-btn-large"},c?"Processing...":"Pay Now")))},k=({propertyIds:e="",showDiscount:a=!1,showSuburb:r=!0,showPostcode:n=!0,showRedeemGiftCertificate:o=!1,showComments:i=!1,buttonColor:l="#0073aa",buttonTextColor:c="#ffffff",minNights:s=1,maxNights:u=14,showPropertyImages:m=!1,includeIcons:p=!1,layoutStyle:d="cards",buttonIcon:k="search"})=>{const S=h("nights"),x=S&&!isNaN(S)?Math.max(parseInt(S,10),s):s,P=h("start"),O=h("discount"),j=P?(e=>{const t=e.split("-");if(3===t.length){const[e,a,r]=t.map(Number);if(!isNaN(e)&&!isNaN(a)&&!isNaN(r)){const t=new Date(r,a-1,e);return t.setHours(12,0,0,0),t.toISOString().split("T")[0]}}return null})(P):"",T="string"==typeof e?e:"",[I,F]=(0,t.useState)({date:j,nights:x}),[A,D]=(0,t.useState)(null),[B,$]=(0,t.useState)({}),[G,M]=(0,t.useState)(null),[L,z]=(0,t.useState)(null),[q,U]=(0,t.useState)(!1),[H,Y]=(0,t.useState)(""),[W,V]=(0,t.useState)({firstName:"",lastName:"",phone:"",email:"",postcode:"",suburb:"",comments:""}),[Z,J]=(0,t.useState)(!1),[K,Q]=(0,t.useState)(!1),[X,ee]=(0,t.useState)(O),[te,ae]=(0,t.useState)(null),[re,ne]=(0,t.useState)(!1),[oe,ie]=(0,t.useState)(null),[le,ce]=(0,t.useState)({}),[se,ue]=(0,t.useState)({number:"",pin:""}),[me,pe]=(0,t.useState)(!1),[de,fe]=(0,t.useState)(null),[be,ye]=(0,t.useState)(!1),[he,ge]=(0,t.useState)({}),[Ee,ve]=(0,t.useState)(!1),[Re,_e]=(0,t.useState)({isOpen:!1,title:"",content:""});(0,t.useEffect)((()=>{j&&x&&(console.log("Auto-checking availability with:",j,x),we(j,x))}),[j,x]);const we=async(e=I.date,t=I.nights)=>{if(!e||!T)return void console.warn("fetchAvailability skipped - Missing startDate or propertyIds");const a=I.date,r=T.split(",").filter((e=>""!==e.trim()));U(!0),Y(""),ve(!1);try{const e=await fetch(`${y}/bookitfast/v1/availability`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:r,start:a,nights:t})}),n=await e.json();D(n),ve(!0);const o=Object.keys(n).reduce(((e,t)=>(e[t]=!1,e)),{});$(o)}catch(e){console.error(e),Y("Failed to fetch availability. Please try again.")}finally{U(!1)}},Ce=(e,t)=>{ge((a=>{const r=a[e]||{},n={...a,[e]:{...r,[t]:!r[t]}};return Ne(B,X,n,0),n}))},Ne=async(e,t=null,a=he,r=0)=>{const n=I.date,o=I.nights,i=new Date(new Date(n).getTime()+864e5*o).toISOString().split("T")[0];U(!0),Y("");try{const r=await fetch(`${y}/bookitfast/v1/availability/summary`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({selected:e,selected_optional_extras:a,start:n,end:i,discount_code:t||null})});if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);const o=await r.json();z(o),o.stripe_publishable_key&&M(f(o.stripe_publishable_key))}catch(n){console.error("Error fetching summary:",n),r<3?(console.log(`Retrying... Attempt ${r+1}`),await Ne(e,t,a,r+1)):Y("Failed to fetch summary. Please try again.")}finally{U(!1)}},ke=e=>{(()=>{const e={};return W.firstName.trim()||(e.firstName="First name is required"),W.lastName.trim()||(e.lastName="Last name is required"),W.email.trim()||(e.email="Email is required"),W.phone.trim()||(e.phone="Phone is required"),Z||(e.agreeToTerms="You must agree to the terms and conditions"),K||(e.consentToDataSharing="You must consent to data sharing with Book It Fast service"),ce(e),0===Object.keys(e).length})()&&(ie(e),ne(!0))},Se=A?Object.entries(A).filter((([e])=>B[e])).map((([e,t])=>({id:e,...t,...L?.property_summaries?.[e]||{},selectedExtras:he[e],onToggleExtra:Ce}))):[];return React.createElement("div",{className:"bif-booking-container",style:{"--bif-button-color":l,"--bif-button-color-hover":`${l}dd`,"--bif-button-color-active":`${l}bb`,"--bif-button-text-color":c}},React.createElement("div",{className:"bif-booking-steps"},React.createElement(R,{checkInDate:I.date,nights:I.nights,onDateChange:e=>F((t=>({...t,date:e}))),onNightsChange:e=>F((t=>({...t,nights:e}))),onCheckAvailability:we,isLoading:q,minNights:s,maxNights:u,buttonIcon:k}),H&&React.createElement("div",{className:"bif-error-message"},H),Ee&&A&&React.createElement("div",{className:"bif-property-list"},React.createElement("h2",{className:"bif-section-title"},"Available Properties"),React.createElement("div",{className:`bif-properties bif-properties--${d}`},Object.entries(A).map((([e,t])=>{const a={key:e,property:{id:e,...t,selectedExtras:he[e],onToggleExtra:Ce},isSelected:B[e],onToggle:()=>(async e=>{const t={...B,[e]:!B[e]};$(t),Object.values(t).includes(!0)?await Ne(t,X):z(null)})(e),nights:I.nights,checkInDate:I.date,showPropertyImages:m,includeIcons:p};switch(d){case"grid":return React.createElement(g,a);case"rows":return React.createElement(E,a);default:return React.createElement(v,a)}})))),L&&Se.length>0&&React.createElement(_,{selectedProperties:Se,selectedExtras:he,nights:I.nights,total:(L.order_payable_now||0)-(L.order_surcharge||0),discountCode:X,onDiscountCodeChange:ee,onApplyDiscount:e=>{Object.keys(B).some((e=>B[e]))&&Ne(B,e)},checkInDate:I.date,summary:L,showDiscount:a,showRedeemGiftCertificate:o,giftCertificate:se,onGiftCertificateChange:ue,showGiftCertificateForm:me,onTriggerShowGiftCertificate:()=>{pe(!0)},onApplyGiftCertificate:async e=>{if(e.preventDefault(),console.log("Gift Certificate: Apply button clicked"),console.log("Gift Certificate Data:",se),console.log("Current Summary:",L),be)return void console.log("Gift Certificate: Already processing, ignoring click");if(!L)return void console.error("Gift Certificate: No summary available");if(!se.number||!se.pin)return console.error("Gift Certificate: Missing number or pin"),void alert("Please enter both certificate number and pin");ye(!0),console.log("Gift Certificate: Setting loading state to true");let t={...L};if(L.order_weekly_discount>0){console.log("Gift Certificate: Weekly discount detected, adjusting summary for gift certificate calculation"),console.log("Gift Certificate: Original order_grand_total:",L.order_grand_total),console.log("Gift Certificate: Order weekly discount:",L.order_weekly_discount),console.log("Gift Certificate: Order surcharge:",L.order_surcharge);const e=parseFloat(L.order_sub_total)+parseFloat(L.order_mandatory_extras_total);console.log("Gift Certificate: Total before weekly discount (excluding surcharge):",e),t={...L,order_grand_total:e.toString(),order_total_before_surcharge:e,order_payable_now:e.toString(),order_surcharge:0,order_has_surcharge:!1},console.log("Gift Certificate: Adjusted summary for gift certificate:",t)}const a={certificate:se,summary:t};console.log("Gift Certificate: Sending request with data:",a);try{const e=await fetch(`${y}/bookitfast/v1/apply-gift-certificate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(console.log("Gift Certificate: Response status:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();console.log("Gift Certificate: Response data:",t),t.valid?(fe(t),t.summary&&(z(t.summary),console.log("Gift Certificate: Updated summary:",t.summary)),console.log("Gift Certificate: Application successful"),console.log("Gift Certificate: Order payable now:",t.order_payable_now)):(console.error("Gift Certificate: API returned error:",t),alert(t.message||"Failed to apply gift certificate"))}catch(e){console.error("Gift Certificate: Error applying certificate:",e),alert("Error applying gift certificate. Please try again.")}finally{ye(!1),console.log("Gift Certificate: Setting loading state to false")}},gcResult:de,gcLoading:be}),L&&Se.length>0&&React.createElement(C,{userDetails:W,onUpdateDetails:(e,t)=>{V((a=>({...a,[e]:t}))),le[e]&&ce((t=>({...t,[e]:null})))},formErrors:le,showSuburb:r,showPostcode:n,showComments:i}),L&&Se.length>0&&React.createElement("div",{className:"bif-terms-payment"},React.createElement("div",{className:"bif-terms-checkbox"},React.createElement("input",{type:"checkbox",id:"agreeToTerms",checked:Z,onChange:()=>J(!Z)}),React.createElement("label",{htmlFor:"agreeToTerms"},"I have read and agree to the"," ",L.order_booking_conditions?.map(((e,t)=>React.createElement("span",{key:t},"local"===e.type?React.createElement("a",{href:"#",onClick:t=>{t.preventDefault(),_e({isOpen:!0,title:e.title,content:e.content})},style:{textDecoration:"underline",cursor:"pointer"}},e.title):React.createElement("a",{href:e.url,target:"_blank",rel:"noopener noreferrer"},e.title),t<L.order_booking_conditions.length-2?", ":"",t===L.order_booking_conditions.length-2?" and ":"")))),le.agreeToTerms&&React.createElement("div",{className:"bif-field-error"},le.agreeToTerms)),React.createElement("div",{className:"bif-privacy-consent"},React.createElement("input",{type:"checkbox",id:"consentToDataSharing",checked:K,onChange:()=>Q(!K)}),React.createElement("label",{htmlFor:"consentToDataSharing"},"I consent to my personal information being transmitted to and processed by Book It Fast (",React.createElement("a",{href:"https://bookitfast.app/privacy-policy",target:"_blank",rel:"noopener noreferrer"},"Privacy Policy"),") for booking and payment processing purposes."),le.consentToDataSharing&&React.createElement("div",{className:"bif-field-error"},le.consentToDataSharing)),!re&&React.createElement("div",{className:"bif-payment-options"},Object.keys(le).length>0&&React.createElement("div",{className:"bif-validation-error"},"Please complete all required fields before proceeding with payment."),de&&de.valid&&parseFloat(de.total)-parseFloat(de.gc_amount_applied)==0?React.createElement("div",{className:"bif-gift-certificate-payment"},React.createElement("div",{className:"bif-gift-certificate-full-coverage"},React.createElement("p",null,"🎉 ",React.createElement("strong",null,"Your gift certificate covers the full booking amount!")),React.createElement("p",null,"No additional payment required.")),React.createElement("button",{className:"bif-btn bif-btn-primary bif-btn-large",onClick:()=>ke("gift")},"🎁 Complete Booking with Gift Certificate")):React.createElement(React.Fragment,null,L.order_surcharge>0&&parseFloat(L.order_payable_now||0)>0&&React.createElement("div",{className:"bif-surcharge-info"},React.createElement("p",null,"Please note a credit card surcharge applies of ",L.order_deposit_surcharge>0&&` $${L.order_deposit_surcharge} for deposit or `,"$",L.order_surcharge," for the full payment.")),L.order_deposit_amount>0?React.createElement("div",{className:"bif-payment-buttons"},React.createElement("button",{className:"bif-btn bif-btn-primary",onClick:()=>ke("deposit")},"💳 Pay Deposit ($",L.order_deposit_amount,")"),React.createElement("button",{className:"bif-btn bif-btn-primary",onClick:()=>ke("full")},"💳 Pay In Full ($",de&&de.valid?parseFloat(de.order_payable_now).toFixed(2):L.order_payable_now,")")):React.createElement("button",{className:"bif-btn bif-btn-primary bif-btn-large",onClick:()=>ke("full")},"💳 Complete Booking - $",de&&de.valid?parseFloat(de.order_payable_now).toFixed(2):L.order_payable_now)))),L&&re&&React.createElement("div",{className:"bif-payment-form-container"},"gift"===oe?React.createElement(N,{summary:L,propertyIds:T.split(",").map((e=>parseInt(e.trim()))),userDetails:W,paymentType:oe,giftCertificate:de}):G&&React.createElement(b.Elements,{stripe:G},React.createElement(N,{summary:L,propertyIds:T.split(",").map((e=>parseInt(e.trim()))),userDetails:W,paymentType:oe,giftCertificate:de})))),React.createElement(w,{isOpen:Re.isOpen,onClose:()=>_e({isOpen:!1,title:"",content:""}),title:Re.title,content:Re.content}))},S=window.wp.blocks,x=window.wp.blockEditor,P=window.wp.components,O=window.wp.primitives,j=window.ReactJSXRuntime,T=(0,j.jsx)(O.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(O.Path,{d:"M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"})}),I=(0,j.jsx)(O.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,j.jsx)(O.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z"})}),F=(0,j.jsx)(O.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(O.Path,{d:"M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z"})}),A=(0,j.jsx)(O.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(O.Path,{d:"M12 9c-.8 0-1.5.7-1.5 1.5S11.2 12 12 12s1.5-.7 1.5-1.5S12.8 9 12 9zm0-5c-3.6 0-6.5 2.8-6.5 6.2 0 .8.3 1.8.9 3.1.5 1.1 1.2 2.3 2 3.6.7 1 3 3.8 3.2 3.9l.4.5.4-.5c.2-.2 2.6-2.9 3.2-3.9.8-1.2 1.5-2.5 2-3.6.6-1.3.9-2.3.9-3.1C18.5 6.8 15.6 4 12 4zm4.3 8.7c-.5 1-1.1 2.2-1.9 3.4-.5.7-1.7 2.2-2.4 3-.7-.8-1.9-2.3-2.4-3-.8-1.2-1.4-2.3-1.9-3.3-.6-1.4-.7-2.2-.7-2.5 0-2.6 2.2-4.7 5-4.7s5 2.1 5 4.7c0 .2-.1 1-.7 2.4z"})}),D=(0,j.jsx)(O.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(O.Path,{d:"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"})}),B=(0,j.jsx)(O.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(O.Path,{d:"m21.5 9.1-6.6-6.6-4.2 5.6c-1.2-.1-2.4.1-3.6.7-.1 0-.1.1-.2.1-.5.3-.9.6-1.2.9l3.7 3.7-5.7 5.7v1.1h1.1l5.7-5.7 3.7 3.7c.4-.4.7-.8.9-1.2.1-.1.1-.2.2-.3.6-1.1.8-2.4.6-3.6l5.6-4.1zm-7.3 3.5.1.9c.1.9 0 1.8-.4 2.6l-6-6c.8-.4 1.7-.5 2.6-.4l.9.1L15 4.9 19.1 9l-4.9 3.6z"})}),$=(0,j.jsx)(O.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,j.jsx)(O.Path,{d:"M10.97 10.159a3.382 3.382 0 0 0-2.857.955l1.724 1.723-2.836 2.913L7 17h1.25l2.913-2.837 1.723 1.723a3.38 3.38 0 0 0 .606-.825c.33-.63.446-1.343.35-2.032L17 10.695 13.305 7l-2.334 3.159Z"})}),G=(0,j.jsx)(O.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,j.jsx)(O.Path,{d:"M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8Zm6.5 8c0 .6 0 1.2-.2 1.8h-2.7c0-.6.2-1.1.2-1.8s0-1.2-.2-1.8h2.7c.2.6.2 1.1.2 1.8Zm-.9-3.2h-2.4c-.3-.9-.7-1.8-1.1-2.4-.1-.2-.2-.4-.3-.5 1.6.5 3 1.6 3.8 3ZM12.8 17c-.3.5-.6 1-.8 1.3-.2-.3-.5-.8-.8-1.3-.3-.5-.6-1.1-.8-1.7h3.3c-.2.6-.5 1.2-.8 1.7Zm-2.9-3.2c-.1-.6-.2-1.1-.2-1.8s0-1.2.2-1.8H14c.1.6.2 1.1.2 1.8s0 1.2-.2 1.8H9.9ZM11.2 7c.3-.5.6-1 .8-1.3.2.3.5.8.8 1.3.3.5.6 1.1.8 1.7h-3.3c.2-.6.5-1.2.8-1.7Zm-1-1.2c-.1.2-.2.3-.3.5-.4.7-.8 1.5-1.1 2.4H6.4c.8-1.4 2.2-2.5 3.8-3Zm-1.8 8H5.7c-.2-.6-.2-1.1-.2-1.8s0-1.2.2-1.8h2.7c0 .6-.2 1.1-.2 1.8s0 1.2.2 1.8Zm-2 1.4h2.4c.3.9.7 1.8 1.1 2.4.1.2.2.4.3.5-1.6-.5-3-1.6-3.8-3Zm7.4 3c.1-.2.2-.3.3-.5.4-.7.8-1.5 1.1-2.4h2.4c-.8 1.4-2.2 2.5-3.8 3Z"})}),{useState:M,useEffect:L}=wp.element;(0,S.registerBlockType)("bookitfast/multi-embed",{title:"Book It Fast Availability",description:"A multi-property booking embed for WordPress.",icon:"calendar",category:"widgets",attributes:{propertyIds:{type:"string",default:""},showDiscount:{type:"boolean",default:!1},showSuburb:{type:"boolean",default:!1},showPostcode:{type:"boolean",default:!1},showRedeemGiftCertificate:{type:"boolean",default:!1},showComments:{type:"boolean",default:!1},buttonColor:{type:"string",default:"#0073aa"},buttonTextColor:{type:"string",default:"#ffffff"},minNights:{type:"number",default:1},maxNights:{type:"number",default:14},showPropertyImages:{type:"boolean",default:!1},includeIcons:{type:"boolean",default:!1},layoutStyle:{type:"string",default:"cards"},buttonIcon:{type:"string",default:"search"}},edit:({attributes:e,setAttributes:t})=>{const a=(0,x.useBlockProps)(),[r,n]=M([]),[o,i]=M(!0),[l,c]=M(null);return L((()=>{wp.apiFetch({path:"/bookitfast/v1/properties"}).then((e=>{e.success?n(e.properties):c("Failed to fetch properties.")})).catch((e=>{console.error("API Fetch Error:",e),c("Error fetching properties.")})).finally((()=>i(!1)))}),[]),React.createElement("div",a,React.createElement(x.InspectorControls,null,React.createElement(P.PanelBody,{title:"Search Options",initialOpen:!0},o?React.createElement("p",null,"Loading properties..."):l?React.createElement("p",{style:{color:"red"}},l):React.createElement(P.SelectControl,{multiple:!0,label:"Select Properties",value:e.propertyIds?e.propertyIds.split(","):[],options:r.map((e=>({label:e.title,value:e.id.toString()}))),onChange:e=>{const a=e.join(",");t({propertyIds:a})},__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}),React.createElement(P.RangeControl,{label:"Minimum Nights",value:e.minNights,onChange:e=>t({minNights:e}),min:1,max:30,step:1}),React.createElement(P.RangeControl,{label:"Maximum Nights",value:e.maxNights,onChange:e=>t({maxNights:e}),min:e.minNights||1,max:90,step:1}),React.createElement(P.ColorPalette,{label:"Button Color",value:e.buttonColor,onChange:e=>t({buttonColor:e}),colors:[{name:"Blue",color:"#0073aa"},{name:"Green",color:"#46b450"},{name:"Red",color:"#dc3232"},{name:"Orange",color:"#ff6900"},{name:"Purple",color:"#8224e3"},{name:"Dark",color:"#333333"}]}),React.createElement(P.ColorPalette,{label:"Button Text Color",value:e.buttonTextColor,onChange:e=>t({buttonTextColor:e}),colors:[{name:"White",color:"#ffffff"},{name:"Black",color:"#000000"},{name:"Dark Gray",color:"#333333"},{name:"Light Gray",color:"#666666"}]}),React.createElement("div",{style:{marginBottom:"16px"}},React.createElement("label",{style:{display:"block",marginBottom:"8px",fontSize:"11px",fontWeight:"500",textTransform:"uppercase",color:"#1e1e1e"}},"Button Icon"),React.createElement("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"8px",padding:"8px",border:"1px solid #ddd",borderRadius:"4px",backgroundColor:"#fff"}},[{icon:T,name:"search",label:"Search"},{icon:I,name:"calendar",label:"Calendar"},{icon:F,name:"home",label:"Home"},{icon:A,name:"mapMarker",label:"Map Marker"},{icon:D,name:"star",label:"Star"},{icon:B,name:"pin",label:"Pin"},{icon:$,name:"pinSmall",label:"Pin Small"},{icon:G,name:"globe",label:"Globe"}].map((({icon:a,name:r,label:n})=>React.createElement(P.Button,{key:r,onClick:()=>t({buttonIcon:r}),variant:e.buttonIcon===r?"primary":"secondary",style:{width:"48px",height:"48px",padding:"8px",display:"flex",alignItems:"center",justifyContent:"center"},title:n},React.createElement(P.Icon,{icon:a,size:20}))))),React.createElement("p",{style:{fontSize:"12px",color:"#757575",margin:"8px 0 0 0",fontStyle:"italic"}},"Select an icon for the search button"))),React.createElement(P.PanelBody,{title:"Results Layout",initialOpen:!1},React.createElement(P.SelectControl,{label:"Layout Style",value:e.layoutStyle,options:[{label:"Card List",value:"cards"},{label:"Grid Tiles",value:"grid"},{label:"Compact Rows",value:"rows"}],onChange:e=>t({layoutStyle:e}),help:"Choose how property results are displayed",__next40pxDefaultSize:!0,__nextHasNoMarginBottom:!0}),React.createElement(P.ToggleControl,{label:"Show Property Images",checked:e.showPropertyImages,onChange:e=>t({showPropertyImages:e}),__nextHasNoMarginBottom:!0}),React.createElement(P.ToggleControl,{label:"Include Icons",checked:e.includeIcons,onChange:e=>t({includeIcons:e}),help:"Show icons for bed size, inclusions, etc.",__nextHasNoMarginBottom:!0})),React.createElement(P.PanelBody,{title:"Form Settings",initialOpen:!1},React.createElement(P.ToggleControl,{label:"Show Discount Field",checked:e.showDiscount,onChange:e=>t({showDiscount:e}),__nextHasNoMarginBottom:!0}),React.createElement(P.ToggleControl,{label:"Show Suburb Field",checked:e.showSuburb,onChange:e=>t({showSuburb:e}),__nextHasNoMarginBottom:!0}),React.createElement(P.ToggleControl,{label:"Show Postcode Field",checked:e.showPostcode,onChange:e=>t({showPostcode:e}),__nextHasNoMarginBottom:!0}),React.createElement(P.ToggleControl,{label:"Show Redeem Gift Certificate Section",checked:e.showRedeemGiftCertificate,onChange:e=>t({showRedeemGiftCertificate:e}),__nextHasNoMarginBottom:!0}),React.createElement(P.ToggleControl,{label:"Show Comments Field",checked:e.showComments,onChange:e=>t({showComments:e}),__nextHasNoMarginBottom:!0}))),React.createElement(k,{propertyIds:e.propertyIds,showDiscount:e.showDiscount,showSuburb:e.showSuburb,showPostcode:e.showPostcode,showRedeemGiftCertificate:e.showRedeemGiftCertificate,showComments:e.showComments,buttonColor:e.buttonColor,buttonTextColor:e.buttonTextColor,buttonIcon:e.buttonIcon,minNights:e.minNights,maxNights:e.maxNights,showPropertyImages:e.showPropertyImages,includeIcons:e.includeIcons,layoutStyle:e.layoutStyle}))},save:()=>null})})()})(); -
book-it-fast/trunk/build/frontend-rtl.css
r3343577 r3367536 1 .bif-booking-container,.bif-bookitfast-container{background:#f8f9fa;border-radius:.5rem;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0 auto;max-width:1200px;padding:2rem;--bif-button-color:#0073aa;--bif-button-color-hover:#0073aadd;--bif-button-color-active:#0073aabb;--bif-button-text-color:#fff}.bif-bookitfast-container h3{color:#2d3748;font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.5rem;text-align:center}.bif-bookitfast-container p{color:#718096;font-size:1.1rem;margin-bottom:2rem;text-align:center}.bif-form-inline{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);display:grid;gap:1.5rem;grid-template-columns:1fr 1fr auto;margin-bottom:2rem;padding:2rem}.bif-form-group{display:flex;flex-direction:column}.bif-form-group label{color:#4a5568;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.bif-form-control{background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease}.bif-form-control:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-btn.bif-btn-success{align-self:end;background:linear-gradient(-135deg,#48bb78,#38a169);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;letter-spacing:.05em;padding:.875rem 2rem;text-transform:uppercase;transition:all .2s ease}.bif-btn.bif-btn-success:hover:not(:disabled){box-shadow:0 8px 25px rgba(72,187,120,.3);transform:translateY(-2px)}.bif-btn.bif-btn-success:disabled{cursor:not-allowed;opacity:.6}.bif-bookitfast_availability_grid_div{background:#fff;border:3px solid transparent;border-radius:20px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin-bottom:1.5rem;overflow:hidden;padding:0;position:relative;transition:all .3s ease}.bif-check-availability span:before,div.editor-styles-wrapper .bif-booking-container button.bif-btn,div.editor-styles-wrapper .bif-booking-container button.bif-btn-primary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-secondary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-select,div.editor-styles-wrapper .bif-booking-container button.bif-btn-selected,div.editor-styles-wrapper button.bif-btn,div.editor-styles-wrapper button.bif-btn-primary,div.editor-styles-wrapper button.bif-btn-secondary,div.editor-styles-wrapper button.bif-btn-select,div.editor-styles-wrapper button.bif-btn-selected{color:var(--bif-button-text-color,#fff)!important}.bif-bookitfast_availability_grid_div:hover{box-shadow:0 12px 30px rgba(0,0,0,.15);transform:translateY(-4px)}.bif-bookitfast_availability_grid_div.selected{border-color:#4299e1;box-shadow:0 12px 30px rgba(66,153,225,.2)}.bif-property-header{align-items:center;color:#1f2937;justify-content:space-between;padding:1.5rem}.bif-bookitfast_availability_grid_div h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.bif-bookitfast_availability_grid_div .availability_button{margin:0}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{background:#3b82f6;border:2px solid #3b82f6;border-radius:.375rem;color:#fff;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.bif-bookitfast_availability_grid_div .availability_button .bif-btn:hover{background:#2563eb;border-color:#2563eb}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-success{background:#10b981;border-color:#10b981}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-danger{background:#ef4444;border-color:#ef4444;cursor:not-allowed}.bif-availability-details{animation:slideDown .3s ease;display:none;padding:2rem}.bif-bookitfast_availability_grid_div.selected .bif-availability-details{display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-availability_table{background:#fff;border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:1.5rem;overflow:hidden}.bif-availability_table thead{background:linear-gradient(-135deg,#4299e1,#3182ce);color:#fff}.bif-availability_table thead th{font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:right;text-transform:uppercase}.bif-availability_table tbody tr{transition:background-color .2s ease}.bif-availability_table tbody tr:hover{background-color:#f7fafc}.bif-availability_table tbody td{border-bottom:1px solid #e2e8f0;font-size:.95rem;padding:1rem}.bif-cell_date_available{background-color:#f0fff4;border-right:4px solid #48bb78}.bif-cell_date_unavailable{background-color:#fff5f5;border-right:4px solid #f56565;opacity:.7}.bif-optional_extras{background:#f7fafc;border-radius:12px;margin-top:1rem;padding:1.5rem}.bif-optional_extras h4{align-items:center;color:#2d3748;display:flex;font-size:1.2rem;font-weight:700;margin-bottom:1rem}.bif-optional_extras h4:before{content:"✨";margin-left:.5rem}.bif-bookitfast_optional_extra{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.bif-bookitfast_optional_extra:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateX(-4px)}.bif-bookitfast_optional_extra input[type=checkbox]{margin-left:.75rem;transform:scale(1.2)}.bif-bookitfast_optional_extra label{color:#4a5568;cursor:pointer;flex-grow:1;font-weight:500}.bif-bookitfast_optional_extra div:last-child{color:#2d3748;font-size:1.1rem;font-weight:700}.bif-user-details-form{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-user-details-form h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:right}.bif-form-row{gap:1rem;margin-bottom:1.5rem}.bif-form-row.full-width{grid-template-columns:1fr}.bif-form-field label,.bif-form-row label{color:#4a5568;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.bif-form-field input,.bif-form-field textarea,.bif-form-row input,.bif-form-row textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.875rem;transition:all .2s ease}.bif-form-field input:focus,.bif-form-field textarea:focus,.bif-form-row input:focus,.bif-form-row textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-payment-options{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-payment-options .bif-btn{background:linear-gradient(-135deg,#4299e1,#3182ce);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-left:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-payment-options .bif-btn:hover{box-shadow:0 8px 25px rgba(66,153,225,.3);transform:translateY(-2px)}.bif-payment-options .bif-btn.bif-btn-success{background:linear-gradient(-135deg,#48bb78,#38a169)}.bif-payment-options .bif-btn.bif-btn-success:hover{box-shadow:0 8px 25px rgba(72,187,120,.3)}.bif-btn-primary,.btn-primary{background:linear-gradient(-135deg,var(--bif-button-color,#4299e1) 0,var(--bif-button-color-hover,#3182ce) 100%);border:none;border-radius:12px;color:var(--bif-button-text-color,#fff);cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-left:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-btn-primary:hover,.btn-primary:hover{background:linear-gradient(-135deg,var(--bif-button-color-hover,#3182ce) 0,var(--bif-button-color-active,#2b6cb0) 100%);box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-2px)}.bif-btn-rounded{border-radius:12px}.bif-surcharge-info{margin-top:0}.bif-surcharge-info p{font-size:.95rem;margin:0}.bif-terms-checkbox{align-items:flex-start;background:#f7fafc;border-radius:12px;display:flex;gap:.75rem;margin:1.5rem 0;padding:1.5rem}.bif-terms-checkbox input[type=checkbox]{margin-top:.25rem;transform:scale(1.2)}.bif-terms-checkbox label{color:#4a5568;line-height:1.6}.bif-terms-checkbox a{color:#4299e1;font-weight:600;text-decoration:none}.bif-terms-checkbox a:hover{text-decoration:underline}.alert{border-radius:12px;font-weight:500;margin:1rem 0;padding:1rem 1.5rem}.alert-danger{background-color:#fed7d7;border:1px solid #feb2b2;color:#c53030}.alert-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}@media (max-width:768px){.bif-bookitfast-container{border-radius:16px;padding:1rem}.bif-form-inline{gap:1rem;grid-template-columns:1fr}.bif-property-header{flex-direction:column;gap:1rem;text-align:center}.bif-form-row{grid-template-columns:1fr}.bif-availability_table{font-size:.85rem}.bif-availability_table tbody td,.bif-availability_table thead th{padding:.5rem}}@media (max-width:480px){.bif-bookitfast-container{padding:.75rem}.bif-bookitfast-container h3{font-size:1.5rem}.bif-form-inline,.bif-property-header,.bif-user-details-form{padding:1rem}}.bif-bookitfast-container .bif-form-group{display:flex;flex-wrap:wrap;padding:10px;width:100%}.bif-discount-code-container{margin-bottom:.4rem;margin-top:.4rem}.bif-discount-code-row{align-items:center;display:flex;flex-flow:row}.bif-discount-code-row .bif-form-group{flex-basis:50%;width:100%}.bif-discount-code-row .bif-form-group input{border-radius:0 .25rem .25rem 0;padding:.6rem}.bif-discount-label{flex-basis:50%}.bif-discount-code-row .bif-apply-discount-btn{border-radius:.25rem 0 0 .25rem;margin-bottom:0}.bif-bookitfast-container #bookitfastbooking{display:flex;flex-flow:row wrap;gap:10px}.bif-bookitfast-container{border-radius:5px;box-sizing:border-box;width:100%}.bif-bookitfast-container .bif-availability-button-container{align-self:flex-end}.bif-bookitfast-container .bif-btn.bif-btn-success,.bif-bookitfast-container .bif-form-control,.bookitfast-emulate-form-control{border:1px solid #ced4da;border-radius:.25rem;font-size:1rem;padding:.6rem;width:100%}.bif-stripe-payment-button{margin-top:12px}.bif-bookitfast-text{font-size:16px}.bif-terms-checkbox{margin-bottom:.5em;margin-top:.5em}.bif-bookitfast-container .bif-btn.bif-btn-success{align-self:flex-end;border-radius:4px;line-height:1.3em;padding:8px}.bif-bookitfast-container label{font-size:1rem}.bif-bookitfast-property-list{list-style:none;padding:0}.bif-availability_table{background-color:#fff;border:1px solid #ddd;border-collapse:collapse;width:100%}.bif-availability_table_wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.bif-availability_table thead{font-weight:400;text-align:right}.bif-availability_table tbody td,.bif-availability_table thead th{font-size:16px;font-weight:400;padding:6px;text-align:right}.bif-availability_table tbody td{border-bottom:1px solid #fff}.bif-availability_table tbody tr td:last-child,.bif-availability_table thead th:last-child{padding-left:10px;text-align:left}.bif-bookitfast-property-item{border:1px solid #ddd;border-radius:5px;margin-bottom:20px;padding:10px}.bif-bookitfast-property-title{font-size:1.2em;font-weight:700}.bif-bookitfast-container{background:#f9f9f9;border:1px solid #ddd;padding:10px}.bif-form-inline{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.bif-form-group{flex:1;margin-left:20px;min-width:200px}.bif-mr-6{margin-left:6px}.bif-btn{background-color:#28a745;color:#fff;margin-bottom:4px;padding:10px 20px}.bif-btn-danger{background-color:#ff4141}.bif-btn-rounded{border-radius:.25rem}.bif-alert{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;margin-top:20px;padding:10px}.bif-alert.bif-alert-success{background-color:#e0f7e0;border:1px solid #3d9140;color:#3d9140;font-size:14px;margin-top:20px;padding:4px 10px}.bif-availability-results{margin-top:20px}.bif-availability-item{border:1px solid #ccc;border-radius:.25rem;margin-bottom:10px;padding:.4rem}.bif-bookitfast_availability_grid_div{align-items:center;background-color:#fbfbfb;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:20px;margin-top:12px;padding:.4rem;width:100%}.bif-bookitfast_availability_grid_div .inner_div{padding:10px;width:100%}.bif-bookitfast-certificate-form,.bif-user-details-form{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;margin-bottom:20px;margin-top:12px;width:100%}.bif-bookitfast_availability_grid_div h3{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:right}.bif-bookitfast_availability_grid_div .availability_button{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:left}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{border-radius:4px;padding:8px 16px}.bif-property_heading_container h2{font-size:1.4em;margin:0}.bif-bookitfast_day{font-size:14px}.bif-bookitfast_day_cell{display:inline-block;margin:5px}.bif-cell_date_available{background-color:#e0f7e0;border-color:#3d9140;width:100%}.bif-cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-mandatory_extras,.bif-optional_extras{margin-top:10px}.bif-mandatory_extras h4,.bif-optional_extras h4{font-size:1.2em;margin-bottom:5px}.bif-btn{padding:5px 10px}.bif-availability_grid{display:flex;flex-wrap:wrap;gap:4px}.bif-bookitfast_day_cell{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;display:flex;flex-direction:column;font-size:14px;height:100px;justify-content:center;padding:10px;text-align:center;transition:transform .2s ease;width:100px}.bif-bookitfast_day_cell:hover{transform:scale(1.05)}.cell_date_available{background-color:#e0f7e0;border-color:#3d9140}.cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-bookitfast_availability_cell{margin-top:5px}.bif-avail_rate{color:#333;width:100%}.bif-property_summary_item{border:1px solid #ddd;border-radius:5px;margin-top:10px}.bif-property_summary_item_title{background-color:green;border-radius:4px 4px 0 0;color:#fff;margin:0;padding:10px}.bif-property_summary_item_body{margin:0}.bif-property_summary_sub_heading{line-height:1em;margin:0}.bif-property_summary_item_body .bif-property_summary_item_body_section{border-radius:0 0 4px 4px;box-sizing:border-box;padding:.4em}.bif-property_summary_item_body p{flex-basis:50%;flex-grow:1;margin:0}.bif-bookitfast-certificate-form .bif-form-group,.bif-property_summary_detail_row,.bif-user-details-form .bif-form-group{border-bottom:1px solid #ddd;display:flex;flex-direction:row;width:100%}.bif-property_summary_detail_row div{flex-basis:50%}.bif-property_summary_sub_heading{background-color:#c7c7c7}.bif-bookitfast-certificate-form .bif-form-row,.bif-user-details-form .bif-form-row{box-sizing:border-box;display:flex;font-size:14px;justify-content:flex-end;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>label,.bif-user-details-form .bif-form-row>label{flex:1;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>input,.bif-bookitfast-certificate-form .bif-form-row>select,.bif-user-details-form .bif-form-row>input,.bif-user-details-form .bif-form-row>textarea{border:1px solid #d1d5db;border-radius:.25rem;flex:2;font-size:1rem;padding:.5rem!important}.bif-user-details-form .bif-form-row:last-child{border:none}.bif-user-details-form .bif-form-row>textarea{font-size:14px;padding:6px}.bif-bookitfast_total_cost{background-color:green;color:#fff;padding-right:0;padding-left:0}.bif-payment-container{margin-top:12px}.bif-surcharge-info{color:#666;font-size:.8em;font-style:italic;margin-top:10px}.bif-optional_extras{width:100%}.bif-optional_extras h4{margin-top:4px}.bif-optional_extras .bif-bookitfast_optional_extra{display:flex;flex-direction:row;width:100%}.bif-optional_extras .bif-bookitfast_optional_extra div{flex-basis:50%;font-weight:400}.bif-booking-container{font-family:system-ui,-apple-system,sans-serif;margin:0 auto;max-width:1200px}.bif-booking-container *{box-sizing:border-box}.bif-booking-header{display:none}.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:1.5rem;padding:1.5rem}.bif-booking-summary:hover,.bif-customer-details:hover,.bif-date-selector:hover,.bif-property-list:hover{box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-section-title{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.bif-subsection-title{color:#374151;font-size:1.125rem;font-weight:500;margin:0 0 .75rem}.bif-date-form{align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.bif-date-form{gap:1rem;grid-template-columns:1fr}}.bif-form-field{display:flex;flex-direction:column}.bif-form-field label{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.bif-date-input,.bif-nights-select{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;height:44px;padding:.5rem;transition:all .2s ease}.bif-date-input:focus,.bif-nights-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.bif-btn-primary{background:var(--bif-button-color,#3b82f6);color:var(--bif-button-text-color,#fff)}.bif-btn-primary:hover{background:var(--bif-button-color-hover,#2563eb);color:var(--bif-button-text-color,#fff)}.bif-btn-secondary{background:#6b7280;color:#fff}.bif-property-icons{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.bif-property-icon{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;display:inline-flex;font-size:.875rem;gap:4px;padding:4px 8px}.bif-property-icon:hover{background:#e5e7eb}.bif-btn-secondary:hover{background:#4b5563}.bif-btn-select{background:#3b82f6;color:#fff}.bif-btn-selected{background:#10b981;color:#fff}.bif-btn-disabled{background:#9ca3af;color:#fff;cursor:not-allowed}.bif-btn-large{font-size:1rem;min-height:48px;padding:1rem 2rem}.bif-check-availability{width:100%}.bif-spinner{animation:spin 1s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:currentcolor;height:1rem;width:1rem}@keyframes spin{to{transform:rotate(-1turn)}}.bif-properties{display:flex;flex-direction:column;gap:1.5rem}.bif-property-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:0;position:relative;transition:all .2s ease}.bif-property-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-property-card.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-property-card.bif-unavailable{background:#f9fafb;opacity:.75}.bif-property-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;padding:.75rem}.bif-property-image{border-radius:.5rem;flex-shrink:0;height:80px;overflow:hidden;width:80px}.bif-property-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-property-info{display:flex;flex:1;flex-direction:column;gap:.5rem;padding-top:.25rem}.bif-property-name{color:#1f2937;font-size:1.25rem;font-weight:600;line-height:1;margin:0}.bif-property-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.bif-property-status-container{flex-shrink:0}.bif-property-status{border:1px solid;border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.bif-status-available{background:#d1fae5;border-color:#a7f3d0;color:#065f46}.bif-status-booked{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bif-status-no-rate{background:#f3f4f6;border-color:#d1d5db;color:#374151}.bif-status-min-nights{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bif-status-unavailable{background:#f3f4f6;border-color:#d1d5db;color:#6b7280}.bif-availability-details,.bif-property-card .bif-availability-details{animation:none!important;border-bottom:1px solid #e5e7eb;display:block!important;padding:.75rem;visibility:visible!important}.bif-daily-breakdown-title{color:#374151;font-size:.875rem;font-weight:600}.bif-daily-rates{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-bottom:1rem}.bif-daily-rate{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem;text-align:center}.bif-daily-rate.bif-available{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.bif-daily-rate.bif-unavailable{background:#fef2f2;border-color:#fecaca;color:#dc2626}.bif-date{font-size:.75rem;font-weight:500;margin-bottom:.25rem}.bif-rate{font-size:.875rem;font-weight:600}.bif-rate-summary{background:#f9fafb;border-radius:.375rem;margin-bottom:0;padding:1rem}.bif-summary-row{align-items:center;color:#374151;display:flex;font-size:.875rem;justify-content:space-between}.bif-total{color:#1f2937;font-size:1rem;font-weight:600}.bif-property-actions{bottom:1.5rem;position:absolute;left:1.5rem}.bif-property-actions .bif-btn{min-width:120px}.bif-optional-extras{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;margin:1.5rem;padding:1rem}@media (max-width:768px){.bif-property-header{align-items:stretch;flex-direction:column;gap:1rem}.bif-property-image{height:200px;width:100%}.bif-property-info{text-align:center}.bif-property-status-container{align-self:center}.bif-property-actions{border-top:1px solid #e5e7eb;padding:1.5rem;position:static;text-align:center}.bif-daily-rates{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.bif-extras-list{display:flex;flex-direction:column;gap:.75rem}.bif-extra-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:flex;justify-content:space-between;padding:.75rem}.bif-extra-info{align-items:center;display:flex;gap:.75rem}.bif-extra-info input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;width:1.125rem}.bif-extra-info label{color:#374151;cursor:pointer;font-size:.875rem;margin:0}.bif-extra-price{color:#1f2937;font-size:.875rem;font-weight:600}.bif-summary-content{display:flex;flex-direction:column;gap:1.5rem}.bif-summary-section{background:#f9fafb;border-radius:.375rem;padding:1rem}.bif-property-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;margin-bottom:1rem;padding:1.5rem}.bif-property-summary:last-child{margin-bottom:0}.bif-property-summary-name{color:#15803d;font-size:1rem;font-weight:600;margin:0 0 .75rem}.bif-property-total{border-top:1px solid #bbf7d0;padding-top:1rem}.bif-total-row{color:#15803d;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.bif-total-row.bif-subtotal{font-size:1rem;font-weight:600}.bif-mandatory-extras-summary,.bif-optional-extras-summary{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.bif-mandatory-extras-summary .bif-total-row{color:#374151!important}.bif-optional-extras-summary .bif-total-row{color:#92400e!important}.bif-discount-form{display:flex;gap:.5rem}.bif-discount-input{border:1px solid #d1d5db;border-radius:.375rem;flex:1;font-size:.875rem;padding:.75rem!important}.bif-discount-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-discount-applied{color:#10b981;font-size:.875rem;font-weight:500;margin-top:.5rem}.bif-grand-total{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;padding:1.5rem}.bif-total-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.bif-total-amount,.bif-total-main span:first-child{color:#1f2937;font-size:1.125rem;font-weight:600}.bif-discount-text{color:#059669;font-size:.875rem;font-weight:500;margin-top:.5rem;text-align:right}.bif-total-breakdown{color:#6b7280;display:flex;flex-direction:column;font-size:.875rem;gap:.25rem}.bif-breakdown-row{display:flex;justify-content:space-between}.bif-surcharge-note{color:#6b7280;font-size:.75rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.bif-customer-details{padding:2rem}.bif-customer-form{display:flex;flex-direction:column;gap:.5rem}.bif-form-row{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.bif-form-row.bif-full-width{grid-template-columns:1fr}@media (max-width:768px){.bif-form-row{gap:1rem;grid-template-columns:1fr}}.bif-form-field input,.bif-form-field textarea{border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;padding:.5rem!important;transition:all .2s ease;width:100%}.bif-form-field input:focus,.bif-form-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-form-field input.bif-error,.bif-form-field textarea.bif-error{border-color:#ef4444}.bif-field-error{color:#ef4444;font-size:.875rem;margin-top:.5rem}.bif-form-field textarea{min-height:120px;resize:vertical}.bif-terms-checkbox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;margin-bottom:.75rem;padding:1rem}.bif-terms-checkbox input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;margin-left:.75rem;width:1.125rem}.bif-terms-checkbox label{color:#1e40af;cursor:pointer;font-size:.875rem;line-height:1.5}.bif-terms-checkbox a{color:#3b82f6;text-decoration:underline}.bif-terms-checkbox a:hover{color:#1d4ed8}.bif-payment-options{flex-direction:column}.bif-payment-buttons,.bif-payment-options{display:flex;gap:1rem}@media (max-width:768px){.bif-payment-buttons{flex-direction:column}}.bif-validation-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;font-size:.875rem;padding:1rem}.bif-surcharge-info{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;color:#92400e;font-size:.875rem;margin-top:1rem;padding:1rem}.bif-payment-container{padding:1.5rem}.bif-payment-container h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.bif-stripe-form{display:flex;flex-direction:column;gap:1rem}.bif-card-element-container{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:1rem;transition:border-color .2s ease}.bif-card-element-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.bif-success-message{background:#d1fae5;border:1px solid #a7f3d0;border-radius:.375rem;color:#065f46;padding:1rem}.bif-success-message a{color:#047857;text-decoration:underline}.bif-error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;margin-bottom:1rem;padding:1rem}@media (max-width:640px){.bif-booking-container,.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{padding:1rem}.bif-total-amount{font-size:1.5rem}}.bif-gift-certificate-section{margin-top:1rem}.bif-gift-certificate-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-top:1rem;padding:1rem}.bif-gift-certificate-form .bif-form-row{display:flex;gap:1rem;margin-bottom:1rem}.bif-gift-certificate-form .bif-form-field{flex:1}.bif-gift-certificate-form .bif-form-field label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.bif-gift-certificate-form .bif-form-control{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem;width:100%}.bif-gift-certificate-form .bif-form-control:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1);outline:none}.bif-gift-certificate-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#16a34a;margin-top:1rem;padding:1rem}.bif-gift-certificate-success p{margin:.25rem 0}.bif-gift-certificate-success p:first-child{font-weight:600}@media (max-width:768px){.bif-gift-certificate-form .bif-form-row{flex-direction:column;gap:.5rem}}.bif-privacy-consent{align-items:flex-start;background:#f8f9fa;border:1px solid #e2e8f0;border-radius:.5rem;display:flex;gap:.5rem;margin:1rem 0;padding:1rem}.bif-privacy-consent input[type=checkbox]{flex-shrink:0;margin-left:0;margin-top:.1rem;transform:scale(1.2)}.bif-privacy-consent label{color:#4a5568;cursor:pointer;flex:1;font-size:.9rem;line-height:1.4}.bif-privacy-consent a{color:#3182ce;text-decoration:none}.bif-privacy-consent a:hover{text-decoration:underline}.bif-properties--grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:840px){.bif-properties--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.bif-properties--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.bif-tile{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.bif-tile:hover{box-shadow:0 8px 20px rgba(0,0,0,.06);transform:translateY(-2px)}.bif-tile.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-tile.is-unavailable{opacity:.75}.bif-tile__hero{aspect-ratio:16/10;background:#f3f4f6;position:relative}.bif-tile__hero img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-chip{background:#111827;border-radius:999px;color:#fff;font-size:.75rem;right:.75rem;opacity:.9;padding:.35rem .6rem;position:absolute;top:.75rem}.bif-tile.is-unavailable .bif-chip{background:#6b7280}.bif-tile__content{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.bif-tile__title{color:#1f2937;font-size:1.05rem;font-weight:600;margin:0}.bif-amenities--slim{display:flex;flex-wrap:wrap;gap:.5rem .75rem;list-style:none;margin:0;padding:0}.bif-amenities--slim li{background:#f9fafb;border:none;border-radius:.5rem;color:#6b7280;font-size:.8125rem;padding:.35rem .6rem}.bif-tile__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-pill{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:999px;display:flex;font-size:.85rem;gap:.5rem;padding:.45rem .6rem}.bif-pill.ok{background:#ecfdf5;border-color:#d1fae5;color:#065f46}.bif-pill.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-pill__date{color:var(--bif-muted,#6b7280);font-size:.775rem}.bif-pill__amt{font-weight:600}.bif-tile__footer{align-items:center;display:flex;justify-content:center;margin-top:.25rem}.bif-nights{color:var(--bif-muted,#6b7280);font-size:.875rem}.bif-properties--rows{display:flex;flex-direction:column;gap:.75rem}.bif-row{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);padding:.75rem;transition:all .2s ease}.bif-row.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-row.is-unavailable{opacity:.75}@media (min-width:900px){.bif-row{grid-template-columns:88px 1.2fr 1.2fr auto}.bif-row.no-image{grid-template-columns:1.2fr 1.2fr auto}}.bif-row__thumb{border-radius:.5rem;height:66px;overflow:hidden;width:88px}.bif-row__thumb img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-row__top{align-items:center;display:flex;gap:.5rem}.bif-row__title{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.bif-dot{background:#9ca3af;border-radius:999px;height:.6rem;width:.6rem}.bif-dot.ok{background:#16a34a}.bif-dot.na{background:#ef4444}.bif-amenities--inline{display:flex;flex-wrap:wrap;gap:.4rem .6rem;list-style:none;margin:.25rem 0 0;padding:0}.bif-amenities--inline li{align-items:center;color:#374151;display:flex;font-size:.85rem;gap:.35rem}.bif-row__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-rmini{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.5rem;min-width:110px;padding:.35rem .6rem}.bif-rmini.ok{background:#f0fdf4;border-color:#dcfce7;color:#065f46}.bif-rmini.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-rmini__date{color:var(--bif-muted,#6b7280);font-size:.75rem}.bif-rmini__amt{font-weight:600}.bif-row__cta{align-items:center;display:flex;justify-content:flex-end}@media (max-width:899px){.bif-row__cta{justify-content:flex-start}}.bif-properties--cards{display:flex;flex-direction:column;gap:1.5rem} 1 .bif-booking-container,.bif-bookitfast-container{background:#f8f9fa;border-radius:.5rem;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0 auto;max-width:1200px;padding:2rem;--bif-button-color:#0073aa;--bif-button-color-hover:#0073aadd;--bif-button-color-active:#0073aabb;--bif-button-text-color:#fff}.bif-bookitfast-container h3{color:#2d3748;font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.5rem;text-align:center}.bif-bookitfast-container p{color:#718096;font-size:1.1rem;margin-bottom:2rem;text-align:center}.bif-form-inline{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);display:grid;gap:1.5rem;grid-template-columns:1fr 1fr auto;margin-bottom:2rem;padding:2rem}.bif-form-group{display:flex;flex-direction:column}.bif-form-group label{color:#4a5568;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.bif-form-control{background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease}.bif-form-control:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-btn.bif-btn-success{align-self:end;background:linear-gradient(-135deg,#48bb78,#38a169);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;letter-spacing:.05em;padding:.875rem 2rem;text-transform:uppercase;transition:all .2s ease}.bif-btn.bif-btn-success:hover:not(:disabled){box-shadow:0 8px 25px rgba(72,187,120,.3);transform:translateY(-2px)}.bif-btn.bif-btn-success:disabled{cursor:not-allowed;opacity:.6}.bif-bookitfast_availability_grid_div{background:#fff;border:3px solid transparent;border-radius:20px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin-bottom:1.5rem;overflow:hidden;padding:0;position:relative;transition:all .3s ease}.bif-check-availability span:before,div.editor-styles-wrapper .bif-booking-container button.bif-btn,div.editor-styles-wrapper .bif-booking-container button.bif-btn-primary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-secondary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-select,div.editor-styles-wrapper .bif-booking-container button.bif-btn-selected,div.editor-styles-wrapper button.bif-btn,div.editor-styles-wrapper button.bif-btn-primary,div.editor-styles-wrapper button.bif-btn-secondary,div.editor-styles-wrapper button.bif-btn-select,div.editor-styles-wrapper button.bif-btn-selected{color:var(--bif-button-text-color,#fff)!important}.bif-bookitfast_availability_grid_div:hover{box-shadow:0 12px 30px rgba(0,0,0,.15);transform:translateY(-4px)}.bif-bookitfast_availability_grid_div.selected{border-color:#4299e1;box-shadow:0 12px 30px rgba(66,153,225,.2)}.bif-property-header{align-items:center;color:#1f2937;justify-content:space-between;padding:1.5rem}.bif-bookitfast_availability_grid_div h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.bif-bookitfast_availability_grid_div .availability_button{margin:0}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{background:#3b82f6;border:2px solid #3b82f6;border-radius:.375rem;color:#fff;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.bif-bookitfast_availability_grid_div .availability_button .bif-btn:hover{background:#2563eb;border-color:#2563eb}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-success{background:#10b981;border-color:#10b981}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-danger{background:#ef4444;border-color:#ef4444;cursor:not-allowed}.bif-availability-details{animation:slideDown .3s ease;display:none;padding:2rem}.bif-bookitfast_availability_grid_div.selected .bif-availability-details{display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-availability_table{background:#fff;border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:1.5rem;overflow:hidden}.bif-availability_table thead{background:linear-gradient(-135deg,#4299e1,#3182ce);color:#fff}.bif-availability_table thead th{font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:right;text-transform:uppercase}.bif-availability_table tbody tr{transition:background-color .2s ease}.bif-availability_table tbody tr:hover{background-color:#f7fafc}.bif-availability_table tbody td{border-bottom:1px solid #e2e8f0;font-size:.95rem;padding:1rem}.bif-cell_date_available{background-color:#f0fff4;border-right:4px solid #48bb78}.bif-cell_date_unavailable{background-color:#fff5f5;border-right:4px solid #f56565;opacity:.7}.bif-optional_extras{background:#f7fafc;border-radius:12px;margin-top:1rem;padding:1.5rem}.bif-optional_extras h4{align-items:center;color:#2d3748;display:flex;font-size:1.2rem;font-weight:700;margin-bottom:1rem}.bif-optional_extras h4:before{content:"✨";margin-left:.5rem}.bif-bookitfast_optional_extra{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.bif-bookitfast_optional_extra:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateX(-4px)}.bif-bookitfast_optional_extra input[type=checkbox]{margin-left:.75rem;transform:scale(1.2)}.bif-bookitfast_optional_extra label{color:#4a5568;cursor:pointer;flex-grow:1;font-weight:500}.bif-bookitfast_optional_extra div:last-child{color:#2d3748;font-size:1.1rem;font-weight:700}.bif-user-details-form{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-user-details-form h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:right}.bif-form-row{gap:1rem;margin-bottom:1.5rem}.bif-form-row.full-width{grid-template-columns:1fr}.bif-form-field label,.bif-form-row label{color:#4a5568;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.bif-form-field input,.bif-form-field textarea,.bif-form-row input,.bif-form-row textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.875rem;transition:all .2s ease}.bif-form-field input:focus,.bif-form-field textarea:focus,.bif-form-row input:focus,.bif-form-row textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-payment-options{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-payment-options .bif-btn{background:linear-gradient(-135deg,#4299e1,#3182ce);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-left:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-payment-options .bif-btn:hover{box-shadow:0 8px 25px rgba(66,153,225,.3);transform:translateY(-2px)}.bif-payment-options .bif-btn.bif-btn-success{background:linear-gradient(-135deg,#48bb78,#38a169)}.bif-payment-options .bif-btn.bif-btn-success:hover{box-shadow:0 8px 25px rgba(72,187,120,.3)}.bif-btn-primary,.btn-primary{background:linear-gradient(-135deg,var(--bif-button-color,#4299e1) 0,var(--bif-button-color-hover,#3182ce) 100%);border:none;border-radius:12px;color:var(--bif-button-text-color,#fff);cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-left:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-btn-primary:hover,.btn-primary:hover{background:linear-gradient(-135deg,var(--bif-button-color-hover,#3182ce) 0,var(--bif-button-color-active,#2b6cb0) 100%);box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-2px)}.bif-btn-rounded{border-radius:12px}.bif-surcharge-info{margin-top:0}.bif-surcharge-info p{font-size:.95rem;margin:0}.bif-terms-checkbox{align-items:flex-start;background:#f7fafc;border-radius:12px;display:flex;gap:.75rem;margin:1.5rem 0;padding:1.5rem}.bif-terms-checkbox input[type=checkbox]{margin-top:.25rem;transform:scale(1.2)}.bif-terms-checkbox label{color:#4a5568;line-height:1.6}.bif-terms-checkbox a{color:#4299e1;font-weight:600;text-decoration:none}.bif-terms-checkbox a:hover{text-decoration:underline}.alert{border-radius:12px;font-weight:500;margin:1rem 0;padding:1rem 1.5rem}.alert-danger{background-color:#fed7d7;border:1px solid #feb2b2;color:#c53030}.alert-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}@media (max-width:768px){.bif-bookitfast-container{border-radius:16px;padding:1rem}.bif-form-inline{gap:1rem;grid-template-columns:1fr}.bif-property-header{flex-direction:column;gap:1rem;text-align:center}.bif-form-row{grid-template-columns:1fr}.bif-availability_table{font-size:.85rem}.bif-availability_table tbody td,.bif-availability_table thead th{padding:.5rem}}@media (max-width:480px){.bif-bookitfast-container{padding:.75rem}.bif-bookitfast-container h3{font-size:1.5rem}.bif-form-inline,.bif-property-header,.bif-user-details-form{padding:1rem}}.bif-bookitfast-container .bif-form-group{display:flex;flex-wrap:wrap;padding:10px;width:100%}.bif-discount-code-container{margin-bottom:.4rem;margin-top:.4rem}.bif-discount-code-row{align-items:center;display:flex;flex-flow:row}.bif-discount-code-row .bif-form-group{flex-basis:50%;width:100%}.bif-discount-code-row .bif-form-group input{border-radius:0 .25rem .25rem 0;padding:.6rem}.bif-discount-label{flex-basis:50%}.bif-discount-code-row .bif-apply-discount-btn{border-radius:.25rem 0 0 .25rem;margin-bottom:0}.bif-bookitfast-container #bookitfastbooking{display:flex;flex-flow:row wrap;gap:10px}.bif-bookitfast-container{border-radius:5px;box-sizing:border-box;width:100%}.bif-bookitfast-container .bif-availability-button-container{align-self:flex-end}.bif-bookitfast-container .bif-btn.bif-btn-success,.bif-bookitfast-container .bif-form-control,.bookitfast-emulate-form-control{border:1px solid #ced4da;border-radius:.25rem;font-size:1rem;padding:.6rem;width:100%}.bif-stripe-payment-button{margin-top:12px}.bif-bookitfast-text{font-size:16px}.bif-terms-checkbox{margin-bottom:.5em;margin-top:.5em}.bif-bookitfast-container .bif-btn.bif-btn-success{align-self:flex-end;border-radius:4px;line-height:1.3em;padding:8px}.bif-bookitfast-container label{font-size:1rem}.bif-bookitfast-property-list{list-style:none;padding:0}.bif-availability_table{background-color:#fff;border:1px solid #ddd;border-collapse:collapse;width:100%}.bif-availability_table_wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.bif-availability_table thead{font-weight:400;text-align:right}.bif-availability_table tbody td,.bif-availability_table thead th{font-size:16px;font-weight:400;padding:6px;text-align:right}.bif-availability_table tbody td{border-bottom:1px solid #fff}.bif-availability_table tbody tr td:last-child,.bif-availability_table thead th:last-child{padding-left:10px;text-align:left}.bif-bookitfast-property-item{border:1px solid #ddd;border-radius:5px;margin-bottom:20px;padding:10px}.bif-bookitfast-property-title{font-size:1.2em;font-weight:700}.bif-bookitfast-container{background:#f9f9f9;border:1px solid #ddd;padding:10px}.bif-form-inline{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.bif-form-group{flex:1;margin-left:20px;min-width:200px}.bif-mr-6{margin-left:6px}.bif-btn{background-color:#28a745;color:#fff;margin-bottom:4px;padding:10px 20px}.bif-btn-danger{background-color:#ff4141}.bif-btn-rounded{border-radius:.25rem}.bif-alert{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;margin-top:20px;padding:10px}.bif-alert.bif-alert-success{background-color:#e0f7e0;border:1px solid #3d9140;color:#3d9140;font-size:14px;margin-top:20px;padding:4px 10px}.bif-availability-results{margin-top:20px}.bif-availability-item{border:1px solid #ccc;border-radius:.25rem;margin-bottom:10px;padding:.4rem}.bif-bookitfast_availability_grid_div{align-items:center;background-color:#fbfbfb;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:20px;margin-top:12px;padding:.4rem;width:100%}.bif-bookitfast_availability_grid_div .inner_div{padding:10px;width:100%}.bif-bookitfast-certificate-form,.bif-user-details-form{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;margin-bottom:20px;margin-top:12px;width:100%}.bif-bookitfast_availability_grid_div h3{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:right}.bif-bookitfast_availability_grid_div .availability_button{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:left}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{border-radius:4px;padding:8px 16px}.bif-property_heading_container h2{font-size:1.4em;margin:0}.bif-bookitfast_day{font-size:14px}.bif-bookitfast_day_cell{display:inline-block;margin:5px}.bif-cell_date_available{background-color:#e0f7e0;border-color:#3d9140;width:100%}.bif-cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-mandatory_extras,.bif-optional_extras{margin-top:10px}.bif-mandatory_extras h4,.bif-optional_extras h4{font-size:1.2em;margin-bottom:5px}.bif-btn{padding:5px 10px}.bif-availability_grid{display:flex;flex-wrap:wrap;gap:4px}.bif-bookitfast_day_cell{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;display:flex;flex-direction:column;font-size:14px;height:100px;justify-content:center;padding:10px;text-align:center;transition:transform .2s ease;width:100px}.bif-bookitfast_day_cell:hover{transform:scale(1.05)}.cell_date_available{background-color:#e0f7e0;border-color:#3d9140}.cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-bookitfast_availability_cell{margin-top:5px}.bif-avail_rate{color:#333;width:100%}.bif-property_summary_item{border:1px solid #ddd;border-radius:5px;margin-top:10px}.bif-property_summary_item_title{background-color:green;border-radius:4px 4px 0 0;color:#fff;margin:0;padding:10px}.bif-property_summary_item_body{margin:0}.bif-property_summary_sub_heading{line-height:1em;margin:0}.bif-property_summary_item_body .bif-property_summary_item_body_section{border-radius:0 0 4px 4px;box-sizing:border-box;padding:.4em}.bif-property_summary_item_body p{flex-basis:50%;flex-grow:1;margin:0}.bif-bookitfast-certificate-form .bif-form-group,.bif-property_summary_detail_row,.bif-user-details-form .bif-form-group{border-bottom:1px solid #ddd;display:flex;flex-direction:row;width:100%}.bif-property_summary_detail_row div{flex-basis:50%}.bif-property_summary_sub_heading{background-color:#c7c7c7}.bif-bookitfast-certificate-form .bif-form-row,.bif-user-details-form .bif-form-row{box-sizing:border-box;display:flex;font-size:14px;justify-content:flex-end;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>label,.bif-user-details-form .bif-form-row>label{flex:1;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>input,.bif-bookitfast-certificate-form .bif-form-row>select,.bif-user-details-form .bif-form-row>input,.bif-user-details-form .bif-form-row>textarea{border:1px solid #d1d5db;border-radius:.25rem;flex:2;font-size:1rem;padding:.5rem!important}.bif-user-details-form .bif-form-row:last-child{border:none}.bif-user-details-form .bif-form-row>textarea{font-size:14px;padding:6px}.bif-bookitfast_total_cost{background-color:green;color:#fff;padding-right:0;padding-left:0}.bif-payment-container{margin-top:12px}.bif-surcharge-info{color:#666;font-size:.8em;font-style:italic;margin-top:10px}.bif-optional_extras{width:100%}.bif-optional_extras h4{margin-top:4px}.bif-optional_extras .bif-bookitfast_optional_extra{display:flex;flex-direction:row;width:100%}.bif-optional_extras .bif-bookitfast_optional_extra div{flex-basis:50%;font-weight:400}.bif-booking-container{font-family:system-ui,-apple-system,sans-serif;margin:0 auto;max-width:1200px}.bif-booking-container *{box-sizing:border-box}.bif-booking-header{display:none}.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:1.5rem;padding:1.5rem}.bif-booking-summary:hover,.bif-customer-details:hover,.bif-date-selector:hover,.bif-property-list:hover{box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-section-title{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.bif-subsection-title{color:#374151;font-size:1.125rem;font-weight:500;margin:0 0 .75rem}.bif-date-form{align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.bif-date-form{gap:1rem;grid-template-columns:1fr}}.bif-form-field{display:flex;flex-direction:column}.bif-form-field label{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.bif-date-input,.bif-nights-select{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;height:44px;padding:.5rem;transition:all .2s ease}.bif-date-input:focus,.bif-nights-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.bif-btn-primary{background:var(--bif-button-color,#3b82f6);color:var(--bif-button-text-color,#fff)}.bif-btn-primary:hover{background:var(--bif-button-color-hover,#2563eb);color:var(--bif-button-text-color,#fff)}.bif-btn-secondary{background:#6b7280;color:#fff}.bif-property-icons{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.bif-property-icon{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;display:inline-flex;font-size:.875rem;gap:4px;padding:4px 8px}.bif-property-icon:hover{background:#e5e7eb}.bif-btn-secondary:hover{background:#4b5563}.bif-btn-select{background:#3b82f6;color:#fff}.bif-btn-selected{background:#10b981;color:#fff}.bif-btn-disabled{background:#9ca3af;color:#fff;cursor:not-allowed}.bif-btn-large{font-size:1rem;min-height:48px;padding:1rem 2rem}.bif-check-availability{width:100%}.bif-spinner{animation:spin 1s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:currentcolor;height:1rem;width:1rem}@keyframes spin{to{transform:rotate(-1turn)}}.bif-properties{display:flex;flex-direction:column;gap:1.5rem}.bif-property-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:0;position:relative;transition:all .2s ease}.bif-property-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-property-card.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-property-card.bif-unavailable{background:#f9fafb;opacity:.75}.bif-property-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;padding:.75rem}.bif-property-image{border-radius:.5rem;flex-shrink:0;height:80px;overflow:hidden;width:80px}.bif-property-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-property-info{display:flex;flex:1;flex-direction:column;gap:.5rem;padding-top:.25rem}.bif-property-name{color:#1f2937;font-size:1.25rem;font-weight:600;line-height:1;margin:0}.bif-property-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.bif-property-status-container{flex-shrink:0}.bif-property-status{border:1px solid;border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.bif-status-available{background:#d1fae5;border-color:#a7f3d0;color:#065f46}.bif-status-booked{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bif-status-no-rate{background:#f3f4f6;border-color:#d1d5db;color:#374151}.bif-status-min-nights{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bif-status-unavailable{background:#f3f4f6;border-color:#d1d5db;color:#6b7280}.bif-availability-details,.bif-property-card .bif-availability-details{animation:none!important;border-bottom:1px solid #e5e7eb;display:block!important;padding:.75rem;visibility:visible!important}.bif-daily-breakdown-title{color:#374151;font-size:.875rem;font-weight:600}.bif-daily-rates{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-bottom:1rem}.bif-daily-rate{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem;text-align:center}.bif-daily-rate.bif-available{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.bif-daily-rate.bif-unavailable{background:#fef2f2;border-color:#fecaca;color:#dc2626}.bif-date{font-size:.75rem;font-weight:500;margin-bottom:.25rem}.bif-rate{font-size:.875rem;font-weight:600}.bif-rate-summary{background:#f9fafb;border-radius:.375rem;margin-bottom:0;padding:1rem}.bif-summary-row{align-items:center;color:#374151;display:flex;font-size:.875rem;justify-content:space-between}.bif-total{color:#1f2937;font-size:1rem;font-weight:600}.bif-property-actions{bottom:1.5rem;position:absolute;left:1.5rem}.bif-property-actions .bif-btn{min-width:120px}.bif-optional-extras{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;margin:1.5rem;padding:1rem}@media (max-width:768px){.bif-property-header{align-items:stretch;flex-direction:column;gap:1rem}.bif-property-image{height:200px;width:100%}.bif-property-info{text-align:center}.bif-property-status-container{align-self:center}.bif-property-actions{border-top:1px solid #e5e7eb;padding:1.5rem;position:static;text-align:center}.bif-daily-rates{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.bif-extras-list{display:flex;flex-direction:column;gap:.75rem}.bif-extra-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:flex;justify-content:space-between;padding:.75rem}.bif-extra-info{align-items:center;display:flex;gap:.75rem}.bif-extra-info input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;width:1.125rem}.bif-extra-info label{color:#374151;cursor:pointer;font-size:.875rem;margin:0}.bif-extra-price{color:#1f2937;font-size:.875rem;font-weight:600}.bif-summary-content{display:flex;flex-direction:column;gap:1.5rem}.bif-summary-section{background:#f9fafb;border-radius:.375rem;padding:1rem}.bif-property-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;margin-bottom:1rem;padding:1.5rem}.bif-property-summary:last-child{margin-bottom:0}.bif-property-summary-name{color:#15803d;font-size:1rem;font-weight:600;margin:0 0 .75rem}.bif-property-total{border-top:1px solid #bbf7d0;padding-top:1rem}.bif-total-row{color:#15803d;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.bif-total-row.bif-subtotal{font-size:1rem;font-weight:600}.bif-mandatory-extras-summary,.bif-optional-extras-summary{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.bif-mandatory-extras-summary .bif-total-row{color:#374151!important}.bif-optional-extras-summary .bif-total-row{color:#92400e!important}.bif-discount-form{display:flex;gap:.5rem}.bif-discount-input{border:1px solid #d1d5db;border-radius:.375rem;flex:1;font-size:.875rem;padding:.75rem!important}.bif-discount-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-discount-applied{color:#10b981;font-size:.875rem;font-weight:500;margin-top:.5rem}.bif-grand-total{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;padding:1.5rem}.bif-total-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.bif-total-amount,.bif-total-main span:first-child{color:#1f2937;font-size:1.125rem;font-weight:600}.bif-discount-text{color:#059669;font-size:.875rem;font-weight:500;margin-top:.5rem;text-align:right}.bif-total-breakdown{color:#6b7280;display:flex;flex-direction:column;font-size:.875rem;gap:.25rem}.bif-breakdown-row{display:flex;justify-content:space-between}.bif-surcharge-note{color:#6b7280;font-size:.75rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.bif-customer-details{padding:2rem}.bif-customer-form{display:flex;flex-direction:column;gap:.5rem}.bif-form-row{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.bif-form-row.bif-full-width{grid-template-columns:1fr}@media (max-width:768px){.bif-form-row{gap:1rem;grid-template-columns:1fr}}.bif-form-field input,.bif-form-field textarea{border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;padding:.5rem!important;transition:all .2s ease;width:100%}.bif-form-field input:focus,.bif-form-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-form-field input.bif-error,.bif-form-field textarea.bif-error{border-color:#ef4444}.bif-field-error{color:#ef4444;font-size:.875rem;margin-top:.5rem}.bif-form-field textarea{min-height:120px;resize:vertical}.bif-terms-checkbox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;margin-bottom:.75rem;padding:1rem}.bif-terms-checkbox input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;margin-left:.75rem;width:1.125rem}.bif-terms-checkbox label{color:#1e40af;cursor:pointer;font-size:.875rem;line-height:1.5}.bif-terms-checkbox a{color:#3b82f6;text-decoration:underline}.bif-terms-checkbox a:hover{color:#1d4ed8}.bif-payment-options{flex-direction:column}.bif-payment-buttons,.bif-payment-options{display:flex;gap:1rem}@media (max-width:768px){.bif-payment-buttons{flex-direction:column}}.bif-validation-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;font-size:.875rem;padding:1rem}.bif-surcharge-info{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;color:#92400e;font-size:.875rem;margin-top:1rem;padding:1rem}.bif-payment-container{padding:1.5rem}.bif-payment-container h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.bif-stripe-form{display:flex;flex-direction:column;gap:1rem}.bif-card-element-container{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:1rem;transition:border-color .2s ease}.bif-card-element-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.bif-success-message{background:#d1fae5;border:1px solid #a7f3d0;border-radius:.375rem;color:#065f46;padding:1rem}.bif-success-message a{color:#047857;text-decoration:underline}.bif-error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;margin-bottom:1rem;padding:1rem}@media (max-width:640px){.bif-booking-container,.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{padding:1rem}.bif-total-amount{font-size:1.5rem}}.bif-gift-certificate-section{margin-top:1rem}.bif-gift-certificate-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-top:1rem;padding:1rem}.bif-gift-certificate-form .bif-form-row{display:flex;gap:1rem;margin-bottom:1rem}.bif-gift-certificate-form .bif-form-field{flex:1}.bif-gift-certificate-form .bif-form-field label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.bif-gift-certificate-form .bif-form-control{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem;width:100%}.bif-gift-certificate-form .bif-form-control:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1);outline:none}.bif-gift-certificate-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#16a34a;margin-top:1rem;padding:1rem}.bif-gift-certificate-success p{margin:.25rem 0}.bif-gift-certificate-success p:first-child{font-weight:600}@media (max-width:768px){.bif-gift-certificate-form .bif-form-row{flex-direction:column;gap:.5rem}}.bif-privacy-consent{align-items:flex-start;background:#f8f9fa;border:1px solid #e2e8f0;border-radius:.5rem;display:flex;gap:.5rem;margin:1rem 0;padding:1rem}.bif-privacy-consent input[type=checkbox]{flex-shrink:0;margin-left:0;margin-top:.1rem;transform:scale(1.2)}.bif-privacy-consent label{color:#4a5568;cursor:pointer;flex:1;font-size:.9rem;line-height:1.4}.bif-privacy-consent a{color:#3182ce;text-decoration:none}.bif-privacy-consent a:hover{text-decoration:underline}.bif-properties--grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:840px){.bif-properties--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.bif-properties--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.bif-tile{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.bif-tile:hover{box-shadow:0 8px 20px rgba(0,0,0,.06);transform:translateY(-2px)}.bif-tile.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-tile.is-unavailable{opacity:.75}.bif-tile__hero{aspect-ratio:16/10;background:#f3f4f6;position:relative}.bif-tile__hero img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-chip{background:#111827;border-radius:999px;color:#fff;font-size:.75rem;right:.75rem;opacity:.9;padding:.35rem .6rem;position:absolute;top:.75rem}.bif-tile.is-unavailable .bif-chip{background:#6b7280}.bif-tile__content{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.bif-tile__title{color:#1f2937;font-size:1.05rem;font-weight:600;margin:0}.bif-amenities--slim{display:flex;flex-wrap:wrap;gap:.5rem .75rem;list-style:none;margin:0;padding:0}.bif-amenities--slim li{background:#f9fafb;border:none;border-radius:.5rem;color:#6b7280;font-size:.8125rem;padding:.35rem .6rem}.bif-tile__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-pill{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:999px;display:flex;font-size:.85rem;gap:.5rem;padding:.45rem .6rem}.bif-pill.ok{background:#ecfdf5;border-color:#d1fae5;color:#065f46}.bif-pill.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-pill__date{color:var(--bif-muted,#6b7280);font-size:.775rem}.bif-pill__amt{font-weight:600}.bif-tile__footer{align-items:center;display:flex;justify-content:center;margin-top:.25rem}.bif-nights{color:var(--bif-muted,#6b7280);font-size:.875rem}.bif-properties--rows{display:flex;flex-direction:column;gap:.75rem}.bif-row{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);padding:.75rem;transition:all .2s ease}.bif-row.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-row.is-unavailable{opacity:.75}@media (min-width:900px){.bif-row{grid-template-columns:88px 1.2fr 1.2fr auto}.bif-row.no-image{grid-template-columns:1.2fr 1.2fr auto}}.bif-row__thumb{border-radius:.5rem;height:66px;overflow:hidden;width:88px}.bif-row__thumb img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-row__top{align-items:center;display:flex;gap:.5rem}.bif-row__title{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.bif-dot{background:#9ca3af;border-radius:999px;height:.6rem;width:.6rem}.bif-dot.ok{background:#16a34a}.bif-dot.na{background:#ef4444}.bif-amenities--inline{display:flex;flex-wrap:wrap;gap:.4rem .6rem;list-style:none;margin:.25rem 0 0;padding:0}.bif-amenities--inline li{align-items:center;color:#374151;display:flex;font-size:.85rem;gap:.35rem}.bif-row__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-rmini{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.5rem;min-width:110px;padding:.35rem .6rem}.bif-rmini.ok{background:#f0fdf4;border-color:#dcfce7;color:#065f46}.bif-rmini.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-rmini__date{color:var(--bif-muted,#6b7280);font-size:.75rem}.bif-rmini__amt{font-weight:600}.bif-row__cta{align-items:center;display:flex;justify-content:flex-end}@media (max-width:899px){.bif-row__cta{justify-content:flex-start}}.bif-properties--cards{display:flex;flex-direction:column;gap:1.5rem}.bif-modal-overlay{align-items:center;animation:bifModalFadeIn .2s ease-out;background-color:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;right:0;padding:1rem;position:fixed;left:0;top:0;z-index:999999}@keyframes bifModalFadeIn{0%{opacity:0}to{opacity:1}}.bif-modal{animation:bifModalSlideIn .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);display:flex;flex-direction:column;max-height:90vh;max-width:600px;width:100%}@keyframes bifModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.bif-modal-title{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.bif-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:32px}.bif-modal-close:hover{background-color:#f3f4f6;color:#111827}.bif-modal-close:focus{outline:2px solid #3b82f6;outline-offset:2px}.bif-modal-content{flex:1;overflow-y:auto;padding:1.5rem}.bif-modal-content p{color:#374151;line-height:1.6;margin-bottom:1rem}.bif-modal-content p:last-child{margin-bottom:0}.bif-modal-content ol,.bif-modal-content ul{color:#374151;line-height:1.6;margin-bottom:1rem;padding-right:1.5rem}.bif-modal-content h3,.bif-modal-content h4,.bif-modal-content h5{color:#111827;margin-bottom:.75rem;margin-top:1.5rem}.bif-modal-content h3:first-child,.bif-modal-content h4:first-child,.bif-modal-content h5:first-child{margin-top:0}@media (max-width:640px){.bif-modal{margin:1rem;max-width:100%}.bif-modal-content,.bif-modal-header{padding:1rem}} -
book-it-fast/trunk/build/frontend.asset.php
r3364358 r3367536 1 <?php return array('dependencies' => array('react', 'react-dom'), 'version' => ' 450d465cde818556d69d');1 <?php return array('dependencies' => array('react', 'react-dom'), 'version' => '7d6acf96940448d6dd36'); -
book-it-fast/trunk/build/frontend.css
r3343577 r3367536 1 .bif-booking-container,.bif-bookitfast-container{background:#f8f9fa;border-radius:.5rem;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0 auto;max-width:1200px;padding:2rem;--bif-button-color:#0073aa;--bif-button-color-hover:#0073aadd;--bif-button-color-active:#0073aabb;--bif-button-text-color:#fff}.bif-bookitfast-container h3{color:#2d3748;font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.5rem;text-align:center}.bif-bookitfast-container p{color:#718096;font-size:1.1rem;margin-bottom:2rem;text-align:center}.bif-form-inline{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);display:grid;gap:1.5rem;grid-template-columns:1fr 1fr auto;margin-bottom:2rem;padding:2rem}.bif-form-group{display:flex;flex-direction:column}.bif-form-group label{color:#4a5568;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.bif-form-control{background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease}.bif-form-control:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-btn.bif-btn-success{align-self:end;background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;letter-spacing:.05em;padding:.875rem 2rem;text-transform:uppercase;transition:all .2s ease}.bif-btn.bif-btn-success:hover:not(:disabled){box-shadow:0 8px 25px rgba(72,187,120,.3);transform:translateY(-2px)}.bif-btn.bif-btn-success:disabled{cursor:not-allowed;opacity:.6}.bif-bookitfast_availability_grid_div{background:#fff;border:3px solid transparent;border-radius:20px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin-bottom:1.5rem;overflow:hidden;padding:0;position:relative;transition:all .3s ease}.bif-check-availability span:before,div.editor-styles-wrapper .bif-booking-container button.bif-btn,div.editor-styles-wrapper .bif-booking-container button.bif-btn-primary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-secondary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-select,div.editor-styles-wrapper .bif-booking-container button.bif-btn-selected,div.editor-styles-wrapper button.bif-btn,div.editor-styles-wrapper button.bif-btn-primary,div.editor-styles-wrapper button.bif-btn-secondary,div.editor-styles-wrapper button.bif-btn-select,div.editor-styles-wrapper button.bif-btn-selected{color:var(--bif-button-text-color,#fff)!important}.bif-bookitfast_availability_grid_div:hover{box-shadow:0 12px 30px rgba(0,0,0,.15);transform:translateY(-4px)}.bif-bookitfast_availability_grid_div.selected{border-color:#4299e1;box-shadow:0 12px 30px rgba(66,153,225,.2)}.bif-property-header{align-items:center;color:#1f2937;justify-content:space-between;padding:1.5rem}.bif-bookitfast_availability_grid_div h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.bif-bookitfast_availability_grid_div .availability_button{margin:0}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{background:#3b82f6;border:2px solid #3b82f6;border-radius:.375rem;color:#fff;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.bif-bookitfast_availability_grid_div .availability_button .bif-btn:hover{background:#2563eb;border-color:#2563eb}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-success{background:#10b981;border-color:#10b981}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-danger{background:#ef4444;border-color:#ef4444;cursor:not-allowed}.bif-availability-details{animation:slideDown .3s ease;display:none;padding:2rem}.bif-bookitfast_availability_grid_div.selected .bif-availability-details{display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-availability_table{background:#fff;border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:1.5rem;overflow:hidden}.bif-availability_table thead{background:linear-gradient(135deg,#4299e1,#3182ce);color:#fff}.bif-availability_table thead th{font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:left;text-transform:uppercase}.bif-availability_table tbody tr{transition:background-color .2s ease}.bif-availability_table tbody tr:hover{background-color:#f7fafc}.bif-availability_table tbody td{border-bottom:1px solid #e2e8f0;font-size:.95rem;padding:1rem}.bif-cell_date_available{background-color:#f0fff4;border-left:4px solid #48bb78}.bif-cell_date_unavailable{background-color:#fff5f5;border-left:4px solid #f56565;opacity:.7}.bif-optional_extras{background:#f7fafc;border-radius:12px;margin-top:1rem;padding:1.5rem}.bif-optional_extras h4{align-items:center;color:#2d3748;display:flex;font-size:1.2rem;font-weight:700;margin-bottom:1rem}.bif-optional_extras h4:before{content:"✨";margin-right:.5rem}.bif-bookitfast_optional_extra{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.bif-bookitfast_optional_extra:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateX(4px)}.bif-bookitfast_optional_extra input[type=checkbox]{margin-right:.75rem;transform:scale(1.2)}.bif-bookitfast_optional_extra label{color:#4a5568;cursor:pointer;flex-grow:1;font-weight:500}.bif-bookitfast_optional_extra div:last-child{color:#2d3748;font-size:1.1rem;font-weight:700}.bif-user-details-form{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-user-details-form h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:left}.bif-form-row{gap:1rem;margin-bottom:1.5rem}.bif-form-row.full-width{grid-template-columns:1fr}.bif-form-field label,.bif-form-row label{color:#4a5568;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.bif-form-field input,.bif-form-field textarea,.bif-form-row input,.bif-form-row textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.875rem;transition:all .2s ease}.bif-form-field input:focus,.bif-form-field textarea:focus,.bif-form-row input:focus,.bif-form-row textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-payment-options{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-payment-options .bif-btn{background:linear-gradient(135deg,#4299e1,#3182ce);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-right:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-payment-options .bif-btn:hover{box-shadow:0 8px 25px rgba(66,153,225,.3);transform:translateY(-2px)}.bif-payment-options .bif-btn.bif-btn-success{background:linear-gradient(135deg,#48bb78,#38a169)}.bif-payment-options .bif-btn.bif-btn-success:hover{box-shadow:0 8px 25px rgba(72,187,120,.3)}.bif-btn-primary,.btn-primary{background:linear-gradient(135deg,var(--bif-button-color,#4299e1) 0,var(--bif-button-color-hover,#3182ce) 100%);border:none;border-radius:12px;color:var(--bif-button-text-color,#fff);cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-right:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-btn-primary:hover,.btn-primary:hover{background:linear-gradient(135deg,var(--bif-button-color-hover,#3182ce) 0,var(--bif-button-color-active,#2b6cb0) 100%);box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-2px)}.bif-btn-rounded{border-radius:12px}.bif-surcharge-info{margin-top:0}.bif-surcharge-info p{font-size:.95rem;margin:0}.bif-terms-checkbox{align-items:flex-start;background:#f7fafc;border-radius:12px;display:flex;gap:.75rem;margin:1.5rem 0;padding:1.5rem}.bif-terms-checkbox input[type=checkbox]{margin-top:.25rem;transform:scale(1.2)}.bif-terms-checkbox label{color:#4a5568;line-height:1.6}.bif-terms-checkbox a{color:#4299e1;font-weight:600;text-decoration:none}.bif-terms-checkbox a:hover{text-decoration:underline}.alert{border-radius:12px;font-weight:500;margin:1rem 0;padding:1rem 1.5rem}.alert-danger{background-color:#fed7d7;border:1px solid #feb2b2;color:#c53030}.alert-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}@media (max-width:768px){.bif-bookitfast-container{border-radius:16px;padding:1rem}.bif-form-inline{gap:1rem;grid-template-columns:1fr}.bif-property-header{flex-direction:column;gap:1rem;text-align:center}.bif-form-row{grid-template-columns:1fr}.bif-availability_table{font-size:.85rem}.bif-availability_table tbody td,.bif-availability_table thead th{padding:.5rem}}@media (max-width:480px){.bif-bookitfast-container{padding:.75rem}.bif-bookitfast-container h3{font-size:1.5rem}.bif-form-inline,.bif-property-header,.bif-user-details-form{padding:1rem}}.bif-bookitfast-container .bif-form-group{display:flex;flex-wrap:wrap;padding:10px;width:100%}.bif-discount-code-container{margin-bottom:.4rem;margin-top:.4rem}.bif-discount-code-row{align-items:center;display:flex;flex-flow:row}.bif-discount-code-row .bif-form-group{flex-basis:50%;width:100%}.bif-discount-code-row .bif-form-group input{border-radius:.25rem 0 0 .25rem;padding:.6rem}.bif-discount-label{flex-basis:50%}.bif-discount-code-row .bif-apply-discount-btn{border-radius:0 .25rem .25rem 0;margin-bottom:0}.bif-bookitfast-container #bookitfastbooking{display:flex;flex-flow:row wrap;gap:10px}.bif-bookitfast-container{border-radius:5px;box-sizing:border-box;width:100%}.bif-bookitfast-container .bif-availability-button-container{align-self:flex-end}.bif-bookitfast-container .bif-btn.bif-btn-success,.bif-bookitfast-container .bif-form-control,.bookitfast-emulate-form-control{border:1px solid #ced4da;border-radius:.25rem;font-size:1rem;padding:.6rem;width:100%}.bif-stripe-payment-button{margin-top:12px}.bif-bookitfast-text{font-size:16px}.bif-terms-checkbox{margin-bottom:.5em;margin-top:.5em}.bif-bookitfast-container .bif-btn.bif-btn-success{align-self:flex-end;border-radius:4px;line-height:1.3em;padding:8px}.bif-bookitfast-container label{font-size:1rem}.bif-bookitfast-property-list{list-style:none;padding:0}.bif-availability_table{background-color:#fff;border:1px solid #ddd;border-collapse:collapse;width:100%}.bif-availability_table_wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.bif-availability_table thead{font-weight:400;text-align:left}.bif-availability_table tbody td,.bif-availability_table thead th{font-size:16px;font-weight:400;padding:6px;text-align:left}.bif-availability_table tbody td{border-bottom:1px solid #fff}.bif-availability_table tbody tr td:last-child,.bif-availability_table thead th:last-child{padding-right:10px;text-align:right}.bif-bookitfast-property-item{border:1px solid #ddd;border-radius:5px;margin-bottom:20px;padding:10px}.bif-bookitfast-property-title{font-size:1.2em;font-weight:700}.bif-bookitfast-container{background:#f9f9f9;border:1px solid #ddd;padding:10px}.bif-form-inline{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.bif-form-group{flex:1;margin-right:20px;min-width:200px}.bif-mr-6{margin-right:6px}.bif-btn{background-color:#28a745;color:#fff;margin-bottom:4px;padding:10px 20px}.bif-btn-danger{background-color:#ff4141}.bif-btn-rounded{border-radius:.25rem}.bif-alert{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;margin-top:20px;padding:10px}.bif-alert.bif-alert-success{background-color:#e0f7e0;border:1px solid #3d9140;color:#3d9140;font-size:14px;margin-top:20px;padding:4px 10px}.bif-availability-results{margin-top:20px}.bif-availability-item{border:1px solid #ccc;border-radius:.25rem;margin-bottom:10px;padding:.4rem}.bif-bookitfast_availability_grid_div{align-items:center;background-color:#fbfbfb;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:20px;margin-top:12px;padding:.4rem;width:100%}.bif-bookitfast_availability_grid_div .inner_div{padding:10px;width:100%}.bif-bookitfast-certificate-form,.bif-user-details-form{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;margin-bottom:20px;margin-top:12px;width:100%}.bif-bookitfast_availability_grid_div h3{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:left}.bif-bookitfast_availability_grid_div .availability_button{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:right}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{border-radius:4px;padding:8px 16px}.bif-property_heading_container h2{font-size:1.4em;margin:0}.bif-bookitfast_day{font-size:14px}.bif-bookitfast_day_cell{display:inline-block;margin:5px}.bif-cell_date_available{background-color:#e0f7e0;border-color:#3d9140;width:100%}.bif-cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-mandatory_extras,.bif-optional_extras{margin-top:10px}.bif-mandatory_extras h4,.bif-optional_extras h4{font-size:1.2em;margin-bottom:5px}.bif-btn{padding:5px 10px}.bif-availability_grid{display:flex;flex-wrap:wrap;gap:4px}.bif-bookitfast_day_cell{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;display:flex;flex-direction:column;font-size:14px;height:100px;justify-content:center;padding:10px;text-align:center;transition:transform .2s ease;width:100px}.bif-bookitfast_day_cell:hover{transform:scale(1.05)}.cell_date_available{background-color:#e0f7e0;border-color:#3d9140}.cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-bookitfast_availability_cell{margin-top:5px}.bif-avail_rate{color:#333;width:100%}.bif-property_summary_item{border:1px solid #ddd;border-radius:5px;margin-top:10px}.bif-property_summary_item_title{background-color:green;border-radius:4px 4px 0 0;color:#fff;margin:0;padding:10px}.bif-property_summary_item_body{margin:0}.bif-property_summary_sub_heading{line-height:1em;margin:0}.bif-property_summary_item_body .bif-property_summary_item_body_section{border-radius:0 0 4px 4px;box-sizing:border-box;padding:.4em}.bif-property_summary_item_body p{flex-basis:50%;flex-grow:1;margin:0}.bif-bookitfast-certificate-form .bif-form-group,.bif-property_summary_detail_row,.bif-user-details-form .bif-form-group{border-bottom:1px solid #ddd;display:flex;flex-direction:row;width:100%}.bif-property_summary_detail_row div{flex-basis:50%}.bif-property_summary_sub_heading{background-color:#c7c7c7}.bif-bookitfast-certificate-form .bif-form-row,.bif-user-details-form .bif-form-row{box-sizing:border-box;display:flex;font-size:14px;justify-content:flex-end;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>label,.bif-user-details-form .bif-form-row>label{flex:1;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>input,.bif-bookitfast-certificate-form .bif-form-row>select,.bif-user-details-form .bif-form-row>input,.bif-user-details-form .bif-form-row>textarea{border:1px solid #d1d5db;border-radius:.25rem;flex:2;font-size:1rem;padding:.5rem!important}.bif-user-details-form .bif-form-row:last-child{border:none}.bif-user-details-form .bif-form-row>textarea{font-size:14px;padding:6px}.bif-bookitfast_total_cost{background-color:green;color:#fff;padding-left:0;padding-right:0}.bif-payment-container{margin-top:12px}.bif-surcharge-info{color:#666;font-size:.8em;font-style:italic;margin-top:10px}.bif-optional_extras{width:100%}.bif-optional_extras h4{margin-top:4px}.bif-optional_extras .bif-bookitfast_optional_extra{display:flex;flex-direction:row;width:100%}.bif-optional_extras .bif-bookitfast_optional_extra div{flex-basis:50%;font-weight:400}.bif-booking-container{font-family:system-ui,-apple-system,sans-serif;margin:0 auto;max-width:1200px}.bif-booking-container *{box-sizing:border-box}.bif-booking-header{display:none}.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:1.5rem;padding:1.5rem}.bif-booking-summary:hover,.bif-customer-details:hover,.bif-date-selector:hover,.bif-property-list:hover{box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-section-title{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.bif-subsection-title{color:#374151;font-size:1.125rem;font-weight:500;margin:0 0 .75rem}.bif-date-form{align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.bif-date-form{gap:1rem;grid-template-columns:1fr}}.bif-form-field{display:flex;flex-direction:column}.bif-form-field label{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.bif-date-input,.bif-nights-select{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;height:44px;padding:.5rem;transition:all .2s ease}.bif-date-input:focus,.bif-nights-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.bif-btn-primary{background:var(--bif-button-color,#3b82f6);color:var(--bif-button-text-color,#fff)}.bif-btn-primary:hover{background:var(--bif-button-color-hover,#2563eb);color:var(--bif-button-text-color,#fff)}.bif-btn-secondary{background:#6b7280;color:#fff}.bif-property-icons{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.bif-property-icon{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;display:inline-flex;font-size:.875rem;gap:4px;padding:4px 8px}.bif-property-icon:hover{background:#e5e7eb}.bif-btn-secondary:hover{background:#4b5563}.bif-btn-select{background:#3b82f6;color:#fff}.bif-btn-selected{background:#10b981;color:#fff}.bif-btn-disabled{background:#9ca3af;color:#fff;cursor:not-allowed}.bif-btn-large{font-size:1rem;min-height:48px;padding:1rem 2rem}.bif-check-availability{width:100%}.bif-spinner{animation:spin 1s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:currentcolor;height:1rem;width:1rem}@keyframes spin{to{transform:rotate(1turn)}}.bif-properties{display:flex;flex-direction:column;gap:1.5rem}.bif-property-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:0;position:relative;transition:all .2s ease}.bif-property-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-property-card.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-property-card.bif-unavailable{background:#f9fafb;opacity:.75}.bif-property-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;padding:.75rem}.bif-property-image{border-radius:.5rem;flex-shrink:0;height:80px;overflow:hidden;width:80px}.bif-property-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-property-info{display:flex;flex:1;flex-direction:column;gap:.5rem;padding-top:.25rem}.bif-property-name{color:#1f2937;font-size:1.25rem;font-weight:600;line-height:1;margin:0}.bif-property-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.bif-property-status-container{flex-shrink:0}.bif-property-status{border:1px solid;border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.bif-status-available{background:#d1fae5;border-color:#a7f3d0;color:#065f46}.bif-status-booked{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bif-status-no-rate{background:#f3f4f6;border-color:#d1d5db;color:#374151}.bif-status-min-nights{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bif-status-unavailable{background:#f3f4f6;border-color:#d1d5db;color:#6b7280}.bif-availability-details,.bif-property-card .bif-availability-details{animation:none!important;border-bottom:1px solid #e5e7eb;display:block!important;padding:.75rem;visibility:visible!important}.bif-daily-breakdown-title{color:#374151;font-size:.875rem;font-weight:600}.bif-daily-rates{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-bottom:1rem}.bif-daily-rate{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem;text-align:center}.bif-daily-rate.bif-available{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.bif-daily-rate.bif-unavailable{background:#fef2f2;border-color:#fecaca;color:#dc2626}.bif-date{font-size:.75rem;font-weight:500;margin-bottom:.25rem}.bif-rate{font-size:.875rem;font-weight:600}.bif-rate-summary{background:#f9fafb;border-radius:.375rem;margin-bottom:0;padding:1rem}.bif-summary-row{align-items:center;color:#374151;display:flex;font-size:.875rem;justify-content:space-between}.bif-total{color:#1f2937;font-size:1rem;font-weight:600}.bif-property-actions{bottom:1.5rem;position:absolute;right:1.5rem}.bif-property-actions .bif-btn{min-width:120px}.bif-optional-extras{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;margin:1.5rem;padding:1rem}@media (max-width:768px){.bif-property-header{align-items:stretch;flex-direction:column;gap:1rem}.bif-property-image{height:200px;width:100%}.bif-property-info{text-align:center}.bif-property-status-container{align-self:center}.bif-property-actions{border-top:1px solid #e5e7eb;padding:1.5rem;position:static;text-align:center}.bif-daily-rates{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.bif-extras-list{display:flex;flex-direction:column;gap:.75rem}.bif-extra-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:flex;justify-content:space-between;padding:.75rem}.bif-extra-info{align-items:center;display:flex;gap:.75rem}.bif-extra-info input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;width:1.125rem}.bif-extra-info label{color:#374151;cursor:pointer;font-size:.875rem;margin:0}.bif-extra-price{color:#1f2937;font-size:.875rem;font-weight:600}.bif-summary-content{display:flex;flex-direction:column;gap:1.5rem}.bif-summary-section{background:#f9fafb;border-radius:.375rem;padding:1rem}.bif-property-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;margin-bottom:1rem;padding:1.5rem}.bif-property-summary:last-child{margin-bottom:0}.bif-property-summary-name{color:#15803d;font-size:1rem;font-weight:600;margin:0 0 .75rem}.bif-property-total{border-top:1px solid #bbf7d0;padding-top:1rem}.bif-total-row{color:#15803d;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.bif-total-row.bif-subtotal{font-size:1rem;font-weight:600}.bif-mandatory-extras-summary,.bif-optional-extras-summary{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.bif-mandatory-extras-summary .bif-total-row{color:#374151!important}.bif-optional-extras-summary .bif-total-row{color:#92400e!important}.bif-discount-form{display:flex;gap:.5rem}.bif-discount-input{border:1px solid #d1d5db;border-radius:.375rem;flex:1;font-size:.875rem;padding:.75rem!important}.bif-discount-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-discount-applied{color:#10b981;font-size:.875rem;font-weight:500;margin-top:.5rem}.bif-grand-total{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;padding:1.5rem}.bif-total-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.bif-total-amount,.bif-total-main span:first-child{color:#1f2937;font-size:1.125rem;font-weight:600}.bif-discount-text{color:#059669;font-size:.875rem;font-weight:500;margin-top:.5rem;text-align:left}.bif-total-breakdown{color:#6b7280;display:flex;flex-direction:column;font-size:.875rem;gap:.25rem}.bif-breakdown-row{display:flex;justify-content:space-between}.bif-surcharge-note{color:#6b7280;font-size:.75rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.bif-customer-details{padding:2rem}.bif-customer-form{display:flex;flex-direction:column;gap:.5rem}.bif-form-row{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.bif-form-row.bif-full-width{grid-template-columns:1fr}@media (max-width:768px){.bif-form-row{gap:1rem;grid-template-columns:1fr}}.bif-form-field input,.bif-form-field textarea{border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;padding:.5rem!important;transition:all .2s ease;width:100%}.bif-form-field input:focus,.bif-form-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-form-field input.bif-error,.bif-form-field textarea.bif-error{border-color:#ef4444}.bif-field-error{color:#ef4444;font-size:.875rem;margin-top:.5rem}.bif-form-field textarea{min-height:120px;resize:vertical}.bif-terms-checkbox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;margin-bottom:.75rem;padding:1rem}.bif-terms-checkbox input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;margin-right:.75rem;width:1.125rem}.bif-terms-checkbox label{color:#1e40af;cursor:pointer;font-size:.875rem;line-height:1.5}.bif-terms-checkbox a{color:#3b82f6;text-decoration:underline}.bif-terms-checkbox a:hover{color:#1d4ed8}.bif-payment-options{flex-direction:column}.bif-payment-buttons,.bif-payment-options{display:flex;gap:1rem}@media (max-width:768px){.bif-payment-buttons{flex-direction:column}}.bif-validation-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;font-size:.875rem;padding:1rem}.bif-surcharge-info{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;color:#92400e;font-size:.875rem;margin-top:1rem;padding:1rem}.bif-payment-container{padding:1.5rem}.bif-payment-container h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.bif-stripe-form{display:flex;flex-direction:column;gap:1rem}.bif-card-element-container{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:1rem;transition:border-color .2s ease}.bif-card-element-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.bif-success-message{background:#d1fae5;border:1px solid #a7f3d0;border-radius:.375rem;color:#065f46;padding:1rem}.bif-success-message a{color:#047857;text-decoration:underline}.bif-error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;margin-bottom:1rem;padding:1rem}@media (max-width:640px){.bif-booking-container,.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{padding:1rem}.bif-total-amount{font-size:1.5rem}}.bif-gift-certificate-section{margin-top:1rem}.bif-gift-certificate-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-top:1rem;padding:1rem}.bif-gift-certificate-form .bif-form-row{display:flex;gap:1rem;margin-bottom:1rem}.bif-gift-certificate-form .bif-form-field{flex:1}.bif-gift-certificate-form .bif-form-field label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.bif-gift-certificate-form .bif-form-control{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem;width:100%}.bif-gift-certificate-form .bif-form-control:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1);outline:none}.bif-gift-certificate-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#16a34a;margin-top:1rem;padding:1rem}.bif-gift-certificate-success p{margin:.25rem 0}.bif-gift-certificate-success p:first-child{font-weight:600}@media (max-width:768px){.bif-gift-certificate-form .bif-form-row{flex-direction:column;gap:.5rem}}.bif-privacy-consent{align-items:flex-start;background:#f8f9fa;border:1px solid #e2e8f0;border-radius:.5rem;display:flex;gap:.5rem;margin:1rem 0;padding:1rem}.bif-privacy-consent input[type=checkbox]{flex-shrink:0;margin-right:0;margin-top:.1rem;transform:scale(1.2)}.bif-privacy-consent label{color:#4a5568;cursor:pointer;flex:1;font-size:.9rem;line-height:1.4}.bif-privacy-consent a{color:#3182ce;text-decoration:none}.bif-privacy-consent a:hover{text-decoration:underline}.bif-properties--grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:840px){.bif-properties--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.bif-properties--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.bif-tile{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.bif-tile:hover{box-shadow:0 8px 20px rgba(0,0,0,.06);transform:translateY(-2px)}.bif-tile.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-tile.is-unavailable{opacity:.75}.bif-tile__hero{aspect-ratio:16/10;background:#f3f4f6;position:relative}.bif-tile__hero img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-chip{background:#111827;border-radius:999px;color:#fff;font-size:.75rem;left:.75rem;opacity:.9;padding:.35rem .6rem;position:absolute;top:.75rem}.bif-tile.is-unavailable .bif-chip{background:#6b7280}.bif-tile__content{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.bif-tile__title{color:#1f2937;font-size:1.05rem;font-weight:600;margin:0}.bif-amenities--slim{display:flex;flex-wrap:wrap;gap:.5rem .75rem;list-style:none;margin:0;padding:0}.bif-amenities--slim li{background:#f9fafb;border:none;border-radius:.5rem;color:#6b7280;font-size:.8125rem;padding:.35rem .6rem}.bif-tile__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-pill{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:999px;display:flex;font-size:.85rem;gap:.5rem;padding:.45rem .6rem}.bif-pill.ok{background:#ecfdf5;border-color:#d1fae5;color:#065f46}.bif-pill.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-pill__date{color:var(--bif-muted,#6b7280);font-size:.775rem}.bif-pill__amt{font-weight:600}.bif-tile__footer{align-items:center;display:flex;justify-content:center;margin-top:.25rem}.bif-nights{color:var(--bif-muted,#6b7280);font-size:.875rem}.bif-properties--rows{display:flex;flex-direction:column;gap:.75rem}.bif-row{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);padding:.75rem;transition:all .2s ease}.bif-row.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-row.is-unavailable{opacity:.75}@media (min-width:900px){.bif-row{grid-template-columns:88px 1.2fr 1.2fr auto}.bif-row.no-image{grid-template-columns:1.2fr 1.2fr auto}}.bif-row__thumb{border-radius:.5rem;height:66px;overflow:hidden;width:88px}.bif-row__thumb img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-row__top{align-items:center;display:flex;gap:.5rem}.bif-row__title{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.bif-dot{background:#9ca3af;border-radius:999px;height:.6rem;width:.6rem}.bif-dot.ok{background:#16a34a}.bif-dot.na{background:#ef4444}.bif-amenities--inline{display:flex;flex-wrap:wrap;gap:.4rem .6rem;list-style:none;margin:.25rem 0 0;padding:0}.bif-amenities--inline li{align-items:center;color:#374151;display:flex;font-size:.85rem;gap:.35rem}.bif-row__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-rmini{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.5rem;min-width:110px;padding:.35rem .6rem}.bif-rmini.ok{background:#f0fdf4;border-color:#dcfce7;color:#065f46}.bif-rmini.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-rmini__date{color:var(--bif-muted,#6b7280);font-size:.75rem}.bif-rmini__amt{font-weight:600}.bif-row__cta{align-items:center;display:flex;justify-content:flex-end}@media (max-width:899px){.bif-row__cta{justify-content:flex-start}}.bif-properties--cards{display:flex;flex-direction:column;gap:1.5rem} 1 .bif-booking-container,.bif-bookitfast-container{background:#f8f9fa;border-radius:.5rem;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0 auto;max-width:1200px;padding:2rem;--bif-button-color:#0073aa;--bif-button-color-hover:#0073aadd;--bif-button-color-active:#0073aabb;--bif-button-text-color:#fff}.bif-bookitfast-container h3{color:#2d3748;font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.5rem;text-align:center}.bif-bookitfast-container p{color:#718096;font-size:1.1rem;margin-bottom:2rem;text-align:center}.bif-form-inline{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);display:grid;gap:1.5rem;grid-template-columns:1fr 1fr auto;margin-bottom:2rem;padding:2rem}.bif-form-group{display:flex;flex-direction:column}.bif-form-group label{color:#4a5568;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.bif-form-control{background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease}.bif-form-control:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-btn.bif-btn-success{align-self:end;background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;letter-spacing:.05em;padding:.875rem 2rem;text-transform:uppercase;transition:all .2s ease}.bif-btn.bif-btn-success:hover:not(:disabled){box-shadow:0 8px 25px rgba(72,187,120,.3);transform:translateY(-2px)}.bif-btn.bif-btn-success:disabled{cursor:not-allowed;opacity:.6}.bif-bookitfast_availability_grid_div{background:#fff;border:3px solid transparent;border-radius:20px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin-bottom:1.5rem;overflow:hidden;padding:0;position:relative;transition:all .3s ease}.bif-check-availability span:before,div.editor-styles-wrapper .bif-booking-container button.bif-btn,div.editor-styles-wrapper .bif-booking-container button.bif-btn-primary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-secondary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-select,div.editor-styles-wrapper .bif-booking-container button.bif-btn-selected,div.editor-styles-wrapper button.bif-btn,div.editor-styles-wrapper button.bif-btn-primary,div.editor-styles-wrapper button.bif-btn-secondary,div.editor-styles-wrapper button.bif-btn-select,div.editor-styles-wrapper button.bif-btn-selected{color:var(--bif-button-text-color,#fff)!important}.bif-bookitfast_availability_grid_div:hover{box-shadow:0 12px 30px rgba(0,0,0,.15);transform:translateY(-4px)}.bif-bookitfast_availability_grid_div.selected{border-color:#4299e1;box-shadow:0 12px 30px rgba(66,153,225,.2)}.bif-property-header{align-items:center;color:#1f2937;justify-content:space-between;padding:1.5rem}.bif-bookitfast_availability_grid_div h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.bif-bookitfast_availability_grid_div .availability_button{margin:0}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{background:#3b82f6;border:2px solid #3b82f6;border-radius:.375rem;color:#fff;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.bif-bookitfast_availability_grid_div .availability_button .bif-btn:hover{background:#2563eb;border-color:#2563eb}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-success{background:#10b981;border-color:#10b981}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-danger{background:#ef4444;border-color:#ef4444;cursor:not-allowed}.bif-availability-details{animation:slideDown .3s ease;display:none;padding:2rem}.bif-bookitfast_availability_grid_div.selected .bif-availability-details{display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-availability_table{background:#fff;border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:1.5rem;overflow:hidden}.bif-availability_table thead{background:linear-gradient(135deg,#4299e1,#3182ce);color:#fff}.bif-availability_table thead th{font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:left;text-transform:uppercase}.bif-availability_table tbody tr{transition:background-color .2s ease}.bif-availability_table tbody tr:hover{background-color:#f7fafc}.bif-availability_table tbody td{border-bottom:1px solid #e2e8f0;font-size:.95rem;padding:1rem}.bif-cell_date_available{background-color:#f0fff4;border-left:4px solid #48bb78}.bif-cell_date_unavailable{background-color:#fff5f5;border-left:4px solid #f56565;opacity:.7}.bif-optional_extras{background:#f7fafc;border-radius:12px;margin-top:1rem;padding:1.5rem}.bif-optional_extras h4{align-items:center;color:#2d3748;display:flex;font-size:1.2rem;font-weight:700;margin-bottom:1rem}.bif-optional_extras h4:before{content:"✨";margin-right:.5rem}.bif-bookitfast_optional_extra{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.bif-bookitfast_optional_extra:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateX(4px)}.bif-bookitfast_optional_extra input[type=checkbox]{margin-right:.75rem;transform:scale(1.2)}.bif-bookitfast_optional_extra label{color:#4a5568;cursor:pointer;flex-grow:1;font-weight:500}.bif-bookitfast_optional_extra div:last-child{color:#2d3748;font-size:1.1rem;font-weight:700}.bif-user-details-form{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-user-details-form h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:left}.bif-form-row{gap:1rem;margin-bottom:1.5rem}.bif-form-row.full-width{grid-template-columns:1fr}.bif-form-field label,.bif-form-row label{color:#4a5568;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.bif-form-field input,.bif-form-field textarea,.bif-form-row input,.bif-form-row textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.875rem;transition:all .2s ease}.bif-form-field input:focus,.bif-form-field textarea:focus,.bif-form-row input:focus,.bif-form-row textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-payment-options{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-payment-options .bif-btn{background:linear-gradient(135deg,#4299e1,#3182ce);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-right:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-payment-options .bif-btn:hover{box-shadow:0 8px 25px rgba(66,153,225,.3);transform:translateY(-2px)}.bif-payment-options .bif-btn.bif-btn-success{background:linear-gradient(135deg,#48bb78,#38a169)}.bif-payment-options .bif-btn.bif-btn-success:hover{box-shadow:0 8px 25px rgba(72,187,120,.3)}.bif-btn-primary,.btn-primary{background:linear-gradient(135deg,var(--bif-button-color,#4299e1) 0,var(--bif-button-color-hover,#3182ce) 100%);border:none;border-radius:12px;color:var(--bif-button-text-color,#fff);cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-right:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-btn-primary:hover,.btn-primary:hover{background:linear-gradient(135deg,var(--bif-button-color-hover,#3182ce) 0,var(--bif-button-color-active,#2b6cb0) 100%);box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-2px)}.bif-btn-rounded{border-radius:12px}.bif-surcharge-info{margin-top:0}.bif-surcharge-info p{font-size:.95rem;margin:0}.bif-terms-checkbox{align-items:flex-start;background:#f7fafc;border-radius:12px;display:flex;gap:.75rem;margin:1.5rem 0;padding:1.5rem}.bif-terms-checkbox input[type=checkbox]{margin-top:.25rem;transform:scale(1.2)}.bif-terms-checkbox label{color:#4a5568;line-height:1.6}.bif-terms-checkbox a{color:#4299e1;font-weight:600;text-decoration:none}.bif-terms-checkbox a:hover{text-decoration:underline}.alert{border-radius:12px;font-weight:500;margin:1rem 0;padding:1rem 1.5rem}.alert-danger{background-color:#fed7d7;border:1px solid #feb2b2;color:#c53030}.alert-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}@media (max-width:768px){.bif-bookitfast-container{border-radius:16px;padding:1rem}.bif-form-inline{gap:1rem;grid-template-columns:1fr}.bif-property-header{flex-direction:column;gap:1rem;text-align:center}.bif-form-row{grid-template-columns:1fr}.bif-availability_table{font-size:.85rem}.bif-availability_table tbody td,.bif-availability_table thead th{padding:.5rem}}@media (max-width:480px){.bif-bookitfast-container{padding:.75rem}.bif-bookitfast-container h3{font-size:1.5rem}.bif-form-inline,.bif-property-header,.bif-user-details-form{padding:1rem}}.bif-bookitfast-container .bif-form-group{display:flex;flex-wrap:wrap;padding:10px;width:100%}.bif-discount-code-container{margin-bottom:.4rem;margin-top:.4rem}.bif-discount-code-row{align-items:center;display:flex;flex-flow:row}.bif-discount-code-row .bif-form-group{flex-basis:50%;width:100%}.bif-discount-code-row .bif-form-group input{border-radius:.25rem 0 0 .25rem;padding:.6rem}.bif-discount-label{flex-basis:50%}.bif-discount-code-row .bif-apply-discount-btn{border-radius:0 .25rem .25rem 0;margin-bottom:0}.bif-bookitfast-container #bookitfastbooking{display:flex;flex-flow:row wrap;gap:10px}.bif-bookitfast-container{border-radius:5px;box-sizing:border-box;width:100%}.bif-bookitfast-container .bif-availability-button-container{align-self:flex-end}.bif-bookitfast-container .bif-btn.bif-btn-success,.bif-bookitfast-container .bif-form-control,.bookitfast-emulate-form-control{border:1px solid #ced4da;border-radius:.25rem;font-size:1rem;padding:.6rem;width:100%}.bif-stripe-payment-button{margin-top:12px}.bif-bookitfast-text{font-size:16px}.bif-terms-checkbox{margin-bottom:.5em;margin-top:.5em}.bif-bookitfast-container .bif-btn.bif-btn-success{align-self:flex-end;border-radius:4px;line-height:1.3em;padding:8px}.bif-bookitfast-container label{font-size:1rem}.bif-bookitfast-property-list{list-style:none;padding:0}.bif-availability_table{background-color:#fff;border:1px solid #ddd;border-collapse:collapse;width:100%}.bif-availability_table_wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.bif-availability_table thead{font-weight:400;text-align:left}.bif-availability_table tbody td,.bif-availability_table thead th{font-size:16px;font-weight:400;padding:6px;text-align:left}.bif-availability_table tbody td{border-bottom:1px solid #fff}.bif-availability_table tbody tr td:last-child,.bif-availability_table thead th:last-child{padding-right:10px;text-align:right}.bif-bookitfast-property-item{border:1px solid #ddd;border-radius:5px;margin-bottom:20px;padding:10px}.bif-bookitfast-property-title{font-size:1.2em;font-weight:700}.bif-bookitfast-container{background:#f9f9f9;border:1px solid #ddd;padding:10px}.bif-form-inline{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.bif-form-group{flex:1;margin-right:20px;min-width:200px}.bif-mr-6{margin-right:6px}.bif-btn{background-color:#28a745;color:#fff;margin-bottom:4px;padding:10px 20px}.bif-btn-danger{background-color:#ff4141}.bif-btn-rounded{border-radius:.25rem}.bif-alert{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;margin-top:20px;padding:10px}.bif-alert.bif-alert-success{background-color:#e0f7e0;border:1px solid #3d9140;color:#3d9140;font-size:14px;margin-top:20px;padding:4px 10px}.bif-availability-results{margin-top:20px}.bif-availability-item{border:1px solid #ccc;border-radius:.25rem;margin-bottom:10px;padding:.4rem}.bif-bookitfast_availability_grid_div{align-items:center;background-color:#fbfbfb;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:20px;margin-top:12px;padding:.4rem;width:100%}.bif-bookitfast_availability_grid_div .inner_div{padding:10px;width:100%}.bif-bookitfast-certificate-form,.bif-user-details-form{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;margin-bottom:20px;margin-top:12px;width:100%}.bif-bookitfast_availability_grid_div h3{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:left}.bif-bookitfast_availability_grid_div .availability_button{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:right}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{border-radius:4px;padding:8px 16px}.bif-property_heading_container h2{font-size:1.4em;margin:0}.bif-bookitfast_day{font-size:14px}.bif-bookitfast_day_cell{display:inline-block;margin:5px}.bif-cell_date_available{background-color:#e0f7e0;border-color:#3d9140;width:100%}.bif-cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-mandatory_extras,.bif-optional_extras{margin-top:10px}.bif-mandatory_extras h4,.bif-optional_extras h4{font-size:1.2em;margin-bottom:5px}.bif-btn{padding:5px 10px}.bif-availability_grid{display:flex;flex-wrap:wrap;gap:4px}.bif-bookitfast_day_cell{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;display:flex;flex-direction:column;font-size:14px;height:100px;justify-content:center;padding:10px;text-align:center;transition:transform .2s ease;width:100px}.bif-bookitfast_day_cell:hover{transform:scale(1.05)}.cell_date_available{background-color:#e0f7e0;border-color:#3d9140}.cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-bookitfast_availability_cell{margin-top:5px}.bif-avail_rate{color:#333;width:100%}.bif-property_summary_item{border:1px solid #ddd;border-radius:5px;margin-top:10px}.bif-property_summary_item_title{background-color:green;border-radius:4px 4px 0 0;color:#fff;margin:0;padding:10px}.bif-property_summary_item_body{margin:0}.bif-property_summary_sub_heading{line-height:1em;margin:0}.bif-property_summary_item_body .bif-property_summary_item_body_section{border-radius:0 0 4px 4px;box-sizing:border-box;padding:.4em}.bif-property_summary_item_body p{flex-basis:50%;flex-grow:1;margin:0}.bif-bookitfast-certificate-form .bif-form-group,.bif-property_summary_detail_row,.bif-user-details-form .bif-form-group{border-bottom:1px solid #ddd;display:flex;flex-direction:row;width:100%}.bif-property_summary_detail_row div{flex-basis:50%}.bif-property_summary_sub_heading{background-color:#c7c7c7}.bif-bookitfast-certificate-form .bif-form-row,.bif-user-details-form .bif-form-row{box-sizing:border-box;display:flex;font-size:14px;justify-content:flex-end;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>label,.bif-user-details-form .bif-form-row>label{flex:1;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>input,.bif-bookitfast-certificate-form .bif-form-row>select,.bif-user-details-form .bif-form-row>input,.bif-user-details-form .bif-form-row>textarea{border:1px solid #d1d5db;border-radius:.25rem;flex:2;font-size:1rem;padding:.5rem!important}.bif-user-details-form .bif-form-row:last-child{border:none}.bif-user-details-form .bif-form-row>textarea{font-size:14px;padding:6px}.bif-bookitfast_total_cost{background-color:green;color:#fff;padding-left:0;padding-right:0}.bif-payment-container{margin-top:12px}.bif-surcharge-info{color:#666;font-size:.8em;font-style:italic;margin-top:10px}.bif-optional_extras{width:100%}.bif-optional_extras h4{margin-top:4px}.bif-optional_extras .bif-bookitfast_optional_extra{display:flex;flex-direction:row;width:100%}.bif-optional_extras .bif-bookitfast_optional_extra div{flex-basis:50%;font-weight:400}.bif-booking-container{font-family:system-ui,-apple-system,sans-serif;margin:0 auto;max-width:1200px}.bif-booking-container *{box-sizing:border-box}.bif-booking-header{display:none}.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:1.5rem;padding:1.5rem}.bif-booking-summary:hover,.bif-customer-details:hover,.bif-date-selector:hover,.bif-property-list:hover{box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-section-title{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.bif-subsection-title{color:#374151;font-size:1.125rem;font-weight:500;margin:0 0 .75rem}.bif-date-form{align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.bif-date-form{gap:1rem;grid-template-columns:1fr}}.bif-form-field{display:flex;flex-direction:column}.bif-form-field label{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.bif-date-input,.bif-nights-select{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;height:44px;padding:.5rem;transition:all .2s ease}.bif-date-input:focus,.bif-nights-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.bif-btn-primary{background:var(--bif-button-color,#3b82f6);color:var(--bif-button-text-color,#fff)}.bif-btn-primary:hover{background:var(--bif-button-color-hover,#2563eb);color:var(--bif-button-text-color,#fff)}.bif-btn-secondary{background:#6b7280;color:#fff}.bif-property-icons{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.bif-property-icon{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;display:inline-flex;font-size:.875rem;gap:4px;padding:4px 8px}.bif-property-icon:hover{background:#e5e7eb}.bif-btn-secondary:hover{background:#4b5563}.bif-btn-select{background:#3b82f6;color:#fff}.bif-btn-selected{background:#10b981;color:#fff}.bif-btn-disabled{background:#9ca3af;color:#fff;cursor:not-allowed}.bif-btn-large{font-size:1rem;min-height:48px;padding:1rem 2rem}.bif-check-availability{width:100%}.bif-spinner{animation:spin 1s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:currentcolor;height:1rem;width:1rem}@keyframes spin{to{transform:rotate(1turn)}}.bif-properties{display:flex;flex-direction:column;gap:1.5rem}.bif-property-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:0;position:relative;transition:all .2s ease}.bif-property-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-property-card.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-property-card.bif-unavailable{background:#f9fafb;opacity:.75}.bif-property-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;padding:.75rem}.bif-property-image{border-radius:.5rem;flex-shrink:0;height:80px;overflow:hidden;width:80px}.bif-property-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-property-info{display:flex;flex:1;flex-direction:column;gap:.5rem;padding-top:.25rem}.bif-property-name{color:#1f2937;font-size:1.25rem;font-weight:600;line-height:1;margin:0}.bif-property-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.bif-property-status-container{flex-shrink:0}.bif-property-status{border:1px solid;border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.bif-status-available{background:#d1fae5;border-color:#a7f3d0;color:#065f46}.bif-status-booked{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bif-status-no-rate{background:#f3f4f6;border-color:#d1d5db;color:#374151}.bif-status-min-nights{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bif-status-unavailable{background:#f3f4f6;border-color:#d1d5db;color:#6b7280}.bif-availability-details,.bif-property-card .bif-availability-details{animation:none!important;border-bottom:1px solid #e5e7eb;display:block!important;padding:.75rem;visibility:visible!important}.bif-daily-breakdown-title{color:#374151;font-size:.875rem;font-weight:600}.bif-daily-rates{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-bottom:1rem}.bif-daily-rate{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem;text-align:center}.bif-daily-rate.bif-available{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.bif-daily-rate.bif-unavailable{background:#fef2f2;border-color:#fecaca;color:#dc2626}.bif-date{font-size:.75rem;font-weight:500;margin-bottom:.25rem}.bif-rate{font-size:.875rem;font-weight:600}.bif-rate-summary{background:#f9fafb;border-radius:.375rem;margin-bottom:0;padding:1rem}.bif-summary-row{align-items:center;color:#374151;display:flex;font-size:.875rem;justify-content:space-between}.bif-total{color:#1f2937;font-size:1rem;font-weight:600}.bif-property-actions{bottom:1.5rem;position:absolute;right:1.5rem}.bif-property-actions .bif-btn{min-width:120px}.bif-optional-extras{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;margin:1.5rem;padding:1rem}@media (max-width:768px){.bif-property-header{align-items:stretch;flex-direction:column;gap:1rem}.bif-property-image{height:200px;width:100%}.bif-property-info{text-align:center}.bif-property-status-container{align-self:center}.bif-property-actions{border-top:1px solid #e5e7eb;padding:1.5rem;position:static;text-align:center}.bif-daily-rates{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.bif-extras-list{display:flex;flex-direction:column;gap:.75rem}.bif-extra-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:flex;justify-content:space-between;padding:.75rem}.bif-extra-info{align-items:center;display:flex;gap:.75rem}.bif-extra-info input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;width:1.125rem}.bif-extra-info label{color:#374151;cursor:pointer;font-size:.875rem;margin:0}.bif-extra-price{color:#1f2937;font-size:.875rem;font-weight:600}.bif-summary-content{display:flex;flex-direction:column;gap:1.5rem}.bif-summary-section{background:#f9fafb;border-radius:.375rem;padding:1rem}.bif-property-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;margin-bottom:1rem;padding:1.5rem}.bif-property-summary:last-child{margin-bottom:0}.bif-property-summary-name{color:#15803d;font-size:1rem;font-weight:600;margin:0 0 .75rem}.bif-property-total{border-top:1px solid #bbf7d0;padding-top:1rem}.bif-total-row{color:#15803d;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.bif-total-row.bif-subtotal{font-size:1rem;font-weight:600}.bif-mandatory-extras-summary,.bif-optional-extras-summary{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.bif-mandatory-extras-summary .bif-total-row{color:#374151!important}.bif-optional-extras-summary .bif-total-row{color:#92400e!important}.bif-discount-form{display:flex;gap:.5rem}.bif-discount-input{border:1px solid #d1d5db;border-radius:.375rem;flex:1;font-size:.875rem;padding:.75rem!important}.bif-discount-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-discount-applied{color:#10b981;font-size:.875rem;font-weight:500;margin-top:.5rem}.bif-grand-total{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;padding:1.5rem}.bif-total-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.bif-total-amount,.bif-total-main span:first-child{color:#1f2937;font-size:1.125rem;font-weight:600}.bif-discount-text{color:#059669;font-size:.875rem;font-weight:500;margin-top:.5rem;text-align:left}.bif-total-breakdown{color:#6b7280;display:flex;flex-direction:column;font-size:.875rem;gap:.25rem}.bif-breakdown-row{display:flex;justify-content:space-between}.bif-surcharge-note{color:#6b7280;font-size:.75rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.bif-customer-details{padding:2rem}.bif-customer-form{display:flex;flex-direction:column;gap:.5rem}.bif-form-row{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.bif-form-row.bif-full-width{grid-template-columns:1fr}@media (max-width:768px){.bif-form-row{gap:1rem;grid-template-columns:1fr}}.bif-form-field input,.bif-form-field textarea{border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;padding:.5rem!important;transition:all .2s ease;width:100%}.bif-form-field input:focus,.bif-form-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-form-field input.bif-error,.bif-form-field textarea.bif-error{border-color:#ef4444}.bif-field-error{color:#ef4444;font-size:.875rem;margin-top:.5rem}.bif-form-field textarea{min-height:120px;resize:vertical}.bif-terms-checkbox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;margin-bottom:.75rem;padding:1rem}.bif-terms-checkbox input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;margin-right:.75rem;width:1.125rem}.bif-terms-checkbox label{color:#1e40af;cursor:pointer;font-size:.875rem;line-height:1.5}.bif-terms-checkbox a{color:#3b82f6;text-decoration:underline}.bif-terms-checkbox a:hover{color:#1d4ed8}.bif-payment-options{flex-direction:column}.bif-payment-buttons,.bif-payment-options{display:flex;gap:1rem}@media (max-width:768px){.bif-payment-buttons{flex-direction:column}}.bif-validation-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;font-size:.875rem;padding:1rem}.bif-surcharge-info{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;color:#92400e;font-size:.875rem;margin-top:1rem;padding:1rem}.bif-payment-container{padding:1.5rem}.bif-payment-container h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.bif-stripe-form{display:flex;flex-direction:column;gap:1rem}.bif-card-element-container{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:1rem;transition:border-color .2s ease}.bif-card-element-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.bif-success-message{background:#d1fae5;border:1px solid #a7f3d0;border-radius:.375rem;color:#065f46;padding:1rem}.bif-success-message a{color:#047857;text-decoration:underline}.bif-error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;margin-bottom:1rem;padding:1rem}@media (max-width:640px){.bif-booking-container,.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{padding:1rem}.bif-total-amount{font-size:1.5rem}}.bif-gift-certificate-section{margin-top:1rem}.bif-gift-certificate-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-top:1rem;padding:1rem}.bif-gift-certificate-form .bif-form-row{display:flex;gap:1rem;margin-bottom:1rem}.bif-gift-certificate-form .bif-form-field{flex:1}.bif-gift-certificate-form .bif-form-field label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.bif-gift-certificate-form .bif-form-control{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem;width:100%}.bif-gift-certificate-form .bif-form-control:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1);outline:none}.bif-gift-certificate-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#16a34a;margin-top:1rem;padding:1rem}.bif-gift-certificate-success p{margin:.25rem 0}.bif-gift-certificate-success p:first-child{font-weight:600}@media (max-width:768px){.bif-gift-certificate-form .bif-form-row{flex-direction:column;gap:.5rem}}.bif-privacy-consent{align-items:flex-start;background:#f8f9fa;border:1px solid #e2e8f0;border-radius:.5rem;display:flex;gap:.5rem;margin:1rem 0;padding:1rem}.bif-privacy-consent input[type=checkbox]{flex-shrink:0;margin-right:0;margin-top:.1rem;transform:scale(1.2)}.bif-privacy-consent label{color:#4a5568;cursor:pointer;flex:1;font-size:.9rem;line-height:1.4}.bif-privacy-consent a{color:#3182ce;text-decoration:none}.bif-privacy-consent a:hover{text-decoration:underline}.bif-properties--grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:840px){.bif-properties--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.bif-properties--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.bif-tile{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.bif-tile:hover{box-shadow:0 8px 20px rgba(0,0,0,.06);transform:translateY(-2px)}.bif-tile.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-tile.is-unavailable{opacity:.75}.bif-tile__hero{aspect-ratio:16/10;background:#f3f4f6;position:relative}.bif-tile__hero img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-chip{background:#111827;border-radius:999px;color:#fff;font-size:.75rem;left:.75rem;opacity:.9;padding:.35rem .6rem;position:absolute;top:.75rem}.bif-tile.is-unavailable .bif-chip{background:#6b7280}.bif-tile__content{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.bif-tile__title{color:#1f2937;font-size:1.05rem;font-weight:600;margin:0}.bif-amenities--slim{display:flex;flex-wrap:wrap;gap:.5rem .75rem;list-style:none;margin:0;padding:0}.bif-amenities--slim li{background:#f9fafb;border:none;border-radius:.5rem;color:#6b7280;font-size:.8125rem;padding:.35rem .6rem}.bif-tile__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-pill{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:999px;display:flex;font-size:.85rem;gap:.5rem;padding:.45rem .6rem}.bif-pill.ok{background:#ecfdf5;border-color:#d1fae5;color:#065f46}.bif-pill.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-pill__date{color:var(--bif-muted,#6b7280);font-size:.775rem}.bif-pill__amt{font-weight:600}.bif-tile__footer{align-items:center;display:flex;justify-content:center;margin-top:.25rem}.bif-nights{color:var(--bif-muted,#6b7280);font-size:.875rem}.bif-properties--rows{display:flex;flex-direction:column;gap:.75rem}.bif-row{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);padding:.75rem;transition:all .2s ease}.bif-row.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-row.is-unavailable{opacity:.75}@media (min-width:900px){.bif-row{grid-template-columns:88px 1.2fr 1.2fr auto}.bif-row.no-image{grid-template-columns:1.2fr 1.2fr auto}}.bif-row__thumb{border-radius:.5rem;height:66px;overflow:hidden;width:88px}.bif-row__thumb img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-row__top{align-items:center;display:flex;gap:.5rem}.bif-row__title{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.bif-dot{background:#9ca3af;border-radius:999px;height:.6rem;width:.6rem}.bif-dot.ok{background:#16a34a}.bif-dot.na{background:#ef4444}.bif-amenities--inline{display:flex;flex-wrap:wrap;gap:.4rem .6rem;list-style:none;margin:.25rem 0 0;padding:0}.bif-amenities--inline li{align-items:center;color:#374151;display:flex;font-size:.85rem;gap:.35rem}.bif-row__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-rmini{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.5rem;min-width:110px;padding:.35rem .6rem}.bif-rmini.ok{background:#f0fdf4;border-color:#dcfce7;color:#065f46}.bif-rmini.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-rmini__date{color:var(--bif-muted,#6b7280);font-size:.75rem}.bif-rmini__amt{font-weight:600}.bif-row__cta{align-items:center;display:flex;justify-content:flex-end}@media (max-width:899px){.bif-row__cta{justify-content:flex-start}}.bif-properties--cards{display:flex;flex-direction:column;gap:1.5rem}.bif-modal-overlay{align-items:center;animation:bifModalFadeIn .2s ease-out;background-color:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:999999}@keyframes bifModalFadeIn{0%{opacity:0}to{opacity:1}}.bif-modal{animation:bifModalSlideIn .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);display:flex;flex-direction:column;max-height:90vh;max-width:600px;width:100%}@keyframes bifModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.bif-modal-title{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.bif-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:32px}.bif-modal-close:hover{background-color:#f3f4f6;color:#111827}.bif-modal-close:focus{outline:2px solid #3b82f6;outline-offset:2px}.bif-modal-content{flex:1;overflow-y:auto;padding:1.5rem}.bif-modal-content p{color:#374151;line-height:1.6;margin-bottom:1rem}.bif-modal-content p:last-child{margin-bottom:0}.bif-modal-content ol,.bif-modal-content ul{color:#374151;line-height:1.6;margin-bottom:1rem;padding-left:1.5rem}.bif-modal-content h3,.bif-modal-content h4,.bif-modal-content h5{color:#111827;margin-bottom:.75rem;margin-top:1.5rem}.bif-modal-content h3:first-child,.bif-modal-content h4:first-child,.bif-modal-content h5:first-child{margin-top:0}@media (max-width:640px){.bif-modal{margin:1rem;max-width:100%}.bif-modal-content,.bif-modal-header{padding:1rem}} -
book-it-fast/trunk/build/frontend.js
r3364358 r3367536 1 (()=>{var e={609:e=>{"use strict";e.exports=window.React},926:function(e,t,a){!function(e,t){"use strict";function a(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=a){var r,n,i=[],_n=!0,o=!1;try{for(a=a.call(e);!(_n=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);_n=!0);}catch(e){o=!0,n=e}finally{try{_n||null==a.return||a.return()}finally{if(o)throw n}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?c(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var u,m,p,d,f={exports:{}};f.exports=function(){if(d)return p;d=1;var e=m?u:(m=1,u="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");function t(){}function a(){}return a.resetWarningCache=t,p=function(){function r(t,a,r,n,i,o){if(o!==e){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function n(){return r}r.isRequired=r;var i={array:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:n,element:r,elementType:r,instanceOf:n,node:r,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:a,resetWarningCache:t};return i.PropTypes=i,i}}()();var b=s(f.exports),y=function(e,a,r){var n=!!r,i=t.useRef(r);t.useEffect((function(){i.current=r}),[r]),t.useEffect((function(){if(!n||!e)return function(){};var t=function(){i.current&&i.current.apply(i,arguments)};return e.on(a,t),function(){e.off(a,t)}}),[n,a,e,i])},h=function(e){var a=t.useRef(e);return t.useEffect((function(){a.current=e}),[e]),a.current},g=function(e){return null!==e&&"object"===n(e)},E="[object Object]",v=function e(t,a){if(!g(t)||!g(a))return t===a;var r=Array.isArray(t);if(r!==Array.isArray(a))return!1;var n=Object.prototype.toString.call(t)===E;if(n!==(Object.prototype.toString.call(a)===E))return!1;if(!n&&!r)return t===a;var i=Object.keys(t),o=Object.keys(a);if(i.length!==o.length)return!1;for(var l={},c=0;c<i.length;c+=1)l[i[c]]=!0;for(var s=0;s<o.length;s+=1)l[o[s]]=!0;var u=Object.keys(l);if(u.length!==i.length)return!1;var m=t,p=a;return u.every((function(t){return e(m[t],p[t])}))},R=function(e,t,a){return g(e)?Object.keys(e).reduce((function(n,o){var l=!g(t)||!v(e[o],t[o]);return a.includes(o)?(l&&console.warn("Unsupported prop change: options.".concat(o," is not a mutable property.")),n):l?r(r({},n||{}),{},i({},o,e[o])):n}),null):null},_="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",N=function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_;if(null===e||g(t=e)&&"function"==typeof t.elements&&"function"==typeof t.createToken&&"function"==typeof t.createPaymentMethod&&"function"==typeof t.confirmCardPayment)return e;throw new Error(a)},C=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_;if(function(e){return g(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then((function(e){return N(e,t)}))};var a=N(e,t);return null===a?{tag:"empty"}:{tag:"sync",stripe:a}},k=function(e){e&&e._registerWrapper&&e.registerAppInfo&&(e._registerWrapper({name:"react-stripe-js",version:"3.6.0"}),e.registerAppInfo({name:"react-stripe-js",version:"3.6.0",url:"https://stripe.com/docs/stripe-js/react"}))},w=t.createContext(null);w.displayName="ElementsContext";var S=function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e},x=function(e){var a=e.stripe,r=e.options,n=e.children,i=t.useMemo((function(){return C(a)}),[a]),o=l(t.useState((function(){return{stripe:"sync"===i.tag?i.stripe:null,elements:"sync"===i.tag?i.stripe.elements(r):null}})),2),c=o[0],s=o[1];t.useEffect((function(){var e=!0,t=function(e){s((function(t){return t.stripe?t:{stripe:e,elements:e.elements(r)}}))};return"async"!==i.tag||c.stripe?"sync"!==i.tag||c.stripe||t(i.stripe):i.stripePromise.then((function(a){a&&e&&t(a)})),function(){e=!1}}),[i,c,r]);var u=h(a);t.useEffect((function(){null!==u&&u!==a&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")}),[u,a]);var m=h(r);return t.useEffect((function(){if(c.elements){var e=R(r,m,["clientSecret","fonts"]);e&&c.elements.update(e)}}),[r,m,c.elements]),t.useEffect((function(){k(c.stripe)}),[c.stripe]),t.createElement(w.Provider,{value:c},n)};x.propTypes={stripe:b.any,options:b.object};var P=function(e){var a=t.useContext(w);return S(a,e)},O=function(e){return(0,e.children)(P("mounts <ElementsConsumer>"))};O.propTypes={children:b.func.isRequired};var j=["on","session"],T=t.createContext(null);T.displayName="CheckoutSdkContext";var F=function(e,t){if(!e)throw new Error("Could not find CheckoutProvider context; You need to wrap the part of your app that ".concat(t," in an <CheckoutProvider> provider."));return e},I=t.createContext(null);I.displayName="CheckoutContext";var A=function(e){var a=e.stripe,r=e.options,n=e.children,i=t.useMemo((function(){return C(a,"Invalid prop `stripe` supplied to `CheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")}),[a]),c=l(t.useState(null),2),s=c[0],u=c[1],m=l(t.useState((function(){return{stripe:"sync"===i.tag?i.stripe:null,checkoutSdk:null}})),2),p=m[0],d=m[1],f=function(e,t){d((function(a){return a.stripe&&a.checkoutSdk?a:{stripe:e,checkoutSdk:t}}))},b=t.useRef(!1);t.useEffect((function(){var e=!0;return"async"!==i.tag||p.stripe?"sync"===i.tag&&i.stripe&&!b.current&&(b.current=!0,i.stripe.initCheckout(r).then((function(e){e&&(f(i.stripe,e),e.on("change",u))}))):i.stripePromise.then((function(t){t&&e&&!b.current&&(b.current=!0,t.initCheckout(r).then((function(e){e&&(f(t,e),e.on("change",u))})))})),function(){e=!1}}),[i,p,r,u]);var y=h(a);t.useEffect((function(){null!==y&&y!==a&&console.warn("Unsupported prop change on CheckoutProvider: You cannot change the `stripe` prop after setting it.")}),[y,a]);var g=h(r);t.useEffect((function(){var e,t;if(p.checkoutSdk){var a=null==g||null===(e=g.elementsOptions)||void 0===e?void 0:e.appearance,n=null==r||null===(t=r.elementsOptions)||void 0===t?void 0:t.appearance;n&&!v(n,a)&&p.checkoutSdk.changeAppearance(n)}}),[r,g,p.checkoutSdk]),t.useEffect((function(){k(p.stripe)}),[p.stripe]);var E=t.useMemo((function(){return function(e,t){if(!e)return null;e.on,e.session;var a=o(e,j);return t?Object.assign(t,a):Object.assign(e.session(),a)}(p.checkoutSdk,s)}),[p.checkoutSdk,s]);return p.checkoutSdk?t.createElement(T.Provider,{value:p},t.createElement(I.Provider,{value:E},n)):null};A.propTypes={stripe:b.any,options:b.shape({fetchClientSecret:b.func.isRequired,elementsOptions:b.object}).isRequired};var $=function(e){var a=t.useContext(T),r=t.useContext(w);if(a&&r)throw new Error("You cannot wrap the part of your app that ".concat(e," in both <CheckoutProvider> and <Elements> providers."));return a?F(a,e):S(r,e)},D=["mode"],B=function(e,a){var r,n="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),i=a?function(e){$("mounts <".concat(n,">"));var a=e.id,r=e.className;return t.createElement("div",{id:a,className:r})}:function(a){var r,i=a.id,c=a.className,s=a.options,u=void 0===s?{}:s,m=a.onBlur,p=a.onFocus,d=a.onReady,f=a.onChange,b=a.onEscape,g=a.onClick,E=a.onLoadError,v=a.onLoaderStart,_=a.onNetworksChange,N=a.onConfirm,C=a.onCancel,k=a.onShippingAddressChange,w=a.onShippingRateChange,S=$("mounts <".concat(n,">")),x="elements"in S?S.elements:null,P="checkoutSdk"in S?S.checkoutSdk:null,O=l(t.useState(null),2),j=O[0],T=O[1],F=t.useRef(null),I=t.useRef(null);y(j,"blur",m),y(j,"focus",p),y(j,"escape",b),y(j,"click",g),y(j,"loaderror",E),y(j,"loaderstart",v),y(j,"networkschange",_),y(j,"confirm",N),y(j,"cancel",C),y(j,"shippingaddresschange",k),y(j,"shippingratechange",w),y(j,"change",f),d&&(r="expressCheckout"===e?d:function(){d(j)}),y(j,"ready",r),t.useLayoutEffect((function(){if(null===F.current&&null!==I.current&&(x||P)){var t=null;if(P)switch(e){case"payment":t=P.createPaymentElement(u);break;case"address":if(!("mode"in u))throw new Error("You must supply options.mode. mode must be 'billing' or 'shipping'.");var a=u.mode,r=o(u,D);if("shipping"===a)t=P.createShippingAddressElement(r);else{if("billing"!==a)throw new Error("Invalid options.mode. mode must be 'billing' or 'shipping'.");t=P.createBillingAddressElement(r)}break;case"expressCheckout":t=P.createExpressCheckoutElement(u);break;case"currencySelector":t=P.createCurrencySelectorElement();break;default:throw new Error("Invalid Element type ".concat(n,". You must use either the <PaymentElement />, <AddressElement options={{mode: 'shipping'}} />, <AddressElement options={{mode: 'billing'}} />, or <ExpressCheckoutElement />."))}else x&&(t=x.create(e,u));F.current=t,T(t),t&&t.mount(I.current)}}),[x,P,u]);var A=h(u);return t.useEffect((function(){if(F.current){var e=R(u,A,["paymentRequest"]);e&&"update"in F.current&&F.current.update(e)}}),[u,A]),t.useLayoutEffect((function(){return function(){if(F.current&&"function"==typeof F.current.destroy)try{F.current.destroy(),F.current=null}catch(e){}}}),[]),t.createElement("div",{id:i,className:c,ref:I})};return i.propTypes={id:b.string,className:b.string,onChange:b.func,onBlur:b.func,onFocus:b.func,onReady:b.func,onEscape:b.func,onClick:b.func,onLoadError:b.func,onLoaderStart:b.func,onNetworksChange:b.func,onConfirm:b.func,onCancel:b.func,onShippingAddressChange:b.func,onShippingRateChange:b.func,options:b.object},i.displayName=n,i.__elementType=e,i},G="undefined"==typeof window,L=t.createContext(null);L.displayName="EmbeddedCheckoutProviderContext";var M=function(){var e=t.useContext(L);if(!e)throw new Error("<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>");return e},q=G?function(e){var a=e.id,r=e.className;return M(),t.createElement("div",{id:a,className:r})}:function(e){var a=e.id,r=e.className,n=M().embeddedCheckout,i=t.useRef(!1),o=t.useRef(null);return t.useLayoutEffect((function(){return!i.current&&n&&null!==o.current&&(n.mount(o.current),i.current=!0),function(){if(i.current&&n)try{n.unmount(),i.current=!1}catch(e){}}}),[n]),t.createElement("div",{ref:o,id:a,className:r})},U=B("auBankAccount",G),Y=B("card",G),W=B("cardNumber",G),z=B("cardExpiry",G),H=B("cardCvc",G),J=B("fpxBank",G),K=B("iban",G),Q=B("idealBank",G),V=B("p24Bank",G),X=B("epsBank",G),Z=B("payment",G),ee=B("expressCheckout",G),te=B("currencySelector",G),ae=B("paymentRequestButton",G),re=B("linkAuthentication",G),ne=B("address",G),ie=B("shippingAddress",G),oe=B("paymentMethodMessaging",G),le=B("affirmMessage",G),ce=B("afterpayClearpayMessage",G);e.AddressElement=ne,e.AffirmMessageElement=le,e.AfterpayClearpayMessageElement=ce,e.AuBankAccountElement=U,e.CardCvcElement=H,e.CardElement=Y,e.CardExpiryElement=z,e.CardNumberElement=W,e.CheckoutProvider=A,e.CurrencySelectorElement=te,e.Elements=x,e.ElementsConsumer=O,e.EmbeddedCheckout=q,e.EmbeddedCheckoutProvider=function(e){var a=e.stripe,r=e.options,n=e.children,i=t.useMemo((function(){return C(a,"Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")}),[a]),o=t.useRef(null),c=t.useRef(null),s=l(t.useState({embeddedCheckout:null}),2),u=s[0],m=s[1];t.useEffect((function(){if(!c.current&&!o.current){var e=function(e){c.current||o.current||(c.current=e,o.current=c.current.initEmbeddedCheckout(r).then((function(e){m({embeddedCheckout:e})})))};"async"!==i.tag||c.current||!r.clientSecret&&!r.fetchClientSecret?"sync"!==i.tag||c.current||!r.clientSecret&&!r.fetchClientSecret||e(i.stripe):i.stripePromise.then((function(t){t&&e(t)}))}}),[i,r,u,c]),t.useEffect((function(){return function(){u.embeddedCheckout?(o.current=null,u.embeddedCheckout.destroy()):o.current&&o.current.then((function(){o.current=null,u.embeddedCheckout&&u.embeddedCheckout.destroy()}))}}),[u.embeddedCheckout]),t.useEffect((function(){k(c)}),[c]);var p=h(a);t.useEffect((function(){null!==p&&p!==a&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.")}),[p,a]);var d=h(r);return t.useEffect((function(){null!=d&&(null!=r?(void 0===r.clientSecret&&void 0===r.fetchClientSecret&&console.warn("Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`."),null!=d.clientSecret&&r.clientSecret!==d.clientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=d.fetchClientSecret&&r.fetchClientSecret!==d.fetchClientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=d.onComplete&&r.onComplete!==d.onComplete&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it."),null!=d.onShippingDetailsChange&&r.onShippingDetailsChange!==d.onShippingDetailsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it."),null!=d.onLineItemsChange&&r.onLineItemsChange!==d.onLineItemsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.")):console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them."))}),[d,r]),t.createElement(L.Provider,{value:u},n)},e.EpsBankElement=X,e.ExpressCheckoutElement=ee,e.FpxBankElement=J,e.IbanElement=K,e.IdealBankElement=Q,e.LinkAuthenticationElement=re,e.P24BankElement=V,e.PaymentElement=Z,e.PaymentMethodMessagingElement=oe,e.PaymentRequestButtonElement=ae,e.ShippingAddressElement=ie,e.useCheckout=function(){!function(e){var a=t.useContext(T);F(a,e)}("calls useCheckout()");var e=t.useContext(I);if(!e)throw new Error("Could not find Checkout Context; You need to wrap the part of your app that calls useCheckout() in an <CheckoutProvider> provider.");return e},e.useElements=function(){return P("calls useElements()").elements},e.useStripe=function(){return $("calls useStripe()").stripe}}(t,a(609))}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=a(609),t=a.n(e);const r=window.ReactDOM;var n,i=a.n(r),o="https://js.stripe.com",l="".concat(o,"/v3"),c=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,s=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,u="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",m=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",a=document.createElement("script");a.src="".concat(l).concat(t);var r=document.head||document.body;if(!r)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return r.appendChild(a),a},p=null,d=null,f=null,b=!1,y=function(){return n||(n=(e=null,null!==p?p:(p=new Promise((function(t,a){if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(u),window.Stripe)t(window.Stripe);else try{var r=function(){for(var e,t=document.querySelectorAll('script[src^="'.concat(o,'"]')),a=0;a<t.length;a++){var r=t[a];if(e=r.src,c.test(e)||s.test(e))return r}return null}();if(r&&e)console.warn(u);else if(r){if(r&&null!==f&&null!==d){var n;r.removeEventListener("load",f),r.removeEventListener("error",d),null===(n=r.parentNode)||void 0===n||n.removeChild(r),r=m(e)}}else r=m(e);f=function(e,t){return function(){window.Stripe?e(window.Stripe):t(new Error("Stripe.js not available"))}}(t,a),d=function(e){return function(t){e(new Error("Failed to load Stripe.js",{cause:t}))}}(a),r.addEventListener("load",f),r.addEventListener("error",d)}catch(e){return void a(e)}else t(null)}))).catch((function(e){return p=null,Promise.reject(e)}))).catch((function(e){return n=null,Promise.reject(e)})));var e};Promise.resolve().then((function(){return y()})).catch((function(e){b||console.warn(e)}));var h=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];b=!0;var r=Date.now();return y().then((function(e){return function(e,t,a){if(null===e)return null;var r=t[0].match(/^pk_test/),n=function(e){return 3===e?"v3":e}(e.version);r&&"v3"!==n&&console.warn("Stripe.js@".concat(n," was loaded on the page, but @stripe/stripe-js@").concat("5.10.0"," expected Stripe.js@").concat("v3",". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));var i=e.apply(void 0,t);return function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"5.10.0",startTime:t})}(i,a),i}(e,t,r)}))},g=a(926);const E=function(){const e=document.querySelector('link[rel="https://api.w.org/"]');return e?e.href.replace(/\/$/,""):(window.wpApiSettings?.restUrl||"/wp-json").replace(/\/$/,"")}(),v=(h("your-publishable-key-here"),e=>new URLSearchParams(window.location.search).get(e)),R=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:i,includeIcons:o})=>{e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0);const l=e.availability?.available;return React.createElement("div",{className:`bif-tile ${t?"bif-selected":""} ${l?"":"is-unavailable"}`},i&&e.property_image&&React.createElement("div",{className:"bif-tile__hero"},React.createElement("img",{loading:"lazy",src:e.property_image,alt:e.property_name}),React.createElement("span",{className:"bif-chip "+(l?"":"unavailable")},((e,t,a)=>{if(e)return"Available";switch(t){case"Booked Out":return"Booked Out";case"No Tariff Set":return"No Rates Set";case"Min Nights":return`Minimum ${a||2} Nights`;default:return"Unavailable"}})(l,e.availability?.availability_reason,e.availability?.min_nights))),React.createElement("div",{className:"bif-tile__content"},React.createElement("h3",{className:"bif-tile__title"},e.property_name),o&&e.property_features&&React.createElement("ul",{className:"bif-amenities bif-amenities--slim"},1===e.property_features.wifi&&React.createElement("li",null,React.createElement("span",null,"📶 WiFi")),e.property_features.queen_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.queen_beds," Queen")),e.property_features.king_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.king_beds," King")),e.property_features.double_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.double_beds," Double")),e.property_features.single_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.single_beds," Single")),e.property_features.bunk_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.bunk_beds," Bunk")),e.property_features.sofa_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.sofa_beds," Sofa bed")),e.property_features.bedrooms&&React.createElement("li",null,React.createElement("span",null,"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":"")),e.property_features.living_areas&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":""))),e.availability?.dates&&React.createElement("div",{className:"bif-tile__rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-pill "+(e.availability?"ok":"na")},React.createElement("span",{className:"bif-pill__date"},e.date_formatted),React.createElement("strong",{className:"bif-pill__amt"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-tile__footer"},l?React.createElement("button",{onClick:a,className:"bif-btn "+(t?"bif-btn-selected":"bif-btn-select")},t?"✓ Selected":"Select"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled"},"Unavailable")),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount))))))))},_=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:i,includeIcons:o})=>{e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0);const l=e.availability?.available;return React.createElement("div",{className:`bif-row ${t?"bif-selected":""} ${l?"":"is-unavailable"} ${i&&e.property_image?"":"no-image"}`},i&&e.property_image&&React.createElement("div",{className:"bif-row__thumb"},React.createElement("img",{loading:"lazy",src:e.property_image,alt:e.property_name})),React.createElement("div",{className:"bif-row__main"},React.createElement("div",{className:"bif-row__top"},React.createElement("h3",{className:"bif-row__title"},e.property_name),React.createElement("span",{className:"bif-dot "+(c=l,c?"ok":"na"),"aria-hidden":"true"})),o&&e.property_features&&React.createElement("ul",{className:"bif-amenities bif-amenities--inline"},1===e.property_features.wifi&&React.createElement("li",null,React.createElement("span",null,"📶 WiFi")),e.property_features.queen_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.queen_beds," Queen")),e.property_features.king_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.king_beds," King")),e.property_features.double_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.double_beds," Double")),e.property_features.single_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.single_beds," Single")),e.property_features.bunk_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.bunk_beds," Bunk")),e.property_features.sofa_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.sofa_beds," Sofa bed")),e.property_features.bedrooms&&React.createElement("li",null,React.createElement("span",null,"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":"")),e.property_features.living_areas&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":"")))),e.availability?.dates&&React.createElement("div",{className:"bif-row__rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-rmini "+(e.availability?"ok":"na")},React.createElement("div",{className:"bif-rmini__date"},e.date_formatted),React.createElement("div",{className:"bif-rmini__amt"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-row__cta"},l?React.createElement("button",{onClick:a,className:"bif-btn "+(t?"bif-btn-selected":"bif-btn-select")},t?"✓ Selected":"Select"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled"},"Unavailable")),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras",style:{gridColumn:"1 / -1",marginTop:"1rem"}},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount)))))));var c},N=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:i,includeIcons:o})=>{const l=e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0)||0,c=e.availability?.available,s=(e,t,a)=>{if(e)return"Available";switch(t){case"Booked Out":return"Booked Out";case"No Tariff Set":return"No Rates Set";case"Min Nights":return`Minimum ${a||2} Nights`;default:return"Unavailable"}};return React.createElement("div",{className:`bif-property-card ${t?"bif-selected":""} ${c?"":"bif-unavailable"}`},React.createElement("div",{className:"bif-property-header"},i&&e.property_image&&React.createElement("div",{className:"bif-property-image"},React.createElement("img",{src:e.property_image,alt:e.property_name})),React.createElement("div",{className:"bif-property-info"},React.createElement("h3",{className:"bif-property-name"},e.property_name),e.property_description&&React.createElement("p",{className:"bif-property-description"},e.property_description),o&&e.property_features&&React.createElement("div",{className:"bif-property-icons"},1===e.property_features.wifi&&React.createElement("span",{className:"bif-property-icon",title:"WiFi Available"},"📶 WiFi"),e.property_features.queen_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.queen_beds} Queen bed${e.property_features.queen_beds>1?"s":""}`},"🛏️ ",e.property_features.queen_beds," Queen"),e.property_features.king_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.king_beds} King bed${e.property_features.king_beds>1?"s":""}`},"🛏️ ",e.property_features.king_beds," King"),e.property_features.double_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.double_beds} Double bed${e.property_features.double_beds>1?"s":""}`},"🛏️ ",e.property_features.double_beds," Double"),e.property_features.single_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.single_beds} Single bed${e.property_features.single_beds>1?"s":""}`},"🛏️ ",e.property_features.single_beds," Single"),e.property_features.bunk_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.bunk_beds} Bunk bed${e.property_features.bunk_beds>1?"s":""}`},"🛏️ ",e.property_features.bunk_beds," Bunk"),e.property_features.sofa_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.sofa_beds} Sofa bed${e.property_features.sofa_beds>1?"s":""}`},"🛋️ ",e.property_features.sofa_beds," Sofa bed"),e.property_features.bedrooms&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.bedrooms} bedroom${e.property_features.bedrooms>1?"s":""}`},"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":""),e.property_features.living_areas&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.living_areas} living area${e.property_features.living_areas>1?"s":""}`},"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":""))),React.createElement("div",{className:"bif-property-status-container"},React.createElement("span",{className:`bif-property-status ${((e,t)=>{if(e)return"bif-status-available";switch(t){case"Booked Out":return"bif-status-booked";case"No Tariff Set":return"bif-status-no-rate";case"Min Nights":return"bif-status-min-nights";default:return"bif-status-unavailable"}})(c,e.availability?.availability_reason)}`},s(c,e.availability?.availability_reason,e.availability?.min_nights)),c?React.createElement("button",{onClick:a,className:`bif-btn ${t?"bif-btn-selected":"bif-btn-select"} bif-header-btn`,style:{marginLeft:"0.75rem"}},t?"✓ Selected":"Select Property"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled bif-header-btn",style:{marginLeft:"0.75rem"}},s(c,e.availability?.availability_reason,e.availability?.min_nights)))),e.availability?.dates&&React.createElement("div",{className:"bif-availability-details"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Daily Rate Breakdown"),React.createElement("div",{className:"bif-daily-rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-daily-rate "+(e.availability?"bif-available":"bif-unavailable")},React.createElement("div",{className:"bif-date"},e.date_formatted),React.createElement("div",{className:"bif-rate"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-rate-summary"},React.createElement("div",{className:"bif-summary-row"},React.createElement("span",{className:"bif-total"},"Total: $",l)))),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount)))))))},C=({checkInDate:e,nights:t,onDateChange:a,onNightsChange:r,onCheckAvailability:n,isLoading:i,minNights:o,maxNights:l,buttonIcon:c="search"})=>{const s=(new Date).toISOString().split("T")[0],u={search:"🔍",calendar:"📅",home:"🏠",mapMarker:"📍",star:"⭐",pin:"📌",pinSmall:"📍",globe:"🌍"}[c]||"🔍";return React.createElement("div",{className:"bif-date-selector"},React.createElement("h2",{className:"bif-section-title"},"Select Your Dates"),React.createElement("div",{className:"bif-date-form"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Check-in Date"),React.createElement("input",{type:"date",value:e,onChange:e=>a(e.target.value),min:s,className:"bif-date-input"})),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Number of Nights"),React.createElement("select",{value:t,onChange:e=>r(parseInt(e.target.value)),className:"bif-nights-select"},[...Array(l-o+1).keys()].map((e=>{const t=o+e;return React.createElement("option",{key:t,value:t},t," ",1===t?"night":"nights")})))),React.createElement("div",{className:"bif-form-field"},React.createElement("button",{onClick:n,disabled:!e||i,className:"bif-btn bif-btn-primary bif-check-availability bif-has-icon-preview"},i?React.createElement(React.Fragment,null,React.createElement("div",{className:"bif-spinner"}),React.createElement("span",null,"Checking...")):React.createElement(React.Fragment,null,React.createElement("span",{className:"bif-icon-preview"},u),React.createElement("span",null,"Check Availability"))))))},k=({selectedProperties:e,selectedExtras:t,nights:a,total:r,discountCode:n,onDiscountCodeChange:i,onApplyDiscount:o,checkInDate:l,summary:c,showDiscount:s=!1,showRedeemGiftCertificate:u=!1,giftCertificate:m,onGiftCertificateChange:p,showGiftCertificateForm:d,onTriggerShowGiftCertificate:f,onApplyGiftCertificate:b,gcResult:y,gcLoading:h=!1})=>{Object.values(t).flat().reduce(((e,t)=>e+(t.amount||0)),0);const g=c&&parseFloat(c.order_discount_code_total||0)>0;return e&&0!==e.length?React.createElement("div",{className:"bif-booking-summary"},React.createElement("h3",{className:"bif-section-title"},"Booking Summary"),React.createElement("div",{className:"bif-summary-content"},e.map((e=>{const a=e.sub_total||e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0)||0,r=e.mandatory_extras_total||e.mandatory_extras?.reduce(((e,t)=>e+parseFloat(t.amount||0)),0)||0,n=e.optional_extras_total||0,i=parseFloat(a)+parseFloat(r)+parseFloat(n);return React.createElement("div",{key:e.id,className:"bif-property-summary"},React.createElement("h5",{className:"bif-property-summary-name"},e.property_name),React.createElement("div",{className:"bif-property-total"},React.createElement("div",{className:"bif-total-row"},React.createElement("span",null,"Property Subtotal"),React.createElement("span",null,"$",parseFloat(a).toFixed(2)))),e.mandatory_extras&&e.mandatory_extras.length>0&&React.createElement("div",{className:"bif-mandatory-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Mandatory Extras"),e.mandatory_extras.map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#dc2626"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))),e.optional_extras&&e.optional_extras.filter((e=>e.selected)).length>0&&React.createElement("div",{className:"bif-optional-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),e.optional_extras.filter((e=>e.selected)).map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#92400e"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))),React.createElement("div",{className:"bif-property-total"},React.createElement("div",{className:"bif-total-row bif-subtotal"},React.createElement("span",null,"Property Total"),React.createElement("span",null,"$",parseFloat(i).toFixed(2)))),!e.optional_extras&&t[e.id]&&t[e.id].length>0&&React.createElement("div",{className:"bif-optional-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Selected Optional Extras"),t[e.id].map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#92400e"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))))})),s&&React.createElement("div",{className:"bif-summary-section"},React.createElement("div",{className:"bif-discount-form"},React.createElement("input",{type:"text",placeholder:"Enter discount code",value:n,onChange:e=>i(e.target.value),className:"bif-discount-input"}),React.createElement("button",{onClick:()=>{n.trim()&&o(n)},className:"bif-btn bif-btn-secondary"},"Apply")),g&&React.createElement("div",{className:"bif-discount-applied"},"Discount code applied")),u&&c&&React.createElement("div",{className:"bif-summary-section"},React.createElement("div",{className:"bif-gift-certificate-section"},d?React.createElement("div",{className:"bif-gift-certificate-form"},React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Certificate Number:"),React.createElement("input",{type:"text",value:m.number,onChange:e=>p({...m,number:e.target.value}),className:"bif-form-control",placeholder:"Enter certificate number",disabled:h})),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Pin:"),React.createElement("input",{type:"number",value:m.pin,onChange:e=>p({...m,pin:e.target.value}),className:"bif-form-control",placeholder:"Enter pin",disabled:h}))),React.createElement("button",{className:"bif-btn bif-btn-secondary",onClick:b,disabled:h},h?"Applying...":"Apply")):React.createElement("button",{className:"bif-btn bif-btn-secondary",onClick:f},"Apply Gift Certificate"),y&&y.valid&&React.createElement("div",{className:"bif-gift-certificate-success"},React.createElement("p",null,"✅ Successfully Applied Gift Certificate"),React.createElement("p",null,y.result),parseFloat(y.total)-parseFloat(y.gc_amount_applied)==0?React.createElement("p",null,React.createElement("strong",null,"🎉 Your gift certificate covers the full amount! No additional payment required.")):React.createElement(React.Fragment,null,React.createElement("p",null,"Remaining balance to pay: ",React.createElement("strong",null,"$",(parseFloat(y.total)-parseFloat(y.gc_amount_applied)).toFixed(2))),React.createElement("p",{style:{fontSize:"0.875rem",color:"#6b7280"}},"*Credit card surcharge will be added at payment")),React.createElement("p",null,"Gift Certificate balance after order: ",React.createElement("strong",null,"$",parseFloat(y.gc_balance_after_order).toFixed(2)))))),React.createElement("div",{className:"bif-grand-total"},y&&y.valid&&React.createElement("div",{className:"bif-total-row"},React.createElement("span",null,"Order Total"),React.createElement("span",null,"$",parseFloat(y.total||c.order_grand_total).toFixed(2))),y&&y.valid&&React.createElement("div",{className:"bif-total-row",style:{color:"#059669"}},React.createElement("span",null,"Gift Certificate Applied"),React.createElement("span",null,"-$",parseFloat(y.gc_amount_applied).toFixed(2))),React.createElement("div",{className:"bif-total-main"},React.createElement("span",null,y&&y.valid&&parseFloat(y.total)-parseFloat(y.gc_amount_applied)==0?"Total Paid by Gift Certificate":y&&y.valid?"Balance Due":"Total Cost"),React.createElement("span",{className:"bif-total-amount"},"$",y&&y.valid?(parseFloat(y.total)-parseFloat(y.gc_amount_applied)).toFixed(2):parseFloat(r).toFixed(2))),y&&y.valid&&parseFloat(y.total)-parseFloat(y.gc_amount_applied)>0&&c&&c.order_has_surcharge&&React.createElement("div",{className:"bif-surcharge-note",style:{fontSize:"0.875rem",color:"#6b7280",marginTop:"0.5rem"}},"*Credit card surcharge will be added at payment"),c&&parseFloat(c.order_discount_code_total||0)>0&&React.createElement("div",{className:"bif-discount-text"},"Includes discount of $",parseFloat(c.order_discount_code_total||0).toFixed(2))))):null},w=({userDetails:e,onUpdateDetails:t,formErrors:a,showSuburb:r=!0,showPostcode:n=!0,showComments:i=!1})=>React.createElement("div",{className:"bif-customer-details"},React.createElement("h2",{className:"bif-section-title"},"Your Details"),React.createElement("div",{className:"bif-customer-form"},React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"First Name *"),React.createElement("input",{type:"text",value:e.firstName,onChange:e=>t("firstName",e.target.value),placeholder:"Enter your first name",className:a.firstName?"bif-error":""}),a.firstName&&React.createElement("div",{className:"bif-field-error"},a.firstName)),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Last Name *"),React.createElement("input",{type:"text",value:e.lastName,onChange:e=>t("lastName",e.target.value),placeholder:"Enter your last name",className:a.lastName?"bif-error":""}),a.lastName&&React.createElement("div",{className:"bif-field-error"},a.lastName))),React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Email *"),React.createElement("input",{type:"email",value:e.email,onChange:e=>t("email",e.target.value),placeholder:"Enter your email address",className:a.email?"bif-error":""}),a.email&&React.createElement("div",{className:"bif-field-error"},a.email)),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Phone *"),React.createElement("input",{type:"tel",value:e.phone,onChange:e=>t("phone",e.target.value),placeholder:"Enter your phone number",className:a.phone?"bif-error":""}),a.phone&&React.createElement("div",{className:"bif-field-error"},a.phone))),(n||r)&&React.createElement("div",{className:"bif-form-row"},n&&React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Postcode"),React.createElement("input",{type:"text",value:e.postcode,onChange:e=>t("postcode",e.target.value),placeholder:"Enter your postcode"})),r&&React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Suburb"),React.createElement("input",{type:"text",value:e.suburb,onChange:e=>t("suburb",e.target.value),placeholder:"Enter your suburb"}))),i&&React.createElement("div",{className:"bif-form-row bif-full-width"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Comments"),React.createElement("textarea",{value:e.comments,onChange:e=>t("comments",e.target.value),rows:4,placeholder:"Any special requests or comments..."}))))),S=({summary:t,propertyIds:a,userDetails:r,paymentType:n,giftCertificate:i})=>{const o=(0,g.useStripe)(),l=(0,g.useElements)(),[c,s]=(0,e.useState)(!1),[u,m]=(0,e.useState)(""),[p,d]=(0,e.useState)(!1),[f,b]=(0,e.useState)(""),y=async e=>{e.preventDefault(),s(!0),m("");try{let e={amount:"deposit"===n?t.order_deposit_amount:t.order_payable_now,currency:"AUD",summary:t,propertyIds:"string"==typeof a?a.split(",").map((e=>parseInt(e.trim()))):a,userDetails:r,paymentType:n};if("gift"===n&&i)e.giftCertificateApplied=!0,e.giftCertificate=i,e.amount=0;else{if(!o||!l)return void console.error("Stripe.js has not loaded yet.");const t=l.getElement(g.CardElement),{paymentMethod:a,error:r}=await o.createPaymentMethod({type:"card",card:t});if(r)return console.error(r),m(r.message),void s(!1);e.stripePaymentMethodId=a.id,i&&i.valid&&(e.giftCertificateApplied=!0,e.giftCertificate=i)}const c=await fetch(`${E}/bookitfast/v1/process-payment`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),u=await c.json();if(!u.success)throw new Error(u.message||"Payment failed.");console.log("Payment successful:",u),b(u.data.charge),d(!0)}catch(e){console.error("Payment error:",e),m(e.message)}finally{s(!1)}};return React.createElement("div",{className:"bif-payment-container"},React.createElement("h3",null,"gift"===n?"🎁 Gift Certificate Payment":"💳 Payment Details"),u&&React.createElement("div",{className:"bif-error-message"},u),p?React.createElement("div",{className:"bif-success-message"},React.createElement("p",null,React.createElement("strong",null,"✅ Payment Successful!")),f&&React.createElement("p",null,React.createElement("a",{href:f,target:"_blank",rel:"noopener noreferrer"},"📄 Click here to view your receipt"))):"gift"===n?React.createElement("div",{className:"bif-gift-certificate-payment-form"},React.createElement("div",{className:"bif-gift-certificate-summary"},React.createElement("p",null,"🎁 ",React.createElement("strong",null,"Paying with Gift Certificate")),React.createElement("p",null,"Amount: ",React.createElement("strong",null,"$",parseFloat(i.gc_amount_applied||0).toFixed(2))),React.createElement("p",null,"No credit card required - your gift certificate will be charged automatically.")),React.createElement("button",{onClick:y,disabled:c,className:"bif-btn bif-btn-primary bif-btn-large"},c?"Processing...":"Complete Booking")):React.createElement("form",{onSubmit:y,className:"bif-stripe-form"},React.createElement("div",{className:"bif-card-element-container"},React.createElement(g.CardElement,{options:{hidePostalCode:!0,style:{base:{fontSize:"16px",color:"#424770","::placeholder":{color:"#aab7c4"}},invalid:{color:"#9e2146"}}}})),React.createElement("button",{type:"submit",disabled:!o||c,className:"bif-btn bif-btn-primary bif-btn-large"},c?"Processing...":"Pay Now")))},x=({propertyIds:t="",showDiscount:a=!1,showSuburb:r=!0,showPostcode:n=!0,showRedeemGiftCertificate:i=!1,showComments:o=!1,buttonColor:l="#0073aa",buttonTextColor:c="#ffffff",minNights:s=1,maxNights:u=14,showPropertyImages:m=!1,includeIcons:p=!1,layoutStyle:d="cards",buttonIcon:f="search"})=>{const b=v("nights"),y=b&&!isNaN(b)?Math.max(parseInt(b,10),s):s,x=v("start"),P=v("discount"),O=x?(e=>{const t=e.split("-");if(3===t.length){const[e,a,r]=t.map(Number);if(!isNaN(e)&&!isNaN(a)&&!isNaN(r)){const t=new Date(r,a-1,e);return t.setHours(12,0,0,0),t.toISOString().split("T")[0]}}return null})(x):"",j="string"==typeof t?t:"",[T,F]=(0,e.useState)({date:O,nights:y}),[I,A]=(0,e.useState)(null),[$,D]=(0,e.useState)({}),[B,G]=(0,e.useState)(null),[L,M]=(0,e.useState)(null),[q,U]=(0,e.useState)(!1),[Y,W]=(0,e.useState)(""),[z,H]=(0,e.useState)({firstName:"",lastName:"",phone:"",email:"",postcode:"",suburb:"",comments:""}),[J,K]=(0,e.useState)(!1),[Q,V]=(0,e.useState)(!1),[X,Z]=(0,e.useState)(P),[ee,te]=(0,e.useState)(null),[ae,re]=(0,e.useState)(!1),[ne,ie]=(0,e.useState)(null),[oe,le]=(0,e.useState)({}),[ce,se]=(0,e.useState)({number:"",pin:""}),[ue,me]=(0,e.useState)(!1),[pe,de]=(0,e.useState)(null),[fe,be]=(0,e.useState)(!1),[ye,he]=(0,e.useState)({}),[ge,Ee]=(0,e.useState)(!1);(0,e.useEffect)((()=>{O&&y&&(console.log("Auto-checking availability with:",O,y),ve(O,y))}),[O,y]);const ve=async(e=T.date,t=T.nights)=>{if(!e||!j)return void console.warn("fetchAvailability skipped - Missing startDate or propertyIds");const a=T.date,r=j.split(",").filter((e=>""!==e.trim()));U(!0),W(""),Ee(!1);try{const e=await fetch(`${E}/bookitfast/v1/availability`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:r,start:a,nights:t})}),n=await e.json();A(n),Ee(!0);const i=Object.keys(n).reduce(((e,t)=>(e[t]=!1,e)),{});D(i)}catch(e){console.error(e),W("Failed to fetch availability. Please try again.")}finally{U(!1)}},Re=(e,t)=>{he((a=>{const r=a[e]||{},n={...a,[e]:{...r,[t]:!r[t]}};return _e($,X,n,0),n}))},_e=async(e,t=null,a=ye,r=0)=>{const n=T.date,i=T.nights,o=new Date(new Date(n).getTime()+864e5*i).toISOString().split("T")[0];U(!0),W("");try{const r=await fetch(`${E}/bookitfast/v1/availability/summary`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({selected:e,selected_optional_extras:a,start:n,end:o,discount_code:t||null})});if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);const i=await r.json();M(i),i.stripe_publishable_key&&G(h(i.stripe_publishable_key))}catch(n){console.error("Error fetching summary:",n),r<3?(console.log(`Retrying... Attempt ${r+1}`),await _e(e,t,a,r+1)):W("Failed to fetch summary. Please try again.")}finally{U(!1)}},Ne=e=>{(()=>{const e={};return z.firstName.trim()||(e.firstName="First name is required"),z.lastName.trim()||(e.lastName="Last name is required"),z.email.trim()||(e.email="Email is required"),z.phone.trim()||(e.phone="Phone is required"),J||(e.agreeToTerms="You must agree to the terms and conditions"),Q||(e.consentToDataSharing="You must consent to data sharing with Book It Fast service"),le(e),0===Object.keys(e).length})()&&(ie(e),re(!0))},Ce=I?Object.entries(I).filter((([e])=>$[e])).map((([e,t])=>({id:e,...t,...L?.property_summaries?.[e]||{},selectedExtras:ye[e],onToggleExtra:Re}))):[];return React.createElement("div",{className:"bif-booking-container",style:{"--bif-button-color":l,"--bif-button-color-hover":`${l}dd`,"--bif-button-color-active":`${l}bb`,"--bif-button-text-color":c}},React.createElement("div",{className:"bif-booking-steps"},React.createElement(C,{checkInDate:T.date,nights:T.nights,onDateChange:e=>F((t=>({...t,date:e}))),onNightsChange:e=>F((t=>({...t,nights:e}))),onCheckAvailability:ve,isLoading:q,minNights:s,maxNights:u,buttonIcon:f}),Y&&React.createElement("div",{className:"bif-error-message"},Y),ge&&I&&React.createElement("div",{className:"bif-property-list"},React.createElement("h2",{className:"bif-section-title"},"Available Properties"),React.createElement("div",{className:`bif-properties bif-properties--${d}`},Object.entries(I).map((([e,t])=>{const a={key:e,property:{id:e,...t,selectedExtras:ye[e],onToggleExtra:Re},isSelected:$[e],onToggle:()=>(async e=>{const t={...$,[e]:!$[e]};D(t),Object.values(t).includes(!0)?await _e(t,X):M(null)})(e),nights:T.nights,checkInDate:T.date,showPropertyImages:m,includeIcons:p};switch(d){case"grid":return React.createElement(R,a);case"rows":return React.createElement(_,a);default:return React.createElement(N,a)}})))),L&&Ce.length>0&&React.createElement(k,{selectedProperties:Ce,selectedExtras:ye,nights:T.nights,total:(L.order_payable_now||0)-(L.order_surcharge||0),discountCode:X,onDiscountCodeChange:Z,onApplyDiscount:e=>{Object.keys($).some((e=>$[e]))&&_e($,e)},checkInDate:T.date,summary:L,showDiscount:a,showRedeemGiftCertificate:i,giftCertificate:ce,onGiftCertificateChange:se,showGiftCertificateForm:ue,onTriggerShowGiftCertificate:()=>{me(!0)},onApplyGiftCertificate:async e=>{if(e.preventDefault(),console.log("Gift Certificate: Apply button clicked"),console.log("Gift Certificate Data:",ce),console.log("Current Summary:",L),fe)return void console.log("Gift Certificate: Already processing, ignoring click");if(!L)return void console.error("Gift Certificate: No summary available");if(!ce.number||!ce.pin)return console.error("Gift Certificate: Missing number or pin"),void alert("Please enter both certificate number and pin");be(!0),console.log("Gift Certificate: Setting loading state to true");let t={...L};if(L.order_weekly_discount>0){console.log("Gift Certificate: Weekly discount detected, adjusting summary for gift certificate calculation"),console.log("Gift Certificate: Original order_grand_total:",L.order_grand_total),console.log("Gift Certificate: Order weekly discount:",L.order_weekly_discount),console.log("Gift Certificate: Order surcharge:",L.order_surcharge);const e=parseFloat(L.order_sub_total)+parseFloat(L.order_mandatory_extras_total);console.log("Gift Certificate: Total before weekly discount (excluding surcharge):",e),t={...L,order_grand_total:e.toString(),order_total_before_surcharge:e,order_payable_now:e.toString(),order_surcharge:0,order_has_surcharge:!1},console.log("Gift Certificate: Adjusted summary for gift certificate:",t)}const a={certificate:ce,summary:t};console.log("Gift Certificate: Sending request with data:",a);try{const e=await fetch(`${E}/bookitfast/v1/apply-gift-certificate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(console.log("Gift Certificate: Response status:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();console.log("Gift Certificate: Response data:",t),t.valid?(de(t),t.summary&&(M(t.summary),console.log("Gift Certificate: Updated summary:",t.summary)),console.log("Gift Certificate: Application successful"),console.log("Gift Certificate: Order payable now:",t.order_payable_now)):(console.error("Gift Certificate: API returned error:",t),alert(t.message||"Failed to apply gift certificate"))}catch(e){console.error("Gift Certificate: Error applying certificate:",e),alert("Error applying gift certificate. Please try again.")}finally{be(!1),console.log("Gift Certificate: Setting loading state to false")}},gcResult:pe,gcLoading:fe}),L&&Ce.length>0&&React.createElement(w,{userDetails:z,onUpdateDetails:(e,t)=>{H((a=>({...a,[e]:t}))),oe[e]&&le((t=>({...t,[e]:null})))},formErrors:oe,showSuburb:r,showPostcode:n,showComments:o}),L&&Ce.length>0&&React.createElement("div",{className:"bif-terms-payment"},React.createElement("div",{className:"bif-terms-checkbox"},React.createElement("input",{type:"checkbox",id:"agreeToTerms",checked:J,onChange:()=>K(!J)}),React.createElement("label",{htmlFor:"agreeToTerms"},"I have read and agree to the"," ",L.order_booking_conditions?.map(((e,t)=>React.createElement("span",{key:t},React.createElement("a",{href:e.url,target:"_blank",rel:"noopener noreferrer"},e.title),t<L.order_booking_conditions.length-2?", ":"",t===L.order_booking_conditions.length-2?" and ":"")))),oe.agreeToTerms&&React.createElement("div",{className:"bif-field-error"},oe.agreeToTerms)),React.createElement("div",{className:"bif-privacy-consent"},React.createElement("input",{type:"checkbox",id:"consentToDataSharing",checked:Q,onChange:()=>V(!Q)}),React.createElement("label",{htmlFor:"consentToDataSharing"},"I consent to my personal information being transmitted to and processed by Book It Fast (",React.createElement("a",{href:"https://bookitfast.app/privacy-policy",target:"_blank",rel:"noopener noreferrer"},"Privacy Policy"),") for booking and payment processing purposes."),oe.consentToDataSharing&&React.createElement("div",{className:"bif-field-error"},oe.consentToDataSharing)),!ae&&React.createElement("div",{className:"bif-payment-options"},Object.keys(oe).length>0&&React.createElement("div",{className:"bif-validation-error"},"Please complete all required fields before proceeding with payment."),pe&&pe.valid&&parseFloat(pe.total)-parseFloat(pe.gc_amount_applied)==0?React.createElement("div",{className:"bif-gift-certificate-payment"},React.createElement("div",{className:"bif-gift-certificate-full-coverage"},React.createElement("p",null,"🎉 ",React.createElement("strong",null,"Your gift certificate covers the full booking amount!")),React.createElement("p",null,"No additional payment required.")),React.createElement("button",{className:"bif-btn bif-btn-primary bif-btn-large",onClick:()=>Ne("gift")},"🎁 Complete Booking with Gift Certificate")):React.createElement(React.Fragment,null,L.order_surcharge>0&&parseFloat(L.order_payable_now||0)>0&&React.createElement("div",{className:"bif-surcharge-info"},React.createElement("p",null,"Please note a credit card surcharge applies of ",L.order_deposit_surcharge>0&&` $${L.order_deposit_surcharge} for deposit or `,"$",L.order_surcharge," for the full payment.")),L.order_deposit_amount>0?React.createElement("div",{className:"bif-payment-buttons"},React.createElement("button",{className:"bif-btn bif-btn-primary",onClick:()=>Ne("deposit")},"💳 Pay Deposit ($",L.order_deposit_amount,")"),React.createElement("button",{className:"bif-btn bif-btn-primary",onClick:()=>Ne("full")},"💳 Pay In Full ($",pe&&pe.valid?parseFloat(pe.order_payable_now).toFixed(2):L.order_payable_now,")")):React.createElement("button",{className:"bif-btn bif-btn-primary bif-btn-large",onClick:()=>Ne("full")},"💳 Complete Booking - $",pe&&pe.valid?parseFloat(pe.order_payable_now).toFixed(2):L.order_payable_now)))),L&&ae&&React.createElement("div",{className:"bif-payment-form-container"},"gift"===ne?React.createElement(S,{summary:L,propertyIds:j.split(",").map((e=>parseInt(e.trim()))),userDetails:z,paymentType:ne,giftCertificate:pe}):B&&React.createElement(g.Elements,{stripe:B},React.createElement(S,{summary:L,propertyIds:j.split(",").map((e=>parseInt(e.trim()))),userDetails:z,paymentType:ne,giftCertificate:pe})))))};document.addEventListener("DOMContentLoaded",(()=>{const e=document.getElementById("bif-book-it-fast-multi-embed");if(e){const a=e.dataset.propertyIds||"",r="true"===e.dataset.showDiscount,n="true"===e.dataset.showSuburb,o="true"===e.dataset.showPostcode,l="true"===e.dataset.showRedeemGiftCertificate,c="true"===e.dataset.showComments,s=e.dataset.buttonColor||"#0073aa",u=e.dataset.buttonTextColor||"#ffffff",m=parseInt(e.dataset.minNights)||1,p=parseInt(e.dataset.maxNights)||14,d="true"===e.dataset.showPropertyImages,f="true"===e.dataset.includeIcons,b=e.dataset.layoutStyle||"cards",y=e.dataset.buttonIcon||"search";i().render(t().createElement(x,{propertyIds:a,showDiscount:r,showSuburb:n,showPostcode:o,showRedeemGiftCertificate:l,showComments:c,buttonColor:s,buttonTextColor:u,minNights:m,maxNights:p,showPropertyImages:d,includeIcons:f,layoutStyle:b,buttonIcon:y}),e)}}))})()})();1 (()=>{var e={609:e=>{"use strict";e.exports=window.React},926:function(e,t,a){!function(e,t){"use strict";function a(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function r(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){if(null==e)return{};var a,r,n=function(e,t){if(null==e)return{};var a,r,n={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=a){var r,n,i=[],_n=!0,o=!1;try{for(a=a.call(e);!(_n=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);_n=!0);}catch(e){o=!0,n=e}finally{try{_n||null==a.return||a.return()}finally{if(o)throw n}}return i}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?c(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}function s(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var u,m,p,d,f={exports:{}};f.exports=function(){if(d)return p;d=1;var e=m?u:(m=1,u="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED");function t(){}function a(){}return a.resetWarningCache=t,p=function(){function r(t,a,r,n,i,o){if(o!==e){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function n(){return r}r.isRequired=r;var i={array:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:n,element:r,elementType:r,instanceOf:n,node:r,objectOf:n,oneOf:n,oneOfType:n,shape:n,exact:n,checkPropTypes:a,resetWarningCache:t};return i.PropTypes=i,i}}()();var b=s(f.exports),y=function(e,a,r){var n=!!r,i=t.useRef(r);t.useEffect((function(){i.current=r}),[r]),t.useEffect((function(){if(!n||!e)return function(){};var t=function(){i.current&&i.current.apply(i,arguments)};return e.on(a,t),function(){e.off(a,t)}}),[n,a,e,i])},h=function(e){var a=t.useRef(e);return t.useEffect((function(){a.current=e}),[e]),a.current},g=function(e){return null!==e&&"object"===n(e)},E="[object Object]",v=function e(t,a){if(!g(t)||!g(a))return t===a;var r=Array.isArray(t);if(r!==Array.isArray(a))return!1;var n=Object.prototype.toString.call(t)===E;if(n!==(Object.prototype.toString.call(a)===E))return!1;if(!n&&!r)return t===a;var i=Object.keys(t),o=Object.keys(a);if(i.length!==o.length)return!1;for(var l={},c=0;c<i.length;c+=1)l[i[c]]=!0;for(var s=0;s<o.length;s+=1)l[o[s]]=!0;var u=Object.keys(l);if(u.length!==i.length)return!1;var m=t,p=a;return u.every((function(t){return e(m[t],p[t])}))},R=function(e,t,a){return g(e)?Object.keys(e).reduce((function(n,o){var l=!g(t)||!v(e[o],t[o]);return a.includes(o)?(l&&console.warn("Unsupported prop change: options.".concat(o," is not a mutable property.")),n):l?r(r({},n||{}),{},i({},o,e[o])):n}),null):null},_="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",N=function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_;if(null===e||g(t=e)&&"function"==typeof t.elements&&"function"==typeof t.createToken&&"function"==typeof t.createPaymentMethod&&"function"==typeof t.confirmCardPayment)return e;throw new Error(a)},C=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_;if(function(e){return g(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then((function(e){return N(e,t)}))};var a=N(e,t);return null===a?{tag:"empty"}:{tag:"sync",stripe:a}},k=function(e){e&&e._registerWrapper&&e.registerAppInfo&&(e._registerWrapper({name:"react-stripe-js",version:"3.6.0"}),e.registerAppInfo({name:"react-stripe-js",version:"3.6.0",url:"https://stripe.com/docs/stripe-js/react"}))},w=t.createContext(null);w.displayName="ElementsContext";var S=function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e},x=function(e){var a=e.stripe,r=e.options,n=e.children,i=t.useMemo((function(){return C(a)}),[a]),o=l(t.useState((function(){return{stripe:"sync"===i.tag?i.stripe:null,elements:"sync"===i.tag?i.stripe.elements(r):null}})),2),c=o[0],s=o[1];t.useEffect((function(){var e=!0,t=function(e){s((function(t){return t.stripe?t:{stripe:e,elements:e.elements(r)}}))};return"async"!==i.tag||c.stripe?"sync"!==i.tag||c.stripe||t(i.stripe):i.stripePromise.then((function(a){a&&e&&t(a)})),function(){e=!1}}),[i,c,r]);var u=h(a);t.useEffect((function(){null!==u&&u!==a&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")}),[u,a]);var m=h(r);return t.useEffect((function(){if(c.elements){var e=R(r,m,["clientSecret","fonts"]);e&&c.elements.update(e)}}),[r,m,c.elements]),t.useEffect((function(){k(c.stripe)}),[c.stripe]),t.createElement(w.Provider,{value:c},n)};x.propTypes={stripe:b.any,options:b.object};var P=function(e){var a=t.useContext(w);return S(a,e)},O=function(e){return(0,e.children)(P("mounts <ElementsConsumer>"))};O.propTypes={children:b.func.isRequired};var T=["on","session"],j=t.createContext(null);j.displayName="CheckoutSdkContext";var F=function(e,t){if(!e)throw new Error("Could not find CheckoutProvider context; You need to wrap the part of your app that ".concat(t," in an <CheckoutProvider> provider."));return e},I=t.createContext(null);I.displayName="CheckoutContext";var A=function(e){var a=e.stripe,r=e.options,n=e.children,i=t.useMemo((function(){return C(a,"Invalid prop `stripe` supplied to `CheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")}),[a]),c=l(t.useState(null),2),s=c[0],u=c[1],m=l(t.useState((function(){return{stripe:"sync"===i.tag?i.stripe:null,checkoutSdk:null}})),2),p=m[0],d=m[1],f=function(e,t){d((function(a){return a.stripe&&a.checkoutSdk?a:{stripe:e,checkoutSdk:t}}))},b=t.useRef(!1);t.useEffect((function(){var e=!0;return"async"!==i.tag||p.stripe?"sync"===i.tag&&i.stripe&&!b.current&&(b.current=!0,i.stripe.initCheckout(r).then((function(e){e&&(f(i.stripe,e),e.on("change",u))}))):i.stripePromise.then((function(t){t&&e&&!b.current&&(b.current=!0,t.initCheckout(r).then((function(e){e&&(f(t,e),e.on("change",u))})))})),function(){e=!1}}),[i,p,r,u]);var y=h(a);t.useEffect((function(){null!==y&&y!==a&&console.warn("Unsupported prop change on CheckoutProvider: You cannot change the `stripe` prop after setting it.")}),[y,a]);var g=h(r);t.useEffect((function(){var e,t;if(p.checkoutSdk){var a=null==g||null===(e=g.elementsOptions)||void 0===e?void 0:e.appearance,n=null==r||null===(t=r.elementsOptions)||void 0===t?void 0:t.appearance;n&&!v(n,a)&&p.checkoutSdk.changeAppearance(n)}}),[r,g,p.checkoutSdk]),t.useEffect((function(){k(p.stripe)}),[p.stripe]);var E=t.useMemo((function(){return function(e,t){if(!e)return null;e.on,e.session;var a=o(e,T);return t?Object.assign(t,a):Object.assign(e.session(),a)}(p.checkoutSdk,s)}),[p.checkoutSdk,s]);return p.checkoutSdk?t.createElement(j.Provider,{value:p},t.createElement(I.Provider,{value:E},n)):null};A.propTypes={stripe:b.any,options:b.shape({fetchClientSecret:b.func.isRequired,elementsOptions:b.object}).isRequired};var $=function(e){var a=t.useContext(j),r=t.useContext(w);if(a&&r)throw new Error("You cannot wrap the part of your app that ".concat(e," in both <CheckoutProvider> and <Elements> providers."));return a?F(a,e):S(r,e)},D=["mode"],B=function(e,a){var r,n="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),i=a?function(e){$("mounts <".concat(n,">"));var a=e.id,r=e.className;return t.createElement("div",{id:a,className:r})}:function(a){var r,i=a.id,c=a.className,s=a.options,u=void 0===s?{}:s,m=a.onBlur,p=a.onFocus,d=a.onReady,f=a.onChange,b=a.onEscape,g=a.onClick,E=a.onLoadError,v=a.onLoaderStart,_=a.onNetworksChange,N=a.onConfirm,C=a.onCancel,k=a.onShippingAddressChange,w=a.onShippingRateChange,S=$("mounts <".concat(n,">")),x="elements"in S?S.elements:null,P="checkoutSdk"in S?S.checkoutSdk:null,O=l(t.useState(null),2),T=O[0],j=O[1],F=t.useRef(null),I=t.useRef(null);y(T,"blur",m),y(T,"focus",p),y(T,"escape",b),y(T,"click",g),y(T,"loaderror",E),y(T,"loaderstart",v),y(T,"networkschange",_),y(T,"confirm",N),y(T,"cancel",C),y(T,"shippingaddresschange",k),y(T,"shippingratechange",w),y(T,"change",f),d&&(r="expressCheckout"===e?d:function(){d(T)}),y(T,"ready",r),t.useLayoutEffect((function(){if(null===F.current&&null!==I.current&&(x||P)){var t=null;if(P)switch(e){case"payment":t=P.createPaymentElement(u);break;case"address":if(!("mode"in u))throw new Error("You must supply options.mode. mode must be 'billing' or 'shipping'.");var a=u.mode,r=o(u,D);if("shipping"===a)t=P.createShippingAddressElement(r);else{if("billing"!==a)throw new Error("Invalid options.mode. mode must be 'billing' or 'shipping'.");t=P.createBillingAddressElement(r)}break;case"expressCheckout":t=P.createExpressCheckoutElement(u);break;case"currencySelector":t=P.createCurrencySelectorElement();break;default:throw new Error("Invalid Element type ".concat(n,". You must use either the <PaymentElement />, <AddressElement options={{mode: 'shipping'}} />, <AddressElement options={{mode: 'billing'}} />, or <ExpressCheckoutElement />."))}else x&&(t=x.create(e,u));F.current=t,j(t),t&&t.mount(I.current)}}),[x,P,u]);var A=h(u);return t.useEffect((function(){if(F.current){var e=R(u,A,["paymentRequest"]);e&&"update"in F.current&&F.current.update(e)}}),[u,A]),t.useLayoutEffect((function(){return function(){if(F.current&&"function"==typeof F.current.destroy)try{F.current.destroy(),F.current=null}catch(e){}}}),[]),t.createElement("div",{id:i,className:c,ref:I})};return i.propTypes={id:b.string,className:b.string,onChange:b.func,onBlur:b.func,onFocus:b.func,onReady:b.func,onEscape:b.func,onClick:b.func,onLoadError:b.func,onLoaderStart:b.func,onNetworksChange:b.func,onConfirm:b.func,onCancel:b.func,onShippingAddressChange:b.func,onShippingRateChange:b.func,options:b.object},i.displayName=n,i.__elementType=e,i},G="undefined"==typeof window,L=t.createContext(null);L.displayName="EmbeddedCheckoutProviderContext";var M=function(){var e=t.useContext(L);if(!e)throw new Error("<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>");return e},q=G?function(e){var a=e.id,r=e.className;return M(),t.createElement("div",{id:a,className:r})}:function(e){var a=e.id,r=e.className,n=M().embeddedCheckout,i=t.useRef(!1),o=t.useRef(null);return t.useLayoutEffect((function(){return!i.current&&n&&null!==o.current&&(n.mount(o.current),i.current=!0),function(){if(i.current&&n)try{n.unmount(),i.current=!1}catch(e){}}}),[n]),t.createElement("div",{ref:o,id:a,className:r})},U=B("auBankAccount",G),Y=B("card",G),W=B("cardNumber",G),z=B("cardExpiry",G),H=B("cardCvc",G),J=B("fpxBank",G),K=B("iban",G),Q=B("idealBank",G),V=B("p24Bank",G),X=B("epsBank",G),Z=B("payment",G),ee=B("expressCheckout",G),te=B("currencySelector",G),ae=B("paymentRequestButton",G),re=B("linkAuthentication",G),ne=B("address",G),ie=B("shippingAddress",G),oe=B("paymentMethodMessaging",G),le=B("affirmMessage",G),ce=B("afterpayClearpayMessage",G);e.AddressElement=ne,e.AffirmMessageElement=le,e.AfterpayClearpayMessageElement=ce,e.AuBankAccountElement=U,e.CardCvcElement=H,e.CardElement=Y,e.CardExpiryElement=z,e.CardNumberElement=W,e.CheckoutProvider=A,e.CurrencySelectorElement=te,e.Elements=x,e.ElementsConsumer=O,e.EmbeddedCheckout=q,e.EmbeddedCheckoutProvider=function(e){var a=e.stripe,r=e.options,n=e.children,i=t.useMemo((function(){return C(a,"Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")}),[a]),o=t.useRef(null),c=t.useRef(null),s=l(t.useState({embeddedCheckout:null}),2),u=s[0],m=s[1];t.useEffect((function(){if(!c.current&&!o.current){var e=function(e){c.current||o.current||(c.current=e,o.current=c.current.initEmbeddedCheckout(r).then((function(e){m({embeddedCheckout:e})})))};"async"!==i.tag||c.current||!r.clientSecret&&!r.fetchClientSecret?"sync"!==i.tag||c.current||!r.clientSecret&&!r.fetchClientSecret||e(i.stripe):i.stripePromise.then((function(t){t&&e(t)}))}}),[i,r,u,c]),t.useEffect((function(){return function(){u.embeddedCheckout?(o.current=null,u.embeddedCheckout.destroy()):o.current&&o.current.then((function(){o.current=null,u.embeddedCheckout&&u.embeddedCheckout.destroy()}))}}),[u.embeddedCheckout]),t.useEffect((function(){k(c)}),[c]);var p=h(a);t.useEffect((function(){null!==p&&p!==a&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.")}),[p,a]);var d=h(r);return t.useEffect((function(){null!=d&&(null!=r?(void 0===r.clientSecret&&void 0===r.fetchClientSecret&&console.warn("Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`."),null!=d.clientSecret&&r.clientSecret!==d.clientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=d.fetchClientSecret&&r.fetchClientSecret!==d.fetchClientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),null!=d.onComplete&&r.onComplete!==d.onComplete&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it."),null!=d.onShippingDetailsChange&&r.onShippingDetailsChange!==d.onShippingDetailsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it."),null!=d.onLineItemsChange&&r.onLineItemsChange!==d.onLineItemsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.")):console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them."))}),[d,r]),t.createElement(L.Provider,{value:u},n)},e.EpsBankElement=X,e.ExpressCheckoutElement=ee,e.FpxBankElement=J,e.IbanElement=K,e.IdealBankElement=Q,e.LinkAuthenticationElement=re,e.P24BankElement=V,e.PaymentElement=Z,e.PaymentMethodMessagingElement=oe,e.PaymentRequestButtonElement=ae,e.ShippingAddressElement=ie,e.useCheckout=function(){!function(e){var a=t.useContext(j);F(a,e)}("calls useCheckout()");var e=t.useContext(I);if(!e)throw new Error("Could not find Checkout Context; You need to wrap the part of your app that calls useCheckout() in an <CheckoutProvider> provider.");return e},e.useElements=function(){return P("calls useElements()").elements},e.useStripe=function(){return $("calls useStripe()").stripe}}(t,a(609))}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=a(609),t=a.n(e);const r=window.ReactDOM;var n,i=a.n(r),o="https://js.stripe.com",l="".concat(o,"/v3"),c=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,s=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,u="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",m=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",a=document.createElement("script");a.src="".concat(l).concat(t);var r=document.head||document.body;if(!r)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return r.appendChild(a),a},p=null,d=null,f=null,b=!1,y=function(){return n||(n=(e=null,null!==p?p:(p=new Promise((function(t,a){if("undefined"!=typeof window&&"undefined"!=typeof document)if(window.Stripe&&e&&console.warn(u),window.Stripe)t(window.Stripe);else try{var r=function(){for(var e,t=document.querySelectorAll('script[src^="'.concat(o,'"]')),a=0;a<t.length;a++){var r=t[a];if(e=r.src,c.test(e)||s.test(e))return r}return null}();if(r&&e)console.warn(u);else if(r){if(r&&null!==f&&null!==d){var n;r.removeEventListener("load",f),r.removeEventListener("error",d),null===(n=r.parentNode)||void 0===n||n.removeChild(r),r=m(e)}}else r=m(e);f=function(e,t){return function(){window.Stripe?e(window.Stripe):t(new Error("Stripe.js not available"))}}(t,a),d=function(e){return function(t){e(new Error("Failed to load Stripe.js",{cause:t}))}}(a),r.addEventListener("load",f),r.addEventListener("error",d)}catch(e){return void a(e)}else t(null)}))).catch((function(e){return p=null,Promise.reject(e)}))).catch((function(e){return n=null,Promise.reject(e)})));var e};Promise.resolve().then((function(){return y()})).catch((function(e){b||console.warn(e)}));var h=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];b=!0;var r=Date.now();return y().then((function(e){return function(e,t,a){if(null===e)return null;var r=t[0].match(/^pk_test/),n=function(e){return 3===e?"v3":e}(e.version);r&&"v3"!==n&&console.warn("Stripe.js@".concat(n," was loaded on the page, but @stripe/stripe-js@").concat("5.10.0"," expected Stripe.js@").concat("v3",". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));var i=e.apply(void 0,t);return function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"5.10.0",startTime:t})}(i,a),i}(e,t,r)}))},g=a(926);const E=function(){const e=document.querySelector('link[rel="https://api.w.org/"]');return e?e.href.replace(/\/$/,""):(window.wpApiSettings?.restUrl||"/wp-json").replace(/\/$/,"")}(),v=(h("your-publishable-key-here"),e=>new URLSearchParams(window.location.search).get(e)),R=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:i,includeIcons:o})=>{e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0);const l=e.availability?.available;return React.createElement("div",{className:`bif-tile ${t?"bif-selected":""} ${l?"":"is-unavailable"}`},i&&e.property_image&&React.createElement("div",{className:"bif-tile__hero"},React.createElement("img",{loading:"lazy",src:e.property_image,alt:e.property_name}),React.createElement("span",{className:"bif-chip "+(l?"":"unavailable")},((e,t,a)=>{if(e)return"Available";switch(t){case"Booked Out":return"Booked Out";case"No Tariff Set":return"No Rates Set";case"Min Nights":return`Minimum ${a||2} Nights`;default:return"Unavailable"}})(l,e.availability?.availability_reason,e.availability?.min_nights))),React.createElement("div",{className:"bif-tile__content"},React.createElement("h3",{className:"bif-tile__title"},e.property_name),o&&e.property_features&&React.createElement("ul",{className:"bif-amenities bif-amenities--slim"},1===e.property_features.wifi&&React.createElement("li",null,React.createElement("span",null,"📶 WiFi")),e.property_features.queen_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.queen_beds," Queen")),e.property_features.king_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.king_beds," King")),e.property_features.double_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.double_beds," Double")),e.property_features.single_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.single_beds," Single")),e.property_features.bunk_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.bunk_beds," Bunk")),e.property_features.sofa_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.sofa_beds," Sofa bed")),e.property_features.bedrooms&&React.createElement("li",null,React.createElement("span",null,"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":"")),e.property_features.living_areas&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":""))),e.availability?.dates&&React.createElement("div",{className:"bif-tile__rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-pill "+(e.availability?"ok":"na")},React.createElement("span",{className:"bif-pill__date"},e.date_formatted),React.createElement("strong",{className:"bif-pill__amt"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-tile__footer"},l?React.createElement("button",{onClick:a,className:"bif-btn "+(t?"bif-btn-selected":"bif-btn-select")},t?"✓ Selected":"Select"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled"},"Unavailable")),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount))))))))},_=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:i,includeIcons:o})=>{e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0);const l=e.availability?.available;return React.createElement("div",{className:`bif-row ${t?"bif-selected":""} ${l?"":"is-unavailable"} ${i&&e.property_image?"":"no-image"}`},i&&e.property_image&&React.createElement("div",{className:"bif-row__thumb"},React.createElement("img",{loading:"lazy",src:e.property_image,alt:e.property_name})),React.createElement("div",{className:"bif-row__main"},React.createElement("div",{className:"bif-row__top"},React.createElement("h3",{className:"bif-row__title"},e.property_name),React.createElement("span",{className:"bif-dot "+(c=l,c?"ok":"na"),"aria-hidden":"true"})),o&&e.property_features&&React.createElement("ul",{className:"bif-amenities bif-amenities--inline"},1===e.property_features.wifi&&React.createElement("li",null,React.createElement("span",null,"📶 WiFi")),e.property_features.queen_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.queen_beds," Queen")),e.property_features.king_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.king_beds," King")),e.property_features.double_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.double_beds," Double")),e.property_features.single_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.single_beds," Single")),e.property_features.bunk_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛏️ ",e.property_features.bunk_beds," Bunk")),e.property_features.sofa_beds>0&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.sofa_beds," Sofa bed")),e.property_features.bedrooms&&React.createElement("li",null,React.createElement("span",null,"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":"")),e.property_features.living_areas&&React.createElement("li",null,React.createElement("span",null,"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":"")))),e.availability?.dates&&React.createElement("div",{className:"bif-row__rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-rmini "+(e.availability?"ok":"na")},React.createElement("div",{className:"bif-rmini__date"},e.date_formatted),React.createElement("div",{className:"bif-rmini__amt"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-row__cta"},l?React.createElement("button",{onClick:a,className:"bif-btn "+(t?"bif-btn-selected":"bif-btn-select")},t?"✓ Selected":"Select"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled"},"Unavailable")),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras",style:{gridColumn:"1 / -1",marginTop:"1rem"}},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount)))))));var c},N=({property:e,isSelected:t,onToggle:a,nights:r,checkInDate:n,showPropertyImages:i,includeIcons:o})=>{const l=e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0)||0,c=e.availability?.available,s=(e,t,a)=>{if(e)return"Available";switch(t){case"Booked Out":return"Booked Out";case"No Tariff Set":return"No Rates Set";case"Min Nights":return`Minimum ${a||2} Nights`;default:return"Unavailable"}};return React.createElement("div",{className:`bif-property-card ${t?"bif-selected":""} ${c?"":"bif-unavailable"}`},React.createElement("div",{className:"bif-property-header"},i&&e.property_image&&React.createElement("div",{className:"bif-property-image"},React.createElement("img",{src:e.property_image,alt:e.property_name})),React.createElement("div",{className:"bif-property-info"},React.createElement("h3",{className:"bif-property-name"},e.property_name),e.property_description&&React.createElement("p",{className:"bif-property-description"},e.property_description),o&&e.property_features&&React.createElement("div",{className:"bif-property-icons"},1===e.property_features.wifi&&React.createElement("span",{className:"bif-property-icon",title:"WiFi Available"},"📶 WiFi"),e.property_features.queen_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.queen_beds} Queen bed${e.property_features.queen_beds>1?"s":""}`},"🛏️ ",e.property_features.queen_beds," Queen"),e.property_features.king_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.king_beds} King bed${e.property_features.king_beds>1?"s":""}`},"🛏️ ",e.property_features.king_beds," King"),e.property_features.double_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.double_beds} Double bed${e.property_features.double_beds>1?"s":""}`},"🛏️ ",e.property_features.double_beds," Double"),e.property_features.single_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.single_beds} Single bed${e.property_features.single_beds>1?"s":""}`},"🛏️ ",e.property_features.single_beds," Single"),e.property_features.bunk_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.bunk_beds} Bunk bed${e.property_features.bunk_beds>1?"s":""}`},"🛏️ ",e.property_features.bunk_beds," Bunk"),e.property_features.sofa_beds>0&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.sofa_beds} Sofa bed${e.property_features.sofa_beds>1?"s":""}`},"🛋️ ",e.property_features.sofa_beds," Sofa bed"),e.property_features.bedrooms&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.bedrooms} bedroom${e.property_features.bedrooms>1?"s":""}`},"🏠 ",e.property_features.bedrooms," Bedroom",e.property_features.bedrooms>1?"s":""),e.property_features.living_areas&&React.createElement("span",{className:"bif-property-icon",title:`${e.property_features.living_areas} living area${e.property_features.living_areas>1?"s":""}`},"🛋️ ",e.property_features.living_areas," Living Area",e.property_features.living_areas>1?"s":""))),React.createElement("div",{className:"bif-property-status-container"},React.createElement("span",{className:`bif-property-status ${((e,t)=>{if(e)return"bif-status-available";switch(t){case"Booked Out":return"bif-status-booked";case"No Tariff Set":return"bif-status-no-rate";case"Min Nights":return"bif-status-min-nights";default:return"bif-status-unavailable"}})(c,e.availability?.availability_reason)}`},s(c,e.availability?.availability_reason,e.availability?.min_nights)),c?React.createElement("button",{onClick:a,className:`bif-btn ${t?"bif-btn-selected":"bif-btn-select"} bif-header-btn`,style:{marginLeft:"0.75rem"}},t?"✓ Selected":"Select Property"):React.createElement("button",{disabled:!0,className:"bif-btn bif-btn-disabled bif-header-btn",style:{marginLeft:"0.75rem"}},s(c,e.availability?.availability_reason,e.availability?.min_nights)))),e.availability?.dates&&React.createElement("div",{className:"bif-availability-details"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Daily Rate Breakdown"),React.createElement("div",{className:"bif-daily-rates"},e.availability.dates.map(((e,t)=>React.createElement("div",{key:t,className:"bif-daily-rate "+(e.availability?"bif-available":"bif-unavailable")},React.createElement("div",{className:"bif-date"},e.date_formatted),React.createElement("div",{className:"bif-rate"},e.availability?`$${e.rate}`:"Booked Out"===e.availability_reason?"Booked":"No Tariff Set"===e.availability_reason?"No Rate":"N/A"))))),React.createElement("div",{className:"bif-rate-summary"},React.createElement("div",{className:"bif-summary-row"},React.createElement("span",{className:"bif-total"},"Total: $",l)))),t&&e.optional_extras?.length>0&&React.createElement("div",{className:"bif-optional-extras"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),React.createElement("div",{className:"bif-extras-list"},e.optional_extras.map((t=>React.createElement("div",{key:t.id,className:"bif-extra-item"},React.createElement("div",{className:"bif-extra-info"},React.createElement("input",{type:"checkbox",checked:e.selectedExtras?.[t.id]||!1,onChange:()=>e.onToggleExtra?.(e.id,t.id)}),React.createElement("label",null,t.description)),React.createElement("div",{className:"bif-extra-price"},"$",t.amount)))))))},C=({checkInDate:e,nights:t,onDateChange:a,onNightsChange:r,onCheckAvailability:n,isLoading:i,minNights:o,maxNights:l,buttonIcon:c="search"})=>{const s=(new Date).toISOString().split("T")[0],u={search:"🔍",calendar:"📅",home:"🏠",mapMarker:"📍",star:"⭐",pin:"📌",pinSmall:"📍",globe:"🌍"}[c]||"🔍";return React.createElement("div",{className:"bif-date-selector"},React.createElement("h2",{className:"bif-section-title"},"Select Your Dates"),React.createElement("div",{className:"bif-date-form"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Check-in Date"),React.createElement("input",{type:"date",value:e,onChange:e=>a(e.target.value),min:s,className:"bif-date-input"})),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Number of Nights"),React.createElement("select",{value:t,onChange:e=>r(parseInt(e.target.value)),className:"bif-nights-select"},[...Array(l-o+1).keys()].map((e=>{const t=o+e;return React.createElement("option",{key:t,value:t},t," ",1===t?"night":"nights")})))),React.createElement("div",{className:"bif-form-field"},React.createElement("button",{onClick:n,disabled:!e||i,className:"bif-btn bif-btn-primary bif-check-availability bif-has-icon-preview"},i?React.createElement(React.Fragment,null,React.createElement("div",{className:"bif-spinner"}),React.createElement("span",null,"Checking...")):React.createElement(React.Fragment,null,React.createElement("span",{className:"bif-icon-preview"},u),React.createElement("span",null,"Check Availability"))))))},k=({selectedProperties:e,selectedExtras:t,nights:a,total:r,discountCode:n,onDiscountCodeChange:i,onApplyDiscount:o,checkInDate:l,summary:c,showDiscount:s=!1,showRedeemGiftCertificate:u=!1,giftCertificate:m,onGiftCertificateChange:p,showGiftCertificateForm:d,onTriggerShowGiftCertificate:f,onApplyGiftCertificate:b,gcResult:y,gcLoading:h=!1})=>{Object.values(t).flat().reduce(((e,t)=>e+(t.amount||0)),0);const g=c&&parseFloat(c.order_discount_code_total||0)>0;return e&&0!==e.length?React.createElement("div",{className:"bif-booking-summary"},React.createElement("h3",{className:"bif-section-title"},"Booking Summary"),React.createElement("div",{className:"bif-summary-content"},e.map((e=>{const a=e.sub_total||e.availability?.total_cost||e.availability?.dates?.reduce(((e,t)=>e+(t.rate||0)),0)||0,r=e.mandatory_extras_total||e.mandatory_extras?.reduce(((e,t)=>e+parseFloat(t.amount||0)),0)||0,n=e.optional_extras_total||0,i=parseFloat(a)+parseFloat(r)+parseFloat(n);return React.createElement("div",{key:e.id,className:"bif-property-summary"},React.createElement("h5",{className:"bif-property-summary-name"},e.property_name),React.createElement("div",{className:"bif-property-total"},React.createElement("div",{className:"bif-total-row"},React.createElement("span",null,"Property Subtotal"),React.createElement("span",null,"$",parseFloat(a).toFixed(2)))),e.mandatory_extras&&e.mandatory_extras.length>0&&React.createElement("div",{className:"bif-mandatory-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Mandatory Extras"),e.mandatory_extras.map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#dc2626"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))),e.optional_extras&&e.optional_extras.filter((e=>e.selected)).length>0&&React.createElement("div",{className:"bif-optional-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Optional Extras"),e.optional_extras.filter((e=>e.selected)).map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#92400e"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))),React.createElement("div",{className:"bif-property-total"},React.createElement("div",{className:"bif-total-row bif-subtotal"},React.createElement("span",null,"Property Total"),React.createElement("span",null,"$",parseFloat(i).toFixed(2)))),!e.optional_extras&&t[e.id]&&t[e.id].length>0&&React.createElement("div",{className:"bif-optional-extras-summary"},React.createElement("h4",{className:"bif-daily-breakdown-title"},"Selected Optional Extras"),t[e.id].map((e=>React.createElement("div",{key:e.id,className:"bif-total-row",style:{fontSize:"0.875rem",color:"#92400e"}},React.createElement("span",null,e.description),React.createElement("span",null,"$",parseFloat(e.amount).toFixed(2)))))))})),s&&React.createElement("div",{className:"bif-summary-section"},React.createElement("div",{className:"bif-discount-form"},React.createElement("input",{type:"text",placeholder:"Enter discount code",value:n,onChange:e=>i(e.target.value),className:"bif-discount-input"}),React.createElement("button",{onClick:()=>{n.trim()&&o(n)},className:"bif-btn bif-btn-secondary"},"Apply")),g&&React.createElement("div",{className:"bif-discount-applied"},"Discount code applied")),u&&c&&React.createElement("div",{className:"bif-summary-section"},React.createElement("div",{className:"bif-gift-certificate-section"},d?React.createElement("div",{className:"bif-gift-certificate-form"},React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Certificate Number:"),React.createElement("input",{type:"text",value:m.number,onChange:e=>p({...m,number:e.target.value}),className:"bif-form-control",placeholder:"Enter certificate number",disabled:h})),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Pin:"),React.createElement("input",{type:"number",value:m.pin,onChange:e=>p({...m,pin:e.target.value}),className:"bif-form-control",placeholder:"Enter pin",disabled:h}))),React.createElement("button",{className:"bif-btn bif-btn-secondary",onClick:b,disabled:h},h?"Applying...":"Apply")):React.createElement("button",{className:"bif-btn bif-btn-secondary",onClick:f},"Apply Gift Certificate"),y&&y.valid&&React.createElement("div",{className:"bif-gift-certificate-success"},React.createElement("p",null,"✅ Successfully Applied Gift Certificate"),React.createElement("p",null,y.result),parseFloat(y.total)-parseFloat(y.gc_amount_applied)==0?React.createElement("p",null,React.createElement("strong",null,"🎉 Your gift certificate covers the full amount! No additional payment required.")):React.createElement(React.Fragment,null,React.createElement("p",null,"Remaining balance to pay: ",React.createElement("strong",null,"$",(parseFloat(y.total)-parseFloat(y.gc_amount_applied)).toFixed(2))),React.createElement("p",{style:{fontSize:"0.875rem",color:"#6b7280"}},"*Credit card surcharge will be added at payment")),React.createElement("p",null,"Gift Certificate balance after order: ",React.createElement("strong",null,"$",parseFloat(y.gc_balance_after_order).toFixed(2)))))),React.createElement("div",{className:"bif-grand-total"},y&&y.valid&&React.createElement("div",{className:"bif-total-row"},React.createElement("span",null,"Order Total"),React.createElement("span",null,"$",parseFloat(y.total||c.order_grand_total).toFixed(2))),y&&y.valid&&React.createElement("div",{className:"bif-total-row",style:{color:"#059669"}},React.createElement("span",null,"Gift Certificate Applied"),React.createElement("span",null,"-$",parseFloat(y.gc_amount_applied).toFixed(2))),React.createElement("div",{className:"bif-total-main"},React.createElement("span",null,y&&y.valid&&parseFloat(y.total)-parseFloat(y.gc_amount_applied)==0?"Total Paid by Gift Certificate":y&&y.valid?"Balance Due":"Total Cost"),React.createElement("span",{className:"bif-total-amount"},"$",y&&y.valid?(parseFloat(y.total)-parseFloat(y.gc_amount_applied)).toFixed(2):parseFloat(r).toFixed(2))),y&&y.valid&&parseFloat(y.total)-parseFloat(y.gc_amount_applied)>0&&c&&c.order_has_surcharge&&React.createElement("div",{className:"bif-surcharge-note",style:{fontSize:"0.875rem",color:"#6b7280",marginTop:"0.5rem"}},"*Credit card surcharge will be added at payment"),c&&parseFloat(c.order_discount_code_total||0)>0&&React.createElement("div",{className:"bif-discount-text"},"Includes discount of $",parseFloat(c.order_discount_code_total||0).toFixed(2))))):null},w=({isOpen:t,onClose:a,title:r,content:n})=>((0,e.useEffect)((()=>(document.body.style.overflow=t?"hidden":"",()=>{document.body.style.overflow=""})),[t]),(0,e.useEffect)((()=>{const e=e=>{"Escape"===e.key&&t&&a()};return t&&document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[t,a]),t?React.createElement("div",{className:"bif-modal-overlay",onClick:a},React.createElement("div",{className:"bif-modal",onClick:e=>e.stopPropagation()},React.createElement("div",{className:"bif-modal-header"},React.createElement("h3",{className:"bif-modal-title"},r),React.createElement("button",{className:"bif-modal-close",onClick:a,"aria-label":"Close modal"},"×")),React.createElement("div",{className:"bif-modal-content",dangerouslySetInnerHTML:{__html:n}}))):null),S=({userDetails:e,onUpdateDetails:t,formErrors:a,showSuburb:r=!0,showPostcode:n=!0,showComments:i=!1})=>React.createElement("div",{className:"bif-customer-details"},React.createElement("h2",{className:"bif-section-title"},"Your Details"),React.createElement("div",{className:"bif-customer-form"},React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"First Name *"),React.createElement("input",{type:"text",value:e.firstName,onChange:e=>t("firstName",e.target.value),placeholder:"Enter your first name",className:a.firstName?"bif-error":""}),a.firstName&&React.createElement("div",{className:"bif-field-error"},a.firstName)),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Last Name *"),React.createElement("input",{type:"text",value:e.lastName,onChange:e=>t("lastName",e.target.value),placeholder:"Enter your last name",className:a.lastName?"bif-error":""}),a.lastName&&React.createElement("div",{className:"bif-field-error"},a.lastName))),React.createElement("div",{className:"bif-form-row"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Email *"),React.createElement("input",{type:"email",value:e.email,onChange:e=>t("email",e.target.value),placeholder:"Enter your email address",className:a.email?"bif-error":""}),a.email&&React.createElement("div",{className:"bif-field-error"},a.email)),React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Phone *"),React.createElement("input",{type:"tel",value:e.phone,onChange:e=>t("phone",e.target.value),placeholder:"Enter your phone number",className:a.phone?"bif-error":""}),a.phone&&React.createElement("div",{className:"bif-field-error"},a.phone))),(n||r)&&React.createElement("div",{className:"bif-form-row"},n&&React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Postcode"),React.createElement("input",{type:"text",value:e.postcode,onChange:e=>t("postcode",e.target.value),placeholder:"Enter your postcode"})),r&&React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Suburb"),React.createElement("input",{type:"text",value:e.suburb,onChange:e=>t("suburb",e.target.value),placeholder:"Enter your suburb"}))),i&&React.createElement("div",{className:"bif-form-row bif-full-width"},React.createElement("div",{className:"bif-form-field"},React.createElement("label",null,"Comments"),React.createElement("textarea",{value:e.comments,onChange:e=>t("comments",e.target.value),rows:4,placeholder:"Any special requests or comments..."}))))),x=({summary:t,propertyIds:a,userDetails:r,paymentType:n,giftCertificate:i})=>{const o=(0,g.useStripe)(),l=(0,g.useElements)(),[c,s]=(0,e.useState)(!1),[u,m]=(0,e.useState)(""),[p,d]=(0,e.useState)(!1),[f,b]=(0,e.useState)(""),y=async e=>{e.preventDefault(),s(!0),m("");try{let e={amount:"deposit"===n?t.order_deposit_amount:t.order_payable_now,currency:"AUD",summary:t,propertyIds:"string"==typeof a?a.split(",").map((e=>parseInt(e.trim()))):a,userDetails:r,paymentType:n};if("gift"===n&&i)e.giftCertificateApplied=!0,e.giftCertificate=i,e.amount=0;else{if(!o||!l)return void console.error("Stripe.js has not loaded yet.");const t=l.getElement(g.CardElement),{paymentMethod:a,error:r}=await o.createPaymentMethod({type:"card",card:t});if(r)return console.error(r),m(r.message),void s(!1);e.stripePaymentMethodId=a.id,i&&i.valid&&(e.giftCertificateApplied=!0,e.giftCertificate=i)}const c=await fetch(`${E}/bookitfast/v1/process-payment`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),u=await c.json();if(!u.success)throw new Error(u.message||"Payment failed.");console.log("Payment successful:",u),b(u.data.charge),d(!0)}catch(e){console.error("Payment error:",e),m(e.message)}finally{s(!1)}};return React.createElement("div",{className:"bif-payment-container"},React.createElement("h3",null,"gift"===n?"🎁 Gift Certificate Payment":"💳 Payment Details"),u&&React.createElement("div",{className:"bif-error-message"},u),p?React.createElement("div",{className:"bif-success-message"},React.createElement("p",null,React.createElement("strong",null,"✅ Payment Successful!")),f&&React.createElement("p",null,React.createElement("a",{href:f,target:"_blank",rel:"noopener noreferrer"},"📄 Click here to view your receipt"))):"gift"===n?React.createElement("div",{className:"bif-gift-certificate-payment-form"},React.createElement("div",{className:"bif-gift-certificate-summary"},React.createElement("p",null,"🎁 ",React.createElement("strong",null,"Paying with Gift Certificate")),React.createElement("p",null,"Amount: ",React.createElement("strong",null,"$",parseFloat(i.gc_amount_applied||0).toFixed(2))),React.createElement("p",null,"No credit card required - your gift certificate will be charged automatically.")),React.createElement("button",{onClick:y,disabled:c,className:"bif-btn bif-btn-primary bif-btn-large"},c?"Processing...":"Complete Booking")):React.createElement("form",{onSubmit:y,className:"bif-stripe-form"},React.createElement("div",{className:"bif-card-element-container"},React.createElement(g.CardElement,{options:{hidePostalCode:!0,style:{base:{fontSize:"16px",color:"#424770","::placeholder":{color:"#aab7c4"}},invalid:{color:"#9e2146"}}}})),React.createElement("button",{type:"submit",disabled:!o||c,className:"bif-btn bif-btn-primary bif-btn-large"},c?"Processing...":"Pay Now")))},P=({propertyIds:t="",showDiscount:a=!1,showSuburb:r=!0,showPostcode:n=!0,showRedeemGiftCertificate:i=!1,showComments:o=!1,buttonColor:l="#0073aa",buttonTextColor:c="#ffffff",minNights:s=1,maxNights:u=14,showPropertyImages:m=!1,includeIcons:p=!1,layoutStyle:d="cards",buttonIcon:f="search"})=>{const b=v("nights"),y=b&&!isNaN(b)?Math.max(parseInt(b,10),s):s,P=v("start"),O=v("discount"),T=P?(e=>{const t=e.split("-");if(3===t.length){const[e,a,r]=t.map(Number);if(!isNaN(e)&&!isNaN(a)&&!isNaN(r)){const t=new Date(r,a-1,e);return t.setHours(12,0,0,0),t.toISOString().split("T")[0]}}return null})(P):"",j="string"==typeof t?t:"",[F,I]=(0,e.useState)({date:T,nights:y}),[A,$]=(0,e.useState)(null),[D,B]=(0,e.useState)({}),[G,L]=(0,e.useState)(null),[M,q]=(0,e.useState)(null),[U,Y]=(0,e.useState)(!1),[W,z]=(0,e.useState)(""),[H,J]=(0,e.useState)({firstName:"",lastName:"",phone:"",email:"",postcode:"",suburb:"",comments:""}),[K,Q]=(0,e.useState)(!1),[V,X]=(0,e.useState)(!1),[Z,ee]=(0,e.useState)(O),[te,ae]=(0,e.useState)(null),[re,ne]=(0,e.useState)(!1),[ie,oe]=(0,e.useState)(null),[le,ce]=(0,e.useState)({}),[se,ue]=(0,e.useState)({number:"",pin:""}),[me,pe]=(0,e.useState)(!1),[de,fe]=(0,e.useState)(null),[be,ye]=(0,e.useState)(!1),[he,ge]=(0,e.useState)({}),[Ee,ve]=(0,e.useState)(!1),[Re,_e]=(0,e.useState)({isOpen:!1,title:"",content:""});(0,e.useEffect)((()=>{T&&y&&(console.log("Auto-checking availability with:",T,y),Ne(T,y))}),[T,y]);const Ne=async(e=F.date,t=F.nights)=>{if(!e||!j)return void console.warn("fetchAvailability skipped - Missing startDate or propertyIds");const a=F.date,r=j.split(",").filter((e=>""!==e.trim()));Y(!0),z(""),ve(!1);try{const e=await fetch(`${E}/bookitfast/v1/availability`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ids:r,start:a,nights:t})}),n=await e.json();$(n),ve(!0);const i=Object.keys(n).reduce(((e,t)=>(e[t]=!1,e)),{});B(i)}catch(e){console.error(e),z("Failed to fetch availability. Please try again.")}finally{Y(!1)}},Ce=(e,t)=>{ge((a=>{const r=a[e]||{},n={...a,[e]:{...r,[t]:!r[t]}};return ke(D,Z,n,0),n}))},ke=async(e,t=null,a=he,r=0)=>{const n=F.date,i=F.nights,o=new Date(new Date(n).getTime()+864e5*i).toISOString().split("T")[0];Y(!0),z("");try{const r=await fetch(`${E}/bookitfast/v1/availability/summary`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({selected:e,selected_optional_extras:a,start:n,end:o,discount_code:t||null})});if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);const i=await r.json();q(i),i.stripe_publishable_key&&L(h(i.stripe_publishable_key))}catch(n){console.error("Error fetching summary:",n),r<3?(console.log(`Retrying... Attempt ${r+1}`),await ke(e,t,a,r+1)):z("Failed to fetch summary. Please try again.")}finally{Y(!1)}},we=e=>{(()=>{const e={};return H.firstName.trim()||(e.firstName="First name is required"),H.lastName.trim()||(e.lastName="Last name is required"),H.email.trim()||(e.email="Email is required"),H.phone.trim()||(e.phone="Phone is required"),K||(e.agreeToTerms="You must agree to the terms and conditions"),V||(e.consentToDataSharing="You must consent to data sharing with Book It Fast service"),ce(e),0===Object.keys(e).length})()&&(oe(e),ne(!0))},Se=A?Object.entries(A).filter((([e])=>D[e])).map((([e,t])=>({id:e,...t,...M?.property_summaries?.[e]||{},selectedExtras:he[e],onToggleExtra:Ce}))):[];return React.createElement("div",{className:"bif-booking-container",style:{"--bif-button-color":l,"--bif-button-color-hover":`${l}dd`,"--bif-button-color-active":`${l}bb`,"--bif-button-text-color":c}},React.createElement("div",{className:"bif-booking-steps"},React.createElement(C,{checkInDate:F.date,nights:F.nights,onDateChange:e=>I((t=>({...t,date:e}))),onNightsChange:e=>I((t=>({...t,nights:e}))),onCheckAvailability:Ne,isLoading:U,minNights:s,maxNights:u,buttonIcon:f}),W&&React.createElement("div",{className:"bif-error-message"},W),Ee&&A&&React.createElement("div",{className:"bif-property-list"},React.createElement("h2",{className:"bif-section-title"},"Available Properties"),React.createElement("div",{className:`bif-properties bif-properties--${d}`},Object.entries(A).map((([e,t])=>{const a={key:e,property:{id:e,...t,selectedExtras:he[e],onToggleExtra:Ce},isSelected:D[e],onToggle:()=>(async e=>{const t={...D,[e]:!D[e]};B(t),Object.values(t).includes(!0)?await ke(t,Z):q(null)})(e),nights:F.nights,checkInDate:F.date,showPropertyImages:m,includeIcons:p};switch(d){case"grid":return React.createElement(R,a);case"rows":return React.createElement(_,a);default:return React.createElement(N,a)}})))),M&&Se.length>0&&React.createElement(k,{selectedProperties:Se,selectedExtras:he,nights:F.nights,total:(M.order_payable_now||0)-(M.order_surcharge||0),discountCode:Z,onDiscountCodeChange:ee,onApplyDiscount:e=>{Object.keys(D).some((e=>D[e]))&&ke(D,e)},checkInDate:F.date,summary:M,showDiscount:a,showRedeemGiftCertificate:i,giftCertificate:se,onGiftCertificateChange:ue,showGiftCertificateForm:me,onTriggerShowGiftCertificate:()=>{pe(!0)},onApplyGiftCertificate:async e=>{if(e.preventDefault(),console.log("Gift Certificate: Apply button clicked"),console.log("Gift Certificate Data:",se),console.log("Current Summary:",M),be)return void console.log("Gift Certificate: Already processing, ignoring click");if(!M)return void console.error("Gift Certificate: No summary available");if(!se.number||!se.pin)return console.error("Gift Certificate: Missing number or pin"),void alert("Please enter both certificate number and pin");ye(!0),console.log("Gift Certificate: Setting loading state to true");let t={...M};if(M.order_weekly_discount>0){console.log("Gift Certificate: Weekly discount detected, adjusting summary for gift certificate calculation"),console.log("Gift Certificate: Original order_grand_total:",M.order_grand_total),console.log("Gift Certificate: Order weekly discount:",M.order_weekly_discount),console.log("Gift Certificate: Order surcharge:",M.order_surcharge);const e=parseFloat(M.order_sub_total)+parseFloat(M.order_mandatory_extras_total);console.log("Gift Certificate: Total before weekly discount (excluding surcharge):",e),t={...M,order_grand_total:e.toString(),order_total_before_surcharge:e,order_payable_now:e.toString(),order_surcharge:0,order_has_surcharge:!1},console.log("Gift Certificate: Adjusted summary for gift certificate:",t)}const a={certificate:se,summary:t};console.log("Gift Certificate: Sending request with data:",a);try{const e=await fetch(`${E}/bookitfast/v1/apply-gift-certificate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(console.log("Gift Certificate: Response status:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();console.log("Gift Certificate: Response data:",t),t.valid?(fe(t),t.summary&&(q(t.summary),console.log("Gift Certificate: Updated summary:",t.summary)),console.log("Gift Certificate: Application successful"),console.log("Gift Certificate: Order payable now:",t.order_payable_now)):(console.error("Gift Certificate: API returned error:",t),alert(t.message||"Failed to apply gift certificate"))}catch(e){console.error("Gift Certificate: Error applying certificate:",e),alert("Error applying gift certificate. Please try again.")}finally{ye(!1),console.log("Gift Certificate: Setting loading state to false")}},gcResult:de,gcLoading:be}),M&&Se.length>0&&React.createElement(S,{userDetails:H,onUpdateDetails:(e,t)=>{J((a=>({...a,[e]:t}))),le[e]&&ce((t=>({...t,[e]:null})))},formErrors:le,showSuburb:r,showPostcode:n,showComments:o}),M&&Se.length>0&&React.createElement("div",{className:"bif-terms-payment"},React.createElement("div",{className:"bif-terms-checkbox"},React.createElement("input",{type:"checkbox",id:"agreeToTerms",checked:K,onChange:()=>Q(!K)}),React.createElement("label",{htmlFor:"agreeToTerms"},"I have read and agree to the"," ",M.order_booking_conditions?.map(((e,t)=>React.createElement("span",{key:t},"local"===e.type?React.createElement("a",{href:"#",onClick:t=>{t.preventDefault(),_e({isOpen:!0,title:e.title,content:e.content})},style:{textDecoration:"underline",cursor:"pointer"}},e.title):React.createElement("a",{href:e.url,target:"_blank",rel:"noopener noreferrer"},e.title),t<M.order_booking_conditions.length-2?", ":"",t===M.order_booking_conditions.length-2?" and ":"")))),le.agreeToTerms&&React.createElement("div",{className:"bif-field-error"},le.agreeToTerms)),React.createElement("div",{className:"bif-privacy-consent"},React.createElement("input",{type:"checkbox",id:"consentToDataSharing",checked:V,onChange:()=>X(!V)}),React.createElement("label",{htmlFor:"consentToDataSharing"},"I consent to my personal information being transmitted to and processed by Book It Fast (",React.createElement("a",{href:"https://bookitfast.app/privacy-policy",target:"_blank",rel:"noopener noreferrer"},"Privacy Policy"),") for booking and payment processing purposes."),le.consentToDataSharing&&React.createElement("div",{className:"bif-field-error"},le.consentToDataSharing)),!re&&React.createElement("div",{className:"bif-payment-options"},Object.keys(le).length>0&&React.createElement("div",{className:"bif-validation-error"},"Please complete all required fields before proceeding with payment."),de&&de.valid&&parseFloat(de.total)-parseFloat(de.gc_amount_applied)==0?React.createElement("div",{className:"bif-gift-certificate-payment"},React.createElement("div",{className:"bif-gift-certificate-full-coverage"},React.createElement("p",null,"🎉 ",React.createElement("strong",null,"Your gift certificate covers the full booking amount!")),React.createElement("p",null,"No additional payment required.")),React.createElement("button",{className:"bif-btn bif-btn-primary bif-btn-large",onClick:()=>we("gift")},"🎁 Complete Booking with Gift Certificate")):React.createElement(React.Fragment,null,M.order_surcharge>0&&parseFloat(M.order_payable_now||0)>0&&React.createElement("div",{className:"bif-surcharge-info"},React.createElement("p",null,"Please note a credit card surcharge applies of ",M.order_deposit_surcharge>0&&` $${M.order_deposit_surcharge} for deposit or `,"$",M.order_surcharge," for the full payment.")),M.order_deposit_amount>0?React.createElement("div",{className:"bif-payment-buttons"},React.createElement("button",{className:"bif-btn bif-btn-primary",onClick:()=>we("deposit")},"💳 Pay Deposit ($",M.order_deposit_amount,")"),React.createElement("button",{className:"bif-btn bif-btn-primary",onClick:()=>we("full")},"💳 Pay In Full ($",de&&de.valid?parseFloat(de.order_payable_now).toFixed(2):M.order_payable_now,")")):React.createElement("button",{className:"bif-btn bif-btn-primary bif-btn-large",onClick:()=>we("full")},"💳 Complete Booking - $",de&&de.valid?parseFloat(de.order_payable_now).toFixed(2):M.order_payable_now)))),M&&re&&React.createElement("div",{className:"bif-payment-form-container"},"gift"===ie?React.createElement(x,{summary:M,propertyIds:j.split(",").map((e=>parseInt(e.trim()))),userDetails:H,paymentType:ie,giftCertificate:de}):G&&React.createElement(g.Elements,{stripe:G},React.createElement(x,{summary:M,propertyIds:j.split(",").map((e=>parseInt(e.trim()))),userDetails:H,paymentType:ie,giftCertificate:de})))),React.createElement(w,{isOpen:Re.isOpen,onClose:()=>_e({isOpen:!1,title:"",content:""}),title:Re.title,content:Re.content}))};document.addEventListener("DOMContentLoaded",(()=>{const e=document.getElementById("bif-book-it-fast-multi-embed");if(e){const a=e.dataset.propertyIds||"",r="true"===e.dataset.showDiscount,n="true"===e.dataset.showSuburb,o="true"===e.dataset.showPostcode,l="true"===e.dataset.showRedeemGiftCertificate,c="true"===e.dataset.showComments,s=e.dataset.buttonColor||"#0073aa",u=e.dataset.buttonTextColor||"#ffffff",m=parseInt(e.dataset.minNights)||1,p=parseInt(e.dataset.maxNights)||14,d="true"===e.dataset.showPropertyImages,f="true"===e.dataset.includeIcons,b=e.dataset.layoutStyle||"cards",y=e.dataset.buttonIcon||"search";i().render(t().createElement(P,{propertyIds:a,showDiscount:r,showSuburb:n,showPostcode:o,showRedeemGiftCertificate:l,showComments:c,buttonColor:s,buttonTextColor:u,minNights:m,maxNights:p,showPropertyImages:d,includeIcons:f,layoutStyle:b,buttonIcon:y}),e)}}))})()})(); -
book-it-fast/trunk/build/gift-certificate-frontend-rtl.css
r3343577 r3367536 1 .bif-booking-container,.bif-bookitfast-container{background:#f8f9fa;border-radius:.5rem;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0 auto;max-width:1200px;padding:2rem;--bif-button-color:#0073aa;--bif-button-color-hover:#0073aadd;--bif-button-color-active:#0073aabb;--bif-button-text-color:#fff}.bif-bookitfast-container h3{color:#2d3748;font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.5rem;text-align:center}.bif-bookitfast-container p{color:#718096;font-size:1.1rem;margin-bottom:2rem;text-align:center}.bif-form-inline{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);display:grid;gap:1.5rem;grid-template-columns:1fr 1fr auto;margin-bottom:2rem;padding:2rem}.bif-form-group{display:flex;flex-direction:column}.bif-form-group label{color:#4a5568;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.bif-form-control{background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease}.bif-form-control:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-btn.bif-btn-success{align-self:end;background:linear-gradient(-135deg,#48bb78,#38a169);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;letter-spacing:.05em;padding:.875rem 2rem;text-transform:uppercase;transition:all .2s ease}.bif-btn.bif-btn-success:hover:not(:disabled){box-shadow:0 8px 25px rgba(72,187,120,.3);transform:translateY(-2px)}.bif-btn.bif-btn-success:disabled{cursor:not-allowed;opacity:.6}.bif-bookitfast_availability_grid_div{background:#fff;border:3px solid transparent;border-radius:20px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin-bottom:1.5rem;overflow:hidden;padding:0;position:relative;transition:all .3s ease}.bif-check-availability span:before,div.editor-styles-wrapper .bif-booking-container button.bif-btn,div.editor-styles-wrapper .bif-booking-container button.bif-btn-primary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-secondary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-select,div.editor-styles-wrapper .bif-booking-container button.bif-btn-selected,div.editor-styles-wrapper button.bif-btn,div.editor-styles-wrapper button.bif-btn-primary,div.editor-styles-wrapper button.bif-btn-secondary,div.editor-styles-wrapper button.bif-btn-select,div.editor-styles-wrapper button.bif-btn-selected{color:var(--bif-button-text-color,#fff)!important}.bif-bookitfast_availability_grid_div:hover{box-shadow:0 12px 30px rgba(0,0,0,.15);transform:translateY(-4px)}.bif-bookitfast_availability_grid_div.selected{border-color:#4299e1;box-shadow:0 12px 30px rgba(66,153,225,.2)}.bif-property-header{align-items:center;color:#1f2937;justify-content:space-between;padding:1.5rem}.bif-bookitfast_availability_grid_div h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.bif-bookitfast_availability_grid_div .availability_button{margin:0}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{background:#3b82f6;border:2px solid #3b82f6;border-radius:.375rem;color:#fff;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.bif-bookitfast_availability_grid_div .availability_button .bif-btn:hover{background:#2563eb;border-color:#2563eb}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-success{background:#10b981;border-color:#10b981}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-danger{background:#ef4444;border-color:#ef4444;cursor:not-allowed}.bif-availability-details{animation:slideDown .3s ease;display:none;padding:2rem}.bif-bookitfast_availability_grid_div.selected .bif-availability-details{display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-availability_table{background:#fff;border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:1.5rem;overflow:hidden}.bif-availability_table thead{background:linear-gradient(-135deg,#4299e1,#3182ce);color:#fff}.bif-availability_table thead th{font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:right;text-transform:uppercase}.bif-availability_table tbody tr{transition:background-color .2s ease}.bif-availability_table tbody tr:hover{background-color:#f7fafc}.bif-availability_table tbody td{border-bottom:1px solid #e2e8f0;font-size:.95rem;padding:1rem}.bif-cell_date_available{background-color:#f0fff4;border-right:4px solid #48bb78}.bif-cell_date_unavailable{background-color:#fff5f5;border-right:4px solid #f56565;opacity:.7}.bif-optional_extras{background:#f7fafc;border-radius:12px;margin-top:1rem;padding:1.5rem}.bif-optional_extras h4{align-items:center;color:#2d3748;display:flex;font-size:1.2rem;font-weight:700;margin-bottom:1rem}.bif-optional_extras h4:before{content:"✨";margin-left:.5rem}.bif-bookitfast_optional_extra{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.bif-bookitfast_optional_extra:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateX(-4px)}.bif-bookitfast_optional_extra input[type=checkbox]{margin-left:.75rem;transform:scale(1.2)}.bif-bookitfast_optional_extra label{color:#4a5568;cursor:pointer;flex-grow:1;font-weight:500}.bif-bookitfast_optional_extra div:last-child{color:#2d3748;font-size:1.1rem;font-weight:700}.bif-user-details-form{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-user-details-form h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:right}.bif-form-row{gap:1rem;margin-bottom:1.5rem}.bif-form-row.full-width{grid-template-columns:1fr}.bif-form-field label,.bif-form-row label{color:#4a5568;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.bif-form-field input,.bif-form-field textarea,.bif-form-row input,.bif-form-row textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.875rem;transition:all .2s ease}.bif-form-field input:focus,.bif-form-field textarea:focus,.bif-form-row input:focus,.bif-form-row textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-payment-options{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-payment-options .bif-btn{background:linear-gradient(-135deg,#4299e1,#3182ce);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-left:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-payment-options .bif-btn:hover{box-shadow:0 8px 25px rgba(66,153,225,.3);transform:translateY(-2px)}.bif-payment-options .bif-btn.bif-btn-success{background:linear-gradient(-135deg,#48bb78,#38a169)}.bif-payment-options .bif-btn.bif-btn-success:hover{box-shadow:0 8px 25px rgba(72,187,120,.3)}.bif-btn-primary,.btn-primary{background:linear-gradient(-135deg,var(--bif-button-color,#4299e1) 0,var(--bif-button-color-hover,#3182ce) 100%);border:none;border-radius:12px;color:var(--bif-button-text-color,#fff);cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-left:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-btn-primary:hover,.btn-primary:hover{background:linear-gradient(-135deg,var(--bif-button-color-hover,#3182ce) 0,var(--bif-button-color-active,#2b6cb0) 100%);box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-2px)}.bif-btn-rounded{border-radius:12px}.bif-surcharge-info{margin-top:0}.bif-surcharge-info p{font-size:.95rem;margin:0}.bif-terms-checkbox{align-items:flex-start;background:#f7fafc;border-radius:12px;display:flex;gap:.75rem;margin:1.5rem 0;padding:1.5rem}.bif-terms-checkbox input[type=checkbox]{margin-top:.25rem;transform:scale(1.2)}.bif-terms-checkbox label{color:#4a5568;line-height:1.6}.bif-terms-checkbox a{color:#4299e1;font-weight:600;text-decoration:none}.bif-terms-checkbox a:hover{text-decoration:underline}.alert{border-radius:12px;font-weight:500;margin:1rem 0;padding:1rem 1.5rem}.alert-danger{background-color:#fed7d7;border:1px solid #feb2b2;color:#c53030}.alert-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}@media (max-width:768px){.bif-bookitfast-container{border-radius:16px;padding:1rem}.bif-form-inline{gap:1rem;grid-template-columns:1fr}.bif-property-header{flex-direction:column;gap:1rem;text-align:center}.bif-form-row{grid-template-columns:1fr}.bif-availability_table{font-size:.85rem}.bif-availability_table tbody td,.bif-availability_table thead th{padding:.5rem}}@media (max-width:480px){.bif-bookitfast-container{padding:.75rem}.bif-bookitfast-container h3{font-size:1.5rem}.bif-form-inline,.bif-property-header,.bif-user-details-form{padding:1rem}}.bif-bookitfast-container .bif-form-group{display:flex;flex-wrap:wrap;padding:10px;width:100%}.bif-discount-code-container{margin-bottom:.4rem;margin-top:.4rem}.bif-discount-code-row{align-items:center;display:flex;flex-flow:row}.bif-discount-code-row .bif-form-group{flex-basis:50%;width:100%}.bif-discount-code-row .bif-form-group input{border-radius:0 .25rem .25rem 0;padding:.6rem}.bif-discount-label{flex-basis:50%}.bif-discount-code-row .bif-apply-discount-btn{border-radius:.25rem 0 0 .25rem;margin-bottom:0}.bif-bookitfast-container #bookitfastbooking{display:flex;flex-flow:row wrap;gap:10px}.bif-bookitfast-container{border-radius:5px;box-sizing:border-box;width:100%}.bif-bookitfast-container .bif-availability-button-container{align-self:flex-end}.bif-bookitfast-container .bif-btn.bif-btn-success,.bif-bookitfast-container .bif-form-control,.bookitfast-emulate-form-control{border:1px solid #ced4da;border-radius:.25rem;font-size:1rem;padding:.6rem;width:100%}.bif-stripe-payment-button{margin-top:12px}.bif-bookitfast-text{font-size:16px}.bif-terms-checkbox{margin-bottom:.5em;margin-top:.5em}.bif-bookitfast-container .bif-btn.bif-btn-success{align-self:flex-end;border-radius:4px;line-height:1.3em;padding:8px}.bif-bookitfast-container label{font-size:1rem}.bif-bookitfast-property-list{list-style:none;padding:0}.bif-availability_table{background-color:#fff;border:1px solid #ddd;border-collapse:collapse;width:100%}.bif-availability_table_wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.bif-availability_table thead{font-weight:400;text-align:right}.bif-availability_table tbody td,.bif-availability_table thead th{font-size:16px;font-weight:400;padding:6px;text-align:right}.bif-availability_table tbody td{border-bottom:1px solid #fff}.bif-availability_table tbody tr td:last-child,.bif-availability_table thead th:last-child{padding-left:10px;text-align:left}.bif-bookitfast-property-item{border:1px solid #ddd;border-radius:5px;margin-bottom:20px;padding:10px}.bif-bookitfast-property-title{font-size:1.2em;font-weight:700}.bif-bookitfast-container{background:#f9f9f9;border:1px solid #ddd;padding:10px}.bif-form-inline{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.bif-form-group{flex:1;margin-left:20px;min-width:200px}.bif-mr-6{margin-left:6px}.bif-btn{background-color:#28a745;color:#fff;margin-bottom:4px;padding:10px 20px}.bif-btn-danger{background-color:#ff4141}.bif-btn-rounded{border-radius:.25rem}.bif-alert{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;margin-top:20px;padding:10px}.bif-alert.bif-alert-success{background-color:#e0f7e0;border:1px solid #3d9140;color:#3d9140;font-size:14px;margin-top:20px;padding:4px 10px}.bif-availability-results{margin-top:20px}.bif-availability-item{border:1px solid #ccc;border-radius:.25rem;margin-bottom:10px;padding:.4rem}.bif-bookitfast_availability_grid_div{align-items:center;background-color:#fbfbfb;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:20px;margin-top:12px;padding:.4rem;width:100%}.bif-bookitfast_availability_grid_div .inner_div{padding:10px;width:100%}.bif-bookitfast-certificate-form,.bif-user-details-form{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;margin-bottom:20px;margin-top:12px;width:100%}.bif-bookitfast_availability_grid_div h3{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:right}.bif-bookitfast_availability_grid_div .availability_button{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:left}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{border-radius:4px;padding:8px 16px}.bif-property_heading_container h2{font-size:1.4em;margin:0}.bif-bookitfast_day{font-size:14px}.bif-bookitfast_day_cell{display:inline-block;margin:5px}.bif-cell_date_available{background-color:#e0f7e0;border-color:#3d9140;width:100%}.bif-cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-mandatory_extras,.bif-optional_extras{margin-top:10px}.bif-mandatory_extras h4,.bif-optional_extras h4{font-size:1.2em;margin-bottom:5px}.bif-btn{padding:5px 10px}.bif-availability_grid{display:flex;flex-wrap:wrap;gap:4px}.bif-bookitfast_day_cell{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;display:flex;flex-direction:column;font-size:14px;height:100px;justify-content:center;padding:10px;text-align:center;transition:transform .2s ease;width:100px}.bif-bookitfast_day_cell:hover{transform:scale(1.05)}.cell_date_available{background-color:#e0f7e0;border-color:#3d9140}.cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-bookitfast_availability_cell{margin-top:5px}.bif-avail_rate{color:#333;width:100%}.bif-property_summary_item{border:1px solid #ddd;border-radius:5px;margin-top:10px}.bif-property_summary_item_title{background-color:green;border-radius:4px 4px 0 0;color:#fff;margin:0;padding:10px}.bif-property_summary_item_body{margin:0}.bif-property_summary_sub_heading{line-height:1em;margin:0}.bif-property_summary_item_body .bif-property_summary_item_body_section{border-radius:0 0 4px 4px;box-sizing:border-box;padding:.4em}.bif-property_summary_item_body p{flex-basis:50%;flex-grow:1;margin:0}.bif-bookitfast-certificate-form .bif-form-group,.bif-property_summary_detail_row,.bif-user-details-form .bif-form-group{border-bottom:1px solid #ddd;display:flex;flex-direction:row;width:100%}.bif-property_summary_detail_row div{flex-basis:50%}.bif-property_summary_sub_heading{background-color:#c7c7c7}.bif-bookitfast-certificate-form .bif-form-row,.bif-user-details-form .bif-form-row{box-sizing:border-box;display:flex;font-size:14px;justify-content:flex-end;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>label,.bif-user-details-form .bif-form-row>label{flex:1;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>input,.bif-bookitfast-certificate-form .bif-form-row>select,.bif-user-details-form .bif-form-row>input,.bif-user-details-form .bif-form-row>textarea{border:1px solid #d1d5db;border-radius:.25rem;flex:2;font-size:1rem;padding:.5rem!important}.bif-user-details-form .bif-form-row:last-child{border:none}.bif-user-details-form .bif-form-row>textarea{font-size:14px;padding:6px}.bif-bookitfast_total_cost{background-color:green;color:#fff;padding-right:0;padding-left:0}.bif-payment-container{margin-top:12px}.bif-surcharge-info{color:#666;font-size:.8em;font-style:italic;margin-top:10px}.bif-optional_extras{width:100%}.bif-optional_extras h4{margin-top:4px}.bif-optional_extras .bif-bookitfast_optional_extra{display:flex;flex-direction:row;width:100%}.bif-optional_extras .bif-bookitfast_optional_extra div{flex-basis:50%;font-weight:400}.bif-booking-container{font-family:system-ui,-apple-system,sans-serif;margin:0 auto;max-width:1200px}.bif-booking-container *{box-sizing:border-box}.bif-booking-header{display:none}.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:1.5rem;padding:1.5rem}.bif-booking-summary:hover,.bif-customer-details:hover,.bif-date-selector:hover,.bif-property-list:hover{box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-section-title{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.bif-subsection-title{color:#374151;font-size:1.125rem;font-weight:500;margin:0 0 .75rem}.bif-date-form{align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.bif-date-form{gap:1rem;grid-template-columns:1fr}}.bif-form-field{display:flex;flex-direction:column}.bif-form-field label{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.bif-date-input,.bif-nights-select{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;height:44px;padding:.5rem;transition:all .2s ease}.bif-date-input:focus,.bif-nights-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.bif-btn-primary{background:var(--bif-button-color,#3b82f6);color:var(--bif-button-text-color,#fff)}.bif-btn-primary:hover{background:var(--bif-button-color-hover,#2563eb);color:var(--bif-button-text-color,#fff)}.bif-btn-secondary{background:#6b7280;color:#fff}.bif-property-icons{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.bif-property-icon{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;display:inline-flex;font-size:.875rem;gap:4px;padding:4px 8px}.bif-property-icon:hover{background:#e5e7eb}.bif-btn-secondary:hover{background:#4b5563}.bif-btn-select{background:#3b82f6;color:#fff}.bif-btn-selected{background:#10b981;color:#fff}.bif-btn-disabled{background:#9ca3af;color:#fff;cursor:not-allowed}.bif-btn-large{font-size:1rem;min-height:48px;padding:1rem 2rem}.bif-check-availability{width:100%}.bif-spinner{animation:spin 1s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:currentcolor;height:1rem;width:1rem}@keyframes spin{to{transform:rotate(-1turn)}}.bif-properties{display:flex;flex-direction:column;gap:1.5rem}.bif-property-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:0;position:relative;transition:all .2s ease}.bif-property-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-property-card.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-property-card.bif-unavailable{background:#f9fafb;opacity:.75}.bif-property-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;padding:.75rem}.bif-property-image{border-radius:.5rem;flex-shrink:0;height:80px;overflow:hidden;width:80px}.bif-property-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-property-info{display:flex;flex:1;flex-direction:column;gap:.5rem;padding-top:.25rem}.bif-property-name{color:#1f2937;font-size:1.25rem;font-weight:600;line-height:1;margin:0}.bif-property-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.bif-property-status-container{flex-shrink:0}.bif-property-status{border:1px solid;border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.bif-status-available{background:#d1fae5;border-color:#a7f3d0;color:#065f46}.bif-status-booked{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bif-status-no-rate{background:#f3f4f6;border-color:#d1d5db;color:#374151}.bif-status-min-nights{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bif-status-unavailable{background:#f3f4f6;border-color:#d1d5db;color:#6b7280}.bif-availability-details,.bif-property-card .bif-availability-details{animation:none!important;border-bottom:1px solid #e5e7eb;display:block!important;padding:.75rem;visibility:visible!important}.bif-daily-breakdown-title{color:#374151;font-size:.875rem;font-weight:600}.bif-daily-rates{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-bottom:1rem}.bif-daily-rate{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem;text-align:center}.bif-daily-rate.bif-available{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.bif-daily-rate.bif-unavailable{background:#fef2f2;border-color:#fecaca;color:#dc2626}.bif-date{font-size:.75rem;font-weight:500;margin-bottom:.25rem}.bif-rate{font-size:.875rem;font-weight:600}.bif-rate-summary{background:#f9fafb;border-radius:.375rem;margin-bottom:0;padding:1rem}.bif-summary-row{align-items:center;color:#374151;display:flex;font-size:.875rem;justify-content:space-between}.bif-total{color:#1f2937;font-size:1rem;font-weight:600}.bif-property-actions{bottom:1.5rem;position:absolute;left:1.5rem}.bif-property-actions .bif-btn{min-width:120px}.bif-optional-extras{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;margin:1.5rem;padding:1rem}@media (max-width:768px){.bif-property-header{align-items:stretch;flex-direction:column;gap:1rem}.bif-property-image{height:200px;width:100%}.bif-property-info{text-align:center}.bif-property-status-container{align-self:center}.bif-property-actions{border-top:1px solid #e5e7eb;padding:1.5rem;position:static;text-align:center}.bif-daily-rates{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.bif-extras-list{display:flex;flex-direction:column;gap:.75rem}.bif-extra-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:flex;justify-content:space-between;padding:.75rem}.bif-extra-info{align-items:center;display:flex;gap:.75rem}.bif-extra-info input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;width:1.125rem}.bif-extra-info label{color:#374151;cursor:pointer;font-size:.875rem;margin:0}.bif-extra-price{color:#1f2937;font-size:.875rem;font-weight:600}.bif-summary-content{display:flex;flex-direction:column;gap:1.5rem}.bif-summary-section{background:#f9fafb;border-radius:.375rem;padding:1rem}.bif-property-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;margin-bottom:1rem;padding:1.5rem}.bif-property-summary:last-child{margin-bottom:0}.bif-property-summary-name{color:#15803d;font-size:1rem;font-weight:600;margin:0 0 .75rem}.bif-property-total{border-top:1px solid #bbf7d0;padding-top:1rem}.bif-total-row{color:#15803d;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.bif-total-row.bif-subtotal{font-size:1rem;font-weight:600}.bif-mandatory-extras-summary,.bif-optional-extras-summary{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.bif-mandatory-extras-summary .bif-total-row{color:#374151!important}.bif-optional-extras-summary .bif-total-row{color:#92400e!important}.bif-discount-form{display:flex;gap:.5rem}.bif-discount-input{border:1px solid #d1d5db;border-radius:.375rem;flex:1;font-size:.875rem;padding:.75rem!important}.bif-discount-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-discount-applied{color:#10b981;font-size:.875rem;font-weight:500;margin-top:.5rem}.bif-grand-total{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;padding:1.5rem}.bif-total-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.bif-total-amount,.bif-total-main span:first-child{color:#1f2937;font-size:1.125rem;font-weight:600}.bif-discount-text{color:#059669;font-size:.875rem;font-weight:500;margin-top:.5rem;text-align:right}.bif-total-breakdown{color:#6b7280;display:flex;flex-direction:column;font-size:.875rem;gap:.25rem}.bif-breakdown-row{display:flex;justify-content:space-between}.bif-surcharge-note{color:#6b7280;font-size:.75rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.bif-customer-details{padding:2rem}.bif-customer-form{display:flex;flex-direction:column;gap:.5rem}.bif-form-row{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.bif-form-row.bif-full-width{grid-template-columns:1fr}@media (max-width:768px){.bif-form-row{gap:1rem;grid-template-columns:1fr}}.bif-form-field input,.bif-form-field textarea{border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;padding:.5rem!important;transition:all .2s ease;width:100%}.bif-form-field input:focus,.bif-form-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-form-field input.bif-error,.bif-form-field textarea.bif-error{border-color:#ef4444}.bif-field-error{color:#ef4444;font-size:.875rem;margin-top:.5rem}.bif-form-field textarea{min-height:120px;resize:vertical}.bif-terms-checkbox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;margin-bottom:.75rem;padding:1rem}.bif-terms-checkbox input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;margin-left:.75rem;width:1.125rem}.bif-terms-checkbox label{color:#1e40af;cursor:pointer;font-size:.875rem;line-height:1.5}.bif-terms-checkbox a{color:#3b82f6;text-decoration:underline}.bif-terms-checkbox a:hover{color:#1d4ed8}.bif-payment-options{flex-direction:column}.bif-payment-buttons,.bif-payment-options{display:flex;gap:1rem}@media (max-width:768px){.bif-payment-buttons{flex-direction:column}}.bif-validation-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;font-size:.875rem;padding:1rem}.bif-surcharge-info{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;color:#92400e;font-size:.875rem;margin-top:1rem;padding:1rem}.bif-payment-container{padding:1.5rem}.bif-payment-container h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.bif-stripe-form{display:flex;flex-direction:column;gap:1rem}.bif-card-element-container{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:1rem;transition:border-color .2s ease}.bif-card-element-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.bif-success-message{background:#d1fae5;border:1px solid #a7f3d0;border-radius:.375rem;color:#065f46;padding:1rem}.bif-success-message a{color:#047857;text-decoration:underline}.bif-error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;margin-bottom:1rem;padding:1rem}@media (max-width:640px){.bif-booking-container,.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{padding:1rem}.bif-total-amount{font-size:1.5rem}}.bif-gift-certificate-section{margin-top:1rem}.bif-gift-certificate-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-top:1rem;padding:1rem}.bif-gift-certificate-form .bif-form-row{display:flex;gap:1rem;margin-bottom:1rem}.bif-gift-certificate-form .bif-form-field{flex:1}.bif-gift-certificate-form .bif-form-field label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.bif-gift-certificate-form .bif-form-control{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem;width:100%}.bif-gift-certificate-form .bif-form-control:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1);outline:none}.bif-gift-certificate-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#16a34a;margin-top:1rem;padding:1rem}.bif-gift-certificate-success p{margin:.25rem 0}.bif-gift-certificate-success p:first-child{font-weight:600}@media (max-width:768px){.bif-gift-certificate-form .bif-form-row{flex-direction:column;gap:.5rem}}.bif-privacy-consent{align-items:flex-start;background:#f8f9fa;border:1px solid #e2e8f0;border-radius:.5rem;display:flex;gap:.5rem;margin:1rem 0;padding:1rem}.bif-privacy-consent input[type=checkbox]{flex-shrink:0;margin-left:0;margin-top:.1rem;transform:scale(1.2)}.bif-privacy-consent label{color:#4a5568;cursor:pointer;flex:1;font-size:.9rem;line-height:1.4}.bif-privacy-consent a{color:#3182ce;text-decoration:none}.bif-privacy-consent a:hover{text-decoration:underline}.bif-properties--grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:840px){.bif-properties--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.bif-properties--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.bif-tile{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.bif-tile:hover{box-shadow:0 8px 20px rgba(0,0,0,.06);transform:translateY(-2px)}.bif-tile.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-tile.is-unavailable{opacity:.75}.bif-tile__hero{aspect-ratio:16/10;background:#f3f4f6;position:relative}.bif-tile__hero img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-chip{background:#111827;border-radius:999px;color:#fff;font-size:.75rem;right:.75rem;opacity:.9;padding:.35rem .6rem;position:absolute;top:.75rem}.bif-tile.is-unavailable .bif-chip{background:#6b7280}.bif-tile__content{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.bif-tile__title{color:#1f2937;font-size:1.05rem;font-weight:600;margin:0}.bif-amenities--slim{display:flex;flex-wrap:wrap;gap:.5rem .75rem;list-style:none;margin:0;padding:0}.bif-amenities--slim li{background:#f9fafb;border:none;border-radius:.5rem;color:#6b7280;font-size:.8125rem;padding:.35rem .6rem}.bif-tile__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-pill{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:999px;display:flex;font-size:.85rem;gap:.5rem;padding:.45rem .6rem}.bif-pill.ok{background:#ecfdf5;border-color:#d1fae5;color:#065f46}.bif-pill.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-pill__date{color:var(--bif-muted,#6b7280);font-size:.775rem}.bif-pill__amt{font-weight:600}.bif-tile__footer{align-items:center;display:flex;justify-content:center;margin-top:.25rem}.bif-nights{color:var(--bif-muted,#6b7280);font-size:.875rem}.bif-properties--rows{display:flex;flex-direction:column;gap:.75rem}.bif-row{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);padding:.75rem;transition:all .2s ease}.bif-row.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-row.is-unavailable{opacity:.75}@media (min-width:900px){.bif-row{grid-template-columns:88px 1.2fr 1.2fr auto}.bif-row.no-image{grid-template-columns:1.2fr 1.2fr auto}}.bif-row__thumb{border-radius:.5rem;height:66px;overflow:hidden;width:88px}.bif-row__thumb img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-row__top{align-items:center;display:flex;gap:.5rem}.bif-row__title{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.bif-dot{background:#9ca3af;border-radius:999px;height:.6rem;width:.6rem}.bif-dot.ok{background:#16a34a}.bif-dot.na{background:#ef4444}.bif-amenities--inline{display:flex;flex-wrap:wrap;gap:.4rem .6rem;list-style:none;margin:.25rem 0 0;padding:0}.bif-amenities--inline li{align-items:center;color:#374151;display:flex;font-size:.85rem;gap:.35rem}.bif-row__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-rmini{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.5rem;min-width:110px;padding:.35rem .6rem}.bif-rmini.ok{background:#f0fdf4;border-color:#dcfce7;color:#065f46}.bif-rmini.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-rmini__date{color:var(--bif-muted,#6b7280);font-size:.75rem}.bif-rmini__amt{font-weight:600}.bif-row__cta{align-items:center;display:flex;justify-content:flex-end}@media (max-width:899px){.bif-row__cta{justify-content:flex-start}}.bif-properties--cards{display:flex;flex-direction:column;gap:1.5rem} 1 .bif-booking-container,.bif-bookitfast-container{background:#f8f9fa;border-radius:.5rem;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0 auto;max-width:1200px;padding:2rem;--bif-button-color:#0073aa;--bif-button-color-hover:#0073aadd;--bif-button-color-active:#0073aabb;--bif-button-text-color:#fff}.bif-bookitfast-container h3{color:#2d3748;font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.5rem;text-align:center}.bif-bookitfast-container p{color:#718096;font-size:1.1rem;margin-bottom:2rem;text-align:center}.bif-form-inline{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);display:grid;gap:1.5rem;grid-template-columns:1fr 1fr auto;margin-bottom:2rem;padding:2rem}.bif-form-group{display:flex;flex-direction:column}.bif-form-group label{color:#4a5568;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.bif-form-control{background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease}.bif-form-control:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-btn.bif-btn-success{align-self:end;background:linear-gradient(-135deg,#48bb78,#38a169);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;letter-spacing:.05em;padding:.875rem 2rem;text-transform:uppercase;transition:all .2s ease}.bif-btn.bif-btn-success:hover:not(:disabled){box-shadow:0 8px 25px rgba(72,187,120,.3);transform:translateY(-2px)}.bif-btn.bif-btn-success:disabled{cursor:not-allowed;opacity:.6}.bif-bookitfast_availability_grid_div{background:#fff;border:3px solid transparent;border-radius:20px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin-bottom:1.5rem;overflow:hidden;padding:0;position:relative;transition:all .3s ease}.bif-check-availability span:before,div.editor-styles-wrapper .bif-booking-container button.bif-btn,div.editor-styles-wrapper .bif-booking-container button.bif-btn-primary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-secondary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-select,div.editor-styles-wrapper .bif-booking-container button.bif-btn-selected,div.editor-styles-wrapper button.bif-btn,div.editor-styles-wrapper button.bif-btn-primary,div.editor-styles-wrapper button.bif-btn-secondary,div.editor-styles-wrapper button.bif-btn-select,div.editor-styles-wrapper button.bif-btn-selected{color:var(--bif-button-text-color,#fff)!important}.bif-bookitfast_availability_grid_div:hover{box-shadow:0 12px 30px rgba(0,0,0,.15);transform:translateY(-4px)}.bif-bookitfast_availability_grid_div.selected{border-color:#4299e1;box-shadow:0 12px 30px rgba(66,153,225,.2)}.bif-property-header{align-items:center;color:#1f2937;justify-content:space-between;padding:1.5rem}.bif-bookitfast_availability_grid_div h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.bif-bookitfast_availability_grid_div .availability_button{margin:0}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{background:#3b82f6;border:2px solid #3b82f6;border-radius:.375rem;color:#fff;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.bif-bookitfast_availability_grid_div .availability_button .bif-btn:hover{background:#2563eb;border-color:#2563eb}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-success{background:#10b981;border-color:#10b981}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-danger{background:#ef4444;border-color:#ef4444;cursor:not-allowed}.bif-availability-details{animation:slideDown .3s ease;display:none;padding:2rem}.bif-bookitfast_availability_grid_div.selected .bif-availability-details{display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-availability_table{background:#fff;border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:1.5rem;overflow:hidden}.bif-availability_table thead{background:linear-gradient(-135deg,#4299e1,#3182ce);color:#fff}.bif-availability_table thead th{font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:right;text-transform:uppercase}.bif-availability_table tbody tr{transition:background-color .2s ease}.bif-availability_table tbody tr:hover{background-color:#f7fafc}.bif-availability_table tbody td{border-bottom:1px solid #e2e8f0;font-size:.95rem;padding:1rem}.bif-cell_date_available{background-color:#f0fff4;border-right:4px solid #48bb78}.bif-cell_date_unavailable{background-color:#fff5f5;border-right:4px solid #f56565;opacity:.7}.bif-optional_extras{background:#f7fafc;border-radius:12px;margin-top:1rem;padding:1.5rem}.bif-optional_extras h4{align-items:center;color:#2d3748;display:flex;font-size:1.2rem;font-weight:700;margin-bottom:1rem}.bif-optional_extras h4:before{content:"✨";margin-left:.5rem}.bif-bookitfast_optional_extra{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.bif-bookitfast_optional_extra:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateX(-4px)}.bif-bookitfast_optional_extra input[type=checkbox]{margin-left:.75rem;transform:scale(1.2)}.bif-bookitfast_optional_extra label{color:#4a5568;cursor:pointer;flex-grow:1;font-weight:500}.bif-bookitfast_optional_extra div:last-child{color:#2d3748;font-size:1.1rem;font-weight:700}.bif-user-details-form{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-user-details-form h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:right}.bif-form-row{gap:1rem;margin-bottom:1.5rem}.bif-form-row.full-width{grid-template-columns:1fr}.bif-form-field label,.bif-form-row label{color:#4a5568;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.bif-form-field input,.bif-form-field textarea,.bif-form-row input,.bif-form-row textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.875rem;transition:all .2s ease}.bif-form-field input:focus,.bif-form-field textarea:focus,.bif-form-row input:focus,.bif-form-row textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-payment-options{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-payment-options .bif-btn{background:linear-gradient(-135deg,#4299e1,#3182ce);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-left:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-payment-options .bif-btn:hover{box-shadow:0 8px 25px rgba(66,153,225,.3);transform:translateY(-2px)}.bif-payment-options .bif-btn.bif-btn-success{background:linear-gradient(-135deg,#48bb78,#38a169)}.bif-payment-options .bif-btn.bif-btn-success:hover{box-shadow:0 8px 25px rgba(72,187,120,.3)}.bif-btn-primary,.btn-primary{background:linear-gradient(-135deg,var(--bif-button-color,#4299e1) 0,var(--bif-button-color-hover,#3182ce) 100%);border:none;border-radius:12px;color:var(--bif-button-text-color,#fff);cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-left:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-btn-primary:hover,.btn-primary:hover{background:linear-gradient(-135deg,var(--bif-button-color-hover,#3182ce) 0,var(--bif-button-color-active,#2b6cb0) 100%);box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-2px)}.bif-btn-rounded{border-radius:12px}.bif-surcharge-info{margin-top:0}.bif-surcharge-info p{font-size:.95rem;margin:0}.bif-terms-checkbox{align-items:flex-start;background:#f7fafc;border-radius:12px;display:flex;gap:.75rem;margin:1.5rem 0;padding:1.5rem}.bif-terms-checkbox input[type=checkbox]{margin-top:.25rem;transform:scale(1.2)}.bif-terms-checkbox label{color:#4a5568;line-height:1.6}.bif-terms-checkbox a{color:#4299e1;font-weight:600;text-decoration:none}.bif-terms-checkbox a:hover{text-decoration:underline}.alert{border-radius:12px;font-weight:500;margin:1rem 0;padding:1rem 1.5rem}.alert-danger{background-color:#fed7d7;border:1px solid #feb2b2;color:#c53030}.alert-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}@media (max-width:768px){.bif-bookitfast-container{border-radius:16px;padding:1rem}.bif-form-inline{gap:1rem;grid-template-columns:1fr}.bif-property-header{flex-direction:column;gap:1rem;text-align:center}.bif-form-row{grid-template-columns:1fr}.bif-availability_table{font-size:.85rem}.bif-availability_table tbody td,.bif-availability_table thead th{padding:.5rem}}@media (max-width:480px){.bif-bookitfast-container{padding:.75rem}.bif-bookitfast-container h3{font-size:1.5rem}.bif-form-inline,.bif-property-header,.bif-user-details-form{padding:1rem}}.bif-bookitfast-container .bif-form-group{display:flex;flex-wrap:wrap;padding:10px;width:100%}.bif-discount-code-container{margin-bottom:.4rem;margin-top:.4rem}.bif-discount-code-row{align-items:center;display:flex;flex-flow:row}.bif-discount-code-row .bif-form-group{flex-basis:50%;width:100%}.bif-discount-code-row .bif-form-group input{border-radius:0 .25rem .25rem 0;padding:.6rem}.bif-discount-label{flex-basis:50%}.bif-discount-code-row .bif-apply-discount-btn{border-radius:.25rem 0 0 .25rem;margin-bottom:0}.bif-bookitfast-container #bookitfastbooking{display:flex;flex-flow:row wrap;gap:10px}.bif-bookitfast-container{border-radius:5px;box-sizing:border-box;width:100%}.bif-bookitfast-container .bif-availability-button-container{align-self:flex-end}.bif-bookitfast-container .bif-btn.bif-btn-success,.bif-bookitfast-container .bif-form-control,.bookitfast-emulate-form-control{border:1px solid #ced4da;border-radius:.25rem;font-size:1rem;padding:.6rem;width:100%}.bif-stripe-payment-button{margin-top:12px}.bif-bookitfast-text{font-size:16px}.bif-terms-checkbox{margin-bottom:.5em;margin-top:.5em}.bif-bookitfast-container .bif-btn.bif-btn-success{align-self:flex-end;border-radius:4px;line-height:1.3em;padding:8px}.bif-bookitfast-container label{font-size:1rem}.bif-bookitfast-property-list{list-style:none;padding:0}.bif-availability_table{background-color:#fff;border:1px solid #ddd;border-collapse:collapse;width:100%}.bif-availability_table_wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.bif-availability_table thead{font-weight:400;text-align:right}.bif-availability_table tbody td,.bif-availability_table thead th{font-size:16px;font-weight:400;padding:6px;text-align:right}.bif-availability_table tbody td{border-bottom:1px solid #fff}.bif-availability_table tbody tr td:last-child,.bif-availability_table thead th:last-child{padding-left:10px;text-align:left}.bif-bookitfast-property-item{border:1px solid #ddd;border-radius:5px;margin-bottom:20px;padding:10px}.bif-bookitfast-property-title{font-size:1.2em;font-weight:700}.bif-bookitfast-container{background:#f9f9f9;border:1px solid #ddd;padding:10px}.bif-form-inline{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.bif-form-group{flex:1;margin-left:20px;min-width:200px}.bif-mr-6{margin-left:6px}.bif-btn{background-color:#28a745;color:#fff;margin-bottom:4px;padding:10px 20px}.bif-btn-danger{background-color:#ff4141}.bif-btn-rounded{border-radius:.25rem}.bif-alert{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;margin-top:20px;padding:10px}.bif-alert.bif-alert-success{background-color:#e0f7e0;border:1px solid #3d9140;color:#3d9140;font-size:14px;margin-top:20px;padding:4px 10px}.bif-availability-results{margin-top:20px}.bif-availability-item{border:1px solid #ccc;border-radius:.25rem;margin-bottom:10px;padding:.4rem}.bif-bookitfast_availability_grid_div{align-items:center;background-color:#fbfbfb;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:20px;margin-top:12px;padding:.4rem;width:100%}.bif-bookitfast_availability_grid_div .inner_div{padding:10px;width:100%}.bif-bookitfast-certificate-form,.bif-user-details-form{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;margin-bottom:20px;margin-top:12px;width:100%}.bif-bookitfast_availability_grid_div h3{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:right}.bif-bookitfast_availability_grid_div .availability_button{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:left}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{border-radius:4px;padding:8px 16px}.bif-property_heading_container h2{font-size:1.4em;margin:0}.bif-bookitfast_day{font-size:14px}.bif-bookitfast_day_cell{display:inline-block;margin:5px}.bif-cell_date_available{background-color:#e0f7e0;border-color:#3d9140;width:100%}.bif-cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-mandatory_extras,.bif-optional_extras{margin-top:10px}.bif-mandatory_extras h4,.bif-optional_extras h4{font-size:1.2em;margin-bottom:5px}.bif-btn{padding:5px 10px}.bif-availability_grid{display:flex;flex-wrap:wrap;gap:4px}.bif-bookitfast_day_cell{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;display:flex;flex-direction:column;font-size:14px;height:100px;justify-content:center;padding:10px;text-align:center;transition:transform .2s ease;width:100px}.bif-bookitfast_day_cell:hover{transform:scale(1.05)}.cell_date_available{background-color:#e0f7e0;border-color:#3d9140}.cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-bookitfast_availability_cell{margin-top:5px}.bif-avail_rate{color:#333;width:100%}.bif-property_summary_item{border:1px solid #ddd;border-radius:5px;margin-top:10px}.bif-property_summary_item_title{background-color:green;border-radius:4px 4px 0 0;color:#fff;margin:0;padding:10px}.bif-property_summary_item_body{margin:0}.bif-property_summary_sub_heading{line-height:1em;margin:0}.bif-property_summary_item_body .bif-property_summary_item_body_section{border-radius:0 0 4px 4px;box-sizing:border-box;padding:.4em}.bif-property_summary_item_body p{flex-basis:50%;flex-grow:1;margin:0}.bif-bookitfast-certificate-form .bif-form-group,.bif-property_summary_detail_row,.bif-user-details-form .bif-form-group{border-bottom:1px solid #ddd;display:flex;flex-direction:row;width:100%}.bif-property_summary_detail_row div{flex-basis:50%}.bif-property_summary_sub_heading{background-color:#c7c7c7}.bif-bookitfast-certificate-form .bif-form-row,.bif-user-details-form .bif-form-row{box-sizing:border-box;display:flex;font-size:14px;justify-content:flex-end;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>label,.bif-user-details-form .bif-form-row>label{flex:1;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>input,.bif-bookitfast-certificate-form .bif-form-row>select,.bif-user-details-form .bif-form-row>input,.bif-user-details-form .bif-form-row>textarea{border:1px solid #d1d5db;border-radius:.25rem;flex:2;font-size:1rem;padding:.5rem!important}.bif-user-details-form .bif-form-row:last-child{border:none}.bif-user-details-form .bif-form-row>textarea{font-size:14px;padding:6px}.bif-bookitfast_total_cost{background-color:green;color:#fff;padding-right:0;padding-left:0}.bif-payment-container{margin-top:12px}.bif-surcharge-info{color:#666;font-size:.8em;font-style:italic;margin-top:10px}.bif-optional_extras{width:100%}.bif-optional_extras h4{margin-top:4px}.bif-optional_extras .bif-bookitfast_optional_extra{display:flex;flex-direction:row;width:100%}.bif-optional_extras .bif-bookitfast_optional_extra div{flex-basis:50%;font-weight:400}.bif-booking-container{font-family:system-ui,-apple-system,sans-serif;margin:0 auto;max-width:1200px}.bif-booking-container *{box-sizing:border-box}.bif-booking-header{display:none}.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:1.5rem;padding:1.5rem}.bif-booking-summary:hover,.bif-customer-details:hover,.bif-date-selector:hover,.bif-property-list:hover{box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-section-title{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.bif-subsection-title{color:#374151;font-size:1.125rem;font-weight:500;margin:0 0 .75rem}.bif-date-form{align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.bif-date-form{gap:1rem;grid-template-columns:1fr}}.bif-form-field{display:flex;flex-direction:column}.bif-form-field label{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.bif-date-input,.bif-nights-select{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;height:44px;padding:.5rem;transition:all .2s ease}.bif-date-input:focus,.bif-nights-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.bif-btn-primary{background:var(--bif-button-color,#3b82f6);color:var(--bif-button-text-color,#fff)}.bif-btn-primary:hover{background:var(--bif-button-color-hover,#2563eb);color:var(--bif-button-text-color,#fff)}.bif-btn-secondary{background:#6b7280;color:#fff}.bif-property-icons{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.bif-property-icon{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;display:inline-flex;font-size:.875rem;gap:4px;padding:4px 8px}.bif-property-icon:hover{background:#e5e7eb}.bif-btn-secondary:hover{background:#4b5563}.bif-btn-select{background:#3b82f6;color:#fff}.bif-btn-selected{background:#10b981;color:#fff}.bif-btn-disabled{background:#9ca3af;color:#fff;cursor:not-allowed}.bif-btn-large{font-size:1rem;min-height:48px;padding:1rem 2rem}.bif-check-availability{width:100%}.bif-spinner{animation:spin 1s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:currentcolor;height:1rem;width:1rem}@keyframes spin{to{transform:rotate(-1turn)}}.bif-properties{display:flex;flex-direction:column;gap:1.5rem}.bif-property-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:0;position:relative;transition:all .2s ease}.bif-property-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-property-card.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-property-card.bif-unavailable{background:#f9fafb;opacity:.75}.bif-property-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;padding:.75rem}.bif-property-image{border-radius:.5rem;flex-shrink:0;height:80px;overflow:hidden;width:80px}.bif-property-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-property-info{display:flex;flex:1;flex-direction:column;gap:.5rem;padding-top:.25rem}.bif-property-name{color:#1f2937;font-size:1.25rem;font-weight:600;line-height:1;margin:0}.bif-property-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.bif-property-status-container{flex-shrink:0}.bif-property-status{border:1px solid;border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.bif-status-available{background:#d1fae5;border-color:#a7f3d0;color:#065f46}.bif-status-booked{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bif-status-no-rate{background:#f3f4f6;border-color:#d1d5db;color:#374151}.bif-status-min-nights{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bif-status-unavailable{background:#f3f4f6;border-color:#d1d5db;color:#6b7280}.bif-availability-details,.bif-property-card .bif-availability-details{animation:none!important;border-bottom:1px solid #e5e7eb;display:block!important;padding:.75rem;visibility:visible!important}.bif-daily-breakdown-title{color:#374151;font-size:.875rem;font-weight:600}.bif-daily-rates{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-bottom:1rem}.bif-daily-rate{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem;text-align:center}.bif-daily-rate.bif-available{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.bif-daily-rate.bif-unavailable{background:#fef2f2;border-color:#fecaca;color:#dc2626}.bif-date{font-size:.75rem;font-weight:500;margin-bottom:.25rem}.bif-rate{font-size:.875rem;font-weight:600}.bif-rate-summary{background:#f9fafb;border-radius:.375rem;margin-bottom:0;padding:1rem}.bif-summary-row{align-items:center;color:#374151;display:flex;font-size:.875rem;justify-content:space-between}.bif-total{color:#1f2937;font-size:1rem;font-weight:600}.bif-property-actions{bottom:1.5rem;position:absolute;left:1.5rem}.bif-property-actions .bif-btn{min-width:120px}.bif-optional-extras{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;margin:1.5rem;padding:1rem}@media (max-width:768px){.bif-property-header{align-items:stretch;flex-direction:column;gap:1rem}.bif-property-image{height:200px;width:100%}.bif-property-info{text-align:center}.bif-property-status-container{align-self:center}.bif-property-actions{border-top:1px solid #e5e7eb;padding:1.5rem;position:static;text-align:center}.bif-daily-rates{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.bif-extras-list{display:flex;flex-direction:column;gap:.75rem}.bif-extra-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:flex;justify-content:space-between;padding:.75rem}.bif-extra-info{align-items:center;display:flex;gap:.75rem}.bif-extra-info input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;width:1.125rem}.bif-extra-info label{color:#374151;cursor:pointer;font-size:.875rem;margin:0}.bif-extra-price{color:#1f2937;font-size:.875rem;font-weight:600}.bif-summary-content{display:flex;flex-direction:column;gap:1.5rem}.bif-summary-section{background:#f9fafb;border-radius:.375rem;padding:1rem}.bif-property-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;margin-bottom:1rem;padding:1.5rem}.bif-property-summary:last-child{margin-bottom:0}.bif-property-summary-name{color:#15803d;font-size:1rem;font-weight:600;margin:0 0 .75rem}.bif-property-total{border-top:1px solid #bbf7d0;padding-top:1rem}.bif-total-row{color:#15803d;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.bif-total-row.bif-subtotal{font-size:1rem;font-weight:600}.bif-mandatory-extras-summary,.bif-optional-extras-summary{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.bif-mandatory-extras-summary .bif-total-row{color:#374151!important}.bif-optional-extras-summary .bif-total-row{color:#92400e!important}.bif-discount-form{display:flex;gap:.5rem}.bif-discount-input{border:1px solid #d1d5db;border-radius:.375rem;flex:1;font-size:.875rem;padding:.75rem!important}.bif-discount-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-discount-applied{color:#10b981;font-size:.875rem;font-weight:500;margin-top:.5rem}.bif-grand-total{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;padding:1.5rem}.bif-total-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.bif-total-amount,.bif-total-main span:first-child{color:#1f2937;font-size:1.125rem;font-weight:600}.bif-discount-text{color:#059669;font-size:.875rem;font-weight:500;margin-top:.5rem;text-align:right}.bif-total-breakdown{color:#6b7280;display:flex;flex-direction:column;font-size:.875rem;gap:.25rem}.bif-breakdown-row{display:flex;justify-content:space-between}.bif-surcharge-note{color:#6b7280;font-size:.75rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.bif-customer-details{padding:2rem}.bif-customer-form{display:flex;flex-direction:column;gap:.5rem}.bif-form-row{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.bif-form-row.bif-full-width{grid-template-columns:1fr}@media (max-width:768px){.bif-form-row{gap:1rem;grid-template-columns:1fr}}.bif-form-field input,.bif-form-field textarea{border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;padding:.5rem!important;transition:all .2s ease;width:100%}.bif-form-field input:focus,.bif-form-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-form-field input.bif-error,.bif-form-field textarea.bif-error{border-color:#ef4444}.bif-field-error{color:#ef4444;font-size:.875rem;margin-top:.5rem}.bif-form-field textarea{min-height:120px;resize:vertical}.bif-terms-checkbox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;margin-bottom:.75rem;padding:1rem}.bif-terms-checkbox input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;margin-left:.75rem;width:1.125rem}.bif-terms-checkbox label{color:#1e40af;cursor:pointer;font-size:.875rem;line-height:1.5}.bif-terms-checkbox a{color:#3b82f6;text-decoration:underline}.bif-terms-checkbox a:hover{color:#1d4ed8}.bif-payment-options{flex-direction:column}.bif-payment-buttons,.bif-payment-options{display:flex;gap:1rem}@media (max-width:768px){.bif-payment-buttons{flex-direction:column}}.bif-validation-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;font-size:.875rem;padding:1rem}.bif-surcharge-info{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;color:#92400e;font-size:.875rem;margin-top:1rem;padding:1rem}.bif-payment-container{padding:1.5rem}.bif-payment-container h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.bif-stripe-form{display:flex;flex-direction:column;gap:1rem}.bif-card-element-container{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:1rem;transition:border-color .2s ease}.bif-card-element-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.bif-success-message{background:#d1fae5;border:1px solid #a7f3d0;border-radius:.375rem;color:#065f46;padding:1rem}.bif-success-message a{color:#047857;text-decoration:underline}.bif-error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;margin-bottom:1rem;padding:1rem}@media (max-width:640px){.bif-booking-container,.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{padding:1rem}.bif-total-amount{font-size:1.5rem}}.bif-gift-certificate-section{margin-top:1rem}.bif-gift-certificate-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-top:1rem;padding:1rem}.bif-gift-certificate-form .bif-form-row{display:flex;gap:1rem;margin-bottom:1rem}.bif-gift-certificate-form .bif-form-field{flex:1}.bif-gift-certificate-form .bif-form-field label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.bif-gift-certificate-form .bif-form-control{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem;width:100%}.bif-gift-certificate-form .bif-form-control:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1);outline:none}.bif-gift-certificate-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#16a34a;margin-top:1rem;padding:1rem}.bif-gift-certificate-success p{margin:.25rem 0}.bif-gift-certificate-success p:first-child{font-weight:600}@media (max-width:768px){.bif-gift-certificate-form .bif-form-row{flex-direction:column;gap:.5rem}}.bif-privacy-consent{align-items:flex-start;background:#f8f9fa;border:1px solid #e2e8f0;border-radius:.5rem;display:flex;gap:.5rem;margin:1rem 0;padding:1rem}.bif-privacy-consent input[type=checkbox]{flex-shrink:0;margin-left:0;margin-top:.1rem;transform:scale(1.2)}.bif-privacy-consent label{color:#4a5568;cursor:pointer;flex:1;font-size:.9rem;line-height:1.4}.bif-privacy-consent a{color:#3182ce;text-decoration:none}.bif-privacy-consent a:hover{text-decoration:underline}.bif-properties--grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:840px){.bif-properties--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.bif-properties--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.bif-tile{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.bif-tile:hover{box-shadow:0 8px 20px rgba(0,0,0,.06);transform:translateY(-2px)}.bif-tile.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-tile.is-unavailable{opacity:.75}.bif-tile__hero{aspect-ratio:16/10;background:#f3f4f6;position:relative}.bif-tile__hero img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-chip{background:#111827;border-radius:999px;color:#fff;font-size:.75rem;right:.75rem;opacity:.9;padding:.35rem .6rem;position:absolute;top:.75rem}.bif-tile.is-unavailable .bif-chip{background:#6b7280}.bif-tile__content{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.bif-tile__title{color:#1f2937;font-size:1.05rem;font-weight:600;margin:0}.bif-amenities--slim{display:flex;flex-wrap:wrap;gap:.5rem .75rem;list-style:none;margin:0;padding:0}.bif-amenities--slim li{background:#f9fafb;border:none;border-radius:.5rem;color:#6b7280;font-size:.8125rem;padding:.35rem .6rem}.bif-tile__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-pill{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:999px;display:flex;font-size:.85rem;gap:.5rem;padding:.45rem .6rem}.bif-pill.ok{background:#ecfdf5;border-color:#d1fae5;color:#065f46}.bif-pill.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-pill__date{color:var(--bif-muted,#6b7280);font-size:.775rem}.bif-pill__amt{font-weight:600}.bif-tile__footer{align-items:center;display:flex;justify-content:center;margin-top:.25rem}.bif-nights{color:var(--bif-muted,#6b7280);font-size:.875rem}.bif-properties--rows{display:flex;flex-direction:column;gap:.75rem}.bif-row{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);padding:.75rem;transition:all .2s ease}.bif-row.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-row.is-unavailable{opacity:.75}@media (min-width:900px){.bif-row{grid-template-columns:88px 1.2fr 1.2fr auto}.bif-row.no-image{grid-template-columns:1.2fr 1.2fr auto}}.bif-row__thumb{border-radius:.5rem;height:66px;overflow:hidden;width:88px}.bif-row__thumb img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-row__top{align-items:center;display:flex;gap:.5rem}.bif-row__title{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.bif-dot{background:#9ca3af;border-radius:999px;height:.6rem;width:.6rem}.bif-dot.ok{background:#16a34a}.bif-dot.na{background:#ef4444}.bif-amenities--inline{display:flex;flex-wrap:wrap;gap:.4rem .6rem;list-style:none;margin:.25rem 0 0;padding:0}.bif-amenities--inline li{align-items:center;color:#374151;display:flex;font-size:.85rem;gap:.35rem}.bif-row__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-rmini{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.5rem;min-width:110px;padding:.35rem .6rem}.bif-rmini.ok{background:#f0fdf4;border-color:#dcfce7;color:#065f46}.bif-rmini.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-rmini__date{color:var(--bif-muted,#6b7280);font-size:.75rem}.bif-rmini__amt{font-weight:600}.bif-row__cta{align-items:center;display:flex;justify-content:flex-end}@media (max-width:899px){.bif-row__cta{justify-content:flex-start}}.bif-properties--cards{display:flex;flex-direction:column;gap:1.5rem}.bif-modal-overlay{align-items:center;animation:bifModalFadeIn .2s ease-out;background-color:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;right:0;padding:1rem;position:fixed;left:0;top:0;z-index:999999}@keyframes bifModalFadeIn{0%{opacity:0}to{opacity:1}}.bif-modal{animation:bifModalSlideIn .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);display:flex;flex-direction:column;max-height:90vh;max-width:600px;width:100%}@keyframes bifModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.bif-modal-title{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.bif-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:32px}.bif-modal-close:hover{background-color:#f3f4f6;color:#111827}.bif-modal-close:focus{outline:2px solid #3b82f6;outline-offset:2px}.bif-modal-content{flex:1;overflow-y:auto;padding:1.5rem}.bif-modal-content p{color:#374151;line-height:1.6;margin-bottom:1rem}.bif-modal-content p:last-child{margin-bottom:0}.bif-modal-content ol,.bif-modal-content ul{color:#374151;line-height:1.6;margin-bottom:1rem;padding-right:1.5rem}.bif-modal-content h3,.bif-modal-content h4,.bif-modal-content h5{color:#111827;margin-bottom:.75rem;margin-top:1.5rem}.bif-modal-content h3:first-child,.bif-modal-content h4:first-child,.bif-modal-content h5:first-child{margin-top:0}@media (max-width:640px){.bif-modal{margin:1rem;max-width:100%}.bif-modal-content,.bif-modal-header{padding:1rem}} -
book-it-fast/trunk/build/gift-certificate-frontend.asset.php
r3343577 r3367536 1 <?php return array('dependencies' => array('react', 'react-dom'), 'version' => ' 082765cf628aa8ff7498');1 <?php return array('dependencies' => array('react', 'react-dom'), 'version' => 'be63012d617935740042'); -
book-it-fast/trunk/build/gift-certificate-frontend.css
r3343577 r3367536 1 .bif-booking-container,.bif-bookitfast-container{background:#f8f9fa;border-radius:.5rem;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0 auto;max-width:1200px;padding:2rem;--bif-button-color:#0073aa;--bif-button-color-hover:#0073aadd;--bif-button-color-active:#0073aabb;--bif-button-text-color:#fff}.bif-bookitfast-container h3{color:#2d3748;font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.5rem;text-align:center}.bif-bookitfast-container p{color:#718096;font-size:1.1rem;margin-bottom:2rem;text-align:center}.bif-form-inline{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);display:grid;gap:1.5rem;grid-template-columns:1fr 1fr auto;margin-bottom:2rem;padding:2rem}.bif-form-group{display:flex;flex-direction:column}.bif-form-group label{color:#4a5568;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.bif-form-control{background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease}.bif-form-control:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-btn.bif-btn-success{align-self:end;background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;letter-spacing:.05em;padding:.875rem 2rem;text-transform:uppercase;transition:all .2s ease}.bif-btn.bif-btn-success:hover:not(:disabled){box-shadow:0 8px 25px rgba(72,187,120,.3);transform:translateY(-2px)}.bif-btn.bif-btn-success:disabled{cursor:not-allowed;opacity:.6}.bif-bookitfast_availability_grid_div{background:#fff;border:3px solid transparent;border-radius:20px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin-bottom:1.5rem;overflow:hidden;padding:0;position:relative;transition:all .3s ease}.bif-check-availability span:before,div.editor-styles-wrapper .bif-booking-container button.bif-btn,div.editor-styles-wrapper .bif-booking-container button.bif-btn-primary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-secondary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-select,div.editor-styles-wrapper .bif-booking-container button.bif-btn-selected,div.editor-styles-wrapper button.bif-btn,div.editor-styles-wrapper button.bif-btn-primary,div.editor-styles-wrapper button.bif-btn-secondary,div.editor-styles-wrapper button.bif-btn-select,div.editor-styles-wrapper button.bif-btn-selected{color:var(--bif-button-text-color,#fff)!important}.bif-bookitfast_availability_grid_div:hover{box-shadow:0 12px 30px rgba(0,0,0,.15);transform:translateY(-4px)}.bif-bookitfast_availability_grid_div.selected{border-color:#4299e1;box-shadow:0 12px 30px rgba(66,153,225,.2)}.bif-property-header{align-items:center;color:#1f2937;justify-content:space-between;padding:1.5rem}.bif-bookitfast_availability_grid_div h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.bif-bookitfast_availability_grid_div .availability_button{margin:0}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{background:#3b82f6;border:2px solid #3b82f6;border-radius:.375rem;color:#fff;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.bif-bookitfast_availability_grid_div .availability_button .bif-btn:hover{background:#2563eb;border-color:#2563eb}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-success{background:#10b981;border-color:#10b981}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-danger{background:#ef4444;border-color:#ef4444;cursor:not-allowed}.bif-availability-details{animation:slideDown .3s ease;display:none;padding:2rem}.bif-bookitfast_availability_grid_div.selected .bif-availability-details{display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-availability_table{background:#fff;border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:1.5rem;overflow:hidden}.bif-availability_table thead{background:linear-gradient(135deg,#4299e1,#3182ce);color:#fff}.bif-availability_table thead th{font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:left;text-transform:uppercase}.bif-availability_table tbody tr{transition:background-color .2s ease}.bif-availability_table tbody tr:hover{background-color:#f7fafc}.bif-availability_table tbody td{border-bottom:1px solid #e2e8f0;font-size:.95rem;padding:1rem}.bif-cell_date_available{background-color:#f0fff4;border-left:4px solid #48bb78}.bif-cell_date_unavailable{background-color:#fff5f5;border-left:4px solid #f56565;opacity:.7}.bif-optional_extras{background:#f7fafc;border-radius:12px;margin-top:1rem;padding:1.5rem}.bif-optional_extras h4{align-items:center;color:#2d3748;display:flex;font-size:1.2rem;font-weight:700;margin-bottom:1rem}.bif-optional_extras h4:before{content:"✨";margin-right:.5rem}.bif-bookitfast_optional_extra{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.bif-bookitfast_optional_extra:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateX(4px)}.bif-bookitfast_optional_extra input[type=checkbox]{margin-right:.75rem;transform:scale(1.2)}.bif-bookitfast_optional_extra label{color:#4a5568;cursor:pointer;flex-grow:1;font-weight:500}.bif-bookitfast_optional_extra div:last-child{color:#2d3748;font-size:1.1rem;font-weight:700}.bif-user-details-form{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-user-details-form h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:left}.bif-form-row{gap:1rem;margin-bottom:1.5rem}.bif-form-row.full-width{grid-template-columns:1fr}.bif-form-field label,.bif-form-row label{color:#4a5568;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.bif-form-field input,.bif-form-field textarea,.bif-form-row input,.bif-form-row textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.875rem;transition:all .2s ease}.bif-form-field input:focus,.bif-form-field textarea:focus,.bif-form-row input:focus,.bif-form-row textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-payment-options{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-payment-options .bif-btn{background:linear-gradient(135deg,#4299e1,#3182ce);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-right:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-payment-options .bif-btn:hover{box-shadow:0 8px 25px rgba(66,153,225,.3);transform:translateY(-2px)}.bif-payment-options .bif-btn.bif-btn-success{background:linear-gradient(135deg,#48bb78,#38a169)}.bif-payment-options .bif-btn.bif-btn-success:hover{box-shadow:0 8px 25px rgba(72,187,120,.3)}.bif-btn-primary,.btn-primary{background:linear-gradient(135deg,var(--bif-button-color,#4299e1) 0,var(--bif-button-color-hover,#3182ce) 100%);border:none;border-radius:12px;color:var(--bif-button-text-color,#fff);cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-right:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-btn-primary:hover,.btn-primary:hover{background:linear-gradient(135deg,var(--bif-button-color-hover,#3182ce) 0,var(--bif-button-color-active,#2b6cb0) 100%);box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-2px)}.bif-btn-rounded{border-radius:12px}.bif-surcharge-info{margin-top:0}.bif-surcharge-info p{font-size:.95rem;margin:0}.bif-terms-checkbox{align-items:flex-start;background:#f7fafc;border-radius:12px;display:flex;gap:.75rem;margin:1.5rem 0;padding:1.5rem}.bif-terms-checkbox input[type=checkbox]{margin-top:.25rem;transform:scale(1.2)}.bif-terms-checkbox label{color:#4a5568;line-height:1.6}.bif-terms-checkbox a{color:#4299e1;font-weight:600;text-decoration:none}.bif-terms-checkbox a:hover{text-decoration:underline}.alert{border-radius:12px;font-weight:500;margin:1rem 0;padding:1rem 1.5rem}.alert-danger{background-color:#fed7d7;border:1px solid #feb2b2;color:#c53030}.alert-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}@media (max-width:768px){.bif-bookitfast-container{border-radius:16px;padding:1rem}.bif-form-inline{gap:1rem;grid-template-columns:1fr}.bif-property-header{flex-direction:column;gap:1rem;text-align:center}.bif-form-row{grid-template-columns:1fr}.bif-availability_table{font-size:.85rem}.bif-availability_table tbody td,.bif-availability_table thead th{padding:.5rem}}@media (max-width:480px){.bif-bookitfast-container{padding:.75rem}.bif-bookitfast-container h3{font-size:1.5rem}.bif-form-inline,.bif-property-header,.bif-user-details-form{padding:1rem}}.bif-bookitfast-container .bif-form-group{display:flex;flex-wrap:wrap;padding:10px;width:100%}.bif-discount-code-container{margin-bottom:.4rem;margin-top:.4rem}.bif-discount-code-row{align-items:center;display:flex;flex-flow:row}.bif-discount-code-row .bif-form-group{flex-basis:50%;width:100%}.bif-discount-code-row .bif-form-group input{border-radius:.25rem 0 0 .25rem;padding:.6rem}.bif-discount-label{flex-basis:50%}.bif-discount-code-row .bif-apply-discount-btn{border-radius:0 .25rem .25rem 0;margin-bottom:0}.bif-bookitfast-container #bookitfastbooking{display:flex;flex-flow:row wrap;gap:10px}.bif-bookitfast-container{border-radius:5px;box-sizing:border-box;width:100%}.bif-bookitfast-container .bif-availability-button-container{align-self:flex-end}.bif-bookitfast-container .bif-btn.bif-btn-success,.bif-bookitfast-container .bif-form-control,.bookitfast-emulate-form-control{border:1px solid #ced4da;border-radius:.25rem;font-size:1rem;padding:.6rem;width:100%}.bif-stripe-payment-button{margin-top:12px}.bif-bookitfast-text{font-size:16px}.bif-terms-checkbox{margin-bottom:.5em;margin-top:.5em}.bif-bookitfast-container .bif-btn.bif-btn-success{align-self:flex-end;border-radius:4px;line-height:1.3em;padding:8px}.bif-bookitfast-container label{font-size:1rem}.bif-bookitfast-property-list{list-style:none;padding:0}.bif-availability_table{background-color:#fff;border:1px solid #ddd;border-collapse:collapse;width:100%}.bif-availability_table_wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.bif-availability_table thead{font-weight:400;text-align:left}.bif-availability_table tbody td,.bif-availability_table thead th{font-size:16px;font-weight:400;padding:6px;text-align:left}.bif-availability_table tbody td{border-bottom:1px solid #fff}.bif-availability_table tbody tr td:last-child,.bif-availability_table thead th:last-child{padding-right:10px;text-align:right}.bif-bookitfast-property-item{border:1px solid #ddd;border-radius:5px;margin-bottom:20px;padding:10px}.bif-bookitfast-property-title{font-size:1.2em;font-weight:700}.bif-bookitfast-container{background:#f9f9f9;border:1px solid #ddd;padding:10px}.bif-form-inline{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.bif-form-group{flex:1;margin-right:20px;min-width:200px}.bif-mr-6{margin-right:6px}.bif-btn{background-color:#28a745;color:#fff;margin-bottom:4px;padding:10px 20px}.bif-btn-danger{background-color:#ff4141}.bif-btn-rounded{border-radius:.25rem}.bif-alert{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;margin-top:20px;padding:10px}.bif-alert.bif-alert-success{background-color:#e0f7e0;border:1px solid #3d9140;color:#3d9140;font-size:14px;margin-top:20px;padding:4px 10px}.bif-availability-results{margin-top:20px}.bif-availability-item{border:1px solid #ccc;border-radius:.25rem;margin-bottom:10px;padding:.4rem}.bif-bookitfast_availability_grid_div{align-items:center;background-color:#fbfbfb;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:20px;margin-top:12px;padding:.4rem;width:100%}.bif-bookitfast_availability_grid_div .inner_div{padding:10px;width:100%}.bif-bookitfast-certificate-form,.bif-user-details-form{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;margin-bottom:20px;margin-top:12px;width:100%}.bif-bookitfast_availability_grid_div h3{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:left}.bif-bookitfast_availability_grid_div .availability_button{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:right}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{border-radius:4px;padding:8px 16px}.bif-property_heading_container h2{font-size:1.4em;margin:0}.bif-bookitfast_day{font-size:14px}.bif-bookitfast_day_cell{display:inline-block;margin:5px}.bif-cell_date_available{background-color:#e0f7e0;border-color:#3d9140;width:100%}.bif-cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-mandatory_extras,.bif-optional_extras{margin-top:10px}.bif-mandatory_extras h4,.bif-optional_extras h4{font-size:1.2em;margin-bottom:5px}.bif-btn{padding:5px 10px}.bif-availability_grid{display:flex;flex-wrap:wrap;gap:4px}.bif-bookitfast_day_cell{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;display:flex;flex-direction:column;font-size:14px;height:100px;justify-content:center;padding:10px;text-align:center;transition:transform .2s ease;width:100px}.bif-bookitfast_day_cell:hover{transform:scale(1.05)}.cell_date_available{background-color:#e0f7e0;border-color:#3d9140}.cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-bookitfast_availability_cell{margin-top:5px}.bif-avail_rate{color:#333;width:100%}.bif-property_summary_item{border:1px solid #ddd;border-radius:5px;margin-top:10px}.bif-property_summary_item_title{background-color:green;border-radius:4px 4px 0 0;color:#fff;margin:0;padding:10px}.bif-property_summary_item_body{margin:0}.bif-property_summary_sub_heading{line-height:1em;margin:0}.bif-property_summary_item_body .bif-property_summary_item_body_section{border-radius:0 0 4px 4px;box-sizing:border-box;padding:.4em}.bif-property_summary_item_body p{flex-basis:50%;flex-grow:1;margin:0}.bif-bookitfast-certificate-form .bif-form-group,.bif-property_summary_detail_row,.bif-user-details-form .bif-form-group{border-bottom:1px solid #ddd;display:flex;flex-direction:row;width:100%}.bif-property_summary_detail_row div{flex-basis:50%}.bif-property_summary_sub_heading{background-color:#c7c7c7}.bif-bookitfast-certificate-form .bif-form-row,.bif-user-details-form .bif-form-row{box-sizing:border-box;display:flex;font-size:14px;justify-content:flex-end;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>label,.bif-user-details-form .bif-form-row>label{flex:1;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>input,.bif-bookitfast-certificate-form .bif-form-row>select,.bif-user-details-form .bif-form-row>input,.bif-user-details-form .bif-form-row>textarea{border:1px solid #d1d5db;border-radius:.25rem;flex:2;font-size:1rem;padding:.5rem!important}.bif-user-details-form .bif-form-row:last-child{border:none}.bif-user-details-form .bif-form-row>textarea{font-size:14px;padding:6px}.bif-bookitfast_total_cost{background-color:green;color:#fff;padding-left:0;padding-right:0}.bif-payment-container{margin-top:12px}.bif-surcharge-info{color:#666;font-size:.8em;font-style:italic;margin-top:10px}.bif-optional_extras{width:100%}.bif-optional_extras h4{margin-top:4px}.bif-optional_extras .bif-bookitfast_optional_extra{display:flex;flex-direction:row;width:100%}.bif-optional_extras .bif-bookitfast_optional_extra div{flex-basis:50%;font-weight:400}.bif-booking-container{font-family:system-ui,-apple-system,sans-serif;margin:0 auto;max-width:1200px}.bif-booking-container *{box-sizing:border-box}.bif-booking-header{display:none}.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:1.5rem;padding:1.5rem}.bif-booking-summary:hover,.bif-customer-details:hover,.bif-date-selector:hover,.bif-property-list:hover{box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-section-title{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.bif-subsection-title{color:#374151;font-size:1.125rem;font-weight:500;margin:0 0 .75rem}.bif-date-form{align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.bif-date-form{gap:1rem;grid-template-columns:1fr}}.bif-form-field{display:flex;flex-direction:column}.bif-form-field label{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.bif-date-input,.bif-nights-select{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;height:44px;padding:.5rem;transition:all .2s ease}.bif-date-input:focus,.bif-nights-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.bif-btn-primary{background:var(--bif-button-color,#3b82f6);color:var(--bif-button-text-color,#fff)}.bif-btn-primary:hover{background:var(--bif-button-color-hover,#2563eb);color:var(--bif-button-text-color,#fff)}.bif-btn-secondary{background:#6b7280;color:#fff}.bif-property-icons{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.bif-property-icon{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;display:inline-flex;font-size:.875rem;gap:4px;padding:4px 8px}.bif-property-icon:hover{background:#e5e7eb}.bif-btn-secondary:hover{background:#4b5563}.bif-btn-select{background:#3b82f6;color:#fff}.bif-btn-selected{background:#10b981;color:#fff}.bif-btn-disabled{background:#9ca3af;color:#fff;cursor:not-allowed}.bif-btn-large{font-size:1rem;min-height:48px;padding:1rem 2rem}.bif-check-availability{width:100%}.bif-spinner{animation:spin 1s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:currentcolor;height:1rem;width:1rem}@keyframes spin{to{transform:rotate(1turn)}}.bif-properties{display:flex;flex-direction:column;gap:1.5rem}.bif-property-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:0;position:relative;transition:all .2s ease}.bif-property-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-property-card.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-property-card.bif-unavailable{background:#f9fafb;opacity:.75}.bif-property-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;padding:.75rem}.bif-property-image{border-radius:.5rem;flex-shrink:0;height:80px;overflow:hidden;width:80px}.bif-property-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-property-info{display:flex;flex:1;flex-direction:column;gap:.5rem;padding-top:.25rem}.bif-property-name{color:#1f2937;font-size:1.25rem;font-weight:600;line-height:1;margin:0}.bif-property-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.bif-property-status-container{flex-shrink:0}.bif-property-status{border:1px solid;border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.bif-status-available{background:#d1fae5;border-color:#a7f3d0;color:#065f46}.bif-status-booked{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bif-status-no-rate{background:#f3f4f6;border-color:#d1d5db;color:#374151}.bif-status-min-nights{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bif-status-unavailable{background:#f3f4f6;border-color:#d1d5db;color:#6b7280}.bif-availability-details,.bif-property-card .bif-availability-details{animation:none!important;border-bottom:1px solid #e5e7eb;display:block!important;padding:.75rem;visibility:visible!important}.bif-daily-breakdown-title{color:#374151;font-size:.875rem;font-weight:600}.bif-daily-rates{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-bottom:1rem}.bif-daily-rate{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem;text-align:center}.bif-daily-rate.bif-available{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.bif-daily-rate.bif-unavailable{background:#fef2f2;border-color:#fecaca;color:#dc2626}.bif-date{font-size:.75rem;font-weight:500;margin-bottom:.25rem}.bif-rate{font-size:.875rem;font-weight:600}.bif-rate-summary{background:#f9fafb;border-radius:.375rem;margin-bottom:0;padding:1rem}.bif-summary-row{align-items:center;color:#374151;display:flex;font-size:.875rem;justify-content:space-between}.bif-total{color:#1f2937;font-size:1rem;font-weight:600}.bif-property-actions{bottom:1.5rem;position:absolute;right:1.5rem}.bif-property-actions .bif-btn{min-width:120px}.bif-optional-extras{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;margin:1.5rem;padding:1rem}@media (max-width:768px){.bif-property-header{align-items:stretch;flex-direction:column;gap:1rem}.bif-property-image{height:200px;width:100%}.bif-property-info{text-align:center}.bif-property-status-container{align-self:center}.bif-property-actions{border-top:1px solid #e5e7eb;padding:1.5rem;position:static;text-align:center}.bif-daily-rates{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.bif-extras-list{display:flex;flex-direction:column;gap:.75rem}.bif-extra-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:flex;justify-content:space-between;padding:.75rem}.bif-extra-info{align-items:center;display:flex;gap:.75rem}.bif-extra-info input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;width:1.125rem}.bif-extra-info label{color:#374151;cursor:pointer;font-size:.875rem;margin:0}.bif-extra-price{color:#1f2937;font-size:.875rem;font-weight:600}.bif-summary-content{display:flex;flex-direction:column;gap:1.5rem}.bif-summary-section{background:#f9fafb;border-radius:.375rem;padding:1rem}.bif-property-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;margin-bottom:1rem;padding:1.5rem}.bif-property-summary:last-child{margin-bottom:0}.bif-property-summary-name{color:#15803d;font-size:1rem;font-weight:600;margin:0 0 .75rem}.bif-property-total{border-top:1px solid #bbf7d0;padding-top:1rem}.bif-total-row{color:#15803d;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.bif-total-row.bif-subtotal{font-size:1rem;font-weight:600}.bif-mandatory-extras-summary,.bif-optional-extras-summary{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.bif-mandatory-extras-summary .bif-total-row{color:#374151!important}.bif-optional-extras-summary .bif-total-row{color:#92400e!important}.bif-discount-form{display:flex;gap:.5rem}.bif-discount-input{border:1px solid #d1d5db;border-radius:.375rem;flex:1;font-size:.875rem;padding:.75rem!important}.bif-discount-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-discount-applied{color:#10b981;font-size:.875rem;font-weight:500;margin-top:.5rem}.bif-grand-total{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;padding:1.5rem}.bif-total-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.bif-total-amount,.bif-total-main span:first-child{color:#1f2937;font-size:1.125rem;font-weight:600}.bif-discount-text{color:#059669;font-size:.875rem;font-weight:500;margin-top:.5rem;text-align:left}.bif-total-breakdown{color:#6b7280;display:flex;flex-direction:column;font-size:.875rem;gap:.25rem}.bif-breakdown-row{display:flex;justify-content:space-between}.bif-surcharge-note{color:#6b7280;font-size:.75rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.bif-customer-details{padding:2rem}.bif-customer-form{display:flex;flex-direction:column;gap:.5rem}.bif-form-row{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.bif-form-row.bif-full-width{grid-template-columns:1fr}@media (max-width:768px){.bif-form-row{gap:1rem;grid-template-columns:1fr}}.bif-form-field input,.bif-form-field textarea{border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;padding:.5rem!important;transition:all .2s ease;width:100%}.bif-form-field input:focus,.bif-form-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-form-field input.bif-error,.bif-form-field textarea.bif-error{border-color:#ef4444}.bif-field-error{color:#ef4444;font-size:.875rem;margin-top:.5rem}.bif-form-field textarea{min-height:120px;resize:vertical}.bif-terms-checkbox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;margin-bottom:.75rem;padding:1rem}.bif-terms-checkbox input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;margin-right:.75rem;width:1.125rem}.bif-terms-checkbox label{color:#1e40af;cursor:pointer;font-size:.875rem;line-height:1.5}.bif-terms-checkbox a{color:#3b82f6;text-decoration:underline}.bif-terms-checkbox a:hover{color:#1d4ed8}.bif-payment-options{flex-direction:column}.bif-payment-buttons,.bif-payment-options{display:flex;gap:1rem}@media (max-width:768px){.bif-payment-buttons{flex-direction:column}}.bif-validation-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;font-size:.875rem;padding:1rem}.bif-surcharge-info{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;color:#92400e;font-size:.875rem;margin-top:1rem;padding:1rem}.bif-payment-container{padding:1.5rem}.bif-payment-container h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.bif-stripe-form{display:flex;flex-direction:column;gap:1rem}.bif-card-element-container{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:1rem;transition:border-color .2s ease}.bif-card-element-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.bif-success-message{background:#d1fae5;border:1px solid #a7f3d0;border-radius:.375rem;color:#065f46;padding:1rem}.bif-success-message a{color:#047857;text-decoration:underline}.bif-error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;margin-bottom:1rem;padding:1rem}@media (max-width:640px){.bif-booking-container,.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{padding:1rem}.bif-total-amount{font-size:1.5rem}}.bif-gift-certificate-section{margin-top:1rem}.bif-gift-certificate-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-top:1rem;padding:1rem}.bif-gift-certificate-form .bif-form-row{display:flex;gap:1rem;margin-bottom:1rem}.bif-gift-certificate-form .bif-form-field{flex:1}.bif-gift-certificate-form .bif-form-field label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.bif-gift-certificate-form .bif-form-control{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem;width:100%}.bif-gift-certificate-form .bif-form-control:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1);outline:none}.bif-gift-certificate-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#16a34a;margin-top:1rem;padding:1rem}.bif-gift-certificate-success p{margin:.25rem 0}.bif-gift-certificate-success p:first-child{font-weight:600}@media (max-width:768px){.bif-gift-certificate-form .bif-form-row{flex-direction:column;gap:.5rem}}.bif-privacy-consent{align-items:flex-start;background:#f8f9fa;border:1px solid #e2e8f0;border-radius:.5rem;display:flex;gap:.5rem;margin:1rem 0;padding:1rem}.bif-privacy-consent input[type=checkbox]{flex-shrink:0;margin-right:0;margin-top:.1rem;transform:scale(1.2)}.bif-privacy-consent label{color:#4a5568;cursor:pointer;flex:1;font-size:.9rem;line-height:1.4}.bif-privacy-consent a{color:#3182ce;text-decoration:none}.bif-privacy-consent a:hover{text-decoration:underline}.bif-properties--grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:840px){.bif-properties--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.bif-properties--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.bif-tile{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.bif-tile:hover{box-shadow:0 8px 20px rgba(0,0,0,.06);transform:translateY(-2px)}.bif-tile.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-tile.is-unavailable{opacity:.75}.bif-tile__hero{aspect-ratio:16/10;background:#f3f4f6;position:relative}.bif-tile__hero img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-chip{background:#111827;border-radius:999px;color:#fff;font-size:.75rem;left:.75rem;opacity:.9;padding:.35rem .6rem;position:absolute;top:.75rem}.bif-tile.is-unavailable .bif-chip{background:#6b7280}.bif-tile__content{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.bif-tile__title{color:#1f2937;font-size:1.05rem;font-weight:600;margin:0}.bif-amenities--slim{display:flex;flex-wrap:wrap;gap:.5rem .75rem;list-style:none;margin:0;padding:0}.bif-amenities--slim li{background:#f9fafb;border:none;border-radius:.5rem;color:#6b7280;font-size:.8125rem;padding:.35rem .6rem}.bif-tile__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-pill{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:999px;display:flex;font-size:.85rem;gap:.5rem;padding:.45rem .6rem}.bif-pill.ok{background:#ecfdf5;border-color:#d1fae5;color:#065f46}.bif-pill.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-pill__date{color:var(--bif-muted,#6b7280);font-size:.775rem}.bif-pill__amt{font-weight:600}.bif-tile__footer{align-items:center;display:flex;justify-content:center;margin-top:.25rem}.bif-nights{color:var(--bif-muted,#6b7280);font-size:.875rem}.bif-properties--rows{display:flex;flex-direction:column;gap:.75rem}.bif-row{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);padding:.75rem;transition:all .2s ease}.bif-row.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-row.is-unavailable{opacity:.75}@media (min-width:900px){.bif-row{grid-template-columns:88px 1.2fr 1.2fr auto}.bif-row.no-image{grid-template-columns:1.2fr 1.2fr auto}}.bif-row__thumb{border-radius:.5rem;height:66px;overflow:hidden;width:88px}.bif-row__thumb img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-row__top{align-items:center;display:flex;gap:.5rem}.bif-row__title{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.bif-dot{background:#9ca3af;border-radius:999px;height:.6rem;width:.6rem}.bif-dot.ok{background:#16a34a}.bif-dot.na{background:#ef4444}.bif-amenities--inline{display:flex;flex-wrap:wrap;gap:.4rem .6rem;list-style:none;margin:.25rem 0 0;padding:0}.bif-amenities--inline li{align-items:center;color:#374151;display:flex;font-size:.85rem;gap:.35rem}.bif-row__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-rmini{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.5rem;min-width:110px;padding:.35rem .6rem}.bif-rmini.ok{background:#f0fdf4;border-color:#dcfce7;color:#065f46}.bif-rmini.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-rmini__date{color:var(--bif-muted,#6b7280);font-size:.75rem}.bif-rmini__amt{font-weight:600}.bif-row__cta{align-items:center;display:flex;justify-content:flex-end}@media (max-width:899px){.bif-row__cta{justify-content:flex-start}}.bif-properties--cards{display:flex;flex-direction:column;gap:1.5rem} 1 .bif-booking-container,.bif-bookitfast-container{background:#f8f9fa;border-radius:.5rem;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0 auto;max-width:1200px;padding:2rem;--bif-button-color:#0073aa;--bif-button-color-hover:#0073aadd;--bif-button-color-active:#0073aabb;--bif-button-text-color:#fff}.bif-bookitfast-container h3{color:#2d3748;font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:.5rem;text-align:center}.bif-bookitfast-container p{color:#718096;font-size:1.1rem;margin-bottom:2rem;text-align:center}.bif-form-inline{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);display:grid;gap:1.5rem;grid-template-columns:1fr 1fr auto;margin-bottom:2rem;padding:2rem}.bif-form-group{display:flex;flex-direction:column}.bif-form-group label{color:#4a5568;font-size:.9rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;text-transform:uppercase}.bif-form-control{background:#fff;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;padding:.875rem 1rem;transition:all .2s ease}.bif-form-control:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-btn.bif-btn-success{align-self:end;background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;letter-spacing:.05em;padding:.875rem 2rem;text-transform:uppercase;transition:all .2s ease}.bif-btn.bif-btn-success:hover:not(:disabled){box-shadow:0 8px 25px rgba(72,187,120,.3);transform:translateY(-2px)}.bif-btn.bif-btn-success:disabled{cursor:not-allowed;opacity:.6}.bif-bookitfast_availability_grid_div{background:#fff;border:3px solid transparent;border-radius:20px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin-bottom:1.5rem;overflow:hidden;padding:0;position:relative;transition:all .3s ease}.bif-check-availability span:before,div.editor-styles-wrapper .bif-booking-container button.bif-btn,div.editor-styles-wrapper .bif-booking-container button.bif-btn-primary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-secondary,div.editor-styles-wrapper .bif-booking-container button.bif-btn-select,div.editor-styles-wrapper .bif-booking-container button.bif-btn-selected,div.editor-styles-wrapper button.bif-btn,div.editor-styles-wrapper button.bif-btn-primary,div.editor-styles-wrapper button.bif-btn-secondary,div.editor-styles-wrapper button.bif-btn-select,div.editor-styles-wrapper button.bif-btn-selected{color:var(--bif-button-text-color,#fff)!important}.bif-bookitfast_availability_grid_div:hover{box-shadow:0 12px 30px rgba(0,0,0,.15);transform:translateY(-4px)}.bif-bookitfast_availability_grid_div.selected{border-color:#4299e1;box-shadow:0 12px 30px rgba(66,153,225,.2)}.bif-property-header{align-items:center;color:#1f2937;justify-content:space-between;padding:1.5rem}.bif-bookitfast_availability_grid_div h3{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0}.bif-bookitfast_availability_grid_div .availability_button{margin:0}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{background:#3b82f6;border:2px solid #3b82f6;border-radius:.375rem;color:#fff;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.bif-bookitfast_availability_grid_div .availability_button .bif-btn:hover{background:#2563eb;border-color:#2563eb}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-success{background:#10b981;border-color:#10b981}.bif-bookitfast_availability_grid_div .availability_button .bif-btn.bif-btn-danger{background:#ef4444;border-color:#ef4444;cursor:not-allowed}.bif-availability-details{animation:slideDown .3s ease;display:none;padding:2rem}.bif-bookitfast_availability_grid_div.selected .bif-availability-details{display:block}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-availability_table{background:#fff;border-collapse:separate;border-radius:12px;border-spacing:0;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:1.5rem;overflow:hidden}.bif-availability_table thead{background:linear-gradient(135deg,#4299e1,#3182ce);color:#fff}.bif-availability_table thead th{font-size:.9rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:left;text-transform:uppercase}.bif-availability_table tbody tr{transition:background-color .2s ease}.bif-availability_table tbody tr:hover{background-color:#f7fafc}.bif-availability_table tbody td{border-bottom:1px solid #e2e8f0;font-size:.95rem;padding:1rem}.bif-cell_date_available{background-color:#f0fff4;border-left:4px solid #48bb78}.bif-cell_date_unavailable{background-color:#fff5f5;border-left:4px solid #f56565;opacity:.7}.bif-optional_extras{background:#f7fafc;border-radius:12px;margin-top:1rem;padding:1.5rem}.bif-optional_extras h4{align-items:center;color:#2d3748;display:flex;font-size:1.2rem;font-weight:700;margin-bottom:1rem}.bif-optional_extras h4:before{content:"✨";margin-right:.5rem}.bif-bookitfast_optional_extra{align-items:center;background:#fff;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.bif-bookitfast_optional_extra:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateX(4px)}.bif-bookitfast_optional_extra input[type=checkbox]{margin-right:.75rem;transform:scale(1.2)}.bif-bookitfast_optional_extra label{color:#4a5568;cursor:pointer;flex-grow:1;font-weight:500}.bif-bookitfast_optional_extra div:last-child{color:#2d3748;font-size:1.1rem;font-weight:700}.bif-user-details-form{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-user-details-form h3{color:#2d3748;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:left}.bif-form-row{gap:1rem;margin-bottom:1.5rem}.bif-form-row.full-width{grid-template-columns:1fr}.bif-form-field label,.bif-form-row label{color:#4a5568;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.bif-form-field input,.bif-form-field textarea,.bif-form-row input,.bif-form-row textarea{border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.875rem;transition:all .2s ease}.bif-form-field input:focus,.bif-form-field textarea:focus,.bif-form-row input:focus,.bif-form-row textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);outline:none}.bif-payment-options{background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.07);margin:2rem 0;padding:2rem}.bif-payment-options .bif-btn{background:linear-gradient(135deg,#4299e1,#3182ce);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-right:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-payment-options .bif-btn:hover{box-shadow:0 8px 25px rgba(66,153,225,.3);transform:translateY(-2px)}.bif-payment-options .bif-btn.bif-btn-success{background:linear-gradient(135deg,#48bb78,#38a169)}.bif-payment-options .bif-btn.bif-btn-success:hover{box-shadow:0 8px 25px rgba(72,187,120,.3)}.bif-btn-primary,.btn-primary{background:linear-gradient(135deg,var(--bif-button-color,#4299e1) 0,var(--bif-button-color-hover,#3182ce) 100%);border:none;border-radius:12px;color:var(--bif-button-text-color,#fff);cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;margin-right:1rem;padding:1rem 2rem;transition:all .2s ease}.bif-btn-primary:hover,.btn-primary:hover{background:linear-gradient(135deg,var(--bif-button-color-hover,#3182ce) 0,var(--bif-button-color-active,#2b6cb0) 100%);box-shadow:0 8px 25px rgba(0,0,0,.1);transform:translateY(-2px)}.bif-btn-rounded{border-radius:12px}.bif-surcharge-info{margin-top:0}.bif-surcharge-info p{font-size:.95rem;margin:0}.bif-terms-checkbox{align-items:flex-start;background:#f7fafc;border-radius:12px;display:flex;gap:.75rem;margin:1.5rem 0;padding:1.5rem}.bif-terms-checkbox input[type=checkbox]{margin-top:.25rem;transform:scale(1.2)}.bif-terms-checkbox label{color:#4a5568;line-height:1.6}.bif-terms-checkbox a{color:#4299e1;font-weight:600;text-decoration:none}.bif-terms-checkbox a:hover{text-decoration:underline}.alert{border-radius:12px;font-weight:500;margin:1rem 0;padding:1rem 1.5rem}.alert-danger{background-color:#fed7d7;border:1px solid #feb2b2;color:#c53030}.alert-success{background-color:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}@media (max-width:768px){.bif-bookitfast-container{border-radius:16px;padding:1rem}.bif-form-inline{gap:1rem;grid-template-columns:1fr}.bif-property-header{flex-direction:column;gap:1rem;text-align:center}.bif-form-row{grid-template-columns:1fr}.bif-availability_table{font-size:.85rem}.bif-availability_table tbody td,.bif-availability_table thead th{padding:.5rem}}@media (max-width:480px){.bif-bookitfast-container{padding:.75rem}.bif-bookitfast-container h3{font-size:1.5rem}.bif-form-inline,.bif-property-header,.bif-user-details-form{padding:1rem}}.bif-bookitfast-container .bif-form-group{display:flex;flex-wrap:wrap;padding:10px;width:100%}.bif-discount-code-container{margin-bottom:.4rem;margin-top:.4rem}.bif-discount-code-row{align-items:center;display:flex;flex-flow:row}.bif-discount-code-row .bif-form-group{flex-basis:50%;width:100%}.bif-discount-code-row .bif-form-group input{border-radius:.25rem 0 0 .25rem;padding:.6rem}.bif-discount-label{flex-basis:50%}.bif-discount-code-row .bif-apply-discount-btn{border-radius:0 .25rem .25rem 0;margin-bottom:0}.bif-bookitfast-container #bookitfastbooking{display:flex;flex-flow:row wrap;gap:10px}.bif-bookitfast-container{border-radius:5px;box-sizing:border-box;width:100%}.bif-bookitfast-container .bif-availability-button-container{align-self:flex-end}.bif-bookitfast-container .bif-btn.bif-btn-success,.bif-bookitfast-container .bif-form-control,.bookitfast-emulate-form-control{border:1px solid #ced4da;border-radius:.25rem;font-size:1rem;padding:.6rem;width:100%}.bif-stripe-payment-button{margin-top:12px}.bif-bookitfast-text{font-size:16px}.bif-terms-checkbox{margin-bottom:.5em;margin-top:.5em}.bif-bookitfast-container .bif-btn.bif-btn-success{align-self:flex-end;border-radius:4px;line-height:1.3em;padding:8px}.bif-bookitfast-container label{font-size:1rem}.bif-bookitfast-property-list{list-style:none;padding:0}.bif-availability_table{background-color:#fff;border:1px solid #ddd;border-collapse:collapse;width:100%}.bif-availability_table_wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.bif-availability_table thead{font-weight:400;text-align:left}.bif-availability_table tbody td,.bif-availability_table thead th{font-size:16px;font-weight:400;padding:6px;text-align:left}.bif-availability_table tbody td{border-bottom:1px solid #fff}.bif-availability_table tbody tr td:last-child,.bif-availability_table thead th:last-child{padding-right:10px;text-align:right}.bif-bookitfast-property-item{border:1px solid #ddd;border-radius:5px;margin-bottom:20px;padding:10px}.bif-bookitfast-property-title{font-size:1.2em;font-weight:700}.bif-bookitfast-container{background:#f9f9f9;border:1px solid #ddd;padding:10px}.bif-form-inline{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.bif-form-group{flex:1;margin-right:20px;min-width:200px}.bif-mr-6{margin-right:6px}.bif-btn{background-color:#28a745;color:#fff;margin-bottom:4px;padding:10px 20px}.bif-btn-danger{background-color:#ff4141}.bif-btn-rounded{border-radius:.25rem}.bif-alert{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;margin-top:20px;padding:10px}.bif-alert.bif-alert-success{background-color:#e0f7e0;border:1px solid #3d9140;color:#3d9140;font-size:14px;margin-top:20px;padding:4px 10px}.bif-availability-results{margin-top:20px}.bif-availability-item{border:1px solid #ccc;border-radius:.25rem;margin-bottom:10px;padding:.4rem}.bif-bookitfast_availability_grid_div{align-items:center;background-color:#fbfbfb;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:20px;margin-top:12px;padding:.4rem;width:100%}.bif-bookitfast_availability_grid_div .inner_div{padding:10px;width:100%}.bif-bookitfast-certificate-form,.bif-user-details-form{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;box-sizing:border-box;margin-bottom:20px;margin-top:12px;width:100%}.bif-bookitfast_availability_grid_div h3{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:left}.bif-bookitfast_availability_grid_div .availability_button{box-sizing:border-box;flex-basis:50%;line-height:1.3em;text-align:right}.bif-bookitfast_availability_grid_div .availability_button .bif-btn{border-radius:4px;padding:8px 16px}.bif-property_heading_container h2{font-size:1.4em;margin:0}.bif-bookitfast_day{font-size:14px}.bif-bookitfast_day_cell{display:inline-block;margin:5px}.bif-cell_date_available{background-color:#e0f7e0;border-color:#3d9140;width:100%}.bif-cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-mandatory_extras,.bif-optional_extras{margin-top:10px}.bif-mandatory_extras h4,.bif-optional_extras h4{font-size:1.2em;margin-bottom:5px}.bif-btn{padding:5px 10px}.bif-availability_grid{display:flex;flex-wrap:wrap;gap:4px}.bif-bookitfast_day_cell{align-items:center;background-color:#f9f9f9;border:1px solid #ddd;border-radius:5px;display:flex;flex-direction:column;font-size:14px;height:100px;justify-content:center;padding:10px;text-align:center;transition:transform .2s ease;width:100px}.bif-bookitfast_day_cell:hover{transform:scale(1.05)}.cell_date_available{background-color:#e0f7e0;border-color:#3d9140}.cell_date_unavailable{background-color:#f9e0e0;border-color:#ff4136}.bif-bookitfast_availability_cell{margin-top:5px}.bif-avail_rate{color:#333;width:100%}.bif-property_summary_item{border:1px solid #ddd;border-radius:5px;margin-top:10px}.bif-property_summary_item_title{background-color:green;border-radius:4px 4px 0 0;color:#fff;margin:0;padding:10px}.bif-property_summary_item_body{margin:0}.bif-property_summary_sub_heading{line-height:1em;margin:0}.bif-property_summary_item_body .bif-property_summary_item_body_section{border-radius:0 0 4px 4px;box-sizing:border-box;padding:.4em}.bif-property_summary_item_body p{flex-basis:50%;flex-grow:1;margin:0}.bif-bookitfast-certificate-form .bif-form-group,.bif-property_summary_detail_row,.bif-user-details-form .bif-form-group{border-bottom:1px solid #ddd;display:flex;flex-direction:row;width:100%}.bif-property_summary_detail_row div{flex-basis:50%}.bif-property_summary_sub_heading{background-color:#c7c7c7}.bif-bookitfast-certificate-form .bif-form-row,.bif-user-details-form .bif-form-row{box-sizing:border-box;display:flex;font-size:14px;justify-content:flex-end;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>label,.bif-user-details-form .bif-form-row>label{flex:1;padding:.5em}.bif-bookitfast-certificate-form .bif-form-row>input,.bif-bookitfast-certificate-form .bif-form-row>select,.bif-user-details-form .bif-form-row>input,.bif-user-details-form .bif-form-row>textarea{border:1px solid #d1d5db;border-radius:.25rem;flex:2;font-size:1rem;padding:.5rem!important}.bif-user-details-form .bif-form-row:last-child{border:none}.bif-user-details-form .bif-form-row>textarea{font-size:14px;padding:6px}.bif-bookitfast_total_cost{background-color:green;color:#fff;padding-left:0;padding-right:0}.bif-payment-container{margin-top:12px}.bif-surcharge-info{color:#666;font-size:.8em;font-style:italic;margin-top:10px}.bif-optional_extras{width:100%}.bif-optional_extras h4{margin-top:4px}.bif-optional_extras .bif-bookitfast_optional_extra{display:flex;flex-direction:row;width:100%}.bif-optional_extras .bif-bookitfast_optional_extra div{flex-basis:50%;font-weight:400}.bif-booking-container{font-family:system-ui,-apple-system,sans-serif;margin:0 auto;max-width:1200px}.bif-booking-container *{box-sizing:border-box}.bif-booking-header{display:none}.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 1px 3px rgba(0,0,0,.1);margin-bottom:1.5rem;padding:1.5rem}.bif-booking-summary:hover,.bif-customer-details:hover,.bif-date-selector:hover,.bif-property-list:hover{box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-section-title{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin:0 0 1.5rem}.bif-subsection-title{color:#374151;font-size:1.125rem;font-weight:500;margin:0 0 .75rem}.bif-date-form{align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.bif-date-form{gap:1rem;grid-template-columns:1fr}}.bif-form-field{display:flex;flex-direction:column}.bif-form-field label{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.bif-date-input,.bif-nights-select{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-sizing:border-box;font-size:1rem;height:44px;padding:.5rem;transition:all .2s ease}.bif-date-input:focus,.bif-nights-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-btn{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;min-height:44px;padding:.75rem 1.5rem;text-decoration:none;transition:all .2s ease}.bif-btn-primary{background:var(--bif-button-color,#3b82f6);color:var(--bif-button-text-color,#fff)}.bif-btn-primary:hover{background:var(--bif-button-color-hover,#2563eb);color:var(--bif-button-text-color,#fff)}.bif-btn-secondary{background:#6b7280;color:#fff}.bif-property-icons{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.bif-property-icon{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;display:inline-flex;font-size:.875rem;gap:4px;padding:4px 8px}.bif-property-icon:hover{background:#e5e7eb}.bif-btn-secondary:hover{background:#4b5563}.bif-btn-select{background:#3b82f6;color:#fff}.bif-btn-selected{background:#10b981;color:#fff}.bif-btn-disabled{background:#9ca3af;color:#fff;cursor:not-allowed}.bif-btn-large{font-size:1rem;min-height:48px;padding:1rem 2rem}.bif-check-availability{width:100%}.bif-spinner{animation:spin 1s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:currentcolor;height:1rem;width:1rem}@keyframes spin{to{transform:rotate(1turn)}}.bif-properties{display:flex;flex-direction:column;gap:1.5rem}.bif-property-card{background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;padding:0;position:relative;transition:all .2s ease}.bif-property-card:hover{border-color:#d1d5db;box-shadow:0 4px 6px rgba(0,0,0,.1)}.bif-property-card.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-property-card.bif-unavailable{background:#f9fafb;opacity:.75}.bif-property-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;padding:.75rem}.bif-property-image{border-radius:.5rem;flex-shrink:0;height:80px;overflow:hidden;width:80px}.bif-property-image img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-property-info{display:flex;flex:1;flex-direction:column;gap:.5rem;padding-top:.25rem}.bif-property-name{color:#1f2937;font-size:1.25rem;font-weight:600;line-height:1;margin:0}.bif-property-description{color:#6b7280;font-size:.875rem;line-height:1.4;margin:0}.bif-property-status-container{flex-shrink:0}.bif-property-status{border:1px solid;border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.bif-status-available{background:#d1fae5;border-color:#a7f3d0;color:#065f46}.bif-status-booked{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.bif-status-no-rate{background:#f3f4f6;border-color:#d1d5db;color:#374151}.bif-status-min-nights{background:#fef3c7;border-color:#fcd34d;color:#92400e}.bif-status-unavailable{background:#f3f4f6;border-color:#d1d5db;color:#6b7280}.bif-availability-details,.bif-property-card .bif-availability-details{animation:none!important;border-bottom:1px solid #e5e7eb;display:block!important;padding:.75rem;visibility:visible!important}.bif-daily-breakdown-title{color:#374151;font-size:.875rem;font-weight:600}.bif-daily-rates{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-bottom:1rem}.bif-daily-rate{background:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;padding:.25rem;text-align:center}.bif-daily-rate.bif-available{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.bif-daily-rate.bif-unavailable{background:#fef2f2;border-color:#fecaca;color:#dc2626}.bif-date{font-size:.75rem;font-weight:500;margin-bottom:.25rem}.bif-rate{font-size:.875rem;font-weight:600}.bif-rate-summary{background:#f9fafb;border-radius:.375rem;margin-bottom:0;padding:1rem}.bif-summary-row{align-items:center;color:#374151;display:flex;font-size:.875rem;justify-content:space-between}.bif-total{color:#1f2937;font-size:1rem;font-weight:600}.bif-property-actions{bottom:1.5rem;position:absolute;right:1.5rem}.bif-property-actions .bif-btn{min-width:120px}.bif-optional-extras{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;margin:1.5rem;padding:1rem}@media (max-width:768px){.bif-property-header{align-items:stretch;flex-direction:column;gap:1rem}.bif-property-image{height:200px;width:100%}.bif-property-info{text-align:center}.bif-property-status-container{align-self:center}.bif-property-actions{border-top:1px solid #e5e7eb;padding:1.5rem;position:static;text-align:center}.bif-daily-rates{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.bif-extras-list{display:flex;flex-direction:column;gap:.75rem}.bif-extra-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;display:flex;justify-content:space-between;padding:.75rem}.bif-extra-info{align-items:center;display:flex;gap:.75rem}.bif-extra-info input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;width:1.125rem}.bif-extra-info label{color:#374151;cursor:pointer;font-size:.875rem;margin:0}.bif-extra-price{color:#1f2937;font-size:.875rem;font-weight:600}.bif-summary-content{display:flex;flex-direction:column;gap:1.5rem}.bif-summary-section{background:#f9fafb;border-radius:.375rem;padding:1rem}.bif-property-summary{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.375rem;margin-bottom:1rem;padding:1.5rem}.bif-property-summary:last-child{margin-bottom:0}.bif-property-summary-name{color:#15803d;font-size:1rem;font-weight:600;margin:0 0 .75rem}.bif-property-total{border-top:1px solid #bbf7d0;padding-top:1rem}.bif-total-row{color:#15803d;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.bif-total-row.bif-subtotal{font-size:1rem;font-weight:600}.bif-mandatory-extras-summary,.bif-optional-extras-summary{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem}.bif-mandatory-extras-summary .bif-total-row{color:#374151!important}.bif-optional-extras-summary .bif-total-row{color:#92400e!important}.bif-discount-form{display:flex;gap:.5rem}.bif-discount-input{border:1px solid #d1d5db;border-radius:.375rem;flex:1;font-size:.875rem;padding:.75rem!important}.bif-discount-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-discount-applied{color:#10b981;font-size:.875rem;font-weight:500;margin-top:.5rem}.bif-grand-total{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;padding:1.5rem}.bif-total-main{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.bif-total-amount,.bif-total-main span:first-child{color:#1f2937;font-size:1.125rem;font-weight:600}.bif-discount-text{color:#059669;font-size:.875rem;font-weight:500;margin-top:.5rem;text-align:left}.bif-total-breakdown{color:#6b7280;display:flex;flex-direction:column;font-size:.875rem;gap:.25rem}.bif-breakdown-row{display:flex;justify-content:space-between}.bif-surcharge-note{color:#6b7280;font-size:.75rem;font-style:italic;margin-bottom:0;margin-top:.75rem}.bif-customer-details{padding:2rem}.bif-customer-form{display:flex;flex-direction:column;gap:.5rem}.bif-form-row{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}.bif-form-row.bif-full-width{grid-template-columns:1fr}@media (max-width:768px){.bif-form-row{gap:1rem;grid-template-columns:1fr}}.bif-form-field input,.bif-form-field textarea{border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;padding:.5rem!important;transition:all .2s ease;width:100%}.bif-form-field input:focus,.bif-form-field textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.bif-form-field input.bif-error,.bif-form-field textarea.bif-error{border-color:#ef4444}.bif-field-error{color:#ef4444;font-size:.875rem;margin-top:.5rem}.bif-form-field textarea{min-height:120px;resize:vertical}.bif-terms-checkbox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;margin-bottom:.75rem;padding:1rem}.bif-terms-checkbox input[type=checkbox]{accent-color:#3b82f6;height:1.125rem;margin-right:.75rem;width:1.125rem}.bif-terms-checkbox label{color:#1e40af;cursor:pointer;font-size:.875rem;line-height:1.5}.bif-terms-checkbox a{color:#3b82f6;text-decoration:underline}.bif-terms-checkbox a:hover{color:#1d4ed8}.bif-payment-options{flex-direction:column}.bif-payment-buttons,.bif-payment-options{display:flex;gap:1rem}@media (max-width:768px){.bif-payment-buttons{flex-direction:column}}.bif-validation-error{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;font-size:.875rem;padding:1rem}.bif-surcharge-info{background:#fefce8;border:1px solid #fde047;border-radius:.375rem;color:#92400e;font-size:.875rem;margin-top:1rem;padding:1rem}.bif-payment-container{padding:1.5rem}.bif-payment-container h3{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.bif-stripe-form{display:flex;flex-direction:column;gap:1rem}.bif-card-element-container{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:1rem;transition:border-color .2s ease}.bif-card-element-container:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.bif-success-message{background:#d1fae5;border:1px solid #a7f3d0;border-radius:.375rem;color:#065f46;padding:1rem}.bif-success-message a{color:#047857;text-decoration:underline}.bif-error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;color:#dc2626;margin-bottom:1rem;padding:1rem}@media (max-width:640px){.bif-booking-container,.bif-booking-summary,.bif-customer-details,.bif-date-selector,.bif-payment-form-container,.bif-property-list,.bif-terms-payment{padding:1rem}.bif-total-amount{font-size:1.5rem}}.bif-gift-certificate-section{margin-top:1rem}.bif-gift-certificate-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-top:1rem;padding:1rem}.bif-gift-certificate-form .bif-form-row{display:flex;gap:1rem;margin-bottom:1rem}.bif-gift-certificate-form .bif-form-field{flex:1}.bif-gift-certificate-form .bif-form-field label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.bif-gift-certificate-form .bif-form-control{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem;width:100%}.bif-gift-certificate-form .bif-form-control:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.1);outline:none}.bif-gift-certificate-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;color:#16a34a;margin-top:1rem;padding:1rem}.bif-gift-certificate-success p{margin:.25rem 0}.bif-gift-certificate-success p:first-child{font-weight:600}@media (max-width:768px){.bif-gift-certificate-form .bif-form-row{flex-direction:column;gap:.5rem}}.bif-privacy-consent{align-items:flex-start;background:#f8f9fa;border:1px solid #e2e8f0;border-radius:.5rem;display:flex;gap:.5rem;margin:1rem 0;padding:1rem}.bif-privacy-consent input[type=checkbox]{flex-shrink:0;margin-right:0;margin-top:.1rem;transform:scale(1.2)}.bif-privacy-consent label{color:#4a5568;cursor:pointer;flex:1;font-size:.9rem;line-height:1.4}.bif-privacy-consent a{color:#3182ce;text-decoration:none}.bif-privacy-consent a:hover{text-decoration:underline}.bif-properties--grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:840px){.bif-properties--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.bif-properties--grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.bif-tile{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.bif-tile:hover{box-shadow:0 8px 20px rgba(0,0,0,.06);transform:translateY(-2px)}.bif-tile.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-tile.is-unavailable{opacity:.75}.bif-tile__hero{aspect-ratio:16/10;background:#f3f4f6;position:relative}.bif-tile__hero img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-chip{background:#111827;border-radius:999px;color:#fff;font-size:.75rem;left:.75rem;opacity:.9;padding:.35rem .6rem;position:absolute;top:.75rem}.bif-tile.is-unavailable .bif-chip{background:#6b7280}.bif-tile__content{display:flex;flex-direction:column;gap:.75rem;padding:1rem}.bif-tile__title{color:#1f2937;font-size:1.05rem;font-weight:600;margin:0}.bif-amenities--slim{display:flex;flex-wrap:wrap;gap:.5rem .75rem;list-style:none;margin:0;padding:0}.bif-amenities--slim li{background:#f9fafb;border:none;border-radius:.5rem;color:#6b7280;font-size:.8125rem;padding:.35rem .6rem}.bif-tile__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-pill{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:999px;display:flex;font-size:.85rem;gap:.5rem;padding:.45rem .6rem}.bif-pill.ok{background:#ecfdf5;border-color:#d1fae5;color:#065f46}.bif-pill.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-pill__date{color:var(--bif-muted,#6b7280);font-size:.775rem}.bif-pill__amt{font-weight:600}.bif-tile__footer{align-items:center;display:flex;justify-content:center;margin-top:.25rem}.bif-nights{color:var(--bif-muted,#6b7280);font-size:.875rem}.bif-properties--rows{display:flex;flex-direction:column;gap:.75rem}.bif-row{align-items:center;background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);padding:.75rem;transition:all .2s ease}.bif-row.bif-selected{background:#f8fafc;border-color:#3b82f6;box-shadow:0 4px 12px rgba(59,130,246,.15)}.bif-row.is-unavailable{opacity:.75}@media (min-width:900px){.bif-row{grid-template-columns:88px 1.2fr 1.2fr auto}.bif-row.no-image{grid-template-columns:1.2fr 1.2fr auto}}.bif-row__thumb{border-radius:.5rem;height:66px;overflow:hidden;width:88px}.bif-row__thumb img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bif-row__top{align-items:center;display:flex;gap:.5rem}.bif-row__title{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.bif-dot{background:#9ca3af;border-radius:999px;height:.6rem;width:.6rem}.bif-dot.ok{background:#16a34a}.bif-dot.na{background:#ef4444}.bif-amenities--inline{display:flex;flex-wrap:wrap;gap:.4rem .6rem;list-style:none;margin:.25rem 0 0;padding:0}.bif-amenities--inline li{align-items:center;color:#374151;display:flex;font-size:.85rem;gap:.35rem}.bif-row__rates{display:flex;flex-wrap:wrap;gap:.5rem}.bif-rmini{background:#fff;border:1px solid var(--bif-border,#e5e7eb);border-radius:.5rem;min-width:110px;padding:.35rem .6rem}.bif-rmini.ok{background:#f0fdf4;border-color:#dcfce7;color:#065f46}.bif-rmini.na{background:#fef2f2;border-color:#fee2e2;color:#991b1b}.bif-rmini__date{color:var(--bif-muted,#6b7280);font-size:.75rem}.bif-rmini__amt{font-weight:600}.bif-row__cta{align-items:center;display:flex;justify-content:flex-end}@media (max-width:899px){.bif-row__cta{justify-content:flex-start}}.bif-properties--cards{display:flex;flex-direction:column;gap:1.5rem}.bif-modal-overlay{align-items:center;animation:bifModalFadeIn .2s ease-out;background-color:rgba(0,0,0,.5);bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:999999}@keyframes bifModalFadeIn{0%{opacity:0}to{opacity:1}}.bif-modal{animation:bifModalSlideIn .2s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);display:flex;flex-direction:column;max-height:90vh;max-width:600px;width:100%}@keyframes bifModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.bif-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.bif-modal-title{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.bif-modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;line-height:1;padding:0;transition:all .2s ease;width:32px}.bif-modal-close:hover{background-color:#f3f4f6;color:#111827}.bif-modal-close:focus{outline:2px solid #3b82f6;outline-offset:2px}.bif-modal-content{flex:1;overflow-y:auto;padding:1.5rem}.bif-modal-content p{color:#374151;line-height:1.6;margin-bottom:1rem}.bif-modal-content p:last-child{margin-bottom:0}.bif-modal-content ol,.bif-modal-content ul{color:#374151;line-height:1.6;margin-bottom:1rem;padding-left:1.5rem}.bif-modal-content h3,.bif-modal-content h4,.bif-modal-content h5{color:#111827;margin-bottom:.75rem;margin-top:1.5rem}.bif-modal-content h3:first-child,.bif-modal-content h4:first-child,.bif-modal-content h5:first-child{margin-top:0}@media (max-width:640px){.bif-modal{margin:1rem;max-width:100%}.bif-modal-content,.bif-modal-header{padding:1rem}} -
book-it-fast/trunk/readme.txt
r3365542 r3367536 95 95 == Changelog == 96 96 97 = 1.0.2 = 98 * Included modal for when there is a basic booking condition 99 97 100 = 1.0.1 = 98 101 * Fix for including the optional extras in summary when selected
Note: See TracChangeset
for help on using the changeset viewer.