1<!DOCTYPE html> 2<html class="noIE" lang="en-US"> 3 <head>
3<script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={xpid:"UA4PVVdRGwUHV1NQBwU=",licenseKey:"0ac16663c3",applicationID:"6732204",browserID:"6732206"};;/*! For license information please see nr-loader-full-1.322.0.min.js.LICENSE.txt */ 4(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
4e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
4const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>S,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
4if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,R(e,t)}function R(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function w(e,t,r,n,i){if(R(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(w(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(w(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function S(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let R=0,w=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(R=R>0?Math.min(R,e):e),t&&(w=w>0?Math.max(w,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return R>0?Math.min(e,R):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return w>0?Math.max(e,w):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
4o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
4(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
4;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",649:"nr-full-iframe-message-handler",89
41:"nr-full"}[e]+"-1.322.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,s,a)=>{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={891:"sha512-YFF+tf82v8eglmCSz5XYYPZ9svAEVPEL8CjIs/VJ5WDjxajLkBKoCp6iBhqtcYRu8v8sXwAWX58PGV4RVzB2dQ==",222:"sha512-y0XrI32v2ZxZdktMLngwYUsETp/i/aYkdx9JOeIAmr2KYJdlDneMKYdNwPaZiOX3gb7AXywTby7jg1okwEkArw==",95:"sha512-WtCe89dmBu8YGhCnszRdHzYCzOqwTSeitVhY/ahmZczjI+0C6KOazsnU/vPsTDaM7VSG+iZW7zidI1t5+hpiYQ==",649:"sha512-AYJxsYTPRDF5tWSm4lWONX5VM69Ou9twLFZ8apchUI9gNOrXBkzP8QZ+PQkMz8nGjh/7oVMR+1cA+5dWFYhmmw=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={85:0,959:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
4ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var R=r(9232);var w=r(7836),T=r(3241);const S={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var A=r(9908),x=r(9752);function _(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,S)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:R.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=w.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,A.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var O=r(1863),k=r(4261),L=r(1738);var M=r(1687),P=r(4234),N=r(5289),j=r(5270),I=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends P.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,M.Ak)(e,this.featureName),t()}))}):(0,M.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
4{if((0,I.V)(e.init))try{const{setupAgentSession:t}=await r.e(891).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,A.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(649).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(891).then(r.bind(r,6589)),r.e(891).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,M.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,M.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,N.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,j.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}_(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,L.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,A.p)("api-"+k.Fw,[(0,O.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(891).then(r.bind(r,908)):r.e(891).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,N.sB)(t=>{e(t,"DOMContentLoaded")}),(0,N.GG)(t=>{e(t,"load")}),(0,N.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),_(this,e,e.loaderType||"agent"),t=this,(0,L.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,L.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,L.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,A.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,L.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,L.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,L.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,L.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,L.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,A.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,A.p)("docHidden",[(0,O.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,A.p)("winPagehide",[(0,O.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(891).then(r.bind(r,9018))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(891).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,O.t)()){"string"==typeof e&&(e=new Error(e)),(0,A.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,A.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,O.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,O.t)()){(0,A.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,O.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
4null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,A.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,O.t)()){(0,A.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,O.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,O.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,O.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const Re=["entry","scripts","all"],we=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Se={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Ae(e){(0,L.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Se.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=R.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:R.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||Re.includes(r.timingMethod)||(Se.invalidTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||R.f.BA,"parent.id":r.parent?.id})}
4),Object.entries(r.tags).forEach(([e,t])=>{we.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Se.disabled),u(r.id)&&u(r.name)||d(()=>Se.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Se.duplicateName(r),n===r.id&&t!==r.name&&Se.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Se.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,O.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
4imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,O.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,A.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class _e extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,L.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,L.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,L.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Ae(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,A.p)("ierr",[ee(t),(0,O.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,A.p)("err",[te(t),(0,O.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,A.p)("err",[re(t),(0,O.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(891).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var Oe=r(8990);let ke=1;function Le(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,Oe.I)(e,"nr@id",function(){return ke++})}function Me(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Pe=r(8139),Ne=r(3434),je=r(5732);const Ie={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||w.ee;const n=function(e){return(e||w.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(Ie[n.debugId]++)return n;Ie[n.debugId]=1,(0,Pe.u)(r,t);var i=(0,Ne.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,je.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||w.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,je.$5)(t);var o;r.emit(i+"before-start",[e],n),n[w.P]&&n[w.P].dt&&(o=n[w.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
4return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,A.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=S,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){_(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Me(i);a&&(n.txSize=a)}this.startTime=(0,O.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
4!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Le(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Le(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,O.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,O.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,O.t)()-this.xhrCbStart,this.onload,t],t)}function R(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function w(e,t){this.params={},this.metrics={},this.startTime=(0,O.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Me(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,O.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Me(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function S(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):_(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Me(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function _(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Me(e.response):"text"===r||""===r||void 0===r?Me(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,A.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",R),r.on("fetch-start",w),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(891).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||w.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Ne.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,L.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,A.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,A.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,L.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,A.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
4if(!(0,I.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Pe.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,O.t)()}),this.eventsEE.on(pt,function(e,r){(0,A.p)("bst",[e[0],r,this.bstStart,(0,O.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,O.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,A.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,A.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(891).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,L.Y)(k.CH,function(){(0,A.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,L.Y)(k.Tb,function(){(0,A.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,j.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(891).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,A.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,j.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(891),r.e(222)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var Rt=r(981);const wt={},Tt=new Set;function St(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class At{constructor(e,t){this.timestamp=(0,O.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class xt extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,L.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,L.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Ae(e),function(e){(0,L.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(wt[r.debugId]++)return r;wt[r.debugId]=1,(0,V.G)(()=>{const e=(0,O.t)();Tt.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
4class n extends WebSocket{static name=Rt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new At(e[0],e[1]),this.targets=(0,je.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,O.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),Tt.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=St(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,O.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,Tt.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=St(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,A.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,A.p)("spv",[_t(e),(0,O.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,A.p)("spv",[_t(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,A.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
4h(e=>{const t=(0,C.s)(e=>{(0,A.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,A.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,A.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,A.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,A.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(891).then(r.bind(r,8019))):this.deregisterDrain()}}function _t(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Ot=r(2646);const kt=new Map;function Lt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||w.ee).get("logger")}(e),o=(0,Ne.YM)(a,void 0,s),c=new Ot.y(w.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Ne.Jt]||t[r];return kt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>kt.get(d),void 0,!0),a}var Mt=r(1910);class Pt extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,L.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,L.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Lt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Ae(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Mt.i)(g.gm.console[t]),Lt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(891).then(r.bind(r,5288)))}}new F({features:[K,G,vt,Et,nt,Y,_e,xt,Pt],loaderType:"pro"})})()})();</script>
4 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6<link href="https://asset.bloomnation.com" rel="preconnect" crossorigin> 7<link rel="preconnect" href="https://fonts.googleapis.com"> 8<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 9<link rel="preconnect" href="https://promfiles.com/" crossorigin> 10 11 <style> 12 :root { 13 --bn--default-font: 'Avenir', Helvetica, Arial, sans-serif; 14 } 15 16 @font-face { 17 font-display: swap; 18 font-family: 'Avenir'; 19 src: local('Avenir'), 20 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff2/AvenirNext-Regular.dbfaaeb9.woff2') format('woff2'), 21 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff/AvenirNext-Regular.1017e4f4.woff') format('woff'); 22 font-weight: 100; 23 unicode-range: U+000-5FF; 24 } 25 26 @font-face { 27 font-display: swap; 28 font-family: 'Avenir'; 29 src: local('Avenir'), 30 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff2/AvenirNext-Medium.8f8afa8e.woff2') format('woff2'), 31 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff/AvenirNext-Medium.bb4e0d80.woff') format('woff'); 32 font-weight: 200; 33 unicode-range: U+000-5FF; 34 } 35 36 @font-face { 37 font-display: swap; 38 font-family: 'Avenir'; 39 src: local('Avenir'), 40 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff2/AvenirNext-UltraLight.d9fd23ba.woff2') format('woff2'), 41 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff/AvenirNext-UltraLight.99b9fd3e.woff') format('woff'); 42 font-weight: 50; 43 unicode-range: U+000-5FF; 44 } 45 46 @font-face { 47 font-display: swap; 48 font-family: 'Avenir'; 49 src: local('Avenir'), 50 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff2/AvenirNext-DemiBold.eea19314.woff2') format('woff2'), 51 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff/AvenirNext-DemiBold.37566b7a.woff') format('woff'); 52 font-weight: 300; 53 unicode-range: U+000-5FF; 54 } 55 56 @font-face { 57 font-display: swap; 58 font-family: 'Avenir'; 59 src: local('Avenir'), 60 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff2/AvenirNext-Bold.b652524b.woff2') format('woff2'), 61 url('https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/fonts/woff/AvenirNext-Bold.d1a3cf86.woff') format('woff'); 62 font-weight: 400; 63 unicode-range: U+000-5FF; 64 } 65 66 * { 67 letter-spacing: 0 !important; 68 font-smoothing: antialiased; 69 -webkit-font-smoothing: antialiased; 70 -moz-font-smoothing: antialiased; 71 -o-font-smoothing: antialiased; 72 } 73 74 body { 75 --bn--primary-font: var(--bn--default-font); 76 font-family: var(--bn--primary-font); 77 } 78 </style> 79 <title>Your New Orleans floral expert | Flora Savage</title> 80 <meta name="google-site-verification" content="iuPLZsM60xFMypifrGy3JLYqEaw5Cq3VuS1NaLxUZmQ"/> 81 <meta name="description" content="Order fresh flowers online that are hand-delivered by the best local florists. Find local flower shops with same-day flower delivery and shop from unique flower arrangements designed by certified floral designers. Forget cheap flowers and discover that perfect gift for Mother's Day, birthdays, anniversaries, funerals, and all occasions."/> 82 <meta name="keywords" content=""/> 83 <link rel="canonical" href="https://florasavage.net/blog/"/> 84 85 <link rel="icon" href="https://asset.bloomnation.com/f_auto,q_auto/v1/vendor/global/favicon/favicon.ico" type="image/x-icon"/> 86 <link rel="shortcut icon" href="https://asset.bloomnation.com/f_auto,q_auto/v1/vendor/global/favicon/favicon.ico" type="image/x-icon"/> 87 88 89
89<script type="text/javascript" src="https://promfiles.com/bloom/dist/js/lib/jquery/jquery-1.12.1.min.2a534122.js"></script>
89 90
90<script>jQuery.noConflict();</script>
90 91
91<script type="application/ld+json">{"@context":"https://schema.org/","@type":["Florist","LocalBusiness","Organization"],"@id":"https://florasavage.net/#florist","name":"Flora Savage","image":"https://asset.bloomnation.com/c_fit,dpr_2,f_auto,h_500,q_auto,w_852/v1/vendor/2705/profile/f/l/florasavage-logo.png","logo":"https://asset.bloomnation.com/c_fit,dpr_2,f_auto,h_500,q_auto,w_852/v1/vendor/2705/profile/f/l/florasavage-logo.png","url":"https://florasavage.net/","address":{"@type":"PostalAddress","streetAddress":"1301 Royal St. ","addressLocality":"New Orleans","addressRegion":"LA","postalCode":"70116","addressCountry":"US"},"telephone":"+15045814728","priceRange":"$$","openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"10:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"10:00","closes":"15:00"},{"@type":"OpeningHoursSpecification","validFrom":"2027-02-14","validThrough":"2027-02-14","opens":"10:00","closes":"10:00"},{"@type":"OpeningHoursSpecification","validFrom":"2026-12-25","validThrough":"2026-12-25","opens":"00:00","closes":"00:00"},{"@type":"OpeningHoursSpecification","validFrom":"2027-09-06","validThrough":"2027-09-06","opens":"00:00","closes":"00:00"},{"@type":"OpeningHoursSpecification","validFrom":"2027-05-31","validThrough":"2027-05-31","opens":"00:00","closes":"00:00"},{"@type":"OpeningHoursSpecification","validFrom":"2027-01-01","validThrough":"2027-01-01","opens":"00:00","closes":"00:00"},{"@type":"OpeningHoursSpecification","validFrom":"2026-11-26","validThrough":"2026-11-28","opens":"00:00","closes":"00:00"},{"@type":"OpeningHoursSpecification","validFrom":"2026-09-25","validThrough":"2026-09-26","opens":"00:00","closes":"00:00"}],"areaServed":[{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"LA","addressLocality":"Metairie"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"LA","addressLocality":"Arabi"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"LA","addressLocality":"Chalmette"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"LA","addressLocality":"Green Lawn Terrace"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"LA","addressLocality":"Kenner"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"LA","addressLocality":"Beachview"}}],"description":"French Quarter Florist","sameAs":["https://www.facebook.com/FloraSavage","https://www.instagram.com/florasavage/","https://www.google.com/maps?cid=8856762549799062052","https://www.pinterest.com/florasavage13/","https://www.yelp.com/biz/flora-savage-new-orleans","https://www.bloomnation.com/florist/flora-savage/"],"geo":{"@type":"GeoCoordinates","longitude":-90.0604561,"latitude":29.9629489},"hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","applicableCountry":"US","returnPolicyCategory":"https://schema.org/MerchantReturnNotPermitted","merchantReturnLink":"https://florasavage.net/policies"},"hasShippingService":{"@type":"ShippingService","@id":"https://florasavage.net/#delivery-service","name":"Local Hand Delivery","description":"Fresh flowers hand-delivered by your local florist","fulfillmentType":"FulfillmentTypeDelivery","handlingTime":{"@type":"ServicePeriod","businessDays":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"duration":{"@type":"QuantitativeValue","minValue":0,"maxValue":0,"unitCode":"DAY"},"cutoffTime":"14:00:00-05:00"},"shippingConditions":[{"@type":"ShippingConditions","shippingDestination":{"@type":"DefinedRegion","addressCountry":"US"},"shippingRate":{"@type":"MonetaryAmount","value":"20.00","currency":"USD"},"transitTime":{"@type":"ServicePeriod","duration":{"@type":"QuantitativeValue","minValue":0,"maxValue":0,"unitCode":"DAY"}}}]},"hasMemberProgram":{"@type":"MemberProgram","name":"Flower Points","description":"Earn 1 Flower Points for every $1.00 spent. Redeem 200 Flower Points for $10.00 off.","hasTiers":[{"@type":"MemberProgramTier","name":"Flower Points","hasTierBenefit":[{"@type":"TierBenefitLoyaltyPoints"}],"membershipPointsEarned":1}]},"aggregateRating":{"@type":"AggregateRating","ratingValue":"4.9024","reviewCount":"1538","worstRating":"1","bestRating":"5","url":"https://www.bloomnation.com/florist/flora-savage/reviews/"}}</script>
91 92 93<link rel="stylesheet" href="https://promfiles.com/bloom/dist/js/bloomnation/review-photos.8ea4dd02.css" /> 94<link rel="stylesheet" href="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/css/bootstrap.min.8dd31aca.css" media="all" /> 95<link rel="stylesheet" href="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/css/font-awesome.min.da606908.css" media="all" /> 96<link rel="stylesheet" href="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/css/layout.c5c342e2.css" media="all" /> 97<link rel="stylesheet" href="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/css/typography.ab03696f.css" media="all" /> 98<link rel="stylesheet" href="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/css/header.min.6ecf0dca.css" media="all" /> 99<link rel="preload" as="style" href="https://promfiles.com/bloom/dist/frontend/base/default/css/popup.0c21c495.css" onload="this.onload=null;this.rel='stylesheet'" /><noscript><link rel="stylesheet" href="https://promfiles.com/bloom/dist/frontend/base/default/css/popup.0c21c495.css" /></noscript> 100<link rel="preload" as="style" href="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/css/components.min.a065e359.css" onload="this.onload=null;this.rel='stylesheet'" /><noscript><link rel="stylesheet" href="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/css/components.min.a065e359.css" /></noscript>
101<script src="https://promfiles.com/bloom/dist/js/runtime.8353d46c.js"></script>
vendor: 1 bytes, line 101
101
102<script src="https://promfiles.com/bloom/dist/js/lib/ccard.0b909381.js"></script>
vendor: 1 bytes, line 102
102
103<script src="https://promfiles.com/bloom/dist/js/bloomnation/global.612205a7.js"></script>
vendor: 1 bytes, line 103
103
104<script src="https://promfiles.com/bloom/dist/js/bloomnation/forms/clear-validation-state.cb4122c4.js"></script>
vendor: 1 bytes, line 104
104
105<script src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/runtime.ceb56166.js"></script>
vendor: 1 bytes, line 105
105
106<script src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/js/bootstrap.min.ed580635.js"></script>
vendor: 1 bytes, line 106
106
107<script src="https://promfiles.com/bloom/dist/js/popup/popup.eace3136.js" defer></script>
vendor: 1 bytes, line 107
107
108<script src="https://promfiles.com/bloom/dist/js/bloomnation/review-photos.59481161.js" defer></script>
vendor: 1 bytes, line 108
108
109<script src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/js/main-nav.05e9f99c.js" defer></script>
vendor: 1 bytes, line 109
109
110<script src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/js/wm-slider.2c143ae6.js" defer></script>
110 111 112 113 114 115 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap" media="print" onload="this.media='all'"> 116 117 <style id="bn__site_theme"> 118 119 :root { 120 --primary-font: Avenir, Helvetica, Arial, sans-serif; 121 --site-max-width: 1150px; 122 --body-bg: rgb(17, 17, 17); 123 --body-text-color: rgb(255, 255, 255); 124 --text-action-color: #1c5772; 125 --button-text-color: #ffffff; 126 --element-action-color: #4C6700; 127 --header-bg: rgb(194, 192, 173); 128 --header-text-color: rgb(255, 255, 255); 129 --footer-bg: rgb(17, 17, 17); 130 --footer-text-color: rgb(255, 255, 255); 131 --menu-color: rgb(17, 17, 17); 132 --header-address-color: rgb(33, 36, 39); 133 --my-account-color: rgb(33, 36, 39); 134 --color-light: #fff; 135 --card-action-color: rgb(28, 87, 114); 136 --popular-pick-action-color: rgb(28, 87, 114); 137 --element-action-color-active: #4C670090; 138 --text-action-color-active: #587684; 139 --header-text-color-active: #21242790; 140 --body-text-color-active: #ffffff90; 141 --footer-text-color-active: #ffffff90; 142 --decorative-font: Avenir, Helvetica, Arial, sans-serif; 143 --card-action-color-active: #35708b; 144 --popular-pick-action-color-active: #35708b; 145 } 146 147 body { 148 font-family: var(--primary-font); 149 } 150 151 body:not(.cms-page-view) { 152 background: var(--body-bg); 153 } 154 155 .row { 156 max-width: var(--site-max-width); 157 } 158 159 a, 160 a:active, 161 a:visited { 162 color: var(--text-action-color); 163 } 164 165 a:hover { 166 color: var(--text-action-color-active); 167 } 168 169 #header { 170 background: var(--header-bg); 171 } 172 173 .my-account-mob .header-cartBtn { 174 background-color: transparent !important; 175 } 176 177 .header-cartBtn .header-cartIcon { 178 color: var(--header-icon-color, #333); 179 } 180 181 #header .header-nav.headerNav-wrapper { 182 background: var(--menu-color); 183 } 184 185 .information-heading .infoHeading-item { 186 color: var(--header-address-color); 187 } 188 189 .nav-itemText { 190 color: var(--header-text-color); 191 } 192 193 .nav-itemText:hover, 194 .nav-itemWrapper:hover, 195 .nav-item:hover { 196 color: var(--header-text-color-active); 197 } 198 199 .note-msg, 200 .listings .note-msg, 201 ul.disc, 202 .listings-sorting_options span, 203 span.pagination-page_count, 204 .designerschoice-index-view #content, 205 a.itemListings-subheaderLink, 206 .breadcrumb>li, 207 .breadcrumb li a, 208 ul.disc li a { 209 color: var(--body-text-color); 210 } 211 212 a.itemListings-subheaderLink:hover, 213 .breadcrumb>li:hover, 214 .breadcrumb li a:hover, 215 ul.disc li a:hover { 216 color: var(--body-text-color-active); 217 } 218 219 .cms-page-view .breadcrumb>li, 220 .cms-page-view .breadcrumb li a { 221 color: inherit; 222 } 223 224 .cms-page-view .breadcrumb li a:visited, 225 .cms-page-view .breadcrumb li a:active, 226 .cms-page-view .breadcrumb li a:hover { 227 color: inherit; 228 } 229 230 h1.banners-header { 231 color: var(--body-text-color); 232 } 233 234 h2.itemListings-header { 235 color: var(--body-text-color); 236 } 237 238 h3.itemListings-subheader { 239 color: var(--body-text-color); 240 } 241 242 .cms-index-aboutus #content, 243 .cms-index-aboutus #content h1[itemprop=name], 244 .cms-index-aboutus #content span[itemprop=description], 245 .cms-index-faq #content, 246 .cms-index-faq #content h1[itemprop=name], 247 .cms-index-faq #content span[itemprop=description], 248 .about-us-nlp__header, 249 .product_details-about-designer h3, 250 .product_details-about-designer span { 251 color: var(--body-text-color); 252 } 253 254 .cms-index-gallery #content, 255 .cms-index-gallery #content a { 256 color: var(--body-text-color); 257 } 258 259 .cms-index-gallery #content a:hover { 260 color: var(--body-text-color-active); 261 } 262 263 .listings .sidebar-sort > div.sidebar { 264 background: var(--color-light, #fff); 265 } 266 267 .listings .sidebar-sort > div.sidebar-best_selling { 268 background: var(--color-light, #fff); 269 } 270 271 h1.catalog-header { 272 color: var(--body-text-color); 273 } 274 .pagination > .active > a, 275 .pagination > .active > span, 276 .pagination > .active > a:hover, 277 .pagination > .active > span:hover, 278 .pagination > .active > a:focus, 279 .pagination > .active > span:focus { 280 border-color: var(--element-action-color); 281 color: var(--button-text-color); 282 background: var(--element-action-color); 283 } 284 285 .pagination > li > a, 286 .pagination > li > span, 287 .pagination > li > a:hover, 288 .pagination > li > span:hover { 289 color: var(--text-action-color); 290 } 291 a.search-results-empty__btn, 292 .btn-success, 293 .btn-update, 294 .btn-continue { 295 border-color: var(--element-action-color); 296 color: var(--button-text-color); 297 background: var(--element-action-color); 298 } 299 300 a.search-results-empty__btn:hover, 301 .btn-success:hover, 302 .btn-update:hover, 303 .btn-continue:hover, 304 .btn-success:focus, 305 .btn-success:active { 306 border-color: var(--element-action-color-active); 307 color: var(--button-text-color); 308 background: var(--element-action-color-active); 309 } 310 #footer { 311 background: var(--footer-bg); 312 color: var(--footer-text-color); 313 } 314 315 .footer-social_media { 316 background: var(--footer-bg); 317 } 318 319 section#footer #super-footer a, 320 section#footer #super-footer p, 321 section#footer a { 322 color: var(--footer-text-color); 323 } 324 325 section#footer #super-footer a:hover, 326 section#footer a:hover { 327 color: var(--footer-text-color-active); 328 } 329 330 #my-account_menu-label { 331 color: var(--my-account-color, #333); 332 } 333 334 .my-account-icon { 335 color: var(--header-icon-color, #333); 336 } 337 338 .link-default, 339 .link-default:visited, 340 .link-default:active, 341 .sidebar a, 342 .sidebar a:active, 343 .sidebar a:visited, 344 .delivery__content a, 345 .delivery__content a:active, 346 .delivery__content a:visited { 347 color: var(--card-action-color, #428bca); 348 } 349 350 a.link-default:hover, 351 .sidebar a:hover, 352 .delivery__content a:hover { 353 color: var(--card-action-color-active, #2a6496); 354 } 355 356 a.social__icon-link:hover { 357 color: var(--card-action-color-active, #2a6496); 358 } 359 360 .poppick_item a, 361 .poppick_item a:active, 362 .poppick_item a:visited { 363 color: var(--popular-pick-action-color, #428bca); 364 } 365 366 .poppick_item a:hover { 367 color: var(--popular-pick-action-color-active, #2a6496); 368 } 369 370 .social__icon-link, 371 .social__icon-link:active, 372 .social__icon-link:visited { 373 color: inherit; 374 } 375 376 .subscription-list-page__title, 377 .subscription-list-page__description, 378 .subscription-customize-form-section, 379 .subscription-customize-form-terms-section, 380 .subscription-customize-form__disclaimer, 381 .product-list__additional-info, 382 .subscription-customize-form__header { 383 color: var(--body-text-color); 384 } 385 386 .member_of_bloomnation-logo { 387 background: rgba(255,255,255,0.7); 388 border-radius: 12px; 389 } 390 </style> 391 392 <style> 393 :root { 394 --bn--primary-color: ; 395 --bn--secondary-color: ; 396 --bn--background-color: ; 397 --bn--mobile-menu-text-color: ; 398 } 399 400 /* Primary Color Classes */ 401 402 /* Secondary Color Classes */ 403
404 /* Background Color Classes */ 405 406 /* Background Color Classes */ 407 </style> 408 409 <style data-id="vendor-css"> 410 @import url(//fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap);#WhippyWidget iframe{opacity:1 !important}:root{--color-dark:#111;--color-secondary:#7E0029;--bn-pdp-background:transparent;--bn-pdp-text:#fff}html{font-size:62.5%}body{background:var(--body-bg)}.row{max-width:var(--site-max-width)}a,a:active,a:visited{color:var(--text-action-color);font-weight:bold !important}a:hover{color:var(--text-action-color-active)}.toolbar-bottom .pagination-page_count em,.pagination-page_count em{color:var(--color-light)}.mobile-filters-btn{color:white;border:1px solid #fff !important}#super-footer .copyright__link{color:#4aa5f2 !important}.pdp-review-aggregate-count,.cross-sell__title{color:var(--color-light) !important}.zipcode-check_day{color:#63d868 !important}.zipcode-check--delivery-available .zipcode-check_change-zip{color:#54a1f9 !important}#header{padding:2.5rem 0 0}.row.header-innerContainer{display:flex;justify-content:center;align-items:center}.infoHeading{margin-bottom:0}.infoHeading-item{color:var(--header-text-color)}.header-logo{margin-top:0}.cms-index-gallery .companyLogo-img,.checkout-onestep-index .company-logo img,.companyLogo-img{max-width:25rem}.my-account-mob .header-cartBtn{background:var(--color-secondary)}.my-account-mob .header-cartBtn:hover{background:#7E002990}.header-cartBtn .header-cartIcon{color:var(--button-text-color)}.header-cart .my-account-button-text,.cart_text{color:var(--header-text-color)}.header-cart .my-account-button-text:hover,.cart_text:hover{color:var(--header-text-color-active)}.header-cart .header-cartBtn-wrapper .cart-badge,.badge{background:var(--text-action-color)}.header-nav{background:var(--color-dark);border-bottom:1px solid var(--color-light)}.nav-itemText{color:var(--color-light)}.nav-item:hover,.nav-itemText:hover,.nav-itemWrapper:hover,.nav-itemWrapper .nav-item:hover{color:#efefef;background:transparent}.header-subnav .nav-item--subnav:hover{color:var(--color-dark)}.cart.row h3,.note-msg,.listings .note-msg,ul.disc,.listings-sorting_options span,span.pagination-page_count,.designerschoice-index-view #content,a.itemListings-subheaderLink,.breadcrumb>li,.breadcrumb li a,ul.disc li a,.designerschoice-index-view [id^="custom-page-main-content"]{color:var(--body-text-color)}a.itemListings-subheaderLink:hover,.breadcrumb>li:hover,.breadcrumb li a:hover,ul.disc li a:hover{color:var(--body-text-color-active)}h1.banners-header{z-index:9999;color:var(--body-text-color)}h2.itemListings-header{color:var(--body-text-color)}.banner--left{width:100%}h3.itemListings-subheader{color:var(--body-text-color)}.product-card__name{height:calc(var(--font-size)*var(--line-height)*2)}.product_details-innerContainer,.productInfo-item{background-color:var(--bn-pdp-background)}.cross-sell-products .cross-sell-heading,.product_details-innerContainer h1,.product_details-innerContainer p,.productInfo-item p,.productInfo-item,.productView h1.product-name,.item--extra,.item--extra span,#orderForm span.price-additional-text{color:var(--bn-pdp-text)}.cms-index-aboutus #content,.cms-index-aboutus #content h1[itemprop=name],.cms-index-aboutus #content span[itemprop=description],.product_details-about-designer h3,.product_details-about-designer span,.cms-index-aboutus [id^="custom-page-main-content"]{color:var(--body-text-color)}#mapContainer{max-width:var(--site-max-width);margin:0 auto}.gallery-title{text-align:center}.cms-index-gallery #content,.cms-index-gallery #content a,.cms-index-gallery [id^="custom-page-main-content"]{color:var(--body-text-color)}.cms-index-gallery #content a:hover{color:var(--body-text-color-active)}.featured_listings{display:none}.search_bar{background:transparent}.bar-quick_sort .search_bar,.bar-quick_select,.bar-quick_sort .search_bar>div{background:var(--color-light)}.bar-quick_sort .search_bar button{background:var(--element-action-color);color:var(--button-text-color)}.sidebar-title{background:var(--color-light)}.listings .sidebar-sort>div.sidebar{background:var(--color-light)}.listings .sidebar-sort>div.sidebar-best_selling{background:var(--color-light)}h1.catalog-header{color:var(--body-text-color)}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{border-color:var(--element-action-color);color:var(--button-text-color);background:var(--element-action-color)}.pagination>li>a,.pagination>li>span,.pagination>li>a:hover,.pagination>li>span:hover{color:var(--text-action-color)}#shopping-cart-table tr{background:var(--color-light)}.cart .sidebar{background:var(--color-light)}a.search-results-empty__btn,#orderForm .orderForm-checkout .btn,.btn-success,.btn-checkout,.btn-checkout-next,#checkout .sidebar .btn-success,.btn-update,.btn-continue,.checkout-cart-index .cart .btn-proceed-checkout{border-color:var(--element-action-color);color:var(--button-text-color);background:var(--element-action-color);font-weight:400 !important;border-radius:3px !important}a.search-results-empty__btn:hover,#orderForm .orderForm-checkout .btn:hover,.btn-success:hover,.btn-checkout:hover,#checkout .sidebar .btn-success:hover,.btn-update:hover,.btn-continue:hover,.btn-success:focus,.btn-success:active,.checkout-cart-index .cart .btn-proceed-checkout:hover{border-color:var(--element-action-color-active);color:var(--button-text-color);background:var(--element-action-color-active)}.header-secure-badge{float:right}#checkout .sidebar .sidebar-inner,#checkout .step-status,#checkout .step{margin-top:1rem;background:var(--color-light);border:1px solid #efefef}#account-management.account{height:auto}#account-management .account-overlay{background:transparent}.favorite-added,.floating-like-button .bn-heart-wrapper{background:var(--element-action-color)}#footer{padding-bottom:1rem;color:var(--footer-text-color)}section#footer a{color:var(--footer-text-color)}section#footer a:hover{color:var(--footer-text-color-active)}.footer-social_media{background:var(--footer-bg);border-top:1px solid var(--color-light);border-bottom:1px solid var(--color-light)}.social-innerContainer{display:flex;justify-content:center;flex-wrap:wrap;align-items:center}.about-us-page-premier-florist p{white-space:normal}.bloomnationRep-img,img.bloomnation-logo-about-us-page{background:var(--color-light);padding:.2rem}.checkout-page .header-secure-badge>span{color:var(--color-dark)}#footer #super-footer .copyright__all-rights-reserved{color:var(--color-light)}#super-footer .map-container{display:flex;justify-content:center;overflow:hidden}.map-container img{object-fit:cover}.footerImgs-itemsContainer{display:flex;justify-content:center;align-items:center}.footerImgs-itemsContainer::before{display:none}.u-responsiveImg{width:100%}.blog-post-view,.blog-index-list{color:var(--color-light)}
410@media screen and (max-width:900px){.row.about_us-header div:first-child{float:none !important;width:auto !important}.row.about_us-header div:last-child{margin:0 auto !important}}@media screen and (max-width:768px){.cms-index-gallery .companyLogo-img,.companyLogo-img{max-width:100%}.checkout-onestep-index .company-logo img{max-width:15rem}.banner--left{margin-top:0}.bar-quick_sort{margin-top:1.5rem}.bar-quick_sort .search_bar{padding-right:0}} </style> 411 412<style> 413 .wm-link-button { 414 display: inline-block; 415 margin-bottom: 0; 416 font-weight: normal; 417 text-align: center; 418 vertical-align: middle; 419 cursor: pointer; 420 background-image: none; 421 border: 1px solid transparent; 422 white-space: nowrap; 423 padding: 6px 12px; 424 font-size: 14px; 425 line-height: 1.42857143; 426 border-radius: 4px; 427 -webkit-user-select: none; 428 -moz-user-select: none; 429 -ms-user-select: none; 430 user-select: none; 431 } 432 [id^='custom-page-main-content'] img { 433 max-width: 100%; 434 } 435 [id^='custom-page-main-content'] section:not([data-border='false']) .section-container { 436 padding: 3rem 1.5rem; 437 } 438 [id^='custom-page-main-content'] section[id^='section-blank'] { 439 padding: 1rem 0; 440 } 441 [id^='custom-page-main-content'] section[data-border='true'] { 442 padding: 3rem; 443 } 444 [id^='custom-page-main-content'] section { 445 min-height: fit-content; 446 color: var(--body-text-color); 447 } 448 [id^='custom-page-main-content'] section[data-gradient-type='linear'] { 449 background: linear-gradient( 450 var(--gradient-direction), 451 var(--gradient-from, transparent), 452 var(--gradient-to, transparent) 453 ) !important; 454 } 455 456 [id^='custom-page-main-content'] section[data-gradient-type='radial'] { 457 background: radial-gradient(var(--gradient-from, transparent), var(--gradient-to, transparent)) !important; 458 } 459 [id^='custom-page-main-content'] b, 460 [id^='custom-page-main-content'] strong { 461 font-weight: 700 !important; 462 } 463 [id^='section-banner'] { 464 background-color: #ebedef; 465 } 466 [id^='section-banner'][data-bgcolor='dark'] { 467 background-color: #8b8c92; 468 } 469 [id^='section-banner'][data-border='true'] { 470 padding: 3rem; 471 } 472 473 /* Banner Video Background â text always overlays the video; the 474 videoOverlayDarkness slider controls the optional darkness layer. */ 475 [id^='section-banner'][data-bg-type='video'] { 476 position: relative; 477 padding: 0 !important; 478 overflow: hidden; 479 height: auto !important; 480 aspect-ratio: 16 / 9; 481 } 482 [id^='section-banner'][data-bg-type='video'] .banner-container { 483 position: absolute; 484 top: 0; 485 left: 0; 486 width: 100%; 487 height: 100%; 488 z-index: 2; 489 display: flex; 490 pointer-events: none; 491 } 492 [id^='section-banner'][data-bg-type='video'] .banner-container :is( 493 a, button, [data-gjs-type='dynamic-link'], [data-gjs-type='link-button'] 494 ) { 495 pointer-events: auto; 496 } 497 [id^='section-banner'][data-bg-type='video'] .banner-container .section-container { 498 display: flex; 499 flex-direction: column; 500 justify-content: center; 501 align-items: center; 502 width: 100%; 503 } 504 [id^='section-banner'] .section-container { 505 height: 100% !important; 506 width: 100% !important; 507 } 508 .banner-video-wrapper { 509 position: relative; 510 width: 100%; 511 aspect-ratio: 16 / 9; 512 } 513 .banner-video-gradient { 514 position: absolute; 515 top: 0; 516 left: 0; 517 width: 100%; 518 height: 100%; 519 z-index: 1; 520 pointer-events: none; 521 } 522 video.banner-video { 523 width: 100%; 524 height: 100%; 525 object-fit: cover; 526 border: none; 527 } 528 iframe.banner-video { 529 width: 100%; 530 height: 100%; 531 border: none; 532 } 533 534 [data-gjs-type='grid-row'] * { 535 max-width: 100%; 536 } 537 538 [data-gjs-type='grid-column'] [data-gjs-type='text'] { 539 width: 100%; 540 } 541 542 [data-gjs-type='grid-row'] [data-gjs-type='grid-column'] { 543 width: 100%; 544 display: flex; 545 flex-direction: column; 546 } 547 548 /* Flex Columns */ 549 [data-gjs-type='flex-columns'] { 550 display: flex; 551 width: 100%; 552 } 553 [data-gjs-type='flex-columns'] > [data-gjs-type='flex-column'] { 554 min-width: 0; 555 max-width: 100%; 556 display: flex; 557 flex-direction: column; 558 } 559 [data-gjs-type='flex-columns'] [data-gjs-type='flex-column'] [data-gjs-type='text'] { 560 width: 100%; 561 } 562 563 .wm-map iframe { 564 pointer-events: none; 565 } 566 567 /* Slider Section */
568 [id^='section-slider'] { 569 position: relative; 570 } 571 [id^='section-slider'] .slider-heading { 572 font-family: var(--decorative-font, 'sans-serif'); 573 margin: 0 0 1.5rem; 574 } 575 [id^='section-slider'] .swiper { 576 width: 100%; 577 overflow: hidden; 578 } 579 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper { 580 width: 85%; 581 margin: auto; 582 } 583 [id^='section-slider'] .swiper-wrapper { 584 display: flex; 585 } 586 [id^='section-slider'] .swiper-slide { 587 display: flex; 588 gap: 30px; 589 width: 100%; 590 min-height: 200px; 591 flex-shrink: 0; 592 } 593 [id^='section-slider'] .swiper-slide [data-gjs-type='grid-column'] { 594 flex: 1 1 0%; 595 min-width: 0; 596 display: flex; 597 flex-direction: column; 598 } 599 600 /* Slider Navigation â Arrow Icons */ 601 [id^='section-slider'] .swiper-button-prev::after, 602 [id^='section-slider'] .swiper-button-next::after { 603 content: ''; 604 display: block; 605 width: 8px; 606 height: 8px; 607 border-top: 2px solid var(--button-text-color, #fff); 608 border-right: 2px solid var(--button-text-color, #fff); 609 } 610 [id^='section-slider'] .swiper-button-next::after { 611 transform: rotate(45deg); 612 margin-left: -3px; 613 } 614 [id^='section-slider'] .swiper-button-prev::after { 615 transform: rotate(-135deg); 616 margin-right: -3px; 617 } 618 619 /* Slider Navigation â Arrows Top Right */ 620 [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-prev, 621 [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-next { 622 position: absolute; 623 top: 0; 624 right: 16px; 625 left: auto; 626 width: 32px; 627 height: 32px; 628 border-radius: 50%; 629 background: var(--element-action-color, #333); 630 color: var(--button-text-color, #fff); 631 display: flex; 632 align-items: center; 633 justify-content: center; 634 cursor: pointer; 635 z-index: 10; 636 } 637 [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-prev { 638 right: 65px; 639 } 640 [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-pagination { 641 display: none; 642 } 643 644 /* Slider Navigation â Arrows Sides */ 645 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-prev, 646 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-next { 647 position: absolute; 648 top: 50%; 649 transform: translateY(-50%); 650 width: 40px; 651 height: 40px; 652 border-radius: 50%; 653 background: var(--element-action-color, #333); 654 color: var(--button-text-color, #fff); 655 display: flex; 656 align-items: center; 657 justify-content: center; 658 cursor: pointer; 659 z-index: 10; 660 } 661 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-prev { 662 left: 10px; 663 } 664 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-next { 665 right: 10px; 666 } 667 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-pagination { 668 display: none; 669 } 670 671 /* Slider Navigation â Dots Bottom */ 672 [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-button-prev, 673 [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-button-next { 674 display: none; 675 } 676 [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-pagination { 677 text-align: center; 678 padding: 16px 0; 679 } 680 [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-pagination-bullet { 681 display: inline-block; 682 width: 16px; 683 height: 16px; 684 border-radius: 50%; 685 background: #fff; 686 border: 1px solid #000; 687 margin: 0 6px; 688 cursor: pointer; 689 } 690 [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-pagination-bullet-active { 691 background: #000; 692 } 693 694 .text-and-image-section [data-position='right'] { 695 order: 1 !important; 696 } 697 .text-and-image-section .right-text { 698 order: 0 !important; 699 } 700 .text-and-image-section.cover .wm-image-container { 701 width: 50%; 702 } 703 .wm-image-container { 704 position: relative; 705 width: max-content; 706 max-width: 100%; 707 } 708 .wm-image-container .image-overlay{ 709 position: absolute; 710 top: 0; 711 left: 0; 712 z-index: 1; 713 width: 100%; 714 height: 100%; 715 background-color: #000; 716 opacity: 0.25; 717 pointer-events: none; 718 display: none; 719 } 720 .wm-image-container.has-overlay .image-overlay { 721 display: block; 722 } 723 724 section .section-container { 725 max-width: var(--site-max-width); 726 margin: 0 auto; 727 min-height: fit-content; 728 height: auto; 729 display: flex; 730 flex-direction: column; 731 } 732 733 [data-gjs-type='divider']::before { 734 content: ''; 735 position: absolute; 736 left: 0; 737 right: 0; 738 top: 50%;
739 border-top: var(--divider-height, 1px) solid var(--divider-color, #000); 740 transform: translateY(-50%); 741 } 742 743 .nlp-llm-text-block h2, 744 .nlp-llm-text-block h3 { 745 font-family: var(--decorative-font, 'sans-serif'); 746 } 747 748 /* Shop Address */ 749 .wm-shop-address__grid { 750 display: grid; 751 align-content: start; 752 } 753 .wm-shop-address__grid--item a { 754 text-decoration: underline; 755 color: var(--body-text-color, '#333'); 756 font-family: var(--primary-font); 757 font-size: 16px; 758 font-weight: var(--bn--font-medium); 759 } 760 .wm-shop-address__grid--item a:hover { 761 color: var(--body-text-color-active, '#000'); 762 } 763 .wm-shop-address__grid--item svg path { 764 fill: var(--body-text-color, '#333'); 765 } 766 767 /* Shop Hours */ 768 .wm-shop-hours__title { 769 margin-top: 0; 770 font-family: var(--decorative-font, 'sans-serif'); 771 } 772 .wm-shop-hours__grid { 773 display: grid; 774 grid-template-columns: max-content 1fr; 775 column-gap: 1.5rem; 776 row-gap: 0.75rem; 777 font-size: inherit; 778 } 779 .wm-shop-hours__grid--item { 780 font-weight: var(--bn--font-medium); 781 } 782 .wm-nlp-section .wm-shop-hours__grid { 783 font-size: 14px; 784 font-weight: 200; 785 } 786 787 /* Reviews section */ 788 .wm-reviews { 789 [data-gjs-type='grid-column'] { 790 background-color: #fff; 791 border: 1px solid #E4E4E4; 792 padding: 1.2rem; 793 border-radius: 8px; 794 box-shadow: 0px 0px 20px 0px #4345511A; 795 } 796 [data-gjs-type='grid-column'] [data-gjs-type='text'] { 797 width: auto; 798 } 799 h2 { 800 margin: 0 0 2rem; 801 font-family: var(--decorative-font), sans-serif; 802 } 803 .wm-reviews__header { 804 display: grid; 805 grid-template-columns: max-content 1fr; 806 gap: 1rem; 807 align-items: center; 808 margin-bottom: .5rem; 809 810 h3 { 811 font-size: 14px; 812 font-family: var(--decorative-font), sans-serif; 813 font-weight:600 !important; 814 margin: 0; 815 } 816 } 817 .wm-reviews__rating { 818 margin-bottom: 0.5rem; 819 } 820 .wm-reviews__circle { 821 height: 40px; 822 width: 40px; 823 border-radius: 50%; 824 background-color: #FCE4EC; 825 display: flex; 826 align-items: center; 827 justify-content: center; 828 } 829 .wm-reviews__circle > span { 830 font-size: 14px; 831 font-weight:600 !important; 832 color: #880E4F; 833 } 834 .wm-reviews__date { 835 font-size: 12px; 836 color: #8B8C92; 837 } 838 .wm-reviews__content { 839 font-size: 14px; 840 line-height: 20px; 841 height: 80px; 842 overflow: auto; 843 font-weight: var(--bn--font-medium); 844 } 845 .wm-reviews__read-more { 846 background-color: transparent; 847 border: 0; 848 color: #1251CA; 849 transition: all 0.3s ease; 850 font-size: 12px; 851 padding: 0; 852 margin-top: .5rem; 853 } 854 .wm-reviews__read-more:hover { 855 text-decoration: underline; 856 filter: brightness(0.9); 857 } 858 .wm-reviews__dialog { 859 max-width: 600px; 860 width: 100%; 861 border: 0; 862 border-radius: 4px; 863 position: relative; 864 865 article { 866 margin-bottom: 0; 867 border-bottom: 0; 868 padding-bottom: 0; 869 } 870 871 .wm-reviews__dialog--close { 872 position: absolute; 873 top: 15px; 874 right: 15px; 875 background-color: transparent; 876 border: 0; 877 cursor: pointer; 878 } 879 } 880 } 881 882 /* Review photos strip (BLOOM-17499); the overlay is .wm-review-photos-overlay below. */ 883 .wm-reviews .wm-reviews__photos { 884 display: flex; 885 flex-wrap: wrap; 886 gap: 8px; 887 list-style: none; 888 margin: 12px 0 0; 889 padding: 0; 890 } 891 .wm-reviews .wm-reviews__photo-item { 892 margin: 0; 893 padding: 0; 894 } 895 .wm-reviews .wm-reviews__photo { 896 display: block; 897 width: 96px; 898 height: 96px; 899 padding: 0; 900 border: 0; 901 border-radius: 4px; 902 overflow: hidden; 903 background: #eee; 904 cursor: zoom-in; 905 line-height: 0; 906 } 907 .wm-reviews .wm-reviews__photo img { 908 display: block; 909 width: 100%; 910 height: 100%; 911 object-fit: cover; 912 } 913 .wm-reviews .wm-reviews__photo:focus-visible { 914 outline: 2px solid currentColor; 915 outline-offset: 2px; 916 } 917 918 /* Product List Section */ 919 .product-list--horizontal { 920 overflow-x: auto; 921 white-space: nowrap; 922 padding: 0 0 10px 15px; 923 } 924 925 .product-list--horizontal .product-list__item { 926 display: inline-block; 927 width: 252px; 928 margin-right: 15px; 929 } 930 931 /* Atomic CSS Helpers */ 932 .text-uppercase { 933 text-transform: uppercase; 934 } 935 936 /* Custom arrangements & subscriptions */ 937 .custom-page-nlp__customArrangements .text-image-text > div, 938 .custom-page-nlp__subscriptions .text-image-text > div { 939 font-size: 18px; 940 } 941 942 /* Blog posts */ 943 .wm-blog-posts { 944 display: grid; 945 grid-template-columns: repeat(var(--columns, 2), 1fr); 946 column-gap: var(--column-gap); 947 row-gap: var(--row-gap); 948 padding: var(--frame); 949 } 950 .wm-blog-posts:not(.side-image) .wm-blog-posts__item { 951 display: flex; 952 flex-direction: column; 953 } 954 .wm-blog-posts:not(.side-image) .wm-blog-posts__content { 955 flex-grow: 1; 956 align-items: start; 957 } 958 .wm-blog-posts:not(.side-image) .wm-blog-posts__image { 959 border: 1px solid #DDD; 960 border-bottom: none; 961 } 962 .wm-blog-posts.side-image .wm-blog-posts__image { 963 border: 1px solid #DDD;
964 border-right: none; 965 height: 100%; 966 } 967 .wm-blog-posts.side-image .wm-blog-posts__image-link { 968 width: 100%; 969 height: 100%; 970 } 971 .wm-blog-posts .wm-blog-posts__item { 972 display: flex; 973 flex-direction: column; 974 } 975 .wm-blog-posts__heading { 976 grid-column: 1 / -1; 977 font-family: var(--decorative-font, 'sans-serif'); 978 font-size: 3rem; 979 font-weight: 700; 980 line-height: 1.3; 981 } 982 .wm-blog-posts img { 983 height: 300px; 984 object-fit: cover; 985 width: 100%; 986 } 987 .wm-blog-posts .wm-blog-posts__content { 988 background: #F4F4F4; 989 padding: 2rem; 990 height: auto; 991 display: flex; 992 flex-direction: column; 993 justify-content: center; 994 } 995 .wm-blog-posts.two-column .wm-blog-posts__content { 996 align-items: center; 997 } 998 .wm-blog-posts.two-column { 999 align-items: center; 1000 } 1001 .wm-blog-posts.list .wm-blog-posts__content { 1002 background-color: transparent; 1003 } 1004 .wm-blog-posts.side-image .wm-blog-posts__content, 1005 .wm-blog-posts.list .wm-blog-posts__content, 1006 .wm-blog-posts.two-column .wm-blog-posts__content { 1007 height: 100%; 1008 } 1009 .wm-blog-posts.side-image img { 1010 height: 250px; 1011 } 1012 .wm-blog-posts.side-image .wm-blog-posts__item { 1013 display: grid; 1014 align-items: center; 1015 } 1016 .wm-blog-posts.side-image[style*="--columns:1"] .wm-blog-posts__item, 1017 .wm-blog-posts.side-image[style*="--columns: 1"] .wm-blog-posts__item { 1018 grid-template-columns: 1fr; 1019 } 1020 .wm-blog-posts.side-image[style*="--columns:2"] .wm-blog-posts__item, 1021 .wm-blog-posts.side-image[style*="--columns: 2"] .wm-blog-posts__item { 1022 grid-template-columns: 45% 55%; 1023 } 1024 .wm-blog-posts__date { 1025 color: #282A35; 1026 display: block; 1027 margin-bottom: 1rem; 1028 } 1029 .wm-blog-posts__title { 1030 color: #282A35; 1031 font-family: var(--decorative-font, 'sans-serif'); 1032 font-size: 2.25rem; 1033 font-weight: 700; 1034 line-height: 1.3; 1035 margin-bottom: 1rem; 1036 } 1037 .wm-blog-posts__excerpt { 1038 margin-bottom: 1.75rem; 1039 } 1040 .wm-blog-posts__read-more { 1041 margin-top: auto; 1042 text-decoration: underline; 1043 } 1044 1045 /* Recent Deliveries */ 1046 * + .recent-deliveries { 1047 margin-top: 4rem; 1048 } 1049 .recent-deliveries:not(:last-child) { 1050 margin-bottom: 4rem; 1051 } 1052 .recent-deliveries__feed { 1053 list-style: none; 1054 margin: 0 auto; 1055 padding: 0; 1056 max-width: 640px; 1057 display: flex; 1058 flex-direction: column; 1059 gap: 3.2rem; 1060 } 1061 .recent-deliveries__entry { 1062 background: var(--body-bg, #fff); 1063 border: 1px solid var(--divider-color, #e5e7eb); 1064 border-radius: 1.6rem; 1065 padding: 3.2rem 4rem; 1066 color: var(--body-text-color); 1067 } 1068 .recent-deliveries__shop { 1069 display: flex; 1070 align-items: center; 1071 gap: 1.4rem; 1072 margin-bottom: 2.8rem; 1073 } 1074 .recent-deliveries__avatar { 1075 width: 44px; 1076 height: 44px; 1077 border-radius: 50%; 1078 object-fit: cover; 1079 flex: 0 0 auto; 1080 } 1081 .recent-deliveries__avatar--initials { 1082 display: flex; 1083 align-items: center; 1084 justify-content: center; 1085 color: #fff; 1086 font-size: 1.5rem; 1087 font-weight: 600; 1088 letter-spacing: 0.05rem; 1089 text-transform: uppercase; 1090 user-select: none; 1091 } 1092 .recent-deliveries__shop-info { 1093 min-width: 0; 1094 } 1095 .recent-deliveries__shop-name { 1096 font-size: 1.7rem; 1097 font-weight: 600; 1098 margin: 0; 1099 color: var(--body-text-color); 1100 } 1101 .recent-deliveries__shop-location { 1102 font-size: 1.3rem; 1103 margin: 0.2rem 0 0; 1104 color: var(--body-text-color); 1105 opacity: 0.7; 1106 } 1107 .recent-deliveries__image-wrapper { 1108 display: flex; 1109 justify-content: center; 1110 margin-bottom: 2.8rem; 1111 } 1112 .recent-deliveries__image { 1113 width: 65%; 1114 height: auto; 1115 aspect-ratio: 1 / 1; 1116 object-fit: cover; 1117 border-radius: 6px; 1118 display: block; 1119 } 1120 .recent-deliveries__caption { 1121 margin-bottom: 2.4rem; 1122 } 1123 .recent-deliveries__caption-text { 1124 font-size: 1.5rem; 1125 line-height: 1.6; 1126 margin: 0; 1127 color: var(--body-text-color); 1128 } 1129 .recent-deliveries__date { 1130 display: block; 1131 margin-top: 1.4rem; 1132 font-size: 1.1rem; 1133 text-transform: uppercase; 1134 letter-spacing: 0.2rem; 1135 color: var(--body-text-color); 1136 opacity: 0.6; 1137 white-space: nowrap; 1138 } 1139 .recent-deliveries__product {
1140 border-top: 1px solid var(--divider-color, #e5e7eb); 1141 padding-top: 2rem; 1142 display: flex; 1143 align-items: flex-start; 1144 justify-content: space-between; 1145 gap: 1.6rem; 1146 } 1147 .recent-deliveries__product-info { 1148 min-width: 0; 1149 } 1150 .recent-deliveries__product-name { 1151 font-size: 1.6rem; 1152 font-weight: 500; 1153 } 1154 a.recent-deliveries__product-name { 1155 color: var(--text-action-color); 1156 text-decoration: none; 1157 border-bottom: 1px solid currentColor; 1158 } 1159 a.recent-deliveries__product-name:hover { 1160 color: var(--text-action-color-active); 1161 text-decoration: none; 1162 } 1163 span.recent-deliveries__product-name { 1164 color: var(--body-text-color); 1165 } 1166 .recent-deliveries__upgrade { 1167 font-size: 1.2rem; 1168 text-transform: uppercase; 1169 letter-spacing: 0.15rem; 1170 margin: 0.6rem 0 0; 1171 color: var(--body-text-color); 1172 opacity: 0.6; 1173 } 1174 .recent-deliveries__occasion { 1175 display: block; 1176 margin-top: .75rem; 1177 font-size: 1rem; 1178 text-transform: uppercase; 1179 letter-spacing: 0.2rem !important; 1180 color: var(--body-text-color); 1181 white-space: nowrap; 1182 } 1183 /* FAQ */ 1184 [data-gjs-type] .store-faq__faq { 1185 margin: 0; 1186 } 1187 .store-faq__faq-items { 1188 display: grid; 1189 gap: 8px; 1190 } 1191 .faq { 1192 border: 1px solid #e2e2e2; 1193 border-radius: 8px; 1194 background: #FAFAFA; 1195 overflow: hidden; 1196 padding: 20px; 1197 } 1198 .faq__q { 1199 display: block; 1200 margin: 0; 1201 padding-right: 24px; 1202 cursor: pointer; 1203 font-size: 16px; 1204 font-weight: 600; 1205 position: relative; 1206 outline: none; 1207 user-select: none; 1208 list-style: none; 1209 } 1210 .faq__q::-webkit-details-marker { 1211 display: none; 1212 } 1213 .faq__q::marker { 1214 content: none; 1215 } 1216 .faq__q::after { 1217 content: ""; 1218 position: absolute; 1219 right: 0; 1220 top: 50%; 1221 width: 10px; 1222 height: 10px; 1223 border-right: 2px solid #495057; 1224 border-bottom: 2px solid #495057; 1225 transform: translateY(-50%) rotate(-45deg); 1226 transition: transform 200ms ease; 1227 } 1228 .faq[open] .faq__q::after { 1229 transform: translateY(-50%) rotate(45deg); 1230 } 1231 .faq__content { 1232 display: grid; 1233 grid-template-rows: 0fr; 1234 transition: grid-template-rows 200ms ease; 1235 } 1236 .faq[open] .faq__content { 1237 grid-template-rows: 1fr; 1238 } 1239 .faq__a { 1240 margin-top: 20px; 1241 overflow: hidden; 1242 } 1243 .faq__a-inner { 1244 color: #333; 1245 line-height: 1.5; 1246 font-weight: 300; 1247 font-size: 16px; 1248 } 1249 1250 /* Gallery */ 1251 .wm-gallery { 1252 padding: var(--frame, 0); 1253 } 1254 .wm-gallery__description { 1255 margin-bottom: 1.5rem; 1256 color: var(--body-text-color, #333); 1257 } 1258 .wm-gallery__grid { 1259 display: grid; 1260 grid-template-columns: repeat(var(--columns, 2), 1fr); 1261 column-gap: var(--column-gap, 16px); 1262 row-gap: var(--row-gap, 16px); 1263 } 1264 .wm-gallery__item { 1265 display: block; 1266 overflow: hidden; 1267 cursor: pointer; 1268 } 1269 .wm-gallery__item--linked { 1270 cursor: pointer; 1271 } 1272 .wm-gallery__image { 1273 width: 100%; 1274 height: auto; 1275 object-fit: cover; 1276 aspect-ratio: var(--aspect-ratio, 4/3); 1277 border-radius: var(--border-radius, 0); 1278 transition: transform 0.3s ease; 1279 } 1280 .wm-gallery__item:hover .wm-gallery__image { 1281 transform: scale(1.02); 1282 } 1283 .wm-gallery__caption { 1284 padding: 0.5rem 0; 1285 display: flex; 1286 flex-direction: column; 1287 gap: 0.25rem; 1288 } 1289 .wm-gallery__image-title { 1290 font-weight: bold !important; 1291 font-size: 16px; 1292 margin-top: 4px; 1293 } 1294 1295 /* Gallery - Masonry layout */ 1296 .wm-gallery--masonry .wm-gallery__grid { 1297 display: block; 1298 column-count: var(--columns, 2); 1299 column-gap: var(--column-gap, 16px); 1300 } 1301 .wm-gallery--masonry .wm-gallery__item { 1302 break-inside: avoid; 1303 margin-bottom: var(--row-gap, 16px); 1304 } 1305 .wm-gallery--masonry .wm-gallery__image { 1306 aspect-ratio: unset; 1307 height: auto; 1308 object-fit: contain; 1309 } 1310 1311 .wm-gallery--masonry .wm-gallery__grid--fill-row { 1312 display: grid; 1313 grid-template-columns: repeat(var(--columns, 2), 1fr); 1314 column-gap: var(--column-gap, 16px); 1315 row-gap: var(--row-gap, 16px); 1316 align-items: start; 1317 } 1318 .wm-gallery--masonry .wm-gallery__grid--fill-row .wm-gallery__item { 1319 margin-bottom: 0; 1320 } 1321 .wm-gallery--masonry .wm-gallery__grid--fill-row.is-masonry-js { 1322 grid-auto-rows: 1px; 1323 row-gap: 0; 1324 } 1325 1326 .wm-gallery.wm-gallery--carousel { 1327 max-width: 800px; 1328 margin: 0 auto; 1329 } 1330 1331 /* Gallery - Carousel (Swiper core styles) */ 1332 .swiper { 1333 margin-left: auto; 1334 margin-right: auto; 1335 position: relative; 1336 overflow: hidden; 1337 list-style: none; 1338 padding: 0; 1339 z-index: 1; 1340 display: block; 1341 } 1342 .swiper-wrapper { 1343 position: relative; 1344 width: 100%; 1345 height: 100%; 1346 z-index: 1; 1347 display: flex; 1348 transition-property: transform; 1349 transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial); 1350 box-sizing: content-box; 1351 } 1352 .swiper-slide { 1353 flex-shrink: 0; 1354 width: 100%; 1355 height: 100%; 1356 position: relative; 1357 transition-property: transform; 1358 } 1359 .swiper-slide-invisible-blank { 1360 visibility: hidden; 1361 } 1362 /* Hide default Swiper navigation buttons */ 1363 .swiper-button-prev, 1364 .swiper-button-next { 1365 display: none; 1366 } 1367 1368 /* Gallery Carousel component */ 1369 .wm-gallery-carousel { 1370 position: relative; 1371 width: 100%; 1372 } 1373 .wm-gallery-carousel__main { 1374 position: relative; 1375 display: flex; 1376 align-items: center; 1377 gap: 16px; 1378 } 1379 .wm-gallery-carousel__swiper { 1380 width: 100%; 1381 overflow: hidden; 1382 } 1383 .wm-gallery-carousel__link { 1384 display: block; 1385 width: 100%; 1386 } 1387 .wm-gallery-carousel__link--active { 1388 cursor: pointer; 1389 } 1390 .wm-gallery-carousel__link:not(.wm-gallery-carousel__link--active) { 1391 pointer-events: none; 1392 } 1393 .wm-gallery-carousel__image { 1394 width: 100%; 1395 height: auto; 1396 object-fit: cover; 1397 display: block; 1398 } 1399 /* Carousel navigation buttons */ 1400 .wm-gallery-carousel__nav { 1401 flex-shrink: 0; 1402 width: 40px; 1403 height: 40px; 1404 display: flex; 1405 align-items: center; 1406 justify-content: center; 1407 background: white; 1408 border: 1px solid #e0e0e0; 1409 border-radius: 50%; 1410 cursor: pointer; 1411 transition: background-color 0.2s, border-color 0.2s; 1412 z-index: 10; 1413 } 1414 .wm-gallery-carousel__nav:hover { 1415 background-color: #f5f5f5; 1416 border-color: #ccc; 1417 } 1418 .wm-gallery-carousel__nav:disabled { 1419 opacity: 0.5;
1420 cursor: not-allowed; 1421 } 1422 /* Overlay navigation (for full-width carousel) */ 1423 .wm-gallery-carousel__nav--overlay { 1424 position: absolute; 1425 top: 50%; 1426 transform: translateY(-50%); 1427 background: rgba(255, 255, 255, 0.9); 1428 } 1429 .wm-gallery-carousel__nav--overlay.wm-gallery-carousel__nav--prev { 1430 left: 16px; 1431 } 1432 .wm-gallery-carousel__nav--overlay.wm-gallery-carousel__nav--next { 1433 right: 16px; 1434 } 1435 /* Thumbnails layout - arrows outside */ 1436 .wm-gallery-carousel--carousel-thumbnails .wm-gallery-carousel__main { 1437 display: flex; 1438 align-items: center; 1439 } 1440 .wm-gallery-carousel--carousel-thumbnails .wm-gallery-carousel__swiper { 1441 flex: 1; 1442 min-width: 0; 1443 } 1444 .wm-gallery-carousel--carousel-thumbnails .wm-gallery-carousel__nav { 1445 position: relative; 1446 } 1447 /* Full-width layout - arrows on image */ 1448 .wm-gallery-carousel--carousel .wm-gallery-carousel__main { 1449 position: relative; 1450 } 1451 .wm-gallery-carousel--carousel .wm-gallery-carousel__swiper { 1452 width: 100%; 1453 } 1454 /* Thumbnails */ 1455 .wm-gallery-carousel__thumbs { 1456 margin-top: 16px; 1457 overflow: hidden; 1458 display: flex; 1459 justify-content: center; 1460 } 1461 .wm-gallery-carousel__thumbs .swiper-wrapper { 1462 justify-content: center; 1463 gap: 0.75rem; 1464 overflow: auto; 1465 } 1466 .wm-gallery-carousel__thumbs .swiper-slide { 1467 opacity: 0.6; 1468 cursor: pointer; 1469 transition: opacity 0.2s; 1470 width: 80px !important; 1471 height: 80px; 1472 flex-shrink: 0; 1473 1474 } 1475 .wm-gallery-carousel__thumbs .swiper-slide-thumb-active { 1476 opacity: 1; 1477 } 1478 .wm-gallery-carousel__thumb-image { 1479 width: 80px; 1480 height: 80px; 1481 object-fit: cover; 1482 display: block; 1483 } 1484 1485 /* Gallery Lightbox (wm-gallery-lightbox CSR element) */ 1486 .wm-glb { 1487 position: fixed; 1488 inset: 0; 1489 z-index: 99999; 1490 background: rgba(0, 0, 0, 0.92); 1491 display: flex; 1492 align-items: center; 1493 justify-content: center; 1494 } 1495 .wm-glb__swiper { 1496 width: 100%; 1497 height: 100%; 1498 } 1499 .wm-glb__slide { 1500 display: flex; 1501 align-items: center; 1502 justify-content: center; 1503 width: 100%; 1504 height: 100%; 1505 box-sizing: border-box; 1506 padding: 72px 88px 112px; 1507 } 1508 .wm-glb__slide .swiper-zoom-container { 1509 width: 100%; 1510 height: 100%; 1511 } 1512 .wm-glb__image { 1513 max-width: 100%; 1514 max-height: 100%; 1515 width: auto; 1516 height: auto; 1517 object-fit: contain; 1518 margin: auto; 1519 display: block; 1520 } 1521 .wm-glb__close { 1522 position: absolute; 1523 top: 16px; 1524 right: 20px; 1525 z-index: 2; 1526 background: transparent; 1527 border: none; 1528 padding: 8px; 1529 color: #fff; 1530 cursor: pointer; 1531 line-height: 0; 1532 } 1533 .wm-glb__nav { 1534 position: absolute; 1535 top: 50%; 1536 transform: translateY(-50%); 1537 z-index: 2; 1538 background: transparent; 1539 border: none; 1540 padding: 12px; 1541 color: #fff; 1542 cursor: pointer; 1543 line-height: 0; 1544 opacity: 0.85; 1545 transition: opacity 0.2s ease; 1546 } 1547 .wm-glb__nav:hover, 1548 .wm-glb__nav:focus-visible, 1549 .wm-glb__close:hover, 1550 .wm-glb__close:focus-visible { 1551 opacity: 1; 1552 } 1553 .wm-glb__nav:focus-visible, 1554 .wm-glb__close:focus-visible, 1555 .wm-glb__view:focus-visible { 1556 outline: 2px solid #fff; 1557 outline-offset: 2px; 1558 } 1559 .wm-glb__nav--prev { 1560 left: 12px; 1561 } 1562 .wm-glb__nav--next { 1563 right: 12px; 1564 } 1565 .wm-glb__caption { 1566 position: absolute; 1567 bottom: 24px; 1568 left: 50%; 1569 transform: translateX(-50%); 1570 z-index: 2; 1571 max-width: 80vw; 1572 text-align: center; 1573 color: #fff; 1574 display: flex; 1575 flex-direction: column; 1576 gap: 6px; 1577 } 1578 .wm-glb__title { 1579 position: absolute; 1580 top: 18px; 1581 left: 50%; 1582 transform: translateX(-50%); 1583 z-index: 2; 1584 max-width: 60vw; 1585 text-align: center; 1586 color: #fff; 1587 font-weight: bold; 1588 font-size: 20px; 1589 } 1590 .wm-glb__description { 1591 font-size: 16px; 1592 opacity: 0.85; 1593 } 1594 .wm-glb__view { 1595 align-self: center; 1596 margin-top: 6px; 1597 padding: 6px 18px; 1598 border: 1px solid #fff; 1599 border-radius: 4px; 1600 background: #fff; 1601 color: #000 !important; 1602 text-decoration: none; 1603 font-size: 14px; 1604 } 1605 .wm-glb__view:hover { 1606 opacity: 0.85; 1607 } 1608 .wm-glb__counter { 1609 position: absolute; 1610 top: 20px; 1611 left: 24px; 1612 z-index: 2; 1613 color: #fff; 1614 font-size: 14px; 1615 opacity: 0.85; 1616 } 1617 @media (max-width: 600px) { 1618 .wm-glb__slide { 1619 padding: 64px 56px 104px; 1620 } 1621 .wm-glb__nav { 1622 padding: 6px; 1623 } 1624 } 1625 1626 /* Review photos overlay (wm-review-photos-overlay CSR element, BLOOM-17499): a native <dialog> 1627 appended to <body>, so nothing here nests under .wm-reviews. */ 1628 .wm-review-photos-overlay { 1629 position: fixed; 1630 inset: 0; 1631 width: 100%; 1632 max-width: none; 1633 height: 100%; 1634 max-height: none; 1635 margin: 0; 1636 padding: 0; 1637 border: 0; 1638 background: transparent; 1639 color: #fff; 1640 overflow: hidden; 1641 } 1642 .wm-review-photos-overlay::backdrop { 1643 background: rgba(0, 0, 0, 0.88); 1644 } 1645 .wm-review-photos-overlay__stage { 1646 position: absolute; 1647 inset: 0; 1648 display: flex; 1649 align-items: center; 1650 justify-content: center; 1651 padding: 56px 64px; 1652 box-sizing: border-box; 1653 touch-action: pan-y; 1654 } 1655 .wm-review-photos-overlay__image { 1656 display: block; 1657 max-width: 100%; 1658 max-height: 100%; 1659 width: auto; 1660 height: auto; 1661 object-fit: contain; 1662 border-radius: 4px; 1663 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5); 1664 } 1665 .wm-review-photos-overlay__button { 1666 position: absolute; 1667 display: flex; 1668 align-items: center; 1669 justify-content: center; 1670 width: 44px; 1671 height: 44px; 1672 padding: 0; 1673 border: 0; 1674 border-radius: 50%; 1675 background: rgba(255, 255, 255, 0.14); 1676 color: #fff; 1677 cursor: pointer; 1678 line-height: 0; 1679 } 1680 .wm-review-photos-overlay__button:hover, 1681 .wm-review-photos-overlay__button:focus-visible { 1682 background: rgba(255, 255, 255, 0.3); 1683 outline: 2px solid #fff; 1684 outline-offset: 2px; 1685 } 1686 .wm-review-photos-overlay__button svg { 1687 width: 22px; 1688 height: 22px; 1689 fill: none; 1690 stroke: currentColor; 1691 stroke-width: 2; 1692 stroke-linecap: round; 1693 stroke-linejoin: round; 1694 } 1695 .wm-review-photos-overlay__close { 1696 top: 12px; 1697 right: 12px; 1698 } 1699 .wm-review-photos-overlay__prev, 1700 .wm-review-photos-overlay__next { 1701 top: 50%; 1702 transform: translateY(-50%); 1703 } 1704 .wm-review-photos-overlay__prev { 1705 left: 12px; 1706 } 1707 .wm-review-photos-overlay__next { 1708 right: 12px; 1709 } 1710 .wm-review-photos-overlay__counter { 1711 position: absolute; 1712 left: 0; 1713 right: 0; 1714 bottom: 16px; 1715 margin: 0; 1716 font-size: 14px; 1717 line-height: 20px; 1718 text-align: center; 1719 color: rgba(255, 255, 255, 0.85); 1720 } 1721 .wm-review-photos-overlay[data-single] .wm-review-photos-overlay__prev, 1722 .wm-review-photos-overlay[data-single] .wm-review-photos-overlay__next, 1723 .wm-review-photos-overlay[data-single] .wm-review-photos-overlay__counter { 1724 display: none; 1725 } 1726 body.wm-review-photos-open { 1727 overflow: hidden; 1728 } 1729 @media (max-width: 767px) { 1730 .wm-review-photos-overlay__stage { 1731 padding: 56px 12px; 1732 } 1733 .wm-review-photos-overlay__prev, 1734 .wm-review-photos-overlay__next { 1735 top: auto; 1736 bottom: 44px; 1737 transform: none; 1738 } 1739 } 1740 1741 /* Gallery List â shared */ 1742 .wm-gallery-list__image { 1743 width: 100%; 1744 aspect-ratio: 4/3; 1745 object-fit: cover; 1746 border-radius: var(--border-radius, 0); 1747 } 1748 .wm-gallery-list__title { 1749 font-family: var(--decorative-font, 'sans-serif'); 1750 font-size: 20px; 1751 font-weight: 600; 1752 color: inherit; 1753 text-decoration: none; 1754 } 1755 .wm-gallery-list__title:hover { 1756 text-decoration: underline; 1757 } 1758 .wm-gallery-list__description { 1759 color: var(--body-text-color, #333); 1760 margin-top: 0.5rem; 1761 } 1762 .wm-gallery-list__image-link { 1763 display: block; 1764 overflow: hidden; 1765 border-radius: var(--border-radius, 0); 1766 } 1767 1768 /* Gallery List â columns variant */ 1769 .wm-gallery-list--columns { 1770 display: grid; 1771 grid-template-columns: repeat(var(--columns, 3), 1fr); 1772 gap: 24px; 1773 } 1774 .wm-gallery-list--columns .wm-gallery-list__item { 1775 display: flex; 1776 flex-direction: column; 1777 } 1778 .wm-gallery-list--columns .wm-gallery-list__content { 1779 text-align: center; 1780 } 1781 .wm-gallery-list--columns .wm-gallery-list__title { 1782 display: block; 1783 margin-top: 0.75rem; 1784 } 1785 1786 /* Gallery List â textAndImageVertical variant */ 1787 .wm-gallery-list--textAndImageVertical { 1788 display: flex; 1789 flex-direction: column; 1790 gap: 24px; 1791 } 1792 .wm-gallery-list--textAndImageVertical .wm-gallery-list__item { 1793 display: grid; 1794 grid-template-columns: 1fr 1fr; 1795 gap: 24px; 1796 align-items: center; 1797 } 1798 1799 /* Gallery List â textAndImageHorizontal variant */ 1800 .wm-gallery-list--textAndImageHorizontal { 1801 display: flex; 1802 flex-direction: column; 1803 } 1804 .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item { 1805 display: grid; 1806 grid-template-columns: 1fr 1fr; 1807 align-items: center; 1808 } 1809 .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item .wm-gallery-list__content { 1810 padding: 8%; 1811 } 1812 .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item--reversed { 1813 direction: rtl; 1814 } 1815 .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item--reversed > * { 1816 direction: ltr; 1817 } 1818 1819 /* Gallery List â noImages variant */ 1820 .wm-gallery-list--noImages { 1821 display: flex; 1822 flex-direction: column; 1823 gap: 12px; 1824 } 1825 .wm-gallery-list--noImages .wm-gallery-list__item { 1826 text-align: center; 1827 } 1828 1829 /* Mobile */ 1830 @media (max-width: 800px) { 1831 [id^='custom-page-main-content'] [data-mobile-font-size='true'] { 1832 font-size: var(--mobile-font-size, 16px) !important; 1833 } 1834 1835 [data-gjs-type='grid-row']:not([data-nostack='true']) { 1836 grid-template-columns: 1fr !important; 1837 } 1838 1839 .wwd-service-areas__grid { 1840 grid-template-columns: 1fr !important; 1841 } 1842 1843 [data-gjs-type='flex-columns']:not([data-nostack='true']) { 1844 flex-wrap: wrap !important; 1845 overflow-x: visible !important; 1846 } 1847 [data-gjs-type='flex-columns']:not([data-nostack='true']) > [data-gjs-type='flex-column'] { 1848 flex: 1 1 100% !important; 1849 } 1850
1851 [id^='section-slider'] .swiper-slide { 1852 flex-direction: column; 1853 } 1854 [id^='section-slider'] .swiper-slide [data-gjs-type='grid-column'] { 1855 flex: 1 1 100% !important; 1856 } 1857 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper { 1858 width: 100%; 1859 } 1860 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-prev, 1861 [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-prev { 1862 top: unset; 1863 right: auto; 1864 transform: translateX(-50%); 1865 bottom: 0; 1866 left: 45%; 1867 } 1868 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-next, 1869 [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-next { 1870 top: unset; 1871 left: auto; 1872 transform: translateX(50%); 1873 bottom: 0; 1874 right: 45%; 1875 } 1876 1877 section .section-container { 1878 width: 100% !important; 1879 } 1880 1881 .people-image-wrapper, 1882 .services-image-wrapper { 1883 height: auto !important; 1884 } 1885 1886 .banner-container { 1887 min-height: fit-content !important; 1888 padding: 2.5rem 0; 1889 } 1890 [id^='section-banner'][data-bg-type='video'] .banner-container { 1891 padding: 0; 1892 } 1893 [id^='section-banner'][data-bg-type='video'] .banner-container .section-container { 1894 padding: 6% !important; 1895 } 1896 1897 .text-and-image-section .text-and-image-container { 1898 flex-direction: column !important; 1899 padding: 0 !important; 1900 } 1901 1902 .text-and-image-section .text-image-text { 1903 width: 100% !important; 1904 } 1905 1906 .text-and-image-section.cover .text-image-text { 1907 padding: 3rem 15px !important; 1908 } 1909 1910 .text-and-image-section.cover.img-top .text-image-text { 1911 padding: 1rem 15px 3rem !important; 1912 } 1913 1914 .text-and-image-section .text-image-img, 1915 .text-and-image-section .text-image-text { 1916 padding: 0 !important; 1917 } 1918 1919 .text-and-image-section .text-image-img { 1920 width: auto !important; 1921 } 1922 .text-and-image-section.cover .text-image-img, 1923 .text-and-image-section.cover .wm-image-container { 1924 width: 100% !important; 1925 } 1926 1927 .text-and-image-section [data-position='right'] { 1928 order: 0 !important; 1929 } 1930 .text-and-image-section .right-text { 1931 order: 1 !important; 1932 } 1933 .text-and-image-section [data-position='left'] img { 1934 margin-right: auto !important; 1935 margin-left: 0 !important; 1936 } 1937 .text-and-image-section img { 1938 width: 100% !important; 1939 } 1940 .wm-map-container { 1941 float: none !important; 1942 width: auto !important; 1943 max-width: 100% !important; 1944 } 1945 .wm-link, .wm-link-button { 1946 display: flex; 1947 align-items: center; 1948 justify-content: center; 1949 max-width: max-content; 1950 } 1951 1952 .wm-link-button { 1953 height: 44px; 1954 } 1955 .wm-blog-posts { 1956 grid-template-columns: 1fr; 1957 } 1958 .wm-blog-posts.side-image { 1959 grid-template-columns: 1fr; 1960 } 1961 /* Side-image layout should look like grid layout on mobile */ 1962 .wm-blog-posts.side-image .wm-blog-posts__item { 1963 display: flex; 1964 flex-direction: column; 1965 grid-template-columns: 1fr; 1966 } 1967 .wm-blog-posts.side-image .wm-blog-posts__image, 1968 .wm-blog-posts.side-image .wm-blog-posts__content { 1969 width: 100%; 1970 } 1971 .wm-blog-posts.side-image .wm-blog-posts__image { 1972 border: 1px solid #DDD; 1973 border-bottom: none; 1974 } 1975 .wm-blog-posts.side-image .wm-blog-posts__content { 1976 flex-grow: 1; 1977 align-items: start; 1978 height: auto; 1979 } 1980 .wm-blog-posts.side-image img { 1981 height: 300px; 1982 } 1983 1984 /* Recent Deliveries mobile */ 1985 .recent-deliveries__entry { 1986 padding: 2.4rem 2rem; 1987 } 1988 .recent-deliveries__image { 1989 width: 100%; 1990 } 1991 1992 /* Gallery mobile */ 1993 .wm-gallery__grid, 1994 .wm-gallery-list--columns { 1995 grid-template-columns: 1fr; 1996 } 1997 .wm-gallery-list--textAndImageVertical .wm-gallery-list__item, 1998 .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item { 1999 grid-template-columns: 1fr; 2000 } 2001 .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item--reversed { 2002 direction: ltr; 2003 } 2004 .wm-gallery--masonry .wm-gallery__grid { 2005 column-count: 1; 2006 }
2007 /* Row-fill masonry collapses to a single grid column on mobile. Because it 2008 is always a grid (never column-count), the flat DOM keeps the 1, 2, 3⦠2009 reading order regardless of whether the JS staggering has run. */ 2010 .wm-gallery--masonry .wm-gallery__grid--fill-row { 2011 grid-template-columns: 1fr; 2012 } 2013 .wm-gallery-list--textAndImageHorizontal { 2014 gap: 24px; 2015 } 2016 .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item .wm-gallery-list__content { 2017 padding: 0; 2018 margin-top: 0.75rem; 2019 } 2020 } 2021 2022 @media (max-width: 480px) { 2023 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-prev, 2024 [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-prev { 2025 left: 41%; 2026 bottom: -25px; 2027 } 2028 [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-next, 2029 [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-next { 2030 right: 41%; 2031 bottom: -25px; 2032 } 2033 } 2034 2035 /* Appointment Widget (wm-appointment-widget) */ 2036 .wm-appt { 2037 --wm-appt-border: #e2e4ea; 2038 --wm-appt-text: #1f2430; 2039 --wm-appt-muted: #6b7280; 2040 /* Neutral palette mirrors the premium site checkout button (ps AppButton --primary, 2041 --color-gray-800 base / --color-gray-950 hover); green for success. */ 2042 --wm-appt-primary: #1f2937; 2043 --wm-appt-primary-hover: #0d1016; 2044 --wm-appt-success: #2e7d32; 2045 font-family: inherit; 2046 /* Explicit base so type sizing doesn't depend on the page's root font-size. */ 2047 font-size: 16px; 2048 line-height: 1.5; 2049 color: var(--wm-appt-text); 2050 max-width: 920px; 2051 margin: 0 auto; 2052 border: 1px solid var(--wm-appt-border); 2053 border-radius: 12px; 2054 background: #fff; 2055 box-shadow: 0 1px 10px rgba(67, 69, 81, 0.08); 2056 overflow: hidden; 2057 } 2058 2059 .wm-appt__header { 2060 padding: 28px 32px; 2061 background: linear-gradient(180deg, #f7f8fb 0%, #fff 100%); 2062 border-bottom: 1px solid var(--wm-appt-border); 2063 } 2064 2065 .wm-appt__title { 2066 margin: 0 0 6px; 2067 font-size: 24px; 2068 font-weight: 700 !important; 2069 line-height: 1.2; 2070 } 2071 2072 .wm-appt__caption { 2073 margin: 0; 2074 font-size: 16px; 2075 color: var(--wm-appt-text); 2076 } 2077 2078 .wm-appt__columns { 2079 display: grid; 2080 grid-template-columns: 1fr 1fr; 2081 } 2082 2083 .wm-appt__calendar { 2084 padding: 24px 32px; 2085 border-right: 1px solid var(--wm-appt-border); 2086 } 2087 2088 .wm-appt__times { 2089 padding: 24px 32px; 2090 } 2091 2092 .wm-appt__eyebrow { 2093 display: block; 2094 font-size: 12px; 2095 color: var(--wm-appt-text); 2096 margin-bottom: 16px; 2097 } 2098 2099 .wm-appt__month-nav { 2100 display: flex; 2101 align-items: center; 2102 justify-content: space-between; 2103 margin-bottom: 16px; 2104 } 2105 2106 .wm-appt__month { 2107 font-size: 18px; 2108 font-weight: 600 !important; 2109 } 2110 2111 .wm-appt__month-arrows { 2112 display: flex; 2113 gap: 4px; 2114 } 2115 2116 .wm-appt__arrow { 2117 width: 32px; 2118 height: 32px; 2119 display: inline-flex; 2120 align-items: center; 2121 justify-content: center; 2122 border: none; 2123 background: transparent; 2124 border-radius: 6px; 2125 cursor: pointer; 2126 color: var(--wm-appt-text); 2127 } 2128 2129 .wm-appt__arrow:hover:not(:disabled) { 2130 background: rgba(31, 41, 55, 0.08); 2131 } 2132 2133 .wm-appt__arrow:disabled { 2134 opacity: 0.35; 2135 cursor: default; 2136 } 2137 2138 .wm-appt__weekdays, 2139 .wm-appt__days { 2140 display: grid; 2141 grid-template-columns: repeat(7, 1fr); 2142 } 2143 2144 .wm-appt__weekday { 2145 text-align: center; 2146 font-size: 12px; 2147 font-weight: 500 !important; 2148 color: #6a7282; 2149 padding-bottom: 8px; 2150 } 2151 2152 .wm-appt__days { 2153 gap: 4px; 2154 } 2155 2156 .wm-appt__day { 2157 aspect-ratio: 1; 2158 display: inline-flex; 2159 align-items: center; 2160 justify-content: center; 2161 border: none; 2162 background: transparent; 2163 border-radius: 8px; 2164 font-size: 14px; 2165 font-weight: 500 !important; 2166 cursor: pointer; 2167 color: var(--wm-appt-text); 2168 } 2169 2170 .wm-appt__day:hover:not(.wm-appt__day--disabled):not(.wm-appt__day--selected) { 2171 background: rgba(31, 41, 55, 0.08); 2172 } 2173 2174 .wm-appt__day--selected { 2175 background: var(--wm-appt-primary); 2176 color: #fff; 2177 font-weight: 600 !important; 2178 } 2179 2180 .wm-appt__day--disabled { 2181 color: #c8ccd4; 2182 cursor: default; 2183 } 2184 2185 .wm-appt__times-empty { 2186 height: 100%; 2187 min-height: 220px; 2188 display: flex; 2189 flex-direction: column; 2190 align-items: center; 2191 justify-content: center; 2192 text-align: center; 2193 color: #b4b8c2; 2194 gap: 12px; 2195 } 2196 2197 .wm-appt__times-empty p { 2198 margin: 0; 2199 font-size: 16px; 2200 } 2201 2202 .wm-appt__times-title { 2203 margin: 0 0 20px; 2204 font-size: 18px; 2205 font-weight: 600 !important; 2206 } 2207 2208 .wm-appt__times-none { 2209 color: var(--wm-appt-muted); 2210 font-size: 16px; 2211 } 2212 2213 .wm-appt__slots { 2214 display: grid; 2215 grid-template-columns: 1fr 1fr; 2216 gap: 8px; 2217 max-height: 400px; 2218 overflow-y: auto; 2219 padding-right: 4px; 2220 } 2221 2222 .wm-appt__slot { 2223 padding: 10px 12px; 2224 border: 1px solid var(--wm-appt-border); 2225 background: #fff; 2226 border-radius: 8px; 2227 font-size: 14px; 2228 font-weight: 500 !important; 2229 cursor: pointer; 2230 color: var(--wm-appt-text); 2231 text-align: center; 2232 } 2233 2234 .wm-appt__slot:hover:not(.wm-appt__slot--selected) { 2235 border-color: var(--wm-appt-primary); 2236 } 2237 2238 .wm-appt__slot--selected { 2239 background: var(--wm-appt-primary); 2240 border-color: var(--wm-appt-primary); 2241 color: #fff; 2242 font-weight: 600 !important; 2243 } 2244 2245 .wm-appt__meta { 2246 margin: 20px 0 0; 2247 display: flex; 2248 flex-direction: column; 2249 gap: 6px; 2250 } 2251 2252 .wm-appt__meta div { 2253 display: flex; 2254 gap: 6px; 2255 font-size: 12px; 2256 color: var(--wm-appt-text); 2257 } 2258 2259 .wm-appt__meta dt, 2260 .wm-appt__meta dd { 2261 margin: 0; 2262 } 2263 2264 .wm-appt__details { 2265 padding: 24px 32px 28px; 2266 border-top: 1px solid var(--wm-appt-border); 2267 display: flex; 2268 flex-wrap: wrap; 2269 gap: 16px; 2270 } 2271 2272 .wm-appt__details-lead { 2273 width: 100%; 2274 margin: 0; 2275 font-size: 12px; 2276 font-weight: 400 !important; 2277 } 2278 2279 .wm-appt__field-row { 2280 width: 100%; 2281 display: flex; 2282 gap: 16px; 2283 } 2284 2285 .wm-appt__field { 2286 flex: 1; 2287 display: flex; 2288 flex-direction: column; 2289 gap: 6px; 2290 } 2291 2292 .wm-appt__field--full { 2293 width: 100%; 2294 flex-basis: 100%; 2295 } 2296 2297 .wm-appt__label { 2298 font-size: 14px; 2299 font-weight: 600 !important; 2300 margin-bottom: 0 !important; 2301 } 2302 2303 .wm-appt__required { 2304 margin-left: 2px; 2305 color: #d23b3b; 2306 } 2307 2308 .wm-appt__input { 2309 width: 100%; 2310 box-sizing: border-box; 2311 padding: 12px 14px; 2312 border: 1px solid var(--wm-appt-border); 2313 border-radius: 8px; 2314 font-family: inherit; 2315 font-size: 16px; 2316 color: var(--wm-appt-text); 2317 background: #fff; 2318 } 2319 2320 .wm-appt__input::placeholder { 2321 color: #bcbcbd; 2322 } 2323 2324 .wm-appt__input:focus { 2325 outline: none; 2326 border-color: var(--wm-appt-primary); 2327 } 2328 2329 .wm-appt__input--error { 2330 border-color: #d23b3b; 2331 } 2332 2333 .wm-appt__textarea { 2334 resize: vertical; 2335 } 2336 2337 .wm-appt__field-error { 2338 font-size: 14px; 2339 color: #d23b3b; 2340 } 2341 2342 .wm-appt__error {
2343 width: 100%; 2344 margin: 0; 2345 font-size: 16px; 2346 color: #d23b3b; 2347 } 2348 2349 .wm-appt__submit { 2350 align-self: flex-start; 2351 padding: 12px 24px; 2352 border: none; 2353 border-radius: 8px; 2354 background: var(--wm-appt-primary); 2355 color: #fff; 2356 font-family: inherit; 2357 font-size: 16px; 2358 font-weight: 600 !important; 2359 cursor: pointer; 2360 } 2361 2362 .wm-appt__submit:hover:not(:disabled) { 2363 background: var(--wm-appt-primary-hover); 2364 } 2365 2366 .wm-appt__submit:disabled { 2367 opacity: 0.6; 2368 cursor: default; 2369 } 2370 2371 .wm-appt__confirmation { 2372 padding: 48px 32px; 2373 display: flex; 2374 flex-direction: column; 2375 align-items: center; 2376 text-align: center; 2377 gap: 12px; 2378 color: var(--wm-appt-success); 2379 } 2380 2381 .wm-appt__confirmation-title { 2382 margin: 0; 2383 font-size: 26px; 2384 font-weight: 700 !important; 2385 color: var(--wm-appt-text); 2386 } 2387 2388 .wm-appt__confirmation-message { 2389 margin: 0 0 8px; 2390 font-size: 18px; 2391 color: var(--wm-appt-muted); 2392 max-width: 380px; 2393 } 2394 2395 @media (max-width: 640px) { 2396 .wm-appt__columns { 2397 grid-template-columns: 1fr; 2398 } 2399 2400 .wm-appt__calendar { 2401 border-right: none; 2402 border-bottom: 1px solid var(--wm-appt-border); 2403 } 2404 2405 .wm-appt__field-row { 2406 flex-direction: column; 2407 } 2408 } 2409 2410</style> 2411 2412 <!-- [START] Analytics Content: [default] --> 2413<!-- Google Tag Manager -->
2414<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 2415new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 2416j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 2417'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_cookies_win=x';f.parentNode.insertBefore(j,f); 2418})(window,document,'script','dataLayer','GTM-TLR3ZL8'); 2419window.dataLayer = window.dataLayer || []; 2420dataLayer.push({"ga4PsId":"G-RWY7QD072S","vendorAccountId":"vndr_uYo3g8hzsHOge3yo"}); var pageMetadataEventObj = { 2421 'event': 'pageMetadata', 2422 'title': document.title, 2423 'path': location.pathname, 2424 'url': location.href, 2425 'referrer': document.referrer, 2426 'search': location.search, 2427 'visitedDomain': 'florasavage.bloomnation.com', 2428 'login': 'notLoggedIn' 2429 }; pageMetadataEventObj['vendorDomain'] = 'florasavage.net'; window.dataLayer.push(pageMetadataEventObj);window.dataLayer = window.dataLayer || []; 2430dataLayer.push([]); 2431</script>
2431 2432<!-- End Google Tag Manager --> 2433 <!-- [END] Analytics Content: [default] -->
2434<script> 2435 //<![CDATA[ 2436 var FORM_KEY = (document.cookie.match(/(?:^|;\s*)_csrf=([^;]*)/) || [])[1] || ''; 2437 //]]> 2438</script>
2438 2439 2440 <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,300,0,0" media="print" onload="this.media='all'"> 2441 <meta name="google-site-verification" content="WRf84sAwDZsNzqv2AeQhzmqFktts_3GEBrdM1cn-m-4" /> 2442 2443<!-- [START] Custom HTML --><!-- [END] Custom HTML --> </head> 2444 <body class=" bloom-cms-sitepage-view vendor-2705 bloom growth"> 2445 2446 2447 <a class="skip-to-mp" href="https://www.bloomnation.com/florist/flora-savage/?nav=premium-accessibility" target="_self" rel="nofollow">For <abbr title="Americans with Disabilities Act">ADA</abbr> accessible experience, please visit https://www.bloomnation.com/florist/flora-savage/?nav=premium-accessibility</a> 2448
2449<script> 2450 (function () { 2451 function ready(callback) { 2452 if (document.readyState === 'loading') { 2453 document.addEventListener('DOMContentLoaded', callback); 2454 } else { 2455 callback(); 2456 } 2457 } 2458 2459 /** 2460 * Height of an element that may still be display:none. 2461 * 2462 * getComputedStyle() reports the declared height, which is 'auto' whenever the stylesheet does 2463 * not pin one â and parseInt('auto') is NaN. jQuery's .css('height') avoided that by briefly 2464 * laying the element out off-screen, so do the same. layout.css currently does pin 2465 * #header-accessibilityPopup at 205px, which is the only reason the simple read would work 2466 * today; this keeps working if that ever changes. 2467 */ 2468 function hiddenHeight(element) { 2469 if (window.getComputedStyle(element).display !== 'none') { 2470 return element.offsetHeight; 2471 } 2472 2473 var style = element.style; 2474 var saved = { 2475 position: style.position, 2476 visibility: style.visibility, 2477 display: style.display 2478 }; 2479 2480 style.position = 'absolute'; 2481 style.visibility = 'hidden'; 2482 style.display = 'block'; 2483 2484 var height = element.offsetHeight; 2485 2486 style.position = saved.position; 2487 style.visibility = saved.visibility; 2488 style.display = saved.display; 2489 2490 return height; 2491 } 2492 2493 ready(function () { 2494 var accessibilityBtn = document.querySelector('.accessibility-widget [data-accessibility-btn]'); 2495 var accessibilityPopup = document.querySelector('.accessibility-widget [data-accessibility-popup]'); 2496 var accessibilityOverlay = document.querySelector('.accessibility-widget-overlay'); 2497 2498 if (!accessibilityBtn || !accessibilityPopup || !accessibilityOverlay) { 2499 return; 2500 } 2501 2502 // Must be the exact negative of the container height, so the popup tucks fully out of sight. 2503 var popupHiddenHeight = hiddenHeight(accessibilityPopup) * -1; 2504 var showHide = { attribute: 'top', show: '0px', hide: popupHiddenHeight + 'px' }; 2505 2506 function checkPopupVisible() { 2507 return window.getComputedStyle(accessibilityPopup)[showHide.attribute] === showHide.show; 2508 } 2509 2510 function togglePopup(popup, button, action, data) { 2511 popup.style[data.attribute] = data[action]; 2512 var show = action === 'show'; 2513 button.setAttribute('aria-expanded', String(show)); 2514 accessibilityOverlay.style.display = show ? 'block' : 'none'; 2515 } 2516 2517 function hideAccessibilityPopup() { 2518 togglePopup(accessibilityPopup, accessibilityBtn, 'hide', showHide); 2519 } 2520 2521 function showAccessibilityPopup() { 2522 accessibilityPopup.style.display = 'block'; 2523 // Ensure the transition runs after the display:block above has been applied. 2524 setTimeout(function () { 2525 togglePopup(accessibilityPopup, accessibilityBtn, 'show', showHide); 2526 }, 0); 2527 } 2528 2529 function handleClickOutsidePopup() { 2530 if (checkPopupVisible()) { 2531 hideAccessibilityPopup(); 2532 } 2533 } 2534 2535 accessibilityBtn.addEventListener('click', function () { 2536 if (checkPopupVisible()) { 2537 hideAccessibilityPopup(); 2538 } else { 2539 showAccessibilityPopup(); 2540 } 2541 }); 2542 2543 accessibilityPopup.addEventListener('click', hideAccessibilityPopup); 2544 2545 accessibilityPopup.addEventListener('transitionend', function () { 2546 if (!checkPopupVisible()) { 2547 accessibilityPopup.style.display = 'none'; 2548 } 2549 }); 2550 2551 accessibilityOverlay.addEventListener('click', handleClickOutsidePopup); 2552 }); 2553 })(); 2554</script>
2554 2555 2556 2557<div class="accessibility-widget"> 2558 <div class="accessibility-widget-overlay" aria-hidden="true"></div> 2559 <div class="header-accessibilityInnerContainer"> 2560 <button 2561 id="header-accessibilityPopupBtn" 2562 aria-haspopup="true" 2563 aria-expanded="false" 2564 aria-controls="header-accessibilityPopup" 2565 aria-label="Accessibility Information" 2566 data-accessibility-btn 2567 > 2568 <svg class="ada-icon-dot" width="42" height="42" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg"> 2569 <circle cx="21" cy="21" r="21" fill="#017AFF"/> 2570 <path d="M20.7462 7C22.039 7 23.0857 8.03517 23.0857 9.30595C23.0857 10.585 22.039 11.6201 20.7462 11.6201C19.4624 11.6201 18.416 10.5846 18.4153 9.30595C18.4153 8.03517 19.4617 7 20.7462 7ZM30.8597 14.4567L23.9163 15.3247L23.9192 22.201L27.283 33.31C27.4607 34.0115 27.0344 34.7133 26.333 34.8866C25.6319 35.0599 24.9149 34.6779 24.7383 33.9764L21.2923 23.8639H20.2311L17.061 34.1862C16.7957 34.8598 16.0374 35.1695 15.3573 34.907C14.6838 34.6471 14.2726 33.8887 14.5383 33.2152L17.45 22.3134V15.3247L11.0532 14.4635C10.3967 14.4113 9.95079 13.8394 10.0044 13.1899C10.0525 12.5354 10.6497 12.0495 11.3059 12.1017L19.0777 12.7638H22.486L30.7619 12.0888C31.4196 12.0627 31.9769 12.5687 31.999 13.2243C32.0254 13.8752 31.5176 14.4299 30.8597 14.4567Z" fill="white"/> 2571 </svg> 2572 <svg class="ada-icon-tab" width="42" height="42" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg"> 2573 <path fill-rule="evenodd" clip-rule="evenodd" d="M42 22.4583C42 33.2509 32.598 42 21 42C9.40202 42 0 33.2509 0 22.4583V21V0H21H42V21V22.4583Z" fill="#017AFF"/> 2574 <path d="M20.7462 7C22.039 7 23.0857 8.03517 23.0857 9.30595C23.0857 10.585 22.039 11.6201 20.7462 11.6201C19.4624 11.6201 18.416 10.5846 18.4153 9.30595C18.4153 8.03517 19.4617 7 20.7462 7ZM30.8597 14.4567L23.9163 15.3247L23.9192 22.201L27.283 33.31C27.4607 34.0115 27.0344 34.7133 26.333 34.8866C25.6319 35.0599 24.9149 34.6779 24.7383 33.9764L21.2923 23.8639H20.2311L17.061 34.1862C16.7957 34.8598 16.0374 35.1695 15.3573 34.907C14.6838 34.6471 14.2726 33.8887 14.5383 33.2152L17.45 22.3134V15.3247L11.0532 14.4635C10.3967 14.4113 9.95079 13.8394 10.0044 13.1899C10.0525 12.5354 10.6497 12.0495 11.3059 12.1017L19.0777 12.7638H22.486L30.7619 12.0888C31.4196 12.0627 31.9769 12.5687 31.999 13.2243C32.0254 13.8752 31.5176 14.4299 30.8597 14.4567Z" fill="white"/> 2575 </svg> 2576 </button> 2577 <aside id="header-accessibilityPopup" aria-labelledby="header-accessibilityPopupBtn" data-accessibility-popup> 2578 <p>For an accessible ADA experience, please <a href="https://www.bloomnation.com/florist/flora-savage/?nav=premium-accessibility" rel="nofollow">visit our Marketplace.</a></p> 2579 <p><a href="https://florasavage.net/accessibility-statement/">Visit our Accessibility page</a> for further assistance or to learn more about our efforts.</p> 2580 </aside> 2581 </div> 2582</div> 2583 2584 2585 <!-- [START] Analytics Content: [default] --> 2586<!-- Google Tag Manager (noscript) --> 2587<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TLR3ZL8>m_cookies_win=x%22" 2588height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 2589<!-- End Google Tag Manager (noscript) --> 2590 <!-- [END] Analytics Content: [default] --> 2591 2592
2593<script> 2594 (function () { 2595 /* 2596 * A page restored from the back/forward cache is not re-executed, so the cart count, the 2597 * logged-in state and any flash messages would be whatever they were when the visitor left. 2598 * PageTransitionEvent.persisted is true only for that restore, so reload to rebuild the page 2599 * server-side. This reads the native event directly; the jQuery version had to unwrap 2600 * event.originalEvent to reach the same flag. 2601 */ 2602 window.addEventListener('pageshow', function (event) { 2603 if (event.persisted) { 2604 window.location.reload(); 2605 } 2606 }); 2607 2608 /* 2609 * Kill switch that freezes navigation: while window.forceDisableAllLinks is set, every 2610 * anchor without a force-redirect attribute stops navigating. Nothing in this repository 2611 * sets the flag, so this does nothing unless a script injected into the page turns it on. 2612 * 2613 * The jQuery version bound a handler to every anchor present at DOM ready and did nothing at 2614 * all on the flag-is-off path. One listener costs nothing while the flag is off and also 2615 * covers anchors added after DOM ready â but it has to run in the capture phase to match 2616 * the old reach: dropdown-nav.js stops propagation on every .dropdown-toggle and 2617 * .dropdown-content click, as does toggleDropdown() in topMobile.phtml, so a listener 2618 * delegated on the bubble phase would never see the desktop subnav links at all. 2619 */ 2620 document.addEventListener('click', function (event) { 2621 if (!window.forceDisableAllLinks) { 2622 return; 2623 } 2624 2625 var target = event.target; 2626 var link = target && typeof target.closest === 'function' ? target.closest('a') : null; 2627 2628 if (!link || link.hasAttribute('force-redirect')) { 2629 return; 2630 } 2631 2632 event.preventDefault(); 2633 // Belt and braces: preventDefault alone has been seen to let a navigation through here. 2634 link.setAttribute('href', '#'); 2635 }, true); 2636 })(); 2637</script>
2637 2638 2639<header id="header_mobile" class="header-mobile visible-xs text-center"> 2640 <table class="header-mobile-grid"> 2641 <tbody> 2642 <tr> 2643 <td class="menu-cell"> 2644 <div class="menu-container"> 2645 2646<nav class="navigation-mobile-wrapper"> 2647 <div class="navToggle-container nav-itemWrapper nav-itemWrapper--navToggle text-left"> 2648 <!-- Nav Toggle --> 2649 <button 2650 id="navToggleMobile" 2651 class="nav-toggle-mobile nav-item nav-item-mobile nav-item--navToggle text-center" 2652 aria-controls="navigationMobile" 2653 aria-expanded="false" 2654 title="Main Navigation"> 2655 <i class="fa fa-reorder"></i> 2656 </button> 2657 </div> 2658 <ul class="navigation col-md-12 navigation-mobile" id="navigationMobile"> 2659 <li class="nav-itemWrapper text-right"> 2660 2661 <a href="https://florasavage.net/customer/account/create/" class="nav-item nav-item-mobile account-link"> 2662 <span class="nav-itemText mobile-menu-text-color">Sign Up</span> 2663 </a> 2664 <span class="nav-itemText mobile-menu-text-color sign-up-log-in-separator">/</span> 2665 <a href="https://florasavage.net/customer/account/login/" class="nav-item nav-item-mobile account-link"> 2666 <span class="nav-itemText mobile-menu-text-color">Log in</span> 2667 </a> 2668 2669 </li> 2670 <li class="nav-itemWrapper text-left"> 2671 <a class="nav-item" href="https://florasavage.net/" target="_self"> 2672 <span class="nav-itemText mobile-menu-text-color">Home</span> 2673 </a> 2674 </li> 2675 <li class="nav-itemWrapper text-left"> 2676 <a class="nav-item" href="https://florasavage.net/new-orleans-florist-flower-delivery/" target="_self"> 2677 <span class="nav-itemText mobile-menu-text-color">Shop Online</span> 2678 </a> 2679 </li> 2680 <li class="nav-itemWrapper text-left"> 2681 <a class="nav-item" href="https://florasavage.net/custom-flower-arrangements/" target="_self"> 2682 <span class="nav-itemText mobile-menu-text-color">Custom Arrangement</span> 2683 </a> 2684 </li> 2685 <li class="nav-itemWrapper text-left"> 2686 <a class="nav-item" href="https://florasavage.net/cms/index/gallery/" target="_self"> 2687 <span class="nav-itemText mobile-menu-text-color">Weddings & Events</span> 2688 </a> 2689 </li> 2690 <li class="nav-itemWrapper text-left"> 2691 <a class="nav-item" href="https://florasavage.net/blog" target="_self"> 2692 <span class="nav-itemText mobile-menu-text-color">Blog</span> 2693 </a> 2694 </li> 2695 <li class="nav-itemWrapper text-left"> 2696 <a class="nav-item" href="https://florasavage.net/about-us/" target="_self"> 2697 <span class="nav-itemText mobile-menu-text-color">About Us</span> 2698 </a> 2699 </li> 2700 </ul> 2701 <div class="background-overlay" id="mobileBackgroundOverlay"></div> 2702</nav>
2703<script type="text/javascript"> 2704 (function () { 2705 function ready(callback) { 2706 if (document.readyState === 'loading') { 2707 document.addEventListener('DOMContentLoaded', callback); 2708 } else { 2709 callback(); 2710 } 2711 } 2712 2713 function each(selector, callback, root) { 2714 Array.prototype.forEach.call((root || document).querySelectorAll(selector), callback); 2715 } 2716 2717 // jQuery's :visible test, which is what the checks below used to run through. 2718 function isVisible(element) { 2719 return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length); 2720 } 2721 2722 /* 2723 * jQuery's .width(): the content-box width, as a number. Not getComputedStyle().width, which 2724 * resolves to the border box under the border-box sizing Bootstrap applies globally. Like 2725 * jQuery it also measures a display:none element, by laying it out off-screen â #header_mobile 2726 * carries visible-xs, so it is hidden on desktop. 2727 */ 2728 function contentWidth(element) { 2729 if (window.getComputedStyle(element).display === 'none') { 2730 return swapMeasure(element, measureContentWidth); 2731 } 2732 2733 return measureContentWidth(element); 2734 } 2735 2736 function measureContentWidth(element) { 2737 var styles = window.getComputedStyle(element); 2738 2739 return element.offsetWidth 2740 - (parseFloat(styles.paddingLeft) || 0) 2741 - (parseFloat(styles.paddingRight) || 0) 2742 - (parseFloat(styles.borderLeftWidth) || 0) 2743 - (parseFloat(styles.borderRightWidth) || 0); 2744 } 2745 2746 /* 2747 * jQuery's swap() with cssShow: lay a hidden element out off-screen just long enough to 2748 * measure. The measure callback must not re-test display itself â Bootstrap's visible-xs is 2749 * `display: none !important` above 768px, which an inline style cannot beat, so the swap does 2750 * not actually reveal #header_mobile and a self-recursive version would never terminate. 2751 */ 2752 function swapMeasure(element, measure) { 2753 var style = element.style; 2754 var saved = { 2755 position: style.position, 2756 visibility: style.visibility, 2757 display: style.display 2758 }; 2759 2760 style.position = 'absolute'; 2761 style.visibility = 'hidden'; 2762 style.display = 'block'; 2763 2764 var measured = measure(element); 2765 2766 style.position = saved.position; 2767 style.visibility = saved.visibility; 2768 style.display = saved.display; 2769 2770 return measured; 2771 } 2772 2773 // jQuery's $(document).height(). 2774 function documentHeight() { 2775 var body = document.body; 2776 var html = document.documentElement; 2777 2778 return Math.max( 2779 body.scrollHeight, 2780 body.offsetHeight, 2781 html.clientHeight, 2782 html.scrollHeight, 2783 html.offsetHeight 2784 ); 2785 } 2786 2787 /* 2788 * Submenu open/close, replacing the $('.dropdown-toggle').dropdown() call that used to sit 2789 * here. That call is what made the submenus toggle at all: the Bootstrap plugin binds 2790 * Dropdown.prototype.toggle straight to each element, and because that handler returns false 2791 * it also stops the click reaching Bootstrap's delegated [data-toggle=dropdown] handler on 2792 * document. Without the direct handler the delegated one runs after clearMenus() has already 2793 * removed the 'open' class, so it reads the menu as closed and re-opens it every time â a 2794 * submenu that can never be closed. The port below keeps the direct-handler semantics 2795 * (including getParent()'s data-target/href lookup and the second-click close) and works 2796 * whether or not Bootstrap is on the page, which it will not be after BLOOM-17575's P9. 2797 */ 2798 function dropdownParent(toggle) { 2799 var selector = toggle.getAttribute('data-target'); 2800 2801 if (!selector) { 2802 var href = toggle.getAttribute('href'); 2803 selector = href && /#[A-Za-z]/.test(href) ? href.replace(/.*(?=#[^\s]*$)/, '') : null; 2804 } 2805 2806 var target = null; 2807 2808 if (selector) { 2809 try { 2810 target = document.querySelector(selector); 2811 } catch (error) { 2812 // The mobile toggles carry data-target="#", which is not a valid selector. 2813 // jQuery quietly returned an empty set for it, so fall through to the parent. 2814 target = null; 2815 } 2816 } 2817 2818 return target || toggle.parentNode; 2819 } 2820 2821 function closeOpenDropdowns() { 2822 each('[data-toggle="dropdown"]', function (toggle) { 2823 dropdownParent(toggle).classList.remove('open'); 2824 }); 2825 } 2826 2827 function toggleDropdown(event) { 2828 var toggle = event.currentTarget; 2829 2830 if (toggle.classList.contains('disabled') || toggle.disabled) { 2831 return; 2832 } 2833 2834 var parent = dropdownParent(toggle); 2835 var wasOpen = parent.classList.contains('open'); 2836 2837 closeOpenDropdowns(); 2838 2839 if (!wasOpen) { 2840 parent.classList.add('open'); 2841 toggle.focus(); 2842 } 2843 2844 event.preventDefault(); 2845 // Bootstrap's handler returned false, which stopped the click reaching its own 2846 // document-level handlers. Keep that so nothing toggles the menu a second time. 2847 event.stopPropagation(); 2848 } 2849 2850 ready(function () { 2851 each('.dropdown-toggle', function (toggle) { 2852 toggle.addEventListener('click', toggleDropdown); 2853 }); 2854 2855 document.addEventListener('click', closeOpenDropdowns); 2856 2857 var navToggle = document.getElementById('navToggleMobile'); 2858 var navigationMobile = document.getElementById('navigationMobile');
2859 var overlay = document.getElementById('mobileBackgroundOverlay'); 2860 var headerMobile = document.getElementById('header_mobile'); 2861 var body = document.body; 2862 2863 if (!navToggle || !navigationMobile || !overlay) { 2864 return; 2865 } 2866 2867 each('.dropdown-toggle', function (toggle) { 2868 toggle.addEventListener('click', function (event) { 2869 if (isVisible(navigationMobile)) { 2870 return; 2871 } 2872 2873 event.preventDefault(); 2874 2875 // A page carries several of these â one per desktop dropdown, plus the two 2876 // dropdown-nav templates â and .is(':visible') was true if ANY of them was 2877 // showing, so this has to ask all of them, not just the first. 2878 var desktopSubnavOpen = Array.prototype.some.call( 2879 document.querySelectorAll('.dropdown-content--arrownav-desktop'), 2880 isVisible 2881 ); 2882 2883 if (!desktopSubnavOpen) { 2884 return; 2885 } 2886 2887 each('.dropdown-wrapper--hover', function (wrapper) { 2888 each('.dropdown-toggle', function (hoverToggle) { 2889 hoverToggle.setAttribute('aria-expanded', 'false'); 2890 }, wrapper); 2891 each('.dropdown-content', function (content) { 2892 content.classList.remove('dropdown-content--visible'); 2893 }, wrapper); 2894 wrapper.classList.remove('open'); 2895 }); 2896 }); 2897 }); 2898 2899 // Nav Toggle on click 2900 navToggle.addEventListener('click', function () { 2901 if (navigationMobile.classList.contains('open')) { 2902 hideMenu(); 2903 } else { 2904 showMenu(); 2905 } 2906 }); 2907 2908 overlay.addEventListener('click', function () { 2909 hideMenu(); 2910 }); 2911 2912 navigationMobile.addEventListener('touchstart', startTouch, { passive: false }); 2913 navigationMobile.addEventListener('touchmove', moveTouch, { passive: false }); 2914 2915 // Swipe Up / Down / Left / Right 2916 var initialX = null; 2917 var initialY = null; 2918 2919 function startTouch(e) { 2920 initialX = e.touches[0].clientX; 2921 initialY = e.touches[0].clientY; 2922 } 2923 2924 function moveTouch(e) { 2925 if (initialX === null) { 2926 return; 2927 } 2928 2929 if (initialY === null) { 2930 return; 2931 } 2932 2933 var currentX = e.touches[0].clientX; 2934 var currentY = e.touches[0].clientY; 2935 2936 var diffX = initialX - currentX; 2937 var diffY = initialY - currentY; 2938 2939 if (Math.abs(diffX) > Math.abs(diffY)) { 2940 // sliding horizontally 2941 if (diffX > 0) { 2942 // swiped left 2943 menuSlideLeft(); 2944 } 2945 } 2946 2947 initialX = null; 2948 initialY = null; 2949 } 2950 2951 /* 2952 * Stale selector, kept as it was: the toggle lives in .navToggle-container, a sibling of 2953 * .navigation-mobile rather than a child, so this has matched nothing for a long time. 2954 * Restoring the intent would hide the hamburger while the menu is open â a visible 2955 * change, and not this ticket's. 2956 */ 2957 function setNavToggleDisplay(display) { 2958 each('.navigation-mobile .nav-itemWrapper--navToggle', function (wrapper) { 2959 wrapper.style.display = display; 2960 }); 2961 } 2962 2963 function showMenu() { 2964 navToggle.setAttribute('aria-expanded', 'true'); 2965 navigationMobile.classList.add('open'); 2966 var containerWidth = headerMobile ? contentWidth(headerMobile) : 0; 2967 setNavToggleDisplay('none'); 2968 navigationMobile.style.width = (containerWidth * 0.8) + 'px'; 2969 overlay.style.height = documentHeight() + 'px'; 2970 // The stylesheet hides the overlay, so an empty display would leave it hidden. 2971 overlay.style.display = 'block'; 2972 body.style.position = 'fixed'; 2973 } 2974 2975 function hideMenu() { 2976 navToggle.setAttribute('aria-expanded', 'false'); 2977 navigationMobile.classList.remove('open'); 2978 setNavToggleDisplay(''); 2979 navigationMobile.style.width = ''; 2980 overlay.style.height = '0px'; 2981 overlay.style.display = 'none'; 2982 body.style.position = ''; 2983 } 2984 2985 function menuSlideLeft() { 2986 var containerWidth = headerMobile ? contentWidth(headerMobile) : 0; 2987 var settled = false;
2988 var timer = null; 2989 2990 function settle(event) { 2991 if (event && event.propertyName && event.propertyName !== 'margin-left') { 2992 return; 2993 } 2994 2995 if (settled) { 2996 return; 2997 } 2998 2999 settled = true; 3000 window.clearTimeout(timer); 3001 navigationMobile.removeEventListener('transitionend', settle); 3002 navigationMobile.style.transition = ''; 3003 navigationMobile.style.marginLeft = '0px'; 3004 navigationMobile.style.width = ''; 3005 navigationMobile.style.height = ''; 3006 navigationMobile.style.top = ''; 3007 navigationMobile.classList.remove('open'); 3008 setNavToggleDisplay(''); 3009 overlay.style.height = '0px'; 3010 overlay.style.display = 'none'; 3011 } 3012 3013 navigationMobile.addEventListener('transitionend', settle); 3014 // Fallback for the cases transitionend never fires: reduced motion, or a margin that 3015 // is already at the target value. 3016 timer = window.setTimeout(settle, 150); 3017 3018 navigationMobile.style.transition = 'margin-left 100ms linear'; 3019 // Force a reflow so the transition starts from the current margin. 3020 void navigationMobile.offsetWidth; 3021 navigationMobile.style.marginLeft = -(containerWidth * 0.8) + 'px'; 3022 } 3023 }); 3024 })(); 3025</script>
3025 3026 </div> 3027 </td> 3028 <td class="logo-cell"> 3029 <div class="logo-container"> 3030 <a class="companyLogo-imgContainer" href="https://florasavage.net/"> 3031 <img 3032 class="companyLogo-img" 3033 src="https://asset.bloomnation.com/c_fit,dpr_1,f_auto,h_353,q_auto,w_600/v1/vendor/2705/profile/f/l/florasavage-logo.png" 3034 alt="Flora Savage - New Orleans, LA florist" 3035 srcset="https://asset.bloomnation.com/c_fit%2Cdpr_1%2Cf_auto%2Ch_353%2Cq_auto%2Cw_600/v1/vendor/2705/profile/f/l/florasavage-logo.png 1x, https://asset.bloomnation.com/c_fit%2Cdpr_2%2Cf_auto%2Ch_353%2Cq_auto%2Cw_600/v1/vendor/2705/profile/f/l/florasavage-logo.png 2x" 3036 width="600" 3037 height="353" 3038 /> 3039 </a> 3040 </div> 3041 </td> 3042 <td class="cart-cell"> 3043 <div class="cart-container"> 3044 <a href="https://florasavage.net/checkout/" class="mobile-cart-btn"> 3045 <div class="mobile-cart-icon-wrapper"> 3046 <span class="header-cartIcon mobile-menu-text-color" aria-hidden="true"><svg width="19" height="24" viewBox="0 0 19 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3047<path d="M2.33333 23.3333C1.69167 23.3333 1.14236 23.1049 0.685417 22.6479C0.228472 22.191 0 21.6417 0 21V7C0 6.35833 0.228472 5.80903 0.685417 5.35208C1.14236 4.89514 1.69167 4.66667 2.33333 4.66667H4.66667C4.66667 3.38333 5.12361 2.28472 6.0375 1.37083C6.95139 0.456945 8.05 0 9.33333 0C10.6167 0 11.7153 0.456945 12.6292 1.37083C13.5431 2.28472 14 3.38333 14 4.66667H16.3333C16.975 4.66667 17.5243 4.89514 17.9812 5.35208C18.4382 5.80903 18.6667 6.35833 18.6667 7V21C18.6667 21.6417 18.4382 22.191 17.9812 22.6479C17.5243 23.1049 16.975 23.3333 16.3333 23.3333H2.33333ZM2.33333 21H16.3333V7H14V9.33333C14 9.66389 13.8882 9.94097 13.6646 10.1646C13.441 10.3882 13.1639 10.5 12.8333 10.5C12.5028 10.5 12.2257 10.3882 12.0021 10.1646C11.7785 9.94097 11.6667 9.66389 11.6667 9.33333V7H7V9.33333C7 9.66389 6.88819 9.94097 6.66458 10.1646C6.44097 10.3882 6.16389 10.5 5.83333 10.5C5.50278 10.5 5.22569 10.3882 5.00208 10.1646C4.77847 9.94097 4.66667 9.66389 4.66667 9.33333V7H2.33333V21ZM7 4.66667H11.6667C11.6667 4.025 11.4382 3.4757 10.9812 3.01875C10.5243 2.56181 9.975 2.33333 9.33333 2.33333C8.69167 2.33333 8.14236 2.56181 7.68542 3.01875C7.22847 3.4757 7 4.025 7 4.66667Z" fill="currentColor"/> 3048</svg> 3049</span> 3050 </div> 3051 </a> 3052 </div> 3053 </td> 3054 </tr> 3055 </tbody> 3056 3057 </table> 3058</header> 3059<header id="header" class="hidden-xs"> 3060 <div class="row header-innerContainer"> 3061 <div class="information-heading infoHeading hidden-xs col-sm-4 col-md-4"> 3062 <span class="infoHeading-item infoHeading-item--name">Flora Savage</span> 3063 <span class="infoHeading-item infoHeading-item--address vendor-address">1301 Royal St. <br /> 3064 New Orleans, 3065 LA 70116</span> 3066 </div> 3067 <div class="header-logo col-xs-12 col-sm-4 col-md-4"> 3068 <div class="company-logo"> 3069 <a class="companyLogo-imgContainer" href="https://florasavage.net/"> 3070 <img 3071 class="companyLogo-img" 3072 src="https://asset.bloomnation.com/c_fit,dpr_1,f_auto,h_500,q_auto,w_852/v1/vendor/2705/profile/f/l/florasavage-logo.png" 3073 alt="Flora Savage - New Orleans, LA florist" 3074 srcset="https://asset.bloomnation.com/c_fit%2Cdpr_1%2Cf_auto%2Ch_500%2Cq_auto%2Cw_852/v1/vendor/2705/profile/f/l/florasavage-logo.png 1x, https://asset.bloomnation.com/c_fit%2Cdpr_2%2Cf_auto%2Ch_500%2Cq_auto%2Cw_852/v1/vendor/2705/profile/f/l/florasavage-logo.png 2x" 3075 width="852" 3076 height="500" 3077 /> 3078 </a> 3079 </div> 3080 </div> 3081 3082<nav class="header-cart ps-header-cart col-xs-12 col-sm-4 col-md-4" aria-labelledby="ps-my-account_menu-label"> 3083 <div class="ps-header-cartBtn-wrapper"> 3084 <div class="ps-my-account-button-wrapper dropdown-wrapper"> 3085 <button class="ps-my-account-button dropdown-toggle" aria-expanded="false" aria-haspopup="true">
3086 <span class="ps-my-account-button-text" id="ps-my-account_menu-label">My Account</span> 3087 <span class="ps-my-account-icon" aria-hidden="true"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3088<path d="M4.49166 17.6167C5.48333 16.8583 6.59166 16.2604 7.81666 15.8229C9.04166 15.3854 10.325 15.1667 11.6667 15.1667C13.0083 15.1667 14.2917 15.3854 15.5167 15.8229C16.7417 16.2604 17.85 16.8583 18.8417 17.6167C19.5222 16.8194 20.0521 15.9153 20.4312 14.9042C20.8104 13.893 21 12.8139 21 11.6667C21 9.08055 20.091 6.87847 18.2729 5.06041C16.4549 3.24236 14.2528 2.33333 11.6667 2.33333C9.08055 2.33333 6.87847 3.24236 5.06041 5.06041C3.24236 6.87847 2.33333 9.08055 2.33333 11.6667C2.33333 12.8139 2.52292 13.893 2.90208 14.9042C3.28125 15.9153 3.81111 16.8194 4.49166 17.6167ZM8.76458 11.6521C7.97708 10.8646 7.58333 9.89722 7.58333 8.75C7.58333 7.60277 7.97708 6.63541 8.76458 5.84791C9.55208 5.06041 10.5194 4.66666 11.6667 4.66666C12.8139 4.66666 13.7812 5.06041 14.5687 5.84791C15.3562 6.63541 15.75 7.60277 15.75 8.75C15.75 9.89722 15.3562 10.8646 14.5687 11.6521C13.7812 12.4396 12.8139 12.8333 11.6667 12.8333C10.5194 12.8333 9.55208 12.4396 8.76458 11.6521ZM11.6667 23.3333C10.0528 23.3333 8.53611 23.0271 7.11666 22.4146C5.69722 21.8021 4.4625 20.9708 3.4125 19.9208C2.3625 18.8708 1.53125 17.6361 0.91875 16.2167C0.30625 14.7972 0 13.2805 0 11.6667C0 10.0528 0.30625 8.53611 0.91875 7.11666C1.53125 5.69722 2.3625 4.4625 3.4125 3.4125C4.4625 2.3625 5.69722 1.53125 7.11666 0.91875C8.53611 0.30625 10.0528 0 11.6667 0C13.2805 0 14.7972 0.30625 16.2167 0.91875C17.6361 1.53125 18.8708 2.3625 19.9208 3.4125C20.9708 4.4625 21.8021 5.69722 22.4146 7.11666C23.0271 8.53611 23.3333 10.0528 23.3333 11.6667C23.3333 13.2805 23.0271 14.7972 22.4146 16.2167C21.8021 17.6361 20.9708 18.8708 19.9208 19.9208C18.8708 20.9708 17.6361 21.8021 16.2167 22.4146C14.7972 23.0271 13.2805 23.3333 11.6667 23.3333ZM14.5833 20.5479C15.4972 20.2465 16.3333 19.8139 17.0917 19.25C16.3333 18.6861 15.4972 18.2535 14.5833 17.9521C13.6694 17.6507 12.6972 17.5 11.6667 17.5C10.6361 17.5 9.66388 17.6507 8.75 17.9521C7.83611 18.2535 7 18.6861 6.24166 19.25C7 19.8139 7.83611 20.2465 8.75 20.5479C9.66388 20.8493 10.6361 21 11.6667 21C12.6972 21 13.6694 20.8493 14.5833 20.5479ZM12.9208 10.0042C13.2514 9.6736 13.4167 9.25555 13.4167 8.75C13.4167 8.24444 13.2514 7.82638 12.9208 7.49583C12.5903 7.16527 12.1722 7 11.6667 7C11.1611 7 10.743 7.16527 10.4125 7.49583C10.0819 7.82638 9.91666 8.24444 9.91666 8.75C9.91666 9.25555 10.0819 9.6736 10.4125 10.0042C10.743 10.3347 11.1611 10.5 11.6667 10.5C12.1722 10.5 12.5903 10.3347 12.9208 10.0042Z" fill="currentColor"/> 3089</svg> 3090</span> 3091 </button> 3092 3093<div id="dropdown-nav--js" class="dropdown-nav dropdown-nav--login dropdown-content dropdown-content--arrownav-desktop"> 3094 <div class="dropdown-nav__arrow-up"></div> 3095 <div class="dropdown-nav__arrow-up--overlay"></div> 3096 3097 <ul class="dropdown-nav__list"> 3098 <li class="dropdown-nav__list-item"> 3099 <a class="dropdown-nav__link" href="https://florasavage.net/customer/account/login/" tabindex="-1" rel="nofollow"> 3100 <p class="icon material-symbols-outlined">login</p> 3101 <span>Log in</span> 3102 </a> 3103 </li> 3104 <li class="dropdown-nav__list-item"> 3105 <a class="dropdown-nav__link" href="https://florasavage.net/customer/account/create/" tabindex="-1" rel="nofollow"> 3106 <p class="icon material-symbols-outlined">person</p> 3107 <span>Sign up</span> 3108 </a> 3109 </li> 3110 <li class="dropdown-nav__list-item"> 3111 <a class="dropdown-nav__link" href="https://florasavage.net/customer/account/createEnroll/" tabindex="-1" rel="nofollow"> 3112 <p class="icon material-symbols-outlined">stars</p> 3113 <span>Join Loyalty</span> 3114 </a> 3115 </li> 3116 </ul> 3117</div> 3118 </div> 3119 3120 <div class="ps-my-account-mob"> 3121 <a href="https://florasavage.net/checkout/" class="btn btn-outline ps-cart_button ps-header-cartBtn" aria-label="view cart with 0 items">
3122 <span class="ps-header-cart-icon" aria-hidden="true"><svg width="19" height="24" viewBox="0 0 19 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 3123<path d="M2.33333 23.3333C1.69167 23.3333 1.14236 23.1049 0.685417 22.6479C0.228472 22.191 0 21.6417 0 21V7C0 6.35833 0.228472 5.80903 0.685417 5.35208C1.14236 4.89514 1.69167 4.66667 2.33333 4.66667H4.66667C4.66667 3.38333 5.12361 2.28472 6.0375 1.37083C6.95139 0.456945 8.05 0 9.33333 0C10.6167 0 11.7153 0.456945 12.6292 1.37083C13.5431 2.28472 14 3.38333 14 4.66667H16.3333C16.975 4.66667 17.5243 4.89514 17.9812 5.35208C18.4382 5.80903 18.6667 6.35833 18.6667 7V21C18.6667 21.6417 18.4382 22.191 17.9812 22.6479C17.5243 23.1049 16.975 23.3333 16.3333 23.3333H2.33333ZM2.33333 21H16.3333V7H14V9.33333C14 9.66389 13.8882 9.94097 13.6646 10.1646C13.441 10.3882 13.1639 10.5 12.8333 10.5C12.5028 10.5 12.2257 10.3882 12.0021 10.1646C11.7785 9.94097 11.6667 9.66389 11.6667 9.33333V7H7V9.33333C7 9.66389 6.88819 9.94097 6.66458 10.1646C6.44097 10.3882 6.16389 10.5 5.83333 10.5C5.50278 10.5 5.22569 10.3882 5.00208 10.1646C4.77847 9.94097 4.66667 9.66389 4.66667 9.33333V7H2.33333V21ZM7 4.66667H11.6667C11.6667 4.025 11.4382 3.4757 10.9812 3.01875C10.5243 2.56181 9.975 2.33333 9.33333 2.33333C8.69167 2.33333 8.14236 2.56181 7.68542 3.01875C7.22847 3.4757 7 4.025 7 4.66667Z" fill="currentColor"/> 3124</svg> 3125</span> 3126 <span class="ps-cart_text ps-header-cart-text">(0) Cart</span> 3127 </a> 3128 </div> 3129 </div> 3130 <style> 3131 /* Account Management Cart Modifications (start) */ 3132 .ps-header-cart .ps-header-cart-badge { 3133 display: none; 3134 background: transparent; 3135 color: var(--header-icon-color, #000); 3136 position: absolute; 3137 top: 69%; 3138 left: 50%; 3139 transform: translate(-50%, -50%); 3140 padding: 0; 3141 font-size: 10px; 3142 font-weight: 600 !important; 3143 line-height: 1; 3144 pointer-events: none; 3145 } 3146 3147 .ps-header-cart .ps-my-account-button-wrapper { 3148 display: none; 3149 } 3150 3151 #header .ps-header-cart .ps-cart_button { 3152 border: 0; 3153 padding: 0; 3154 } 3155 3156 .ps-my-account-button { 3157 background: none; 3158 border: none; 3159 padding: 0; 3160 } 3161 3162 .ps-my-account-mob { 3163 display: inline-block; 3164 } 3165 3166 .ps-my-account-button-text { 3167 color: var(--my-account-color, #000); 3168 } 3169 3170 @media only screen and (min-width: 768px) { 3171 .account-management-dropdown-nav, 3172 .ps-header-cart-text { 3173 display: none; 3174 } 3175 3176 .ps-header-cart .ps-my-account-button-wrapper { 3177 position: relative; 3178 display: inline-block; 3179 float: left; 3180 margin-top: 3px; 3181 margin-right: 5px; 3182 cursor: pointer; 3183 } 3184 3185 .ps-header-cart .ps-my-account-button-text { 3186 text-align: right; 3187 } 3188 3189 .ps-header-cart .ps-my-account-button-wrapper { 3190 display: inline-block; 3191 } 3192 3193 .ps-header-cart .ps-my-account-button #ps-my-account_menu-label { 3194 font-weight: 500 !important; 3195 display: inline-block; 3196 } 3197 3198 .ps-header-cart .ps-header-cart-badge { 3199 display: block; 3200 } 3201 3202 .ps-header-cartBtn-wrapper { 3203 float: right; 3204 } 3205 3206 .ps-header-cartBtn { 3207 float: none; 3208 position: relative; 3209 margin: 0; 3210 padding: 0 10px; 3211 width: auto; 3212 height: auto; 3213 border: 0; 3214 } 3215 3216 .ps-header-cart-icon { 3217 width: 25px; 3218 height: 25px; 3219 margin: 0; 3220 vertical-align: middle; 3221 display: inline-flex; 3222 align-items: center; 3223 justify-content: center; 3224 position: relative; 3225 top: 2px; 3226 } 3227 3228 .ps-header-cart-icon svg { 3229 width: 100%; 3230 height: 100%; 3231 display: block; 3232 } 3233 .ps-header-cart-icon svg path { 3234 fill: var(--header-icon-color, var(--my-account-color, #000)); 3235 } 3236 } 3237 3238 .ps-my-account-icon { 3239 width: 25px; 3240 height: 25px; 3241 margin: 0 6px; 3242 vertical-align: middle; 3243 display: inline-flex; 3244 align-items: center; 3245 justify-content: center; 3246 } 3247 3248 .ps-my-account-icon svg { 3249 width: 100%; 3250 height: 100%; 3251 display: block; 3252 } 3253 3254 .ps-my-account-icon svg path { 3255 fill: var(--header-icon-color, var(--my-account-color, #000)); 3256 } 3257 3258 .ps-my-account-button svg { 3259 width: 25px; 3260 height: 25px; 3261 } 3262 3263 /* Account Management Cart Modifications (end) */ 3264 </style> 3265
3265<script type="text/javascript" src="https://promfiles.com/bloom/dist/frontend/base/default/js/dropdown-nav.5e3dac90.js" defer></script>
3265 3266</nav> 3267 <div class="clearfix"></div> 3268 </div> 3269 3270 <div class="clearfix"></div> 3271 <nav class="header-nav headerNav-wrapper"> 3272 <div class="row headerNav-innerContainer"> 3273 3274<ul id="main-nav" class="navigation col-md-12"> 3275 <li class="navToggle-container nav-itemWrapper nav-itemWrapper--navToggle"> 3276 <!-- Nav Toggle --> 3277 <a href="#" class="nav-toggle nav-item" id="main-nav-toggle" aria-haspopup="true" aria-expanded="false"> 3278 <i class="fa fa-reorder"></i> 3279 <span class="nav-show">Menu <i class="fa fa-caret-down"></i></span> 3280 <span class="nav-hide">Hide <i class="fa fa-caret-up"></i></span> 3281 </a> 3282 </li> 3283 <li class="nav-itemWrapper"> 3284 <a class="nav-item" href="https://florasavage.net/" target="_self"><span class="nav-itemText">Home</span></a> 3285 </li> 3286 <li class="nav-itemWrapper"> 3287 <a class="nav-item" href="https://florasavage.net/new-orleans-florist-flower-delivery/" target="_self"><span class="nav-itemText">Shop Online</span></a> 3288 </li> 3289 <li class="nav-itemWrapper"> 3290 <a class="nav-item" href="https://florasavage.net/custom-flower-arrangements/" target="_self"><span class="nav-itemText">Custom Arrangement</span></a> 3291 </li> 3292 <li class="nav-itemWrapper"> 3293 <a class="nav-item" href="https://florasavage.net/cms/index/gallery/" target="_self"><span class="nav-itemText">Weddings & Events</span></a> 3294 </li> 3295 <li class="nav-itemWrapper"> 3296 <a class="nav-item" href="https://florasavage.net/blog" target="_self"><span class="nav-itemText">Blog</span></a> 3297 </li> 3298 <li class="nav-itemWrapper"> 3299 <a class="nav-item" href="https://florasavage.net/about-us/" target="_self"><span class="nav-itemText">About Us</span></a> 3300 </li> 3301 <li class="account-management-dropdown-nav dropdown nav-dropdown nav-itemWrapper nav-itemWrapper--dropdown dropdown-wrapper"> 3302 <button class="dropdown-toggle nav-item nav-item--dropdown" aria-expanded="false" aria-haspopup="true"> 3303 <span class="nav-itemText">My Account ▾</span> 3304 </button> 3305 <ul class="subnav dropdown-menu header-subnav dropdown-content dropdown-content--arrownav-desktop" role="menu"> 3306 <li class="subnav-itemWrapper"> 3307 <a class="nav-item nav-item--subnav" href="https://florasavage.net/customer/account/login/">Log in</a> 3308 </li> 3309 <li class="subnav-itemWrapper"> 3310 <a class="nav-item nav-item--subnav" href="https://florasavage.net/customer/account/create/"> 3311 Sign Up </a> 3312 </li> 3313 </ul> 3314 </li> 3315</ul> 3316 </div> 3317 </nav> 3318 3319 <div class="clearfix"></div> 3320</header> 3321 <noscript> 3322 <div class="global-site-notice noscript"> 3323 <div class="notice-inner"> 3324 <p> 3325 <strong>JavaScript seems to be disabled in your browser.</strong><br /> 3326 You must have JavaScript enabled in your browser to utilize the functionality of this website. </p> 3327 </div> 3328 </div> 3329 </noscript> 3330 3331 <style></style><div id="__nuxt"><div><main id="custom-page-main-content" data-gjs-type="content"><section data-gradient-type="none" id="section-blog-posts" gradienttype="none" data-gjs-type="section-blog-posts"><div class="section-container" data-gjs-type="section-container"><!--[--><div class="wm-blog-posts side-image" style="--columns:2;--column-gap:20px;--row-gap:20px;"><h1 class="wm-blog-posts__heading">Blog</h1><!--[--><div class="wm-blog-posts__item"><a href="https://florasavage.net/blog/chapter-2-2705/" class="wm-blog-posts__image-link"><img src="https://asset.bloomnation.com/image/upload/v1769099345/bloomnation/bn-thumbnail.webp" alt="Chapter 2" class="wm-blog-posts__image" style="border-top-left-radius:0px;border-bottom-left-radius:0px;" loading="lazy"></a><div class="wm-blog-posts__content" style="border-top-right-radius:0px;border-bottom-right-radius:0px;"><time class="wm-blog-posts__date" datetime="2025-07-17 19:34:16">07/17/2025</time><a href="https://florasavage.net/blog/chapter-2-2705/" class="wm-blog-posts__title">Chapter 2</a><p class="wm-blog-posts__excerpt">Chapter 2 It was August in New Orleans, where tempers were short and apathy long. Business was seasonally slow. So after Ilsa got through the shopâs morning...</p><a href="https://florasavage.net/blog/chapter-2-2705/" class="wm-blog-posts__read-more"> Read More </a></div></div><div class="wm-blog-posts__item"><a href="https://florasavage.net/blog/the-fat-ballerina-flower-shop-chapter-one-270
33315/" class="wm-blog-posts__image-link"><img src="https://asset.bloomnation.com/f_auto,q_auto/v1/vendor/2705/blog/e/n/enhanced-21018-1439475923-1.jpg" alt="The Fat Ballerina Flower Shop: Chapter One" class="wm-blog-posts__image" style="border-top-left-radius:0px;border-bottom-left-radius:0px;" loading="lazy"></a><div class="wm-blog-posts__content" style="border-top-right-radius:0px;border-bottom-right-radius:0px;"><time class="wm-blog-posts__date" datetime="2017-06-01 17:46:29">06/01/2017</time><a href="https://florasavage.net/blog/the-fat-ballerina-flower-shop-chapter-one-2705/" class="wm-blog-posts__title">The Fat Ballerina Flower Shop: Chapter One</a><p class="wm-blog-posts__excerpt">The Fat Ballerina Flower Shop: by Suzy Black Chapter One Spring in New Orleans meant optimism, and optimism translated into flower sales. For men it was a...</p><a href="https://florasavage.net/blog/the-fat-ballerina-flower-shop-chapter-one-2705/" class="wm-blog-posts__read-more"> Read More </a></div></div><!--]--></div><div style="display:none;">
3331<script type="application/ld+json">{"@context":"https://schema.org/","@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"BlogPosting","headline":"Chapter 2","url":"https://florasavage.net/blog/chapter-2-2705/","datePublished":"2025-07-17 19:34:16","author":{"@type":"Organization","@id":"https://florasavage.net/#florist","name":"Flora Savage"},"description":"Chapter 2 It was August in New Orleans, where tempers were short and apathy long. Business was seasonally slow. So after Ilsa got through the shopâs morning..."}},{"@type":"ListItem","position":2,"item":{"@type":"BlogPosting","headline":"The Fat Ballerina Flower Shop: Chapter One","url":"https://florasavage.net/blog/the-fat-ballerina-flower-shop-chapter-one-2705/","datePublished":"2017-06-01 17:46:29","author":{"@type":"Organization","@id":"https://florasavage.net/#florist","name":"Flora Savage"},"description":"The Fat Ballerina Flower Shop: by Suzy Black Chapter One Spring in New Orleans meant optimism, and optimism translated into flower sales. For men it was a...","image":"https://asset.bloomnation.com/f_auto,q_auto/v1/vendor/2705/blog/e/n/enhanced-21018-1439475923-1.jpg"}}]}</script>
3331</div><!--]--></div></section></main></div></div>
3331<script src="https://recaptcha.net/recaptcha/enterprise.js?render=6LcekH4oAAAAAPgpX9mYKeWkz_ahsVAxMZcI2JYd" async defer></script>
3331<script>window.PS_CONFIG = {"graphqlUrl":"/api/graphql/premiumsite"};</script>
3331<script type="module" src="https://promfiles.com/bloom/dist/js/ps-site-components.e860cdc395b4a676.csr.js" defer></script>
3331 3332 <section id="footer" class="footer-inner"> 3333 <div class="social_media footer-social_media"> 3334 3335 3336 <div class="row social-innerContainer"> 3337 <a href="https://www.instagram.com/florasavage/" target="_new" 3338 class="instagram footer-socialItem" aria-label="visit our Instagram page"> 3339 <span class="footer-socialName">Instagram </span> 3340 <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/instagram.6ebb7516.svg" alt="" /> 3341 </a> 3342 3343 <a href="https://www.facebook.com/FloraSavage" target="_new" 3344 class="facebook footer-socialItem" aria-label="visit our Facebook page"> 3345 <span class="footer-socialName">Facebook </span> 3346 <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/facebook.72c20f3c.svg" alt="" /> 3347 </a> 3348 3349 3350 3351 <a href="https://www.pinterest.com/florasavage13/" target="_new" 3352 class="pinterest footer-socialItem" aria-label="visit our Pinterest page"> 3353 <span class="footer-socialName">Pinterest </span> 3354 <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/pinterest.dc6bd10d.svg" alt="" /> 3355 </a> 3356 3357 <a href="https://www.google.com/maps?cid=8856762549799062052" target="_new" 3358 class="googleplaces footer-socialItem" aria-label="visit our Google page"> 3359 <span class="footer-socialName">Google</span> 3360 <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/google.9795e4d3.svg" alt="" /> 3361 </a> 3362 3363 <a href="https://www.yelp.com/biz/flora-savage-new-orleans" target="_new" 3364 class="yelp footer-socialItem" aria-label="visit our Yelp page"> 3365 <span class="footer-socialName">Yelp </span> 3366 <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/yelp.3792410e.svg" alt="" /> 3367 </a> 3368 3369 3370 3371 3372 <div class="clearfix visible-xs visible-sm"><br/></div> 3373 3374 <div class="poweredbybloomnation bloomnationRep col-xs-12 col-sm-12 col-md-12"> 3375 <div class="member_of_bloomnation_wrapper"> 3376 <a href="https://florasavage.net/about-us/" class="member_of_bloomnation"> 3377 <span class="bloomnationRep-text">Premier florist on</span> 3378 </a> 3379 <a href="https://www.bloomnation.com/" class="member_of_bloomnation_link" aria-label="BloomNation Home Page"> 3380 <img class="bloomnationRep-img" 3381 src="https://asset.bloomnation.com/v1/bloomnation/black_horizontal_logo.svg" 3382 alt="BloomNation Member" 3383 loading="lazy" 3384 width="156" 3385 height="23" 3386 /> 3387 </a> 3388 </div> 3389 </div> 3390 </div> 3391 </div> 3392 3393 <div class="footer-more_information footer-info"> 3394 <div class="footer-info__locations"> 3395 <div class="footer-info__location"> 3396 <div class="footer-info__col footer-info__col--address footer-infoItem footer-infoItem--address"> 3397 <h4 class="footer-info__heading infoItem-header infoItem-header--store">Location</h4> 3398 <p class="footer-info__address infoItem-text"> 3399 <a href="https://www.google.com/maps/dir/?api=1&origin=&destination=1301+Royal+St.+%2C+New+Orleans%2C+LA%2C+70116" target="_blank">1301 Royal St.<br>New Orleans, LA 70116<span class="sr-only">
3399(link opens in a new window)</span></a> 3400 </p> 3401 </div> 3402 <div class="footer-info__col footer-info__col--contact footer-infoItem footer-infoItem--email"> 3403 <h4 class="footer-info__heading infoItem-header infoItem-header--email">Contact</h4> 3404 <p class="infoItem-text infoItem-text--phone"><a href="tel:5045814728">(504) 581-4728</a></p> 3405 <p class="infoItem-text infoItem-text--email"><a href="mailto:[email protected]">[email protected]</a></p> 3406 </div> 3407 </div> 3408 </div> 3409 3410 <div class="footer-info__hours footer-infoItem footer-infoItem--hours"> 3411 <h4 class="footer-info__heading infoItem-header infoItem-header--hours">Hours</h4> 3412 <div class="footer-info__hours-grid store-contact__column store-contact__column--hours store-hours"> 3413 <span class="footer-info__hours-day store-hours__label">Monday</span> 3414 <span class="footer-info__hours-time">10 AM - 5 PM</span> 3415 <span class="footer-info__hours-day store-hours__label">Tuesday</span> 3416 <span class="footer-info__hours-time">10 AM - 5 PM</span> 3417 <span class="footer-info__hours-day store-hours__label">Wednesday</span> 3418 <span class="footer-info__hours-time">10 AM - 5 PM</span> 3419 <span class="footer-info__hours-day store-hours__label">Thursday</span> 3420 <span class="footer-info__hours-time">10 AM - 5 PM</span> 3421 <span class="footer-info__hours-day store-hours__label">Friday</span> 3422 <span class="footer-info__hours-time">10 AM - 5 PM</span> 3423 <span class="footer-info__hours-day store-hours__label">Saturday</span> 3424 <span class="footer-info__hours-time">10 AM - 3 PM</span> 3425 <span class="footer-info__hours-day store-hours__label">Sunday</span> 3426 <span class="footer-info__hours-time">Closed</span> 3427 </div> 3428 </div> 3429 </div> 3430 3431 <section id="super-footer"> 3432 <div class="footer-block footer-copyright"> 3433 <div id="copyright-info" class="copyright__links"> 3434 <a class="copyright__link copyright__faq-link" 3435 href="https://florasavage.net/faq/" 3436 > 3437 FAQs 3438 </a> 3439 <span>·</span> 3440 3441 <a class="copyright__link" 3442 href="https://florasavage.net/terms-of-service/" 3443 > 3444 Terms of Service 3445 </a> 3446 <span>·</span> 3447 3448 <a class="copyright__link" 3449 href="https://florasavage.net/privacy-policy/" 3450 > 3451 Privacy Policy 3452 </a> 3453 <span>·</span> 3454 3455 <a class="copyright__link" 3456 href="https://florasavage.net/policies/" 3457 > 3458 Policies 3459 </a> 3460 <span>·</span> 3461 3462 <a class="copyright__link" 3463 href="https://florasavage.net/where-we-deliver" 3464 > 3465 Where We Deliver 3466 </a> 3467 <span>·</span> 3468 3469 <a class="copyright__link" 3470 href="https://florasavage.net/accessibility-statement/" 3471 > 3472 Accessibility 3473 </a> 3474 <span>·</span> 3475 3476 <a class="copyright__link" 3477 href="/sitemap/" 3478 > 3479 Sitemap 3480 </a> 3481 <p class="copyright__all-rights-reserved">All Rights Reserved ©</p> 3482</div> 3483 </div> 3484 </section> 3485 3486 3487 </section> 3488 <!-- [START] Custom HTML --><!-- [END] Custom HTML -->
3488<script> 3489window.dataLayer = window.dataLayer || []; 3490 3491</script>
3491 <div class="announcement" style="display: none"> 3492 <div class="announcement-bg"></div> 3493 <div class="splash"> 3494 <div class="splash-wrapper"> 3495 <div> 3496 <span style="color: rgba(0,0,0,0.75);letter-spacing: -0.1em;font-weight: 400;font-size: 20px;line-height: 1.15;">Your browser is not supported</span> 3497 </div> 3498 </div> 3499 </div> 3500</div> 3501
3501<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"0ac16663c3","applicationID":"6732204,2307825","transactionName":"YFIHZkFZXxAEUhUIDlkYJkdATF4OSlMNDg5aaAZfQBdCChFUMQAGUhgTW1ZP","queueTime":0,"applicationTime":283,"atts":"TBUQEAlDTE9HUENbGkpK","errorBeacon":"bam.nr-data.net","agent":""}</script>
3501</body> 3502</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.