PageSourceSearch

https://hedgefineblooms.com/about-us/

html hedgefineblooms.com collected 2026-09-26 14:53:23 UTC 255,011 bytes, 3,982 lines download raw bytes

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>About Us | Hedge Fine Blooms</title>
80    <meta name="google-site-verification" content="MqZw1hnbDkl6JQII4NYWYxYSiKHwTy0UiBiQOtJ_7Q4"/>
81    <meta name="description" content="Hedge Fine Blooms is a real local florist in Charlottesville, VA."/>
82    <meta name="keywords" content=""/>
83    <link rel="canonical" href="https://hedgefineblooms.com/about-us/"/>
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://hedgefineblooms.com/#florist","name":"Hedge Fine Blooms","image":"https://asset.bloomnation.com/c_fit,dpr_2,f_auto,h_393,q_auto,w_1000/v1/vendor/5640/profile/h/e/hedgefineblooms-logo.png","logo":"https://asset.bloomnation.com/c_fit,dpr_2,f_auto,h_393,q_auto,w_1000/v1/vendor/5640/profile/h/e/hedgefineblooms-logo.png","url":"https://hedgefineblooms.com/","address":{"@type":"PostalAddress","streetAddress":"115 4th St NE","addressLocality":"Charlottesville","addressRegion":"VA","postalCode":"22902","addressCountry":"US"},"telephone":"+14342938825","priceRange":"$$","openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"10:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"10:00","closes":"16:00"},{"@type":"OpeningHoursSpecification","validFrom":"2027-02-14","validThrough":"2027-02-14","opens":"09:00","closes":"15:00"},{"@type":"OpeningHoursSpecification","validFrom":"2027-05-09","validThrough":"2027-05-09","opens":"09:00","closes":"15: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-26","opens":"00:00","closes":"00:00"}],"areaServed":[{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"VA","addressLocality":"Charlottesvle"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"VA","addressLocality":"Charlottesville"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"VA","addressLocality":"Chville"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"VA","addressLocality":"Monticello"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"VA","addressLocality":"University"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"VA","addressLocality":"Newcomb Hall"}},{"@type":"Place","address":{"@type":"PostalAddress","addressCountry":"US","addressRegion":"VA","addressLocality":"Un Va Med Center"}}],"description":"Hedge Fine Blooms is Charlottesville's premier custom florist, providing a diverse array of floral designs and a shopping experience inspired by a European flower market. Our floral artists use only high quality blooms and offer their expertise for unique arrangements, weddings and other events.\n\nOriginally founded in 2001, Hedge was purchased in 2007 by Karen Walker. A Vermont native and long-term Charlottesville resident, Karen is a talented designer with over a decade of experience creating a","sameAs":["https://www.facebook.com/hedgefinebloomscville/","https://www.instagram.com/hedge.fineblooms/","https://www.google.com/maps?cid=13475751263381425930","https://www.pinterest.com/hedgefineblooms/","https://www.yelp.com/biz/hedge-fine-blooms-charlottesville","https://www.bloomnation.com/florist/hedge-fine-blooms/"],"geo":{"@type":"GeoCoordinates","longitude":-78.4791231,"latitude":38.0306855},"hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","applicableCountry":"US","returnPolicyCategory":"https://schema.org/MerchantReturnNotPermitted","merchantReturnLink":"https://hedgefineblooms.com/policies"},"hasShippingService":{"@type":"ShippingService","@id":"https://hedgefineblooms.com/#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","Frid
91ay","Saturday"],"duration":{"@type":"QuantitativeValue","minValue":0,"maxValue":0,"unitCode":"DAY"},"cutoffTime":"12:00:00-04:00"},"shippingConditions":[{"@type":"ShippingConditions","shippingDestination":{"@type":"DefinedRegion","addressCountry":"US"},"shippingRate":{"@type":"MonetaryAmount","value":"15.00","currency":"USD"},"transitTime":{"@type":"ServicePeriod","duration":{"@type":"QuantitativeValue","minValue":0,"maxValue":0,"unitCode":"DAY"}}}]},"aggregateRating":{"@type":"AggregateRating","ratingValue":"4.8678","reviewCount":"590","worstRating":"1","bestRating":"5","url":"https://www.bloomnation.com/florist/hedge-fine-blooms/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="stylesheet" href="https://promfiles.com/bloom/dist/frontend/base/default/css/aboutus.e1532a29.css" media="all" />
100<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>
101<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>
102<script src="https://promfiles.com/bloom/dist/js/runtime.8353d46c.js"></script>
vendor: 1 bytes, line 102
102
103<script src="https://promfiles.com/bloom/dist/js/lib/ccard.0b909381.js"></script>
vendor: 1 bytes, line 103
103
104<script src="https://promfiles.com/bloom/dist/js/bloomnation/global.612205a7.js"></script>
vendor: 1 bytes, line 104
104
105<script src="https://promfiles.com/bloom/dist/js/bloomnation/forms/clear-validation-state.cb4122c4.js"></script>
vendor: 1 bytes, line 105
105
106<script src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/runtime.ceb56166.js"></script>
vendor: 1 bytes, line 106
106
107<script src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/js/bootstrap.min.ed580635.js"></script>
vendor: 1 bytes, line 107
107
108<script src="https://promfiles.com/bloom/dist/js/popup/popup.eace3136.js" defer></script>
vendor: 1 bytes, line 108
108
109<script src="https://promfiles.com/bloom/dist/js/bloomnation/review-photos.59481161.js" defer></script>
vendor: 1 bytes, line 109
109
110<script src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/js/main-nav.05e9f99c.js" defer></script>
vendor: 1 bytes, line 110
110
111<script src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/js/wm-slider.2c143ae6.js" defer></script>
111
112
113
114
115    
116                    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Droid+Serif&amp;display=swap" media="print" onload="this.media='all'">
117    
118    <style id="bn__site_theme">
119
120                :root {
121                    --primary-font: "Droid Serif", serif;
122                    --site-max-width: 1200px;
123                    --body-bg: rgb(255, 255, 255);
124                    --body-text-color: rgb(51, 51, 51);
125                    --text-action-color: rgb(51, 51, 51);
126                    --button-text-color: rgb(117, 117, 97);
127                    --element-action-color: rgb(0, 0, 0);
128                    --header-bg: rgba(0, 0, 0, 0);
129                    --header-text-color: rgb(51, 51, 51);
130                    --footer-bg: rgba(0, 0, 0, 0);
131                    --footer-text-color: rgb(51, 51, 51);
132                    --menu-color: rgba(0, 0, 0, 0);
133                    --header-address-color: rgb(51, 51, 51);
134                    --my-account-color: rgb(51, 51, 51);
135                    --color-light: rgb(255, 255, 255);
136                    --card-action-color: rgb(51, 51, 51);
137                    --popular-pick-action-color: rgb(255, 255, 255);
138                    --decorative-font: "Droid Serif", serif;
139                    --body-text-color-active: #4c4c4c;
140                    --text-action-color-active: #4c4c4c;
141                    --element-action-color-active: #191919;
142                    --header-text-color-active: #4c4c4c;
143                    --footer-text-color-active: #4c4c4c;
144                    --card-action-color-active: #4c4c4c;
145                    --popular-pick-action-color-active: #e6e6e6;
146                    --bn--background-color: #ffffff;
147                    --header-icon-color: #333333;
148                }
149        
150        body {
151            font-family: var(--primary-font);
152        }
153
154        body:not(.cms-page-view) {
155            background: var(--body-bg);
156        }
157
158        .row {
159            max-width: var(--site-max-width);
160        }
161
162        a,
163        a:active,
164        a:visited {
165            color: var(--text-action-color);
166        }
167
168        a:hover {
169            color: var(--text-action-color-active);
170        }
171
172        #header {
173            background: var(--header-bg);
174        }
175
176        .my-account-mob .header-cartBtn {
177            background-color: transparent !important;
178        }
179
180        .header-cartBtn .header-cartIcon {
181            color: var(--header-icon-color, #333);
182        }
183
184        #header .header-nav.headerNav-wrapper {
185            background: var(--menu-color);
186        }
187
188        .information-heading .infoHeading-item {
189            color: var(--header-address-color);
190        }
191
192        .nav-itemText {
193            color: var(--header-text-color);
194        }
195
196        .nav-itemText:hover,
197        .nav-itemWrapper:hover,
198        .nav-item:hover {
199            color: var(--header-text-color-active);
200        }
201
202        .note-msg,
203        .listings .note-msg,
204        ul.disc,
205        .listings-sorting_options span,
206        span.pagination-page_count,
207        .designerschoice-index-view #content,
208        a.itemListings-subheaderLink,
209        .breadcrumb>li,
210        .breadcrumb li a,
211        ul.disc li a {
212            color: var(--body-text-color);
213        }
214
215        a.itemListings-subheaderLink:hover,
216        .breadcrumb>li:hover,
217        .breadcrumb li a:hover,
218        ul.disc li a:hover {
219            color: var(--body-text-color-active);
220        }
221
222        .cms-page-view .breadcrumb>li,
223        .cms-page-view .breadcrumb li a {
224            color: inherit;
225        }
226
227        .cms-page-view .breadcrumb li a:visited,
228        .cms-page-view .breadcrumb li a:active,
229        .cms-page-view .breadcrumb li a:hover {
230            color: inherit;
231        }
232
233        h1.banners-header {
234            color: var(--body-text-color);
235        }
236
237        h2.itemListings-header {
238            color: var(--body-text-color);
239        }
240
241        h3.itemListings-subheader {
242            color: var(--body-text-color);
243        }
244
245        .cms-index-aboutus #content,
246        .cms-index-aboutus #content h1[itemprop=name],
247        .cms-index-aboutus #content span[itemprop=description],
248        .cms-index-faq #content,
249        .cms-index-faq #content h1[itemprop=name],
250        .cms-index-faq #content span[itemprop=description],
251        .about-us-nlp__header,
252        .product_details-about-designer h3,
253        .product_details-about-designer span {
254            color: var(--body-text-color);
255        }
256
257        .cms-index-gallery #content,
258        .cms-index-gallery #content a {
259            color: var(--body-text-color);
260        }
261
262        .cms-index-gallery #content a:hover {
263            color: var(--body-text-color-active);
264        }
265
266        .listings .sidebar-sort > div.sidebar {
267            background: var(--color-light, #fff);
268        }
269
270        .listings .sidebar-sort > div.sidebar-best_selling {
271            background: var(--color-light, #fff);
272        }
273
274        h1.catalog-header {
275            color: var(--body-text-color);
276        }
277        .pagination > .active > a,
278        .pagination > .active > span,
279        .pagination > .active > a:hover,
280        .pagination > .active > span:hover,
281        .pagination > .active > a:focus,
282        .pagination > .active > span:focus {
283            border-color: var(--element-action-color);
284            color: var(--button-text-color);
285            background: var(--element-action-color);
286        }
287
288        .pagination > li > a,
289        .pagination > li > span,
290        .pagination > li > a:hover,
291        .pagination > li > span:hover {
292            color: var(--text-action-color);
293        }
294        a.search-results-empty__btn,
295        .btn-success,
296        .btn-update,
297        .btn-continue {
298            border-color: var(--element-action-color);
299            color: var(--button-text-color);
300            background: var(--element-action-color);
301        }
302
303        a.search-results-empty__btn:hover,
304        .btn-success:hover,
305        .btn-update:hover,
306        .btn-continue:hover,
307        .btn-success:focus,
308        .btn-success:active {
309            border-color: var(--element-action-color-active);
310            color: var(--button-text-color);
311            background: var(--element-action-color-active);
312        }
313        #footer {
314            background: var(--footer-bg);
315            color: var(--footer-text-color);
316        }
317
318        .footer-social_media {
319            background: var(--footer-bg);
320        }
321
322        section#footer #super-footer a,
323        section#footer #super-footer p,
324        section#footer a {
325            color: var(--footer-text-color);
326        }
327
328        section#footer #super-footer a:hover,
329        section#footer a:hover {
330            color: var(--footer-text-color-active);
331        }
332
333        #my-account_menu-label {
334            color: var(--my-account-color, #333);
335        }
336
337        .my-account-icon {
338            color: var(--header-icon-color, #333);
339        }
340
341        .link-default,
342        .link-default:visited,
343        .link-default:active,
344        .sidebar a,
345        .sidebar a:active,
346        .sidebar a:visited,
347        .delivery__content a,
348        .delivery__content a:active,
349        .delivery__content a:visited {
350            color: var(--card-action-color, #428bca);
351        }
352
353        a.link-default:hover,
354        .sidebar a:hover,
355        .delivery__content a:hover {
356            color: var(--card-action-color-active, #2a6496);
357        }
358
359        a.social__icon-link:hover {
360            color: var(--card-action-color-active, #2a6496);
361        }
362
363        .poppick_item a,
364        .poppick_item a:active,
365        .poppick_item a:visited {
366            color: var(--popular-pick-action-color, #428bca);
367        }
368
369        .poppick_item a:hover {
370            color: var(--popular-pick-action-color-active, #2a6496);
371        }
372
373        .social__icon-link,
374        .social__icon-link:active,
375        .social__icon-link:visited {
376            color: inherit;
377        }
378
379        .subscription-list-page__title,
380        .subscription-list-page__description,
381        .subscription-customize-form-section,
382        .subscription-customize-form-terms-section,
383        .subscription-customize-form__disclaimer,
384        .product-list__additional-info,
385        .subscription-customize-form__header {
386            color: var(--body-text-color);
387        }
388
389        .member_of_bloomnation-logo {
390            background: rgba(255,255,255,0.7);
391            border-radius: 12px;
392        }
393    </style>
394
395    <style>
396    :root {
397        --bn--primary-color: ;
398        --bn--secondary-color: ;
399        --bn--background-color: ;
400        --bn--mobile-menu-text-color: ;
401    }
402
403    /* Primary Color Classes */
404    
405    /* Secondary Color Classes */
406    
407    /* Background Color Classes */
408    
409    /* Background Color Classes */
410    </style>
411
412    <style data-id="vendor-css">
413        @import url('//fonts.googleapis.com/css?family=Droid+Serif');.banners-header:after{content:"";white-space:pre-line;display:block;text-align:center;font-size:3rem;font-weight:bold;margin:20px 10px;text-transform:none}body{font-family:'Droid Serif',serif}a{color:#333}a:active,a:focus{color:#5d5d5d !important}a:hover{color:#5d5d5d}h1,h2,h3{color:#b2bb1e}.row{max-width:120rem}.btn-success,.btn-success:focus,.btn-success:active{background:rgba(255,255,255,.9);border:1px solid #000 !important;color:#757561 !important}.btn-success{font-weight:bold !important;letter-spacing:1px !important}.btn-success:hover{background:rgba(255,255,255,1);border:1px solid #757561}.btn-continue,.btn-update,.btn-checkout{background-color:#fff !important;color:#757561 !important;border:1px solid #757561 !important}#slides{max-height:420px}@media only screen and (max-width:1030px){#slides{max-height:380px}}@media only screen and (max-width:960px){#slides{max-height:350px}}@media only screen and (max-width:900px){#slides{max-height:320px}}@media only screen and (max-width:820px){#slides{max-height:300px}}@media only screen and (max-width:770px){#slides{max-height:280px}}@media only screen and (max-width:710px){#slides{max-height:260px}}@media only screen and (max-width:660px){#slides{max-height:240px}}@media only screen and (max-width:600px){#slides{max-height:215px}}@media only screen and (max-width:540px){#slides{max-height:190px}}@media only screen and (max-width:480px){#slides{max-height:165px}}@media only screen and (max-width:400px){#slides{max-height:135px}}#header{min-height:fit-content}.header-nav{background:transparent}.header-logo{z-index:99999}.header-cart{margin-top:-30px}#header .header-cart .cart_button{background:#000;border:1px solid #000}.company-logo img{max-width:300px}.cart_button i,.cart_text{color:#fff}@media only screen and (min-width:1150px){.company-logo img{max-width:26rem;margin-top:4.5rem}.header-nav{position:absolute;top:7rem}.navigation{display:flex}.nav-itemWrapper:nth-of-type(4){margin-right:auto}}@media only screen and (min-width:769px){.information-heading{visibility:hidden}}.catalog-category-view .sidebar-sort h4,.catalog-category-view .sidebar-best_selling{display:none}.bar-quick_sort .search_bar>div,.bar-quick_select,.search_bar{background:#888}.bar-quick_select a,.bar-quick_select span{color:#fff}.bar-quick_sort .search_bar button{background:#fff}.listings .sidebar-sort>div.sidebar{background:#fff;border-right:1px solid #888}.sidebar-title{background:#fff}.sidebar-best_selling{border-right:1px solid #888}.featured_listings{display:none}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{background-color:#888;border-color:#888;color:#fff !important}.pagination>li>a,.pagination>li>span{color:#888 !important}@media only screen and (min-width:768px){.category-products .item{width:32.8%;display:inline-block;vertical-align:top;float:none}.category-products>.clearfix.visible-xs,.category-products>.clearfix.visible-md{display:none !important}}.infoItem-header{font-weight:bold !important}.social_media.footer-social_media{margin-top:50px !important;margin-bottom:2% !important}@media only screen and (min-width:768px){.social_media{text-align:center;white-space:normal}.social_media .row>a{float:none;width:auto;display:inline-block}.footer-social_media{margin:0 auto !important}}.social_media{text-align:center;white-space:normal}.footer-social_media{background:#fff;border-top:1px solid #888;border-bottom:1px solid #888}#super-footer{display:grid}.footer__block--best-of-badge{grid-area:-2}.footer__block:nth-of-type(4){grid-area:-1}.custom_arrangement_header small{font-size:0}.custom_arrangement_header small:after{font-size:12px;content:"Tell us your needs and we will customize your arrangement with our freshest flowers!"}.cms-index-gallery .gallery-list a{width:50%;padding:14px !important}.cms-index-gallery .gallery-list-row{max-width:960px}.cms-index-gallery .gallery-list span{color:#333 !important}
413@media only screen and (min-width:561px){.gallery-list span{display:block;top:-25px}.gallery-list a{margin-top:55px}}.checkout-page .company-logo img{max-width:300px;margin:-30px auto 10px auto}.checkout-page .header-logo{margin:0 auto}.header-secure-badge{float:right}.checkout-page .sidebar-inner{background:#fff !important;border:1px solid #757561}.cms-workshops #content .std{display:block;margin:0 auto;max-width:1130px}.cms-workshops #content .std img{width:100%}@media only screen and (max-width:1110px) and (min-width:769px){.header-logo{width:100%;margin:0 auto}.company-logo img{margin:-110px auto 0 auto}.header-cart{float:right;margin-top:-100px}}@media only screen and (max-width:768px){.header-logo,.information-heading,.header-cart{width:100%;margin:0 auto}.information-heading{margin-top:-30px}.company-logo img{margin:-20px auto 0 auto}.header-cart .cart_button{border:1px solid #000}.nav-item:hover{background:#f7f7f7 !important}.checkout-page .company-logo img{max-width:280px}.header-secure-badge{margin-top:-100px}}@media only screen and (max-width:767px){.company-logo img{margin-top:-30px;max-width:320px}}@media only screen and (max-width:414px){.company-logo img{max-width:300px}.header-nav{margin-top:-5px}.checkout-page .company-logo img{max-width:220px}}@media only screen and (max-width:375px){.company-logo img{max-width:280px}.header-cart{margin-top:-5px}.header-nav{margin-top:-10px}.checkout-page .company-logo img{max-width:190px}.header-secure-badge{margin-top:-90px}}@media only screen and (max-width:320px){.company-logo img{max-width:240px}.header-cart{margin-top:-8px}.header-nav{margin-top:-13px}#slides{max-height:115px}.checkout-page .company-logo img{max-width:170px}.header-secure-badge{margin-top:-85px}}    </style>
414
415<style>
416    .wm-link-button {
417        display: inline-block;
418        margin-bottom: 0;
419        font-weight: normal;
420        text-align: center;
421        vertical-align: middle;
422        cursor: pointer;
423        background-image: none;
424        border: 1px solid transparent;
425        white-space: nowrap;
426        padding: 6px 12px;
427        font-size: 14px;
428        line-height: 1.42857143;
429        border-radius: 4px;
430        -webkit-user-select: none;
431        -moz-user-select: none;
432        -ms-user-select: none;
433        user-select: none;
434    }
435    [id^='custom-page-main-content'] img {
436        max-width: 100%;
437    }
438    [id^='custom-page-main-content'] section:not([data-border='false']) .section-container {
439        padding: 3rem 1.5rem;
440    }
441    [id^='custom-page-main-content'] section[id^='section-blank'] {
442        padding: 1rem 0;
443    }
444    [id^='custom-page-main-content'] section[data-border='true'] {
445        padding: 3rem;
446    }
447    [id^='custom-page-main-content'] section {
448        min-height: fit-content;
449        color: var(--body-text-color);
450    }
451    [id^='custom-page-main-content'] section[data-gradient-type='linear'] {
452        background: linear-gradient(
453            var(--gradient-direction),
454            var(--gradient-from, transparent),
455            var(--gradient-to, transparent)
456        ) !important;
457    }
458
459    [id^='custom-page-main-content'] section[data-gradient-type='radial'] {
460        background: radial-gradient(var(--gradient-from, transparent), var(--gradient-to, transparent)) !important;
461    }
462    [id^='custom-page-main-content'] b,
463    [id^='custom-page-main-content'] strong {
464        font-weight: 700 !important;
465    }
466    [id^='section-banner'] {
467        background-color: #ebedef;
468    }
469    [id^='section-banner'][data-bgcolor='dark'] {
470        background-color: #8b8c92;
471    }
472    [id^='section-banner'][data-border='true'] {
473        padding: 3rem;
474    }
475
476    /* Banner Video Background — text always overlays the video; the
477       videoOverlayDarkness slider controls the optional darkness layer. */
478    [id^='section-banner'][data-bg-type='video'] {
479        position: relative;
480        padding: 0 !important;
481        overflow: hidden;
482        height: auto !important;
483        aspect-ratio: 16 / 9;
484    }
485    [id^='section-banner'][data-bg-type='video'] .banner-container {
486        position: absolute;
487        top: 0;
488        left: 0;
489        width: 100%;
490        height: 100%;
491        z-index: 2;
492        display: flex;
493        pointer-events: none;
494    }
495    [id^='section-banner'][data-bg-type='video'] .banner-container :is(
496        a, button, [data-gjs-type='dynamic-link'], [data-gjs-type='link-button']
497    ) {
498        pointer-events: auto;
499    }
500    [id^='section-banner'][data-bg-type='video'] .banner-container .section-container {
501        display: flex;
502        flex-direction: column;
503        justify-content: center;
504        align-items: center;
505        width: 100%;
506    }
507    [id^='section-banner'] .section-container {
508        height: 100% !important;
509        width: 100% !important;
510    }
511    .banner-video-wrapper {
512        position: relative;
513        width: 100%;
514        aspect-ratio: 16 / 9;
515    }
516    .banner-video-gradient {
517        position: absolute;
518        top: 0;
519        left: 0;
520        width: 100%;
521        height: 100%;
522        z-index: 1;
523        pointer-events: none;
524    }
525    video.banner-video {
526        width: 100%;
527        height: 100%;
528        object-fit: cover;
529        border: none;
530    }
531    iframe.banner-video {
532        width: 100%;
533        height: 100%;
534        border: none;
535    }
536
537    [data-gjs-type='grid-row'] * {
538        max-width: 100%;
539    }
540
541    [data-gjs-type='grid-column'] [data-gjs-type='text'] {
542        width: 100%;
543    }
544
545    [data-gjs-type='grid-row'] [data-gjs-type='grid-column'] {
546        width: 100%;
547        display: flex;
548        flex-direction: column;
549    }
550
551    /* Flex Columns */
552    [data-gjs-type='flex-columns'] {
553        display: flex;
554        width: 100%;
555    }
556    [data-gjs-type='flex-columns'] > [data-gjs-type='flex-column'] {
557        min-width: 0;
558        max-width: 100%;
559        display: flex;
560        flex-direction: column;
561    }
562    [data-gjs-type='flex-columns'] [data-gjs-type='flex-column'] [data-gjs-type='text'] {
563        width: 100%;
564    }
565
566    .wm-map iframe {
567        pointer-events: none;
568    }
569
570    /* Slider Section */
571    [id^='section-slider'] {
572        position: relative;
573    }
574    [id^='section-slider'] .slider-heading {
575        font-family: var(--decorative-font, 'sans-serif');
576        margin: 0 0 1.5rem;
577    }
578    [id^='section-slider'] .swiper {
579        width: 100%;
580        overflow: hidden;
581    }
582    [id^='section-slider'][data-nav-style='arrows-sides'] .swiper {
583        width: 85%;
584        margin: auto;
585    }
586    [id^='section-slider'] .swiper-wrapper {
587        display: flex;
588    }
589    [id^='section-slider'] .swiper-slide {
590        display: flex;
591        gap: 30px;
592        width: 100%;
593        min-height: 200px;
594        flex-shrink: 0;
595    }
596    [id^='section-slider'] .swiper-slide [data-gjs-type='grid-column'] {
597        flex: 1 1 0%;
598        min-width: 0;
599        display: flex;
600        flex-direction: column;
601    }
602
603    /* Slider Navigation — Arrow Icons */
604    [id^='section-slider'] .swiper-button-prev::after,
605    [id^='section-slider'] .swiper-button-next::after {
606        content: '';
607        display: block;
608        width: 8px;
609        height: 8px;
610        border-top: 2px solid var(--button-text-color, #fff);
611        border-right: 2px solid var(--button-text-color, #fff);
612    }
613    [id^='section-slider'] .swiper-button-next::after {
614        transform: rotate(45deg);
615        margin-left: -3px;
616    }
617    [id^='section-slider'] .swiper-button-prev::after {
618        transform: rotate(-135deg);
619        margin-right: -3px;
620    }
621
622    /* Slider Navigation — Arrows Top Right */
623    [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-prev,
624    [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-next {
625        position: absolute;
626        top: 0;
627        right: 16px;
628        left: auto;
629        width: 32px;
630        height: 32px;
631        border-radius: 50%;
632        background: var(--element-action-color, #333);
633        color: var(--button-text-color, #fff);
634        display: flex;
635        align-items: center;
636        justify-content: center;
637        cursor: pointer;
638        z-index: 10;
639    }
640    [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-prev {
641        right: 65px;
642    }
643    [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-pagination {
644        display: none;
645    }
646
647    /* Slider Navigation — Arrows Sides */
648    [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-prev,
649    [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-next {
650        position: absolute;
651        top: 50%;
652        transform: translateY(-50%);
653        width: 40px;
654        height: 40px;
655        border-radius: 50%;
656        background: var(--element-action-color, #333);
657        color: var(--button-text-color, #fff);
658        display: flex;
659        align-items: center;
660        justify-content: center;
661        cursor: pointer;
662        z-index: 10;
663    }
664    [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-prev {
665        left: 10px;
666    }
667    [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-next {
668        right: 10px;
669    }
670    [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-pagination {
671        display: none;
672    }
673
674    /* Slider Navigation — Dots Bottom */
675    [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-button-prev,
676    [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-button-next {
677        display: none;
678    }
679    [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-pagination {
680        text-align: center;
681        padding: 16px 0;
682    }
683    [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-pagination-bullet {
684        display: inline-block;
685        width: 16px;
686        height: 16px;
687        border-radius: 50%;
688        background: #fff;
689        border: 1px solid #000;
690        margin: 0 6px;
691        cursor: pointer;
692    }
693    [id^='section-slider'][data-nav-style='dots-bottom'] .swiper-pagination-bullet-active {
694        background: #000;
695    }
696
697    .text-and-image-section [data-position='right'] {
698        order: 1 !important;
699    }
700    .text-and-image-section .right-text {
701        order: 0 !important;
702    }
703    .text-and-image-section.cover .wm-image-container {
704        width: 50%;
705    }
706    .wm-image-container {
707        position: relative;
708        width: max-content;
709        max-width: 100%;
710    }
711    .wm-image-container .image-overlay{
712        position: absolute;
713        top: 0;
714        left: 0;
715        z-index: 1;
716        width: 100%;
717        height: 100%;
718        background-color: #000;
719        opacity: 0.25;
720        pointer-events: none;
721        display: none;
722    }
723    .wm-image-container.has-overlay .image-overlay {
724        display: block;
725    }
726
727    section .section-container {
728        max-width: var(--site-max-width);
729        margin: 0 auto;
730        min-height: fit-content;
731        height: auto;
732        display: flex;
733        flex-direction: column;
734    }
735
736    [data-gjs-type='divider']::before {
737        content: '';
738        position: absolute;
739        left: 0;
740        right: 0;
741        top: 50%;
742        border-top: var(--divider-height, 1px) solid var(--divider-color, #000);
743        transform: translateY(-50%);
744    }
745
746    .nlp-llm-text-block h2,
747    .nlp-llm-text-block h3 {
748        font-family: var(--decorative-font, 'sans-serif');
749    }
750
751    /* Shop Address */
752    .wm-shop-address__grid {
753        display: grid;
754        align-content: start;
755    }
756    .wm-shop-address__grid--item a {
757        text-decoration: underline;
758        color: var(--body-text-color, '#333');
759        font-family: var(--primary-font);
760        font-size: 16px;
761        font-weight: var(--bn--font-medium);
762    }
763    .wm-shop-address__grid--item a:hover {
764        color: var(--body-text-color-active, '#000');
765    }
766    .wm-shop-address__grid--item svg path {
767        fill: var(--body-text-color, '#333');
768    }
769
770    /* Shop Hours */
771    .wm-shop-hours__title {
772        margin-top: 0;
773        font-family: var(--decorative-font, 'sans-serif');
774    }
775    .wm-shop-hours__grid {
776        display: grid;
777        grid-template-columns: max-content 1fr;
778        column-gap: 1.5rem;
779        row-gap: 0.75rem;
780        font-size: inherit;
781    }
782    .wm-shop-hours__grid--item {
783        font-weight: var(--bn--font-medium);
784    }
785    .wm-nlp-section .wm-shop-hours__grid {
786        font-size: 14px;
787        font-weight: 200;
788    }
789
790    /* Reviews section */
791    .wm-reviews {
792        [data-gjs-type='grid-column'] {
793            background-color: #fff;
794            border: 1px solid #E4E4E4;
795            padding: 1.2rem;
796            border-radius: 8px;
797            box-shadow: 0px 0px 20px 0px #4345511A;
798        }
799        [data-gjs-type='grid-column'] [data-gjs-type='text'] {
800            width: auto;
801        }
802        h2 {
803            margin: 0 0 2rem;
804            font-family: var(--decorative-font), sans-serif;
805        }
806        .wm-reviews__header {
807            display: grid;
808            grid-template-columns: max-content 1fr;
809            gap: 1rem;
810            align-items: center;
811            margin-bottom: .5rem;
812
813            h3 {
814                font-size: 14px;
815                font-family: var(--decorative-font), sans-serif;
816                font-weight:600 !important;
817                margin: 0;
818            }
819        }
820        .wm-reviews__rating {
821            margin-bottom: 0.5rem;
822        }
823        .wm-reviews__circle {
824            height: 40px;
825            width: 40px;
826            border-radius: 50%;
827            background-color: #FCE4EC;
828            display: flex;
829            align-items: center;
830            justify-content: center;
831        }
832        .wm-reviews__circle > span {
833            font-size: 14px;
834            font-weight:600 !important;
835            color: #880E4F;
836        }
837        .wm-reviews__date {
838            font-size: 12px;
839            color: #8B8C92;
840        }
841        .wm-reviews__content {
842            font-size: 14px;
843            line-height: 20px;
844            height: 80px;
845            overflow: auto;
846            font-weight: var(--bn--font-medium);
847        }
848        .wm-reviews__read-more {
849            background-color: transparent;
850            border: 0;
851            color: #1251CA;
852            transition: all 0.3s ease;
853            font-size: 12px;
854            padding: 0;
855            margin-top: .5rem;
856        }
857        .wm-reviews__read-more:hover {
858            text-decoration: underline;
859            filter: brightness(0.9);
860        }
861        .wm-reviews__dialog {
862            max-width: 600px;
863            width: 100%;
864            border: 0;
865            border-radius: 4px;
866            position: relative;
867
868            article {
869                margin-bottom: 0;
870                border-bottom: 0;
871                padding-bottom: 0;
872            }
873
874            .wm-reviews__dialog--close {
875                position: absolute;
876                top: 15px;
877                right: 15px;
878                background-color: transparent;
879                border: 0;
880                cursor: pointer;
881            }
882        }
883    }
884
885    /* Review photos strip (BLOOM-17499); the overlay is .wm-review-photos-overlay below. */
886    .wm-reviews .wm-reviews__photos {
887        display: flex;
888        flex-wrap: wrap;
889        gap: 8px;
890        list-style: none;
891        margin: 12px 0 0;
892        padding: 0;
893    }
894    .wm-reviews .wm-reviews__photo-item {
895        margin: 0;
896        padding: 0;
897    }
898    .wm-reviews .wm-reviews__photo {
899        display: block;
900        width: 96px;
901        height: 96px;
902        padding: 0;
903        border: 0;
904        border-radius: 4px;
905        overflow: hidden;
906        background: #eee;
907        cursor: zoom-in;
908        line-height: 0;
909    }
910    .wm-reviews .wm-reviews__photo img {
911        display: block;
912        width: 100%;
913        height: 100%;
914        object-fit: cover;
915    }
916    .wm-reviews .wm-reviews__photo:focus-visible {
917        outline: 2px solid currentColor;
918        outline-offset: 2px;
919    }
920
921    /* Product List Section */
922    .product-list--horizontal {
923        overflow-x: auto;
924        white-space: nowrap;
925        padding: 0 0 10px 15px;
926    }
927
928    .product-list--horizontal .product-list__item {
929        display: inline-block;
930        width: 252px;
931        margin-right: 15px;
932    }
933
934    /* Atomic CSS Helpers */
935    .text-uppercase {
936        text-transform: uppercase;
937    }
938
939    /* Custom arrangements & subscriptions */
940    .custom-page-nlp__customArrangements .text-image-text > div,
941    .custom-page-nlp__subscriptions .text-image-text > div {
942        font-size: 18px;
943    }
944
945    /* Blog posts */
946    .wm-blog-posts {
947        display: grid;
948        grid-template-columns: repeat(var(--columns, 2), 1fr);
949        column-gap: var(--column-gap);
950        row-gap: var(--row-gap);
951        padding: var(--frame);
952    }
953    .wm-blog-posts:not(.side-image) .wm-blog-posts__item {
954        display: flex;
955        flex-direction: column;
956    }
957    .wm-blog-posts:not(.side-image) .wm-blog-posts__content {
958        flex-grow: 1;
959        align-items: start;
960    }
961    .wm-blog-posts:not(.side-image) .wm-blog-posts__image {
962        border: 1px solid #DDD;
963        border-bottom: none;
964    }
965    .wm-blog-posts.side-image .wm-blog-posts__image {
966        border: 1px solid #DDD;
967        border-right: none;
968        height: 100%;
969    }
970    .wm-blog-posts.side-image .wm-blog-posts__image-link {
971        width: 100%;
972        height: 100%;
973    }
974    .wm-blog-posts .wm-blog-posts__item {
975        display: flex;
976        flex-direction: column;
977    }
978    .wm-blog-posts__heading {
979        grid-column: 1 / -1;
980        font-family: var(--decorative-font, 'sans-serif');
981        font-size: 3rem;
982        font-weight: 700;
983        line-height: 1.3;
984    }
985    .wm-blog-posts img {
986        height: 300px;
987        object-fit: cover;
988        width: 100%;
989    }
990    .wm-blog-posts .wm-blog-posts__content {
991        background: #F4F4F4;
992        padding: 2rem;
993        height: auto;
994        display: flex;
995        flex-direction: column;
996        justify-content: center;
997    }
998    .wm-blog-posts.two-column .wm-blog-posts__content {
999        align-items: center;
1000    }
1001    .wm-blog-posts.two-column {
1002        align-items: center;
1003    }
1004    .wm-blog-posts.list .wm-blog-posts__content {
1005        background-color: transparent;
1006    }
1007    .wm-blog-posts.side-image .wm-blog-posts__content,
1008    .wm-blog-posts.list .wm-blog-posts__content,
1009    .wm-blog-posts.two-column .wm-blog-posts__content {
1010        height: 100%;
1011    }
1012    .wm-blog-posts.side-image img {
1013        height: 250px;
1014    }
1015    .wm-blog-posts.side-image .wm-blog-posts__item {
1016        display: grid;
1017        align-items: center;
1018    }
1019    .wm-blog-posts.side-image[style*="--columns:1"] .wm-blog-posts__item,
1020    .wm-blog-posts.side-image[style*="--columns: 1"] .wm-blog-posts__item {
1021        grid-template-columns: 1fr;
1022    }
1023    .wm-blog-posts.side-image[style*="--columns:2"] .wm-blog-posts__item,
1024    .wm-blog-posts.side-image[style*="--columns: 2"] .wm-blog-posts__item {
1025        grid-template-columns: 45% 55%;
1026    }
1027    .wm-blog-posts__date {
1028        color: #282A35;
1029        display: block;
1030        margin-bottom: 1rem;
1031    }
1032    .wm-blog-posts__title {
1033        color: #282A35;
1034        font-family: var(--decorative-font, 'sans-serif');
1035        font-size: 2.25rem;
1036        font-weight: 700;
1037        line-height: 1.3;
1038        margin-bottom: 1rem;
1039    }
1040    .wm-blog-posts__excerpt {
1041        margin-bottom: 1.75rem;
1042    }
1043    .wm-blog-posts__read-more {
1044        margin-top: auto;
1045        text-decoration: underline;
1046    }
1047
1048    /* Recent Deliveries */
1049    * + .recent-deliveries {
1050        margin-top: 4rem;
1051    }
1052    .recent-deliveries:not(:last-child) {
1053        margin-bottom: 4rem;
1054    }
1055    .recent-deliveries__feed {
1056        list-style: none;
1057        margin: 0 auto;
1058        padding: 0;
1059        max-width: 640px;
1060        display: flex;
1061        flex-direction: column;
1062        gap: 3.2rem;
1063    }
1064    .recent-deliveries__entry {
1065        background: var(--body-bg, #fff);
1066        border: 1px solid var(--divider-color, #e5e7eb);
1067        border-radius: 1.6rem;
1068        padding: 3.2rem 4rem;
1069        color: var(--body-text-color);
1070    }
1071    .recent-deliveries__shop {
1072        display: flex;
1073        align-items: center;
1074        gap: 1.4rem;
1075        margin-bottom: 2.8rem;
1076    }
1077    .recent-deliveries__avatar {
1078        width: 44px;
1079        height: 44px;
1080        border-radius: 50%;
1081        object-fit: cover;
1082        flex: 0 0 auto;
1083    }
1084    .recent-deliveries__avatar--initials {
1085        display: flex;
1086        align-items: center;
1087        justify-content: center;
1088        color: #fff;
1089        font-size: 1.5rem;
1090        font-weight: 600;
1091        letter-spacing: 0.05rem;
1092        text-transform: uppercase;
1093        user-select: none;
1094    }
1095    .recent-deliveries__shop-info {
1096        min-width: 0;
1097    }
1098    .recent-deliveries__shop-name {
1099        font-size: 1.7rem;
1100        font-weight: 600;
1101        margin: 0;
1102        color: var(--body-text-color);
1103    }
1104    .recent-deliveries__shop-location {
1105        font-size: 1.3rem;
1106        margin: 0.2rem 0 0;
1107        color: var(--body-text-color);
1108        opacity: 0.7;
1109    }
1110    .recent-deliveries__image-wrapper {
1111        display: flex;
1112        justify-content: center;
1113        margin-bottom: 2.8rem;
1114    }
1115    .recent-deliveries__image {
1116        width: 65%;
1117        height: auto;
1118        aspect-ratio: 1 / 1;
1119        object-fit: cover;
1120        border-radius: 6px;
1121        display: block;
1122    }
1123    .recent-deliveries__caption {
1124        margin-bottom: 2.4rem;
1125    }
1126    .recent-deliveries__caption-text {
1127        font-size: 1.5rem;
1128        line-height: 1.6;
1129        margin: 0;
1130        color: var(--body-text-color);
1131    }
1132    .recent-deliveries__date {
1133        display: block;
1134        margin-top: 1.4rem;
1135        font-size: 1.1rem;
1136        text-transform: uppercase;
1137        letter-spacing: 0.2rem;
1138        color: var(--body-text-color);
1139        opacity: 0.6;
1140        white-space: nowrap;
1141    }
1142    .recent-deliveries__product {
1143        border-top: 1px solid var(--divider-color, #e5e7eb);
1144        padding-top: 2rem;
1145        display: flex;
1146        align-items: flex-start;
1147        justify-content: space-between;
1148        gap: 1.6rem;
1149    }
1150    .recent-deliveries__product-info {
1151        min-width: 0;
1152    }
1153    .recent-deliveries__product-name {
1154        font-size: 1.6rem;
1155        font-weight: 500;
1156    }
1157    a.recent-deliveries__product-name {
1158        color: var(--text-action-color);
1159        text-decoration: none;
1160        border-bottom: 1px solid currentColor;
1161    }
1162    a.recent-deliveries__product-name:hover {
1163        color: var(--text-action-color-active);
1164        text-decoration: none;
1165    }
1166    span.recent-deliveries__product-name {
1167        color: var(--body-text-color);
1168    }
1169    .recent-deliveries__upgrade {
1170        font-size: 1.2rem;
1171        text-transform: uppercase;
1172        letter-spacing: 0.15rem;
1173        margin: 0.6rem 0 0;
1174        color: var(--body-text-color);
1175        opacity: 0.6;
1176    }
1177    .recent-deliveries__occasion {
1178        display: block;
1179        margin-top: .75rem;
1180        font-size: 1rem;
1181        text-transform: uppercase;
1182        letter-spacing: 0.2rem !important;
1183        color: var(--body-text-color);
1184        white-space: nowrap;
1185    }
1186    /* FAQ */
1187    [data-gjs-type] .store-faq__faq {
1188        margin: 0;
1189    }
1190    .store-faq__faq-items {
1191        display: grid;
1192        gap: 8px;
1193    }
1194    .faq {
1195        border: 1px solid #e2e2e2;
1196        border-radius: 8px;
1197        background: #FAFAFA;
1198        overflow: hidden;
1199        padding: 20px;
1200    }
1201    .faq__q {
1202        display: block;
1203        margin: 0;
1204        padding-right: 24px;
1205        cursor: pointer;
1206        font-size: 16px;
1207        font-weight: 600;
1208        position: relative;
1209        outline: none;
1210        user-select: none;
1211        list-style: none;
1212    }
1213    .faq__q::-webkit-details-marker {
1214        display: none;
1215    }
1216    .faq__q::marker {
1217        content: none;
1218    }
1219    .faq__q::after {
1220        content: "";
1221        position: absolute;
1222        right: 0;
1223        top: 50%;
1224        width: 10px;
1225        height: 10px;
1226        border-right: 2px solid #495057;
1227        border-bottom: 2px solid #495057;
1228        transform: translateY(-50%) rotate(-45deg);
1229        transition: transform 200ms ease;
1230    }
1231    .faq[open] .faq__q::after {
1232        transform: translateY(-50%) rotate(45deg);
1233    }
1234    .faq__content {
1235        display: grid;
1236        grid-template-rows: 0fr;
1237        transition: grid-template-rows 200ms ease;
1238    }
1239    .faq[open] .faq__content {
1240        grid-template-rows: 1fr;
1241    }
1242    .faq__a {
1243        margin-top: 20px;
1244        overflow: hidden;
1245    }
1246    .faq__a-inner {
1247        color: #333;
1248        line-height: 1.5;
1249        font-weight: 300;
1250        font-size: 16px;
1251    }
1252
1253    /* Gallery */
1254    .wm-gallery {
1255        padding: var(--frame, 0);
1256    }
1257    .wm-gallery__description {
1258        margin-bottom: 1.5rem;
1259        color: var(--body-text-color, #333);
1260    }
1261    .wm-gallery__grid {
1262        display: grid;
1263        grid-template-columns: repeat(var(--columns, 2), 1fr);
1264        column-gap: var(--column-gap, 16px);
1265        row-gap: var(--row-gap, 16px);
1266    }
1267    .wm-gallery__item {
1268        display: block;
1269        overflow: hidden;
1270        cursor: pointer;
1271    }
1272    .wm-gallery__item--linked {
1273        cursor: pointer;
1274    }
1275    .wm-gallery__image {
1276        width: 100%;
1277        height: auto;
1278        object-fit: cover;
1279        aspect-ratio: var(--aspect-ratio, 4/3);
1280        border-radius: var(--border-radius, 0);
1281        transition: transform 0.3s ease;
1282    }
1283    .wm-gallery__item:hover .wm-gallery__image {
1284        transform: scale(1.02);
1285    }
1286    .wm-gallery__caption {
1287        padding: 0.5rem 0;
1288        display: flex;
1289        flex-direction: column;
1290        gap: 0.25rem;
1291    }
1292    .wm-gallery__image-title {
1293        font-weight: bold !important;
1294        font-size: 16px;
1295        margin-top: 4px;
1296    }
1297
1298    /* Gallery - Masonry layout */
1299    .wm-gallery--masonry .wm-gallery__grid {
1300        display: block;
1301        column-count: var(--columns, 2);
1302        column-gap: var(--column-gap, 16px);
1303    }
1304    .wm-gallery--masonry .wm-gallery__item {
1305        break-inside: avoid;
1306        margin-bottom: var(--row-gap, 16px);
1307    }
1308    .wm-gallery--masonry .wm-gallery__image {
1309        aspect-ratio: unset;
1310        height: auto;
1311        object-fit: contain;
1312    }
1313
1314    .wm-gallery--masonry .wm-gallery__grid--fill-row {
1315        display: grid;
1316        grid-template-columns: repeat(var(--columns, 2), 1fr);
1317        column-gap: var(--column-gap, 16px);
1318        row-gap: var(--row-gap, 16px);
1319        align-items: start;
1320    }
1321    .wm-gallery--masonry .wm-gallery__grid--fill-row .wm-gallery__item {
1322        margin-bottom: 0;
1323    }
1324    .wm-gallery--masonry .wm-gallery__grid--fill-row.is-masonry-js {
1325        grid-auto-rows: 1px;
1326        row-gap: 0;
1327    }
1328
1329    .wm-gallery.wm-gallery--carousel {
1330        max-width: 800px;
1331        margin: 0 auto;
1332    }
1333
1334    /* Gallery - Carousel (Swiper core styles) */
1335    .swiper {
1336        margin-left: auto;
1337        margin-right: auto;
1338        position: relative;
1339        overflow: hidden;
1340        list-style: none;
1341        padding: 0;
1342        z-index: 1;
1343        display: block;
1344    }
1345    .swiper-wrapper {
1346        position: relative;
1347        width: 100%;
1348        height: 100%;
1349        z-index: 1;
1350        display: flex;
1351        transition-property: transform;
1352        transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
1353        box-sizing: content-box;
1354    }
1355    .swiper-slide {
1356        flex-shrink: 0;
1357        width: 100%;
1358        height: 100%;
1359        position: relative;
1360        transition-property: transform;
1361    }
1362    .swiper-slide-invisible-blank {
1363        visibility: hidden;
1364    }
1365    /* Hide default Swiper navigation buttons */
1366    .swiper-button-prev,
1367    .swiper-button-next {
1368        display: none;
1369    }
1370
1371    /* Gallery Carousel component */
1372    .wm-gallery-carousel {
1373        position: relative;
1374        width: 100%;
1375    }
1376    .wm-gallery-carousel__main {
1377        position: relative;
1378        display: flex;
1379        align-items: center;
1380        gap: 16px;
1381    }
1382    .wm-gallery-carousel__swiper {
1383        width: 100%;
1384        overflow: hidden;
1385    }
1386    .wm-gallery-carousel__link {
1387        display: block;
1388        width: 100%;
1389    }
1390    .wm-gallery-carousel__link--active {
1391        cursor: pointer;
1392    }
1393    .wm-gallery-carousel__link:not(.wm-gallery-carousel__link--active) {
1394        pointer-events: none;
1395    }
1396    .wm-gallery-carousel__image {
1397        width: 100%;
1398        height: auto;
1399        object-fit: cover;
1400        display: block;
1401    }
1402    /* Carousel navigation buttons */
1403    .wm-gallery-carousel__nav {
1404        flex-shrink: 0;
1405        width: 40px;
1406        height: 40px;
1407        display: flex;
1408        align-items: center;
1409        justify-content: center;
1410        background: white;
1411        border: 1px solid #e0e0e0;
1412        border-radius: 50%;
1413        cursor: pointer;
1414        transition: background-color 0.2s, border-color 0.2s;
1415        z-index: 10;
1416    }
1417    .wm-gallery-carousel__nav:hover {
1418        background-color: #f5f5f5;
1419        border-color: #ccc;
1420    }
1421    .wm-gallery-carousel__nav:disabled {
1422        opacity: 0.5;
1423        cursor: not-allowed;
1424    }
1425    /* Overlay navigation (for full-width carousel) */
1426    .wm-gallery-carousel__nav--overlay {
1427        position: absolute;
1428        top: 50%;
1429        transform: translateY(-50%);
1430        background: rgba(255, 255, 255, 0.9);
1431    }
1432    .wm-gallery-carousel__nav--overlay.wm-gallery-carousel__nav--prev {
1433        left: 16px;
1434    }
1435    .wm-gallery-carousel__nav--overlay.wm-gallery-carousel__nav--next {
1436        right: 16px;
1437    }
1438    /* Thumbnails layout - arrows outside */
1439    .wm-gallery-carousel--carousel-thumbnails .wm-gallery-carousel__main {
1440        display: flex;
1441        align-items: center;
1442    }
1443    .wm-gallery-carousel--carousel-thumbnails .wm-gallery-carousel__swiper {
1444        flex: 1;
1445        min-width: 0;
1446    }
1447    .wm-gallery-carousel--carousel-thumbnails .wm-gallery-carousel__nav {
1448        position: relative;
1449    }
1450    /* Full-width layout - arrows on image */
1451    .wm-gallery-carousel--carousel .wm-gallery-carousel__main {
1452        position: relative;
1453    }
1454    .wm-gallery-carousel--carousel .wm-gallery-carousel__swiper {
1455        width: 100%;
1456    }
1457    /* Thumbnails */
1458    .wm-gallery-carousel__thumbs {
1459        margin-top: 16px;
1460        overflow: hidden;
1461        display: flex;
1462        justify-content: center;
1463    }
1464    .wm-gallery-carousel__thumbs .swiper-wrapper {
1465        justify-content: center;
1466        gap: 0.75rem;
1467        overflow: auto;
1468    }
1469    .wm-gallery-carousel__thumbs .swiper-slide {
1470        opacity: 0.6;
1471        cursor: pointer;
1472        transition: opacity 0.2s;
1473        width: 80px !important;
1474        height: 80px;
1475        flex-shrink: 0;
1476
1477    }
1478    .wm-gallery-carousel__thumbs .swiper-slide-thumb-active {
1479        opacity: 1;
1480    }
1481    .wm-gallery-carousel__thumb-image {
1482        width: 80px;
1483        height: 80px;
1484        object-fit: cover;
1485        display: block;
1486    }
1487
1488    /* Gallery Lightbox (wm-gallery-lightbox CSR element) */
1489    .wm-glb {
1490        position: fixed;
1491        inset: 0;
1492        z-index: 99999;
1493        background: rgba(0, 0, 0, 0.92);
1494        display: flex;
1495        align-items: center;
1496        justify-content: center;
1497    }
1498    .wm-glb__swiper {
1499        width: 100%;
1500        height: 100%;
1501    }
1502    .wm-glb__slide {
1503        display: flex;
1504        align-items: center;
1505        justify-content: center;
1506        width: 100%;
1507        height: 100%;
1508        box-sizing: border-box;
1509        padding: 72px 88px 112px;
1510    }
1511    .wm-glb__slide .swiper-zoom-container {
1512        width: 100%;
1513        height: 100%;
1514    }
1515    .wm-glb__image {
1516        max-width: 100%;
1517        max-height: 100%;
1518        width: auto;
1519        height: auto;
1520        object-fit: contain;
1521        margin: auto;
1522        display: block;
1523    }
1524    .wm-glb__close {
1525        position: absolute;
1526        top: 16px;
1527        right: 20px;
1528        z-index: 2;
1529        background: transparent;
1530        border: none;
1531        padding: 8px;
1532        color: #fff;
1533        cursor: pointer;
1534        line-height: 0;
1535    }
1536    .wm-glb__nav {
1537        position: absolute;
1538        top: 50%;
1539        transform: translateY(-50%);
1540        z-index: 2;
1541        background: transparent;
1542        border: none;
1543        padding: 12px;
1544        color: #fff;
1545        cursor: pointer;
1546        line-height: 0;
1547        opacity: 0.85;
1548        transition: opacity 0.2s ease;
1549    }
1550    .wm-glb__nav:hover,
1551    .wm-glb__nav:focus-visible,
1552    .wm-glb__close:hover,
1553    .wm-glb__close:focus-visible {
1554        opacity: 1;
1555    }
1556    .wm-glb__nav:focus-visible,
1557    .wm-glb__close:focus-visible,
1558    .wm-glb__view:focus-visible {
1559        outline: 2px solid #fff;
1560        outline-offset: 2px;
1561    }
1562    .wm-glb__nav--prev {
1563        left: 12px;
1564    }
1565    .wm-glb__nav--next {
1566        right: 12px;
1567    }
1568    .wm-glb__caption {
1569        position: absolute;
1570        bottom: 24px;
1571        left: 50%;
1572        transform: translateX(-50%);
1573        z-index: 2;
1574        max-width: 80vw;
1575        text-align: center;
1576        color: #fff;
1577        display: flex;
1578        flex-direction: column;
1579        gap: 6px;
1580    }
1581    .wm-glb__title {
1582        position: absolute;
1583        top: 18px;
1584        left: 50%;
1585        transform: translateX(-50%);
1586        z-index: 2;
1587        max-width: 60vw;
1588        text-align: center;
1589        color: #fff;
1590        font-weight: bold;
1591        font-size: 20px;
1592    }
1593    .wm-glb__description {
1594        font-size: 16px;
1595        opacity: 0.85;
1596    }
1597    .wm-glb__view {
1598        align-self: center;
1599        margin-top: 6px;
1600        padding: 6px 18px;
1601        border: 1px solid #fff;
1602        border-radius: 4px;
1603        background: #fff;
1604        color: #000 !important;
1605        text-decoration: none;
1606        font-size: 14px;
1607    }
1608    .wm-glb__view:hover {
1609        opacity: 0.85;
1610    }
1611    .wm-glb__counter {
1612        position: absolute;
1613        top: 20px;
1614        left: 24px;
1615        z-index: 2;
1616        color: #fff;
1617        font-size: 14px;
1618        opacity: 0.85;
1619    }
1620    @media (max-width: 600px) {
1621        .wm-glb__slide {
1622            padding: 64px 56px 104px;
1623        }
1624        .wm-glb__nav {
1625            padding: 6px;
1626        }
1627    }
1628
1629    /* Review photos overlay (wm-review-photos-overlay CSR element, BLOOM-17499): a native <dialog>
1630       appended to <body>, so nothing here nests under .wm-reviews. */
1631    .wm-review-photos-overlay {
1632        position: fixed;
1633        inset: 0;
1634        width: 100%;
1635        max-width: none;
1636        height: 100%;
1637        max-height: none;
1638        margin: 0;
1639        padding: 0;
1640        border: 0;
1641        background: transparent;
1642        color: #fff;
1643        overflow: hidden;
1644    }
1645    .wm-review-photos-overlay::backdrop {
1646        background: rgba(0, 0, 0, 0.88);
1647    }
1648    .wm-review-photos-overlay__stage {
1649        position: absolute;
1650        inset: 0;
1651        display: flex;
1652        align-items: center;
1653        justify-content: center;
1654        padding: 56px 64px;
1655        box-sizing: border-box;
1656        touch-action: pan-y;
1657    }
1658    .wm-review-photos-overlay__image {
1659        display: block;
1660        max-width: 100%;
1661        max-height: 100%;
1662        width: auto;
1663        height: auto;
1664        object-fit: contain;
1665        border-radius: 4px;
1666        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
1667    }
1668    .wm-review-photos-overlay__button {
1669        position: absolute;
1670        display: flex;
1671        align-items: center;
1672        justify-content: center;
1673        width: 44px;
1674        height: 44px;
1675        padding: 0;
1676        border: 0;
1677        border-radius: 50%;
1678        background: rgba(255, 255, 255, 0.14);
1679        color: #fff;
1680        cursor: pointer;
1681        line-height: 0;
1682    }
1683    .wm-review-photos-overlay__button:hover,
1684    .wm-review-photos-overlay__button:focus-visible {
1685        background: rgba(255, 255, 255, 0.3);
1686        outline: 2px solid #fff;
1687        outline-offset: 2px;
1688    }
1689    .wm-review-photos-overlay__button svg {
1690        width: 22px;
1691        height: 22px;
1692        fill: none;
1693        stroke: currentColor;
1694        stroke-width: 2;
1695        stroke-linecap: round;
1696        stroke-linejoin: round;
1697    }
1698    .wm-review-photos-overlay__close {
1699        top: 12px;
1700        right: 12px;
1701    }
1702    .wm-review-photos-overlay__prev,
1703    .wm-review-photos-overlay__next {
1704        top: 50%;
1705        transform: translateY(-50%);
1706    }
1707    .wm-review-photos-overlay__prev {
1708        left: 12px;
1709    }
1710    .wm-review-photos-overlay__next {
1711        right: 12px;
1712    }
1713    .wm-review-photos-overlay__counter {
1714        position: absolute;
1715        left: 0;
1716        right: 0;
1717        bottom: 16px;
1718        margin: 0;
1719        font-size: 14px;
1720        line-height: 20px;
1721        text-align: center;
1722        color: rgba(255, 255, 255, 0.85);
1723    }
1724    .wm-review-photos-overlay[data-single] .wm-review-photos-overlay__prev,
1725    .wm-review-photos-overlay[data-single] .wm-review-photos-overlay__next,
1726    .wm-review-photos-overlay[data-single] .wm-review-photos-overlay__counter {
1727        display: none;
1728    }
1729    body.wm-review-photos-open {
1730        overflow: hidden;
1731    }
1732    @media (max-width: 767px) {
1733        .wm-review-photos-overlay__stage {
1734            padding: 56px 12px;
1735        }
1736        .wm-review-photos-overlay__prev,
1737        .wm-review-photos-overlay__next {
1738            top: auto;
1739            bottom: 44px;
1740            transform: none;
1741        }
1742    }
1743
1744    /* Gallery List — shared */
1745    .wm-gallery-list__image {
1746        width: 100%;
1747        aspect-ratio: 4/3;
1748        object-fit: cover;
1749        border-radius: var(--border-radius, 0);
1750    }
1751    .wm-gallery-list__title {
1752        font-family: var(--decorative-font, 'sans-serif');
1753        font-size: 20px;
1754        font-weight: 600;
1755        color: inherit;
1756        text-decoration: none;
1757    }
1758    .wm-gallery-list__title:hover {
1759        text-decoration: underline;
1760    }
1761    .wm-gallery-list__description {
1762        color: var(--body-text-color, #333);
1763        margin-top: 0.5rem;
1764    }
1765    .wm-gallery-list__image-link {
1766        display: block;
1767        overflow: hidden;
1768        border-radius: var(--border-radius, 0);
1769    }
1770
1771    /* Gallery List — columns variant */
1772    .wm-gallery-list--columns {
1773        display: grid;
1774        grid-template-columns: repeat(var(--columns, 3), 1fr);
1775        gap: 24px;
1776    }
1777    .wm-gallery-list--columns .wm-gallery-list__item {
1778        display: flex;
1779        flex-direction: column;
1780    }
1781    .wm-gallery-list--columns .wm-gallery-list__content {
1782        text-align: center;
1783    }
1784    .wm-gallery-list--columns .wm-gallery-list__title {
1785        display: block;
1786        margin-top: 0.75rem;
1787    }
1788
1789    /* Gallery List — textAndImageVertical variant */
1790    .wm-gallery-list--textAndImageVertical {
1791        display: flex;
1792        flex-direction: column;
1793        gap: 24px;
1794    }
1795    .wm-gallery-list--textAndImageVertical .wm-gallery-list__item {
1796        display: grid;
1797        grid-template-columns: 1fr 1fr;
1798        gap: 24px;
1799        align-items: center;
1800    }
1801
1802    /* Gallery List — textAndImageHorizontal variant */
1803    .wm-gallery-list--textAndImageHorizontal {
1804        display: flex;
1805        flex-direction: column;
1806    }
1807    .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item {
1808        display: grid;
1809        grid-template-columns: 1fr 1fr;
1810        align-items: center;
1811    }
1812    .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item .wm-gallery-list__content {
1813        padding: 8%;
1814    }
1815    .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item--reversed {
1816        direction: rtl;
1817    }
1818    .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item--reversed > * {
1819        direction: ltr;
1820    }
1821
1822    /* Gallery List — noImages variant */
1823    .wm-gallery-list--noImages {
1824        display: flex;
1825        flex-direction: column;
1826        gap: 12px;
1827    }
1828    .wm-gallery-list--noImages .wm-gallery-list__item {
1829        text-align: center;
1830    }
1831
1832    /* Mobile */
1833    @media (max-width: 800px) {
1834        [id^='custom-page-main-content'] [data-mobile-font-size='true'] {
1835            font-size: var(--mobile-font-size, 16px) !important;
1836        }
1837
1838        [data-gjs-type='grid-row']:not([data-nostack='true']) {
1839            grid-template-columns: 1fr !important;
1840        }
1841
1842        .wwd-service-areas__grid {
1843            grid-template-columns: 1fr !important;
1844        }
1845
1846        [data-gjs-type='flex-columns']:not([data-nostack='true']) {
1847            flex-wrap: wrap !important;
1848            overflow-x: visible !important;
1849        }
1850        [data-gjs-type='flex-columns']:not([data-nostack='true']) > [data-gjs-type='flex-column'] {
1851            flex: 1 1 100% !important;
1852        }
1853
1854        [id^='section-slider'] .swiper-slide {
1855            flex-direction: column;
1856        }
1857        [id^='section-slider'] .swiper-slide [data-gjs-type='grid-column'] {
1858            flex: 1 1 100% !important;
1859        }
1860        [id^='section-slider'][data-nav-style='arrows-sides'] .swiper {
1861            width: 100%;
1862        }
1863        [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-prev,
1864        [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-prev {
1865            top: unset;
1866            right: auto;
1867            transform: translateX(-50%);
1868            bottom: 0;
1869            left: 45%;
1870        }
1871        [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-next,
1872        [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-next {
1873            top: unset;
1874            left: auto;
1875            transform: translateX(50%);
1876            bottom: 0;
1877            right: 45%;
1878        }
1879
1880        section .section-container {
1881            width: 100% !important;
1882        }
1883
1884        .people-image-wrapper,
1885        .services-image-wrapper {
1886            height: auto !important;
1887        }
1888
1889        .banner-container {
1890            min-height: fit-content !important;
1891            padding: 2.5rem 0;
1892        }
1893        [id^='section-banner'][data-bg-type='video'] .banner-container {
1894            padding: 0;
1895        }
1896        [id^='section-banner'][data-bg-type='video'] .banner-container .section-container {
1897            padding: 6% !important;
1898        }
1899
1900        .text-and-image-section .text-and-image-container {
1901            flex-direction: column !important;
1902            padding: 0 !important;
1903        }
1904
1905        .text-and-image-section .text-image-text {
1906            width: 100% !important;
1907        }
1908
1909        .text-and-image-section.cover .text-image-text {
1910            padding: 3rem 15px !important;
1911        }
1912
1913        .text-and-image-section.cover.img-top .text-image-text {
1914            padding: 1rem 15px 3rem !important;
1915        }
1916
1917        .text-and-image-section .text-image-img,
1918        .text-and-image-section .text-image-text {
1919            padding: 0 !important;
1920        }
1921
1922        .text-and-image-section .text-image-img {
1923            width: auto !important;
1924        }
1925        .text-and-image-section.cover .text-image-img,
1926        .text-and-image-section.cover .wm-image-container {
1927            width: 100% !important;
1928        }
1929
1930        .text-and-image-section [data-position='right'] {
1931            order: 0 !important;
1932        }
1933        .text-and-image-section .right-text {
1934            order: 1 !important;
1935        }
1936        .text-and-image-section [data-position='left'] img {
1937            margin-right: auto !important;
1938            margin-left: 0 !important;
1939        }
1940        .text-and-image-section img {
1941            width: 100% !important;
1942        }
1943        .wm-map-container {
1944            float: none !important;
1945            width: auto !important;
1946            max-width: 100% !important;
1947        }
1948        .wm-link, .wm-link-button {
1949            display: flex;
1950            align-items: center;
1951            justify-content: center;
1952            max-width: max-content;
1953        }
1954
1955        .wm-link-button {
1956            height: 44px;
1957        }
1958        .wm-blog-posts {
1959            grid-template-columns: 1fr;
1960        }
1961        .wm-blog-posts.side-image {
1962            grid-template-columns: 1fr;
1963        }
1964        /* Side-image layout should look like grid layout on mobile */
1965        .wm-blog-posts.side-image .wm-blog-posts__item {
1966            display: flex;
1967            flex-direction: column;
1968            grid-template-columns: 1fr;
1969        }
1970        .wm-blog-posts.side-image .wm-blog-posts__image,
1971        .wm-blog-posts.side-image .wm-blog-posts__content {
1972            width: 100%;
1973        }
1974        .wm-blog-posts.side-image .wm-blog-posts__image {
1975            border: 1px solid #DDD;
1976            border-bottom: none;
1977        }
1978        .wm-blog-posts.side-image .wm-blog-posts__content {
1979            flex-grow: 1;
1980            align-items: start;
1981            height: auto;
1982        }
1983        .wm-blog-posts.side-image img {
1984            height: 300px;
1985        }
1986
1987        /* Recent Deliveries mobile */
1988        .recent-deliveries__entry {
1989            padding: 2.4rem 2rem;
1990        }
1991        .recent-deliveries__image {
1992            width: 100%;
1993        }
1994
1995        /* Gallery mobile */
1996        .wm-gallery__grid,
1997        .wm-gallery-list--columns {
1998            grid-template-columns: 1fr;
1999        }
2000        .wm-gallery-list--textAndImageVertical .wm-gallery-list__item,
2001        .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item {
2002            grid-template-columns: 1fr;
2003        }
2004        .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item--reversed {
2005            direction: ltr;
2006        }
2007        .wm-gallery--masonry .wm-gallery__grid {
2008            column-count: 1;
2009        }
2010        /* Row-fill masonry collapses to a single grid column on mobile. Because it
2011           is always a grid (never column-count), the flat DOM keeps the 1, 2, 3…
2012           reading order regardless of whether the JS staggering has run. */
2013        .wm-gallery--masonry .wm-gallery__grid--fill-row {
2014            grid-template-columns: 1fr;
2015        }
2016        .wm-gallery-list--textAndImageHorizontal {
2017            gap: 24px;
2018        }
2019        .wm-gallery-list--textAndImageHorizontal .wm-gallery-list__item .wm-gallery-list__content {
2020            padding: 0;
2021            margin-top: 0.75rem;
2022        }
2023    }
2024
2025    @media (max-width: 480px) {
2026        [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-prev,
2027        [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-prev {
2028            left: 41%;
2029            bottom: -25px;
2030        }
2031        [id^='section-slider'][data-nav-style='arrows-sides'] .swiper-button-next,
2032        [id^='section-slider'][data-nav-style='arrows-top-right'] .swiper-button-next {
2033            right: 41%;
2034            bottom: -25px;
2035        }
2036    }
2037
2038    /* Appointment Widget (wm-appointment-widget) */
2039    .wm-appt {
2040        --wm-appt-border: #e2e4ea;
2041        --wm-appt-text: #1f2430;
2042        --wm-appt-muted: #6b7280;
2043        /* Neutral palette mirrors the premium site checkout button (ps AppButton --primary,
2044           --color-gray-800 base / --color-gray-950 hover); green for success. */
2045        --wm-appt-primary: #1f2937;
2046        --wm-appt-primary-hover: #0d1016;
2047        --wm-appt-success: #2e7d32;
2048        font-family: inherit;
2049        /* Explicit base so type sizing doesn't depend on the page's root font-size. */
2050        font-size: 16px;
2051        line-height: 1.5;
2052        color: var(--wm-appt-text);
2053        max-width: 920px;
2054        margin: 0 auto;
2055        border: 1px solid var(--wm-appt-border);
2056        border-radius: 12px;
2057        background: #fff;
2058        box-shadow: 0 1px 10px rgba(67, 69, 81, 0.08);
2059        overflow: hidden;
2060    }
2061
2062    .wm-appt__header {
2063        padding: 28px 32px;
2064        background: linear-gradient(180deg, #f7f8fb 0%, #fff 100%);
2065        border-bottom: 1px solid var(--wm-appt-border);
2066    }
2067
2068    .wm-appt__title {
2069        margin: 0 0 6px;
2070        font-size: 24px;
2071        font-weight: 700 !important;
2072        line-height: 1.2;
2073    }
2074
2075    .wm-appt__caption {
2076        margin: 0;
2077        font-size: 16px;
2078        color: var(--wm-appt-text);
2079    }
2080
2081    .wm-appt__columns {
2082        display: grid;
2083        grid-template-columns: 1fr 1fr;
2084    }
2085
2086    .wm-appt__calendar {
2087        padding: 24px 32px;
2088        border-right: 1px solid var(--wm-appt-border);
2089    }
2090
2091    .wm-appt__times {
2092        padding: 24px 32px;
2093    }
2094
2095    .wm-appt__eyebrow {
2096        display: block;
2097        font-size: 12px;
2098        color: var(--wm-appt-text);
2099        margin-bottom: 16px;
2100    }
2101
2102    .wm-appt__month-nav {
2103        display: flex;
2104        align-items: center;
2105        justify-content: space-between;
2106        margin-bottom: 16px;
2107    }
2108
2109    .wm-appt__month {
2110        font-size: 18px;
2111        font-weight: 600 !important;
2112    }
2113
2114    .wm-appt__month-arrows {
2115        display: flex;
2116        gap: 4px;
2117    }
2118
2119    .wm-appt__arrow {
2120        width: 32px;
2121        height: 32px;
2122        display: inline-flex;
2123        align-items: center;
2124        justify-content: center;
2125        border: none;
2126        background: transparent;
2127        border-radius: 6px;
2128        cursor: pointer;
2129        color: var(--wm-appt-text);
2130    }
2131
2132    .wm-appt__arrow:hover:not(:disabled) {
2133        background: rgba(31, 41, 55, 0.08);
2134    }
2135
2136    .wm-appt__arrow:disabled {
2137        opacity: 0.35;
2138        cursor: default;
2139    }
2140
2141    .wm-appt__weekdays,
2142    .wm-appt__days {
2143        display: grid;
2144        grid-template-columns: repeat(7, 1fr);
2145    }
2146
2147    .wm-appt__weekday {
2148        text-align: center;
2149        font-size: 12px;
2150        font-weight: 500 !important;
2151        color: #6a7282;
2152        padding-bottom: 8px;
2153    }
2154
2155    .wm-appt__days {
2156        gap: 4px;
2157    }
2158
2159    .wm-appt__day {
2160        aspect-ratio: 1;
2161        display: inline-flex;
2162        align-items: center;
2163        justify-content: center;
2164        border: none;
2165        background: transparent;
2166        border-radius: 8px;
2167        font-size: 14px;
2168        font-weight: 500 !important;
2169        cursor: pointer;
2170        color: var(--wm-appt-text);
2171    }
2172
2173    .wm-appt__day:hover:not(.wm-appt__day--disabled):not(.wm-appt__day--selected) {
2174        background: rgba(31, 41, 55, 0.08);
2175    }
2176
2177    .wm-appt__day--selected {
2178        background: var(--wm-appt-primary);
2179        color: #fff;
2180        font-weight: 600 !important;
2181    }
2182
2183    .wm-appt__day--disabled {
2184        color: #c8ccd4;
2185        cursor: default;
2186    }
2187
2188    .wm-appt__times-empty {
2189        height: 100%;
2190        min-height: 220px;
2191        display: flex;
2192        flex-direction: column;
2193        align-items: center;
2194        justify-content: center;
2195        text-align: center;
2196        color: #b4b8c2;
2197        gap: 12px;
2198    }
2199
2200    .wm-appt__times-empty p {
2201        margin: 0;
2202        font-size: 16px;
2203    }
2204
2205    .wm-appt__times-title {
2206        margin: 0 0 20px;
2207        font-size: 18px;
2208        font-weight: 600 !important;
2209    }
2210
2211    .wm-appt__times-none {
2212        color: var(--wm-appt-muted);
2213        font-size: 16px;
2214    }
2215
2216    .wm-appt__slots {
2217        display: grid;
2218        grid-template-columns: 1fr 1fr;
2219        gap: 8px;
2220        max-height: 400px;
2221        overflow-y: auto;
2222        padding-right: 4px;
2223    }
2224
2225    .wm-appt__slot {
2226        padding: 10px 12px;
2227        border: 1px solid var(--wm-appt-border);
2228        background: #fff;
2229        border-radius: 8px;
2230        font-size: 14px;
2231        font-weight: 500 !important;
2232        cursor: pointer;
2233        color: var(--wm-appt-text);
2234        text-align: center;
2235    }
2236
2237    .wm-appt__slot:hover:not(.wm-appt__slot--selected) {
2238        border-color: var(--wm-appt-primary);
2239    }
2240
2241    .wm-appt__slot--selected {
2242        background: var(--wm-appt-primary);
2243        border-color: var(--wm-appt-primary);
2244        color: #fff;
2245        font-weight: 600 !important;
2246    }
2247
2248    .wm-appt__meta {
2249        margin: 20px 0 0;
2250        display: flex;
2251        flex-direction: column;
2252        gap: 6px;
2253    }
2254
2255    .wm-appt__meta div {
2256        display: flex;
2257        gap: 6px;
2258        font-size: 12px;
2259        color: var(--wm-appt-text);
2260    }
2261
2262    .wm-appt__meta dt,
2263    .wm-appt__meta dd {
2264        margin: 0;
2265    }
2266
2267    .wm-appt__details {
2268        padding: 24px 32px 28px;
2269        border-top: 1px solid var(--wm-appt-border);
2270        display: flex;
2271        flex-wrap: wrap;
2272        gap: 16px;
2273    }
2274
2275    .wm-appt__details-lead {
2276        width: 100%;
2277        margin: 0;
2278        font-size: 12px;
2279        font-weight: 400 !important;
2280    }
2281
2282    .wm-appt__field-row {
2283        width: 100%;
2284        display: flex;
2285        gap: 16px;
2286    }
2287
2288    .wm-appt__field {
2289        flex: 1;
2290        display: flex;
2291        flex-direction: column;
2292        gap: 6px;
2293    }
2294
2295    .wm-appt__field--full {
2296        width: 100%;
2297        flex-basis: 100%;
2298    }
2299
2300    .wm-appt__label {
2301        font-size: 14px;
2302        font-weight: 600 !important;
2303        margin-bottom: 0 !important;
2304    }
2305
2306    .wm-appt__required {
2307        margin-left: 2px;
2308        color: #d23b3b;
2309    }
2310
2311    .wm-appt__input {
2312        width: 100%;
2313        box-sizing: border-box;
2314        padding: 12px 14px;
2315        border: 1px solid var(--wm-appt-border);
2316        border-radius: 8px;
2317        font-family: inherit;
2318        font-size: 16px;
2319        color: var(--wm-appt-text);
2320        background: #fff;
2321    }
2322
2323    .wm-appt__input::placeholder {
2324        color: #bcbcbd;
2325    }
2326
2327    .wm-appt__input:focus {
2328        outline: none;
2329        border-color: var(--wm-appt-primary);
2330    }
2331
2332    .wm-appt__input--error {
2333        border-color: #d23b3b;
2334    }
2335
2336    .wm-appt__textarea {
2337        resize: vertical;
2338    }
2339
2340    .wm-appt__field-error {
2341        font-size: 14px;
2342        color: #d23b3b;
2343    }
2344
2345    .wm-appt__error {
2346        width: 100%;
2347        margin: 0;
2348        font-size: 16px;
2349        color: #d23b3b;
2350    }
2351
2352    .wm-appt__submit {
2353        align-self: flex-start;
2354        padding: 12px 24px;
2355        border: none;
2356        border-radius: 8px;
2357        background: var(--wm-appt-primary);
2358        color: #fff;
2359        font-family: inherit;
2360        font-size: 16px;
2361        font-weight: 600 !important;
2362        cursor: pointer;
2363    }
2364
2365    .wm-appt__submit:hover:not(:disabled) {
2366        background: var(--wm-appt-primary-hover);
2367    }
2368
2369    .wm-appt__submit:disabled {
2370        opacity: 0.6;
2371        cursor: default;
2372    }
2373
2374    .wm-appt__confirmation {
2375        padding: 48px 32px;
2376        display: flex;
2377        flex-direction: column;
2378        align-items: center;
2379        text-align: center;
2380        gap: 12px;
2381        color: var(--wm-appt-success);
2382    }
2383
2384    .wm-appt__confirmation-title {
2385        margin: 0;
2386        font-size: 26px;
2387        font-weight: 700 !important;
2388        color: var(--wm-appt-text);
2389    }
2390
2391    .wm-appt__confirmation-message {
2392        margin: 0 0 8px;
2393        font-size: 18px;
2394        color: var(--wm-appt-muted);
2395        max-width: 380px;
2396    }
2397
2398    @media (max-width: 640px) {
2399        .wm-appt__columns {
2400            grid-template-columns: 1fr;
2401        }
2402
2403        .wm-appt__calendar {
2404            border-right: none;
2405            border-bottom: 1px solid var(--wm-appt-border);
2406        }
2407
2408        .wm-appt__field-row {
2409            flex-direction: column;
2410        }
2411    }
2412
2413</style>
2414
2415	<!-- [START] Analytics Content: [default] -->
2416<!-- Google Tag Manager -->
2417<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
2418new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
2419j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
2420'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '&gtm_cookies_win=x';f.parentNode.insertBefore(j,f);
2421})(window,document,'script','dataLayer','GTM-TLR3ZL8');
2422window.dataLayer = window.dataLayer || [];
2423dataLayer.push({"ga4PsId":"G-RWY7QD072S","ga4VendorId":"G-62VYQCBKSJ","vendorAccountId":"vndr_tB4vkDkXA0UOuMjX"});
2424                    if (typeof Object.assign != 'function') {
2425          Object.assign = function(target, varArgs) { // .length of function is 2
2426            'use strict';
2427            if (target == null) { // TypeError if undefined or null
2428              throw new TypeError('Cannot convert undefined or null to object');
2429            }
2430
2431            var to = Object(target);
2432
2433            for (var index = 1; index < arguments.length; index++) {
2434              var nextSource = arguments[index];
2435
2436              if (nextSource != null) { // Skip over if undefined or null
2437                for (var nextKey in nextSource) {
2438                  // Avoid bugs when hasOwnProperty is shadowed
2439                  if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
2440                    to[nextKey] = nextSource[nextKey];
2441                  }
2442                }
2443              }
2444            }
2445            return to;
2446          };
2447        }
2448
2449            var pageMetadataEventObj = Object.assign({
2450                'event': 'pageMetadata',
2451                'title': document.title,
2452                'path': location.pathname,
2453                'url': location.href,
2454                'referrer': document.referrer,
2455                'search': location.search,
2456                'visitedDomain': 'hedgefineblooms.bloomnation.com',
2457                'login': 'notLoggedIn'
2458            }, JSON.parse('{"pageType":"Vendor About"}'));            pageMetadataEventObj['vendorDomain'] = 'hedgefineblooms.com';        window.dataLayer.push(pageMetadataEventObj);window.dataLayer = window.dataLayer || [];
2459dataLayer.push([]);
2460</script>
2460
2461<!-- End Google Tag Manager -->
2462	<!-- [END] Analytics Content: [default] -->
2463<script>
2464    //<![CDATA[
2465    var FORM_KEY = (document.cookie.match(/(?:^|;\s*)_csrf=([^;]*)/) || [])[1] || '';
2466    //]]>
2467</script>
2467
2468
2469                        <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'">
2470                    <meta name="google-site-verification" content="WRf84sAwDZsNzqv2AeQhzmqFktts_3GEBrdM1cn-m-4" />
2471
2472<!-- [START] Custom HTML --><!-- [END] Custom HTML --></head>
2473<body class=" cms-index-aboutus vendor-5640 bloom growth">
2474
2475
2476
2477    <!-- Alert (begin) -->
2478    <style>
2479        .topBanner>* {
2480            padding: 1rem 4.6rem;
2481        }
2482        .topBanner span,a {
2483            font-size: inherit;
2484        }
2485        .topBanner p {
2486            margin-bottom: 0;
2487        }
2488        .topBanner a {
2489            color: inherit;
2490            text-decoration: none;
2491        }
2492        .topBanner a:hover {
2493            opacity: .8;
2494        }
2495    </style>
2496    <div class='topBanner'>
2497        <div style="background-color:#b7c57d"><p data-node-text-align="center" style=" text-align:center"><span style=" color:#ffffff" data-text-color-mark="#ffffff"><span style=" font-size:16px"><strong style="font-weight: 700;">Offering beautiful local flowers for same-day delivery and pick-up</strong></span></span></p></div>    </div>
2498    <!-- Alert (end) -->
2499
2500    <a class="skip-to-mp" href="https://www.bloomnation.com/florist/hedge-fine-blooms/?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/hedge-fine-blooms/?nav=premium-accessibility</a>
2501
2502<script>
2503  (function () {
2504    function ready(callback) {
2505      if (document.readyState === 'loading') {
2506        document.addEventListener('DOMContentLoaded', callback);
2507      } else {
2508        callback();
2509      }
2510    }
2511
2512    /**
2513     * Height of an element that may still be display:none.
2514     *
2515     * getComputedStyle() reports the declared height, which is 'auto' whenever the stylesheet does
2516     * not pin one — and parseInt('auto') is NaN. jQuery's .css('height') avoided that by briefly
2517     * laying the element out off-screen, so do the same. layout.css currently does pin
2518     * #header-accessibilityPopup at 205px, which is the only reason the simple read would work
2519     * today; this keeps working if that ever changes.
2520     */
2521    function hiddenHeight(element) {
2522      if (window.getComputedStyle(element).display !== 'none') {
2523        return element.offsetHeight;
2524      }
2525
2526      var style = element.style;
2527      var saved = {
2528        position: style.position,
2529        visibility: style.visibility,
2530        display: style.display
2531      };
2532
2533      style.position = 'absolute';
2534      style.visibility = 'hidden';
2535      style.display = 'block';
2536
2537      var height = element.offsetHeight;
2538
2539      style.position = saved.position;
2540      style.visibility = saved.visibility;
2541      style.display = saved.display;
2542
2543      return height;
2544    }
2545
2546    ready(function () {
2547      var accessibilityBtn = document.querySelector('.accessibility-widget [data-accessibility-btn]');
2548      var accessibilityPopup = document.querySelector('.accessibility-widget [data-accessibility-popup]');
2549      var accessibilityOverlay = document.querySelector('.accessibility-widget-overlay');
2550
2551      if (!accessibilityBtn || !accessibilityPopup || !accessibilityOverlay) {
2552        return;
2553      }
2554
2555      // Must be the exact negative of the container height, so the popup tucks fully out of sight.
2556      var popupHiddenHeight = hiddenHeight(accessibilityPopup) * -1;
2557      var showHide = { attribute: 'top', show: '0px', hide: popupHiddenHeight + 'px' };
2558
2559      function checkPopupVisible() {
2560        return window.getComputedStyle(accessibilityPopup)[showHide.attribute] === showHide.show;
2561      }
2562
2563      function togglePopup(popup, button, action, data) {
2564        popup.style[data.attribute] = data[action];
2565        var show = action === 'show';
2566        button.setAttribute('aria-expanded', String(show));
2567        accessibilityOverlay.style.display = show ? 'block' : 'none';
2568      }
2569
2570      function hideAccessibilityPopup() {
2571        togglePopup(accessibilityPopup, accessibilityBtn, 'hide', showHide);
2572      }
2573
2574      function showAccessibilityPopup() {
2575        accessibilityPopup.style.display = 'block';
2576        // Ensure the transition runs after the display:block above has been applied.
2577        setTimeout(function () {
2578          togglePopup(accessibilityPopup, accessibilityBtn, 'show', showHide);
2579        }, 0);
2580      }
2581
2582      function handleClickOutsidePopup() {
2583        if (checkPopupVisible()) {
2584          hideAccessibilityPopup();
2585        }
2586      }
2587
2588      accessibilityBtn.addEventListener('click', function () {
2589        if (checkPopupVisible()) {
2590          hideAccessibilityPopup();
2591        } else {
2592          showAccessibilityPopup();
2593        }
2594      });
2595
2596      accessibilityPopup.addEventListener('click', hideAccessibilityPopup);
2597
2598      accessibilityPopup.addEventListener('transitionend', function () {
2599        if (!checkPopupVisible()) {
2600          accessibilityPopup.style.display = 'none';
2601        }
2602      });
2603
2604      accessibilityOverlay.addEventListener('click', handleClickOutsidePopup);
2605    });
2606  })();
2607</script>
2607
2608
2609
2610<div class="accessibility-widget">
2611    <div class="accessibility-widget-overlay" aria-hidden="true"></div>
2612    <div class="header-accessibilityInnerContainer">
2613        <button
2614            id="header-accessibilityPopupBtn"
2615            aria-haspopup="true"
2616            aria-expanded="false"
2617            aria-controls="header-accessibilityPopup"
2618            aria-label="Accessibility Information"
2619            data-accessibility-btn
2620        >
2621        <svg class="ada-icon-dot" width="42" height="42" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg">
2622            <circle cx="21" cy="21" r="21" fill="#017AFF"/>
2623            <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"/>
2624        </svg>
2625        <svg class="ada-icon-tab" width="42" height="42" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg">
2626            <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"/>
2627            <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"/>
2628        </svg>
2629    </button>
2630    <aside id="header-accessibilityPopup" aria-labelledby="header-accessibilityPopupBtn" data-accessibility-popup>
2631        <p>For an accessible ADA experience, please <a href="https://www.bloomnation.com/florist/hedge-fine-blooms/?nav=premium-accessibility" rel="nofollow">visit our Marketplace.</a></p>
2632        <p><a href="https://hedgefineblooms.com/accessibility-statement/">Visit our Accessibility page</a> for further assistance or to learn more about our efforts.</p>
2633    </aside>
2634    </div>
2635</div>
2636
2637
2638	<!-- [START] Analytics Content: [default] -->
2639<!-- Google Tag Manager (noscript) -->
2640<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TLR3ZL8&gtm_cookies_win=x%22"
2641height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2642<!-- End Google Tag Manager (noscript) -->
2643	<!-- [END] Analytics Content: [default] -->
2644
2645
2646<script>
2647    (function () {
2648        /*
2649         * A page restored from the back/forward cache is not re-executed, so the cart count, the
2650         * logged-in state and any flash messages would be whatever they were when the visitor left.
2651         * PageTransitionEvent.persisted is true only for that restore, so reload to rebuild the page
2652         * server-side. This reads the native event directly; the jQuery version had to unwrap
2653         * event.originalEvent to reach the same flag.
2654         */
2655        window.addEventListener('pageshow', function (event) {
2656            if (event.persisted) {
2657                window.location.reload();
2658            }
2659        });
2660
2661        /*
2662         * Kill switch that freezes navigation: while window.forceDisableAllLinks is set, every
2663         * anchor without a force-redirect attribute stops navigating. Nothing in this repository
2664         * sets the flag, so this does nothing unless a script injected into the page turns it on.
2665         *
2666         * The jQuery version bound a handler to every anchor present at DOM ready and did nothing at
2667         * all on the flag-is-off path. One listener costs nothing while the flag is off and also
2668         * covers anchors added after DOM ready — but it has to run in the capture phase to match
2669         * the old reach: dropdown-nav.js stops propagation on every .dropdown-toggle and
2670         * .dropdown-content click, as does toggleDropdown() in topMobile.phtml, so a listener
2671         * delegated on the bubble phase would never see the desktop subnav links at all.
2672         */
2673        document.addEventListener('click', function (event) {
2674            if (!window.forceDisableAllLinks) {
2675                return;
2676            }
2677
2678            var target = event.target;
2679            var link = target && typeof target.closest === 'function' ? target.closest('a') : null;
2680
2681            if (!link || link.hasAttribute('force-redirect')) {
2682                return;
2683            }
2684
2685            event.preventDefault();
2686            // Belt and braces: preventDefault alone has been seen to let a navigation through here.
2687            link.setAttribute('href', '#');
2688        }, true);
2689    })();
2690</script>
2690
2691
2692<header id="header_mobile" class="header-mobile visible-xs text-center">
2693    <table class="header-mobile-grid">
2694        <tbody>
2695            <tr>
2696                <td class="menu-cell">
2697                    <div class="menu-container">
2698                        
2699<nav class="navigation-mobile-wrapper">
2700    <div class="navToggle-container nav-itemWrapper nav-itemWrapper--navToggle text-left">
2701        <!-- Nav Toggle -->
2702        <button
2703            id="navToggleMobile"
2704            class="nav-toggle-mobile nav-item nav-item-mobile nav-item--navToggle text-center"
2705            aria-controls="navigationMobile"
2706            aria-expanded="false"
2707            title="Main Navigation">
2708            <i class="fa fa-reorder"></i>
2709        </button>
2710    </div>
2711    <ul class="navigation col-md-12 navigation-mobile" id="navigationMobile">
2712        <li class="nav-itemWrapper text-right">
2713
2714                            <a href="https://hedgefineblooms.com/customer/account/create/" class="nav-item nav-item-mobile account-link">
2715                    <span class="nav-itemText mobile-menu-text-color">Sign Up</span>
2716                </a>
2717                    <span class="nav-itemText mobile-menu-text-color sign-up-log-in-separator">/</span>
2718                <a href="https://hedgefineblooms.com/customer/account/login/" class="nav-item nav-item-mobile account-link">
2719                    <span class="nav-itemText mobile-menu-text-color">Log in</span>
2720                </a>
2721            
2722        </li>
2723                                    <li class="nav-itemWrapper text-left">
2724                    <a class="nav-item" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/" target="_self">
2725                        <span class="nav-itemText mobile-menu-text-color">Order Flowers</span>
2726                    </a>
2727                </li>
2728                                                <li class="dropdown nav-dropdown nav-itemWrapper nav-itemWrapper--dropdown text-left">
2729                    <a class="dropdown-toggle nav-item nav-item-mobile nav-item--dropdown" role="button" data-target="#" data-toggle="dropdown">
2730                        <span class="nav-itemText mobile-menu-text-color">Occasions &#x25BE;</span>
2731                    </a>
2732                    <ul class="subnav dropdown-menu header-subnav" role="menu">
2733                                                    <li class="subnav-itemWrapper text-left">
2734                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/prom-and-homecoming/prom/" target="_self">
2735                                    <span class="nav-itemText mobile-menu-text-color">Prom and Homecoming</span>
2736                                </a>
2737                            </li>
2738                                                    <li class="subnav-itemWrapper text-left">
2739                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/anniversary-flowers/" target="_self">
2740                                    <span class="nav-itemText mobile-menu-text-color">Anniversary</span>
2741                                </a>
2742                            </li>
2743                                                    <li class="subnav-itemWrapper text-left">
2744                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/autumn-flowers/" target="_self">
2745                                    <span class="nav-itemText mobile-menu-text-color">Autumn</span>
2746                                </a>
2747                            </li>
2748                                                    <li class="subnav-itemWrapper text-left">
2749                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/birthday-flowers/" target="_self">
2750                                    <span class="nav-itemText mobile-menu-text-color">Birthday</span>
2751                                </a>
2752                            </li>
2753                                                    <li class="subnav-itemWrapper text-left">
2754                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/congrats-flowers/" target="_self">
2755                                    <span class="nav-itemText mobile-menu-text-color">Congrats</span>
2756                                </a>
2757                            </li>
2758                                                    <li class="subnav-itemWrapper text-left">
2759                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/get-well-flowers/" target="_self">
2760                                    <span class="nav-itemText mobile-menu-text-color">Get Well</span>
2761                                </a>
2762                            </li>
2763                                                    <li class="subnav-itemWrapper text-left">
2764                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/i-m-sorry-flowers/" target="_self">
2765                                    <span class="nav-itemText mobile-menu-text-color">I'm Sorry</span>
2766                                </a>
2767                            </li>
2768                                                    <li class="subnav-itemWrapper text-left">
2769                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/just-because-flowers/" target="_self">
2770                                    <span class="nav-itemText mobile-menu-text-color">Just Because</span>
2771                                </a>
2772                            </li>
2773                                                    <li class="subnav-itemWrapper text-left">
2774                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/love-and-romance-flowers/" target="_self">
2775                                    <span class="nav-itemText mobile-menu-text-color">Love and Romance</span>
2776                                </a>
2777                            </li>
2778                                                    <li class="subnav-itemWrapper text-left">
2779                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/summer-flowers/" target="_self">
2780                                    <span class="nav-itemText mobile-menu-text-color">Summer</span>
2781                                </a>
2782                            </li>
2783                                                    <li class="subnav-itemWrapper text-left">
2784                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/sympathy-and-funeral-flowers/" target="_self">
2785                                    <span class="nav-itemText mobile-menu-text-color">Sympathy and Funeral</span>
2786                                </a>
2787                            </li>
2788                                                    <li class="subnav-itemWrapper text-left">
2789                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/thank-you-flowers/" target="_self">
2790                                    <span class="nav-itemText mobile-menu-text-color">Thank You</span>
2791                                </a>
2792                            </li>
2793                                                    <li class="subnav-itemWrapper text-left">
2794                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/wedding-flowers/" target="_self">
2795                                    <span class="nav-itemText mobile-menu-text-color">Wedding</span>
2796                                </a>
2797                            </li>
2798                                                    <li class="subnav-itemWrapper text-left">
2799                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/quinceanera-flowers/" target="_self">
2800                                    <span class="nav-itemText mobile-menu-text-color">Quinceañera</span>
2801                                </a>
2802                            </li>
2803                                                    <li class="subnav-itemWrapper text-left">
2804                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/retirement-flowers/" target="_self">
2805                                    <span class="nav-itemText mobile-menu-text-color">Retirement</span>
2806                                </a>
2807                            </li>
2808                                            </ul>
2809                </li>
2810                                                <li class="nav-itemWrapper text-left">
2811                    <a class="nav-item" href="https://hedgefineblooms.com/flower-subscriptions/" target="_self">
2812                        <span class="nav-itemText mobile-menu-text-color">Subscriptions</span>
2813                    </a>
2814                </li>
2815                                                <li class="dropdown nav-dropdown nav-itemWrapper nav-itemWrapper--dropdown text-left">
2816                    <a class="dropdown-toggle nav-item nav-item-mobile nav-item--dropdown" role="button" data-target="#" data-toggle="dropdown">
2817                        <span class="nav-itemText mobile-menu-text-color">Weddings &#x25BE;</span>
2818                    </a>
2819                    <ul class="subnav dropdown-menu header-subnav" role="menu">
2820                                                    <li class="subnav-itemWrapper text-left">
2821                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/cms/index/gallery/" target="_self">
2822                                    <span class="nav-itemText mobile-menu-text-color">Gallery</span>
2823                                </a>
2824                            </li>
2825                                                    <li class="subnav-itemWrapper text-left">
2826                                <a class="nav-item nav-item-mobile nav-item--subnav text-left" href="https://hedgefineblooms.com/wedding-consultation-2" target="_self">
2827                                    <span class="nav-itemText mobile-menu-text-color">Wedding Consultation</span>
2828                                </a>
2829                            </li>
2830                                            </ul>
2831                </li>
2832                                                <li class="nav-itemWrapper text-left">
2833                    <a class="nav-item" href="https://hedgefineblooms.com/aboutus" target="_self">
2834                        <span class="nav-itemText mobile-menu-text-color">Location</span>
2835                    </a>
2836                </li>
2837                                                <li class="nav-itemWrapper text-left">
2838                    <a class="nav-item" href="https://hedgefineblooms.com/team/" target="_self">
2839                        <span class="nav-itemText mobile-menu-text-color">Meet the Owner</span>
2840                    </a>
2841                </li>
2842                                </ul>
2843    <div class="background-overlay" id="mobileBackgroundOverlay"></div>
2844</nav>
2845<script type="text/javascript">
2846    (function () {
2847        function ready(callback) {
2848            if (document.readyState === 'loading') {
2849                document.addEventListener('DOMContentLoaded', callback);
2850            } else {
2851                callback();
2852            }
2853        }
2854
2855        function each(selector, callback, root) {
2856            Array.prototype.forEach.call((root || document).querySelectorAll(selector), callback);
2857        }
2858
2859        // jQuery's :visible test, which is what the checks below used to run through.
2860        function isVisible(element) {
2861            return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
2862        }
2863
2864        /*
2865         * jQuery's .width(): the content-box width, as a number. Not getComputedStyle().width, which
2866         * resolves to the border box under the border-box sizing Bootstrap applies globally. Like
2867         * jQuery it also measures a display:none element, by laying it out off-screen — #header_mobile
2868         * carries visible-xs, so it is hidden on desktop.
2869         */
2870        function contentWidth(element) {
2871            if (window.getComputedStyle(element).display === 'none') {
2872                return swapMeasure(element, measureContentWidth);
2873            }
2874
2875            return measureContentWidth(element);
2876        }
2877
2878        function measureContentWidth(element) {
2879            var styles = window.getComputedStyle(element);
2880
2881            return element.offsetWidth
2882                - (parseFloat(styles.paddingLeft) || 0)
2883                - (parseFloat(styles.paddingRight) || 0)
2884                - (parseFloat(styles.borderLeftWidth) || 0)
2885                - (parseFloat(styles.borderRightWidth) || 0);
2886        }
2887
2888        /*
2889         * jQuery's swap() with cssShow: lay a hidden element out off-screen just long enough to
2890         * measure. The measure callback must not re-test display itself — Bootstrap's visible-xs is
2891         * `display: none !important` above 768px, which an inline style cannot beat, so the swap does
2892         * not actually reveal #header_mobile and a self-recursive version would never terminate.
2893         */
2894        function swapMeasure(element, measure) {
2895            var style = element.style;
2896            var saved = {
2897                position: style.position,
2898                visibility: style.visibility,
2899                display: style.display
2900            };
2901
2902            style.position = 'absolute';
2903            style.visibility = 'hidden';
2904            style.display = 'block';
2905
2906            var measured = measure(element);
2907
2908            style.position = saved.position;
2909            style.visibility = saved.visibility;
2910            style.display = saved.display;
2911
2912            return measured;
2913        }
2914
2915        // jQuery's $(document).height().
2916        function documentHeight() {
2917            var body = document.body;
2918            var html = document.documentElement;
2919
2920            return Math.max(
2921                body.scrollHeight,
2922                body.offsetHeight,
2923                html.clientHeight,
2924                html.scrollHeight,
2925                html.offsetHeight
2926            );
2927        }
2928
2929        /*
2930         * Submenu open/close, replacing the $('.dropdown-toggle').dropdown() call that used to sit
2931         * here. That call is what made the submenus toggle at all: the Bootstrap plugin binds
2932         * Dropdown.prototype.toggle straight to each element, and because that handler returns false
2933         * it also stops the click reaching Bootstrap's delegated [data-toggle=dropdown] handler on
2934         * document. Without the direct handler the delegated one runs after clearMenus() has already
2935         * removed the 'open' class, so it reads the menu as closed and re-opens it every time — a
2936         * submenu that can never be closed. The port below keeps the direct-handler semantics
2937         * (including getParent()'s data-target/href lookup and the second-click close) and works
2938         * whether or not Bootstrap is on the page, which it will not be after BLOOM-17575's P9.
2939         */
2940        function dropdownParent(toggle) {
2941            var selector = toggle.getAttribute('data-target');
2942
2943            if (!selector) {
2944                var href = toggle.getAttribute('href');
2945                selector = href && /#[A-Za-z]/.test(href) ? href.replace(/.*(?=#[^\s]*$)/, '') : null;
2946            }
2947
2948            var target = null;
2949
2950            if (selector) {
2951                try {
2952                    target = document.querySelector(selector);
2953                } catch (error) {
2954                    // The mobile toggles carry data-target="#", which is not a valid selector.
2955                    // jQuery quietly returned an empty set for it, so fall through to the parent.
2956                    target = null;
2957                }
2958            }
2959
2960            return target || toggle.parentNode;
2961        }
2962
2963        function closeOpenDropdowns() {
2964            each('[data-toggle="dropdown"]', function (toggle) {
2965                dropdownParent(toggle).classList.remove('open');
2966            });
2967        }
2968
2969        function toggleDropdown(event) {
2970            var toggle = event.currentTarget;
2971
2972            if (toggle.classList.contains('disabled') || toggle.disabled) {
2973                return;
2974            }
2975
2976            var parent = dropdownParent(toggle);
2977            var wasOpen = parent.classList.contains('open');
2978
2979            closeOpenDropdowns();
2980
2981            if (!wasOpen) {
2982                parent.classList.add('open');
2983                toggle.focus();
2984            }
2985
2986            event.preventDefault();
2987            // Bootstrap's handler returned false, which stopped the click reaching its own
2988            // document-level handlers. Keep that so nothing toggles the menu a second time.
2989            event.stopPropagation();
2990        }
2991
2992        ready(function () {
2993            each('.dropdown-toggle', function (toggle) {
2994                toggle.addEventListener('click', toggleDropdown);
2995            });
2996
2997            document.addEventListener('click', closeOpenDropdowns);
2998
2999            var navToggle = document.getElementById('navToggleMobile');
3000            var navigationMobile = document.getElementById('navigationMobile');
3001            var overlay = document.getElementById('mobileBackgroundOverlay');
3002            var headerMobile = document.getElementById('header_mobile');
3003            var body = document.body;
3004
3005            if (!navToggle || !navigationMobile || !overlay) {
3006                return;
3007            }
3008
3009            each('.dropdown-toggle', function (toggle) {
3010                toggle.addEventListener('click', function (event) {
3011                    if (isVisible(navigationMobile)) {
3012                        return;
3013                    }
3014
3015                    event.preventDefault();
3016
3017                    // A page carries several of these — one per desktop dropdown, plus the two
3018                    // dropdown-nav templates — and .is(':visible') was true if ANY of them was
3019                    // showing, so this has to ask all of them, not just the first.
3020                    var desktopSubnavOpen = Array.prototype.some.call(
3021                        document.querySelectorAll('.dropdown-content--arrownav-desktop'),
3022                        isVisible
3023                    );
3024
3025                    if (!desktopSubnavOpen) {
3026                        return;
3027                    }
3028
3029                    each('.dropdown-wrapper--hover', function (wrapper) {
3030                        each('.dropdown-toggle', function (hoverToggle) {
3031                            hoverToggle.setAttribute('aria-expanded', 'false');
3032                        }, wrapper);
3033                        each('.dropdown-content', function (content) {
3034                            content.classList.remove('dropdown-content--visible');
3035                        }, wrapper);
3036                        wrapper.classList.remove('open');
3037                    });
3038                });
3039            });
3040
3041            // Nav Toggle on click
3042            navToggle.addEventListener('click', function () {
3043                if (navigationMobile.classList.contains('open')) {
3044                    hideMenu();
3045                } else {
3046                    showMenu();
3047                }
3048            });
3049
3050            overlay.addEventListener('click', function () {
3051                hideMenu();
3052            });
3053
3054            navigationMobile.addEventListener('touchstart', startTouch, { passive: false });
3055            navigationMobile.addEventListener('touchmove', moveTouch, { passive: false });
3056
3057            // Swipe Up / Down / Left / Right
3058            var initialX = null;
3059            var initialY = null;
3060
3061            function startTouch(e) {
3062                initialX = e.touches[0].clientX;
3063                initialY = e.touches[0].clientY;
3064            }
3065
3066            function moveTouch(e) {
3067                if (initialX === null) {
3068                    return;
3069                }
3070
3071                if (initialY === null) {
3072                    return;
3073                }
3074
3075                var currentX = e.touches[0].clientX;
3076                var currentY = e.touches[0].clientY;
3077
3078                var diffX = initialX - currentX;
3079                var diffY = initialY - currentY;
3080
3081                if (Math.abs(diffX) > Math.abs(diffY)) {
3082                    // sliding horizontally
3083                    if (diffX > 0) {
3084                        // swiped left
3085                        menuSlideLeft();
3086                    }
3087                }
3088
3089                initialX = null;
3090                initialY = null;
3091            }
3092
3093            /*
3094             * Stale selector, kept as it was: the toggle lives in .navToggle-container, a sibling of
3095             * .navigation-mobile rather than a child, so this has matched nothing for a long time.
3096             * Restoring the intent would hide the hamburger while the menu is open — a visible
3097             * change, and not this ticket's.
3098             */
3099            function setNavToggleDisplay(display) {
3100                each('.navigation-mobile .nav-itemWrapper--navToggle', function (wrapper) {
3101                    wrapper.style.display = display;
3102                });
3103            }
3104
3105            function showMenu() {
3106                navToggle.setAttribute('aria-expanded', 'true');
3107                navigationMobile.classList.add('open');
3108                var containerWidth = headerMobile ? contentWidth(headerMobile) : 0;
3109                setNavToggleDisplay('none');
3110                navigationMobile.style.width = (containerWidth * 0.8) + 'px';
3111                overlay.style.height = documentHeight() + 'px';
3112                // The stylesheet hides the overlay, so an empty display would leave it hidden.
3113                overlay.style.display = 'block';
3114                body.style.position = 'fixed';
3115            }
3116
3117            function hideMenu() {
3118                navToggle.setAttribute('aria-expanded', 'false');
3119                navigationMobile.classList.remove('open');
3120                setNavToggleDisplay('');
3121                navigationMobile.style.width = '';
3122                overlay.style.height = '0px';
3123                overlay.style.display = 'none';
3124                body.style.position = '';
3125            }
3126
3127            function menuSlideLeft() {
3128                var containerWidth = headerMobile ? contentWidth(headerMobile) : 0;
3129                var settled = false;
3130                var timer = null;
3131
3132                function settle(event) {
3133                    if (event && event.propertyName && event.propertyName !== 'margin-left') {
3134                        return;
3135                    }
3136
3137                    if (settled) {
3138                        return;
3139                    }
3140
3141                    settled = true;
3142                    window.clearTimeout(timer);
3143                    navigationMobile.removeEventListener('transitionend', settle);
3144                    navigationMobile.style.transition = '';
3145                    navigationMobile.style.marginLeft = '0px';
3146                    navigationMobile.style.width = '';
3147                    navigationMobile.style.height = '';
3148                    navigationMobile.style.top = '';
3149                    navigationMobile.classList.remove('open');
3150                    setNavToggleDisplay('');
3151                    overlay.style.height = '0px';
3152                    overlay.style.display = 'none';
3153                }
3154
3155                navigationMobile.addEventListener('transitionend', settle);
3156                // Fallback for the cases transitionend never fires: reduced motion, or a margin that
3157                // is already at the target value.
3158                timer = window.setTimeout(settle, 150);
3159
3160                navigationMobile.style.transition = 'margin-left 100ms linear';
3161                // Force a reflow so the transition starts from the current margin.
3162                void navigationMobile.offsetWidth;
3163                navigationMobile.style.marginLeft = -(containerWidth * 0.8) + 'px';
3164            }
3165        });
3166    })();
3167</script>
3167
3168                    </div>
3169                </td>
3170                <td class="logo-cell">
3171                    <div class="logo-container">
3172                        <a class="companyLogo-imgContainer" href="https://hedgefineblooms.com/">
3173                                                        <img
3174                                class="companyLogo-img"
3175                                src="https://asset.bloomnation.com/c_fit,dpr_1,f_auto,h_236,q_auto,w_600/v1/vendor/5640/profile/h/e/hedgefineblooms-logo.png"
3176                                alt="Hedge Fine Blooms - Charlottesville, VA florist"
3177                                srcset="https://asset.bloomnation.com/c_fit%2Cdpr_1%2Cf_auto%2Ch_236%2Cq_auto%2Cw_600/v1/vendor/5640/profile/h/e/hedgefineblooms-logo.png 1x, https://asset.bloomnation.com/c_fit%2Cdpr_2%2Cf_auto%2Ch_236%2Cq_auto%2Cw_600/v1/vendor/5640/profile/h/e/hedgefineblooms-logo.png 2x"
3178                                                                    width="600"
3179                                    height="236"
3180                                                            />
3181                                                    </a>
3182                    </div>
3183                </td>
3184                <td class="cart-cell">
3185                    <div class="cart-container">
3186                        <a href="https://hedgefineblooms.com/checkout/" class="mobile-cart-btn">
3187                            <div class="mobile-cart-icon-wrapper">
3188                                <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">
3189<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"/>
3190</svg>
3191</span>
3192                                                            </div>
3193                        </a>
3194                    </div>
3195                </td>
3196            </tr>
3197        </tbody>
3198
3199    </table>
3200</header>
3201<header id="header" class="hidden-xs">
3202        <div class="row header-innerContainer">
3203        <div class="information-heading infoHeading hidden-xs col-sm-4 col-md-4">
3204                        <span class="infoHeading-item infoHeading-item--name">Hedge Fine Blooms</span>
3205            <span class="infoHeading-item infoHeading-item--address vendor-address">115 4th St NE<br />
3206            Charlottesville,
3207            VA            22902</span>
3208                                            </div>
3209        <div class="header-logo col-xs-12 col-sm-4 col-md-4">
3210            <div class="company-logo">
3211                <a class="companyLogo-imgContainer" href="https://hedgefineblooms.com/">
3212                                        <img
3213                        class="companyLogo-img"
3214                        src="https://asset.bloomnation.com/c_fit,dpr_1,f_auto,h_393,q_auto,w_1000/v1/vendor/5640/profile/h/e/hedgefineblooms-logo.png"
3215                        alt="Hedge Fine Blooms - Charlottesville, VA florist"
3216                        srcset="https://asset.bloomnation.com/c_fit%2Cdpr_1%2Cf_auto%2Ch_393%2Cq_auto%2Cw_1000/v1/vendor/5640/profile/h/e/hedgefineblooms-logo.png 1x, https://asset.bloomnation.com/c_fit%2Cdpr_2%2Cf_auto%2Ch_393%2Cq_auto%2Cw_1000/v1/vendor/5640/profile/h/e/hedgefineblooms-logo.png 2x"
3217                                                    width="1000"
3218                            height="393"
3219                                            />
3220                                    </a>
3221            </div>
3222        </div>
3223        
3224<nav class="header-cart ps-header-cart col-xs-12 col-sm-4 col-md-4" aria-labelledby="ps-my-account_menu-label">
3225    <div class="ps-header-cartBtn-wrapper">
3226        <div class="ps-my-account-button-wrapper dropdown-wrapper">
3227            <button class="ps-my-account-button dropdown-toggle" aria-expanded="false" aria-haspopup="true">
3228                <span class="ps-my-account-button-text" id="ps-my-account_menu-label">My Account</span>
3229                <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">
3230<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"/>
3231</svg>
3232</span>
3233            </button>
3234                            
3235<div id="dropdown-nav--js" class="dropdown-nav dropdown-nav--login dropdown-content dropdown-content--arrownav-desktop">
3236    <div class="dropdown-nav__arrow-up"></div>
3237    <div class="dropdown-nav__arrow-up--overlay"></div>
3238
3239    <ul class="dropdown-nav__list">
3240        <li class="dropdown-nav__list-item">
3241            <a class="dropdown-nav__link" href="https://hedgefineblooms.com/customer/account/login/" tabindex="-1" rel="nofollow">
3242                <p class="icon material-symbols-outlined">login</p>
3243                <span>Log in</span>
3244            </a>
3245        </li>
3246        <li class="dropdown-nav__list-item">
3247            <a class="dropdown-nav__link" href="https://hedgefineblooms.com/customer/account/create/" tabindex="-1" rel="nofollow">
3248                <p class="icon material-symbols-outlined">person</p>
3249                <span>Sign up</span>
3250            </a>
3251        </li>
3252            </ul>
3253</div>
3254                    </div>
3255
3256        <div class="ps-my-account-mob">
3257            <a href="https://hedgefineblooms.com/checkout/" class="btn btn-outline ps-cart_button ps-header-cartBtn" aria-label="view cart with 0 items">
3258                <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">
3259<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.
32591646C11.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"/>
3260</svg>
3261</span>
3262                <span class="ps-cart_text ps-header-cart-text">(0) Cart</span>
3263                            </a>
3264        </div>
3265    </div>
3266    <style>
3267        /* Account Management Cart Modifications (start) */
3268        .ps-header-cart .ps-header-cart-badge {
3269            display: none;
3270            background: transparent;
3271            color: var(--header-icon-color, #000);
3272            position: absolute;
3273            top: 69%;
3274            left: 50%;
3275            transform: translate(-50%, -50%);
3276            padding: 0;
3277            font-size: 10px;
3278            font-weight: 600 !important;
3279            line-height: 1;
3280            pointer-events: none;
3281        }
3282
3283        .ps-header-cart .ps-my-account-button-wrapper {
3284            display: none;
3285        }
3286
3287        #header .ps-header-cart .ps-cart_button {
3288            border: 0;
3289            padding: 0;
3290        }
3291
3292        .ps-my-account-button {
3293            background: none;
3294            border: none;
3295            padding: 0;
3296        }
3297
3298        .ps-my-account-mob {
3299            display: inline-block;
3300        }
3301
3302        .ps-my-account-button-text {
3303            color: var(--my-account-color, #000);
3304        }
3305
3306        @media only screen and (min-width: 768px) {
3307            .account-management-dropdown-nav,
3308            .ps-header-cart-text {
3309                display: none;
3310            }
3311
3312            .ps-header-cart .ps-my-account-button-wrapper {
3313                position: relative;
3314                display: inline-block;
3315                float: left;
3316                margin-top: 3px;
3317                margin-right: 5px;
3318                cursor: pointer;
3319            }
3320
3321            .ps-header-cart .ps-my-account-button-text {
3322                text-align: right;
3323            }
3324
3325            .ps-header-cart .ps-my-account-button-wrapper {
3326                display: inline-block;
3327            }
3328
3329            .ps-header-cart .ps-my-account-button #ps-my-account_menu-label {
3330                font-weight: 500 !important;
3331                display: inline-block;
3332            }
3333
3334            .ps-header-cart .ps-header-cart-badge {
3335                display: block;
3336            }
3337
3338            .ps-header-cartBtn-wrapper {
3339                float: right;
3340            }
3341
3342            .ps-header-cartBtn {
3343                float: none;
3344                position: relative;
3345                margin: 0;
3346                padding: 0 10px;
3347                width: auto;
3348                height: auto;
3349                border: 0;
3350            }
3351
3352            .ps-header-cart-icon {
3353                width: 25px;
3354                height: 25px;
3355                margin: 0;
3356                vertical-align: middle;
3357                display: inline-flex;
3358                align-items: center;
3359                justify-content: center;
3360                position: relative;
3361                top: 2px;
3362            }
3363
3364            .ps-header-cart-icon svg {
3365                width: 100%;
3366                height: 100%;
3367                display: block;
3368            }
3369            .ps-header-cart-icon svg path {
3370                fill: var(--header-icon-color, var(--my-account-color, #000));
3371            }
3372        }
3373
3374        .ps-my-account-icon {
3375            width: 25px;
3376            height: 25px;
3377            margin: 0 6px;
3378            vertical-align: middle;
3379            display: inline-flex;
3380            align-items: center;
3381            justify-content: center;
3382        }
3383
3384        .ps-my-account-icon svg {
3385            width: 100%;
3386            height: 100%;
3387            display: block;
3388        }
3389
3390        .ps-my-account-icon svg path {
3391            fill: var(--header-icon-color, var(--my-account-color, #000));
3392        }
3393
3394        .ps-my-account-button svg {
3395            width: 25px;
3396            height: 25px;
3397        }
3398
3399        /* Account Management Cart Modifications (end) */
3400    </style>
3401    
3401<script type="text/javascript" src="https://promfiles.com/bloom/dist/frontend/base/default/js/dropdown-nav.5e3dac90.js" defer></script>
3401
3402</nav>
3403        <div class="clearfix"></div>
3404    </div>
3405
3406    <div class="clearfix"></div>
3407    <nav class="header-nav headerNav-wrapper">
3408        <div class="row headerNav-innerContainer">
3409            
3410<ul id="main-nav" class="navigation col-md-12">
3411	<li class="navToggle-container nav-itemWrapper nav-itemWrapper--navToggle">
3412		<!-- Nav Toggle -->
3413		<a href="#" class="nav-toggle nav-item" id="main-nav-toggle" aria-haspopup="true" aria-expanded="false">
3414			<i class="fa fa-reorder"></i>
3415			<span class="nav-show">Menu <i class="fa fa-caret-down"></i></span>
3416			<span class="nav-hide">Hide <i class="fa fa-caret-up"></i></span>
3417		</a>
3418	</li>
3419						<li class="nav-itemWrapper">
3420				<a class="nav-item" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/" target="_self"><span class="nav-itemText">Order Flowers</span></a>
3421			</li>
3422								<li class="dropdown nav-dropdown nav-itemWrapper nav-itemWrapper--dropdown dropdown-wrapper dropdown-wrapper--hover">
3423				<button class="dropdown-toggle nav-item nav-item--dropdown dropdown-nav-toggle" aria-expanded="false" aria-haspopup="true">
3424					<span class="nav-itemText">
3425						Occasions &#x25BE;
3426					</span>
3427				</button>
3428				<ul class="subnav dropdown-menu header-subnav dropdown-content dropdown-content--arrownav-desktop" role="menu">
3429											<li class="subnav-itemWrapper">
3430							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/prom-and-homecoming/prom/" target="_self">Prom and Homecoming</a>
3431						</li>
3432											<li class="subnav-itemWrapper">
3433							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/anniversary-flowers/" target="_self">Anniversary</a>
3434						</li>
3435											<li class="subnav-itemWrapper">
3436							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/autumn-flowers/" target="_self">Autumn</a>
3437						</li>
3438											<li class="subnav-itemWrapper">
3439							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/birthday-flowers/" target="_self">Birthday</a>
3440						</li>
3441											<li class="subnav-itemWrapper">
3442							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/congrats-flowers/" target="_self">Congrats</a>
3443						</li>
3444											<li class="subnav-itemWrapper">
3445							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/get-well-flowers/" target="_self">Get Well</a>
3446						</li>
3447											<li class="subnav-itemWrapper">
3448							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/i-m-sorry-flowers/" target="_self">I'm Sorry</a>
3449						</li>
3450											<li class="subnav-itemWrapper">
3451							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/just-because-flowers/" target="_self">Just Because</a>
3452						</li>
3453											<li class="subnav-itemWrapper">
3454							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/love-and-romance-flowers/" target="_self">Love and Romance</a>
3455						</li>
3456											<li class="subnav-itemWrapper">
3457							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/summer-flowers/" target="_self">Summer</a>
3458						</li>
3459											<li class="subnav-itemWrapper">
3460							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/sympathy-and-funeral-flowers/" target="_self">Sympathy and Funeral</a>
3461						</li>
3462											<li class="subnav-itemWrapper">
3463							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/thank-you-flowers/" target="_self">Thank You</a>
3464						</li>
3465											<li class="subnav-itemWrapper">
3466							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/wedding-flowers/" target="_self">Wedding</a>
3467						</li>
3468											<li class="subnav-itemWrapper">
3469							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/quinceanera-flowers/" target="_self">Quinceañera</a>
3470						</li>
3471											<li class="subnav-itemWrapper">
3472							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/charlottesville-florist-flower-delivery/retirement-flowers/" target="_self">Retirement</a>
3473						</li>
3474									</ul>
3475			</li>
3476								<li class="nav-itemWrapper">
3477				<a class="nav-item" href="https://hedgefineblooms.com/flower-subscriptions/" target="_self"><span class="nav-itemText">Subscriptions</span></a>
3478			</li>
3479								<li class="dropdown nav-dropdown nav-itemWrapper nav-itemWrapper--dropdown dropdown-wrapper dropdown-wrapper--hover">
3480				<button class="dropdown-toggle nav-item nav-item--dropdown dropdown-nav-toggle" aria-expanded="false" aria-haspopup="true">
3481					<span class="nav-itemText">
3482						Weddings &#x25BE;
3483					</span>
3484				</button>
3485				<ul class="subnav dropdown-menu header-subnav dropdown-content dropdown-content--arrownav-desktop" role="menu">
3486											<li class="subnav-itemWrapper">
3487							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/cms/index/gallery/" target="_self">Gallery</a>
3488						</li>
3489											<li class="subnav-itemWrapper">
3490							<a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/wedding-consultation-2" target="_self">Wedding Consultation</a>
3491						</li>
3492									</ul>
3493			</li>
3494								<li class="nav-itemWrapper">
3495				<a class="nav-item" href="https://hedgefineblooms.com/aboutus" target="_self"><span class="nav-itemText">Location</span></a>
3496			</li>
3497								<li class="nav-itemWrapper">
3498				<a class="nav-item" href="https://hedgefineblooms.com/team/" target="_self"><span class="nav-itemText">Meet the Owner</span></a>
3499			</li>
3500			    <li class="account-management-dropdown-nav dropdown nav-dropdown nav-itemWrapper nav-itemWrapper--dropdown dropdown-wrapper">
3501        <button class="dropdown-toggle nav-item nav-item--dropdown" aria-expanded="false" aria-haspopup="true">
3502            <span class="nav-itemText">My Account &#x25BE;</span>
3503        </button>
3504        <ul class="subnav dropdown-menu header-subnav dropdown-content dropdown-content--arrownav-desktop" role="menu">
3505                        <li class="subnav-itemWrapper">
3506                <a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/customer/account/login/">Log in</a>
3507            </li>
3508            <li class="subnav-itemWrapper">
3509                <a class="nav-item nav-item--subnav" href="https://hedgefineblooms.com/customer/account/create/">
3510                    Sign Up                </a>
3511            </li>
3512                    </ul>
3513    </li>
3514</ul>
3515        </div>
3516    </nav>
3517
3518        <div class="clearfix"></div>
3519</header>
3520    <noscript>
3521        <div class="global-site-notice noscript">
3522            <div class="notice-inner">
3523                <p>
3524                    <strong>JavaScript seems to be disabled in your browser.</strong><br />
3525                    You must have JavaScript enabled in your browser to utilize the functionality of this website.                </p>
3526            </div>
3527        </div>
3528    </noscript>
3529
3530<section id="content">
3531
3532    
3533
3534	<div class="row">
3535		
3536			</div>
3537	 
3538<div>
3539            <div class="store-faq row">
3540            <div class="product_details-about-designer col-md-12 about_us-about_designer">
3541                                <div class="about-designer-image">
3542                    <img
3543                        src="https://asset.bloomnation.com/c_fill,f_auto,h_123,q_auto,w_123/v1/vendor/5640/profile/20200313061520_file_5e6bcdb8dea7f.jpg"
3544                        srcset="https://asset.bloomnation.com/c_fill%2Cf_auto%2Ch_123%2Cq_auto%2Cw_123/v1/vendor/5640/profile/20200313061520_file_5e6bcdb8dea7f.jpg 1x, https://asset.bloomnation.com/c_fill%2Cdpr_2%2Cf_auto%2Ch_123%2Cq_auto%2Cw_123/v1/vendor/5640/profile/20200313061520_file_5e6bcdb8dea7f.jpg 2x"
3545                        alt="Karen Walker"
3546                        width="123"
3547                        height="123"
3548                        loading="lazy"
3549                    />
3550                </div>
3551                                <h3>Karen Walker</h3>
3552                <span>For over a quarter century, Karen Walker has been a proud and prominent resident of Charlottesville. Her love of culture, nurturing, and nature is shown through her involvement in the local community. Live Arts, New City Arts, The Women's Initiative, The Haven, and Wild Virginia are just a few of the organizations that Karen supports. As a foun
3552ding member of Wild Virginia, she has helped to take tremendous steps forward in preserving the Jefferson and George Washington forests. An animal lover, Karen has a special place in her heart for wild animals and advocates for increased protection for wildlife in the Blue Ridge. 
3553
3554Karen took ownership of Hedge Fine Blooms in 2007, and has worked with her talented team to make it the area’s premier retail and studio event florist.  Hedge is the perfect venue for her innate talent, winning personality, and delight in beautiful blooms. Karen particularly enjoys setting up the fresh flower table at the center of the store, which she considers a gift to the local community.
3555
3556Karen cares deeply about all of Hedge’s visitors, from her corporate clients and excited couples planning their weddings to visitors taking in the table and picking out a few stems to take back to the office (and canine visitors are always welcome as well, with treats kept behind the counter). Whether they have stopped by to smell the roses or are putting on an elaborate event, Karen wants everyone to have a truly meaningful experience at Hedge. She believes that flowers connect us with the beauty of the natural world and the innate artist in each of us, and that their presence makes every occasion (or non-occasion) at least a little bit better. </span>
3557            </div>
3558        </div>
3559    
3560    <div class="visuallyhidden">
3561                        <a href="https://hedgefineblooms.com/"><img src="https://asset.bloomnation.com/c_fit,f_auto,h_250,q_auto,w_285/v1/vendor/5640/profile/h/e/hedgefineblooms-logo.png" alt=""/></a>
3562    </div>
3563
3564    
3565<div class="map row store-contact">
3566    <div class="map-container-wrapper col-md-12">
3567                    <div class="map-container store-map__container"                  data-map-iframe='&quot;&lt;iframe\n                width=\&quot;640\&quot;\n                height=\&quot;100\&quot;\n                style=\&quot;border:0\&quot;\n                loading=\&quot;lazy\&quot;\n                allowfullscreen\n                referrerpolicy=\&quot;no-referrer-when-downgrade\&quot;\n                src=\&quot;https:\/\/www.google.com\/maps\/embed\/v1\/place?key=AIzaSyAHzvgUVsIok5CN4dCKwsA0YMgroVETihs&amp;q=115%204th%20St%20NE%2C%20Charlottesville%2C%20VA%2C%2022902%2C%20Hedge%20Fine%20Blooms&amp;zoom=15\&quot;\n                title=\&quot;Map showing location of the best florist in Charlottesville, VA: Hedge Fine Blooms\&quot;\n                class=\&quot;google-maps-iframe\&quot;&gt;\n            &lt;\/iframe&gt;&quot;'>
3568                                    <iframe
3569                width="640"
3570                height="100"
3571                style="border:0"
3572                loading="lazy"
3573                allowfullscreen
3574                referrerpolicy="no-referrer-when-downgrade"
3575                src="https://www.google.com/maps/embed/v1/place?key=AIzaSyAHzvgUVsIok5CN4dCKwsA0YMgroVETihs&amp;q=115%204th%20St%20NE%2C%20Charlottesville%2C%20VA%2C%2022902%2C%20Hedge%20Fine%20Blooms&amp;zoom=15"
3576                title="Map showing location of the best florist in Charlottesville, VA: Hedge Fine Blooms"
3577                class="google-maps-iframe">
3578            </iframe>                            </div>
3579        
3580        <div class="map-card">
3581            <div class="map-card__location">
3582                                    <h4 class="map-card__name">Hedge Fine Blooms</h4>
3583                
3584                <div class="map-card__details">
3585                                            <div class="map-card__detail map-card__detail--address store-contact__detail">
3586                            <span class="map-card__icon">
3587                                <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/icon-address.12b878e8.svg" alt="" role="presentation" loading="lazy">
3588                            </span>
3589                            <span class="map-card__detail-content">
3590                                                                    <a href="https://www.google.com/maps/dir/?api=1&origin=&destination=115+4th+St+NE%2C+Charlottesville%2C+VA%2C+22902" target="_blank">115 4th St NE, Charlottesville, VA, 22902<span class="sr-only">
3590(link opens in a new window)</span></a>
3591                                                            </span>
3592                        </div>
3593                    
3594                                            <div class="map-card__detail map-card__detail--phone store-contact__detail">
3595                            <span class="map-card__icon">
3596                                <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/icon-phone.aa991288.svg" alt="" role="presentation" loading="lazy">
3597                            </span>
3598                            <span class="map-card__detail-content">
3599                                <a aria-label="Store phone number: (434) 293-8825" href="tel:4342938825">(434) 293-8825</a>
3600                            </span>
3601                        </div>
3602                    
3603                                            <div class="map-card__detail map-card__detail--email store-contact__detail">
3604                            <span class="map-card__icon">
3605                                <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/icon-email.3b889a7a.svg" alt="" role="presentation" loading="lazy">
3606                            </span>
3607                            <span class="map-card__detail-content">
3608                                <a aria-label="Store email: [email protected]" href="mailto:[email protected]">[email protected]</a>
3609                            </span>
3610                        </div>
3611                                    </div>
3612            </div>
3613
3614            <div class="map-card__detail map-card__detail--hours">
3615                <h4 class="map-card__hours-header">Hours</h4>
3616                <div class="map-card__hours-row">
3617                    <span class="map-card__icon">
3618                        <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/icon-hours.269e7d5e.svg" alt="" role="presentation" loading="lazy">
3619                    </span>
3620                    <div class="map-card__hours store-hours" aria-label="Store Hours">
3621                                                                                <span class="map-card__hours-day store-hours__label">Monday</span>
3622                            <span class="map-card__hours-time store-hours__time">10 AM - 5 PM</span>
3623                                                                                <span class="map-card__hours-day store-hours__label">Tuesday</span>
3624                            <span class="map-card__hours-time store-hours__time">10 AM - 5 PM</span>
3625                                                                                <span class="map-card__hours-day store-hours__label">Wednesday</span>
3626                            <span class="map-card__hours-time store-hours__time">10 AM - 5 PM</span>
3627                                                                                <span class="map-card__hours-day store-hours__label">Thursday</span>
3628                            <span class="map-card__hours-time store-hours__time">10 AM - 5 PM</span>
3629                                                                                <span class="map-card__hours-day store-hours__label">Friday</span>
3630                            <span class="map-card__hours-time store-hours__time">10 AM - 5 PM</span>
3631                                                                            <span class="map-card__hours-day store-hours__label">Saturday</span>
3632                            <span class="map-card__hours-time store-hours__time">10 AM - 4 PM</span>
3633                                                    <span class="map-card__hours-day store-hours__label">Sunday</span>
3634                            <span class="map-card__hours-time store-hours__time">Closed</span>
3635                                            </div>
3636                </div>
3637            </div>
3638        </div>
3639    </div>
3640</div>
3641
3642<script>
3643document.addEventListener('DOMContentLoaded', function() {
3644    var mapContainers = document.querySelectorAll('.store-map__container[data-lazy-load="true"]');
3645    mapContainers.forEach(function(container) {
3646        var observer = new IntersectionObserver(function(entries) {
3647            entries.forEach(function(entry) {
3648                if (entry.isIntersecting) {
3649                    var iframeHtml = JSON.parse(container.dataset.mapIframe);
3650                    container.innerHTML = iframeHtml;
3651                    observer.disconnect();
3652                }
3653            });
3654        });
3655
3656        observer.observe(container);
3657    });
3658});
3659</script>
3659
3660
3661    
3662            <div class="store-faq row">
3663            <div class="col-md-12">
3664                <h1 class="store-faq__title">About Hedge Fine Blooms</h1>
3665                <span class="store-faq__info">
3666                    Hedge Fine Blooms is Charlottesville's premier custom florist, providing a diverse array of floral designs and a shopping experience inspired by a European flower market. Our floral artists use only high quality blooms and offer their expertise for unique arrangements, weddings and other events.<br />
3667<br />
3668Originally founded in 2001, Hedge was purchased in 2007 by Karen Walker. A Vermont native and long-term Charlottesville resident, Karen is a talented designer with over a decade of experience creating arrangements and orchestrating events. She is constantly sourcing new flowers from an array of suppliers and growers, as well as occasionally foraging on her own property! Residing on a farm on the outskirts of Charlottesville, Karen is always looking for ways to further her commitment to sustainability. She is an enthusiastic supporter of local growers and works hard to support Virginia businesses.<br />
3669<br />
3670Karen's creative and talented design staff is singularly focused to provide you with special floral presentations that help you mark birthdays, anniversaries, holidays, or even no reason at all! Our goal is to provide happiness through our flowers, and we hope that blooms from Hedge will become an established routine in your everyday life, as well as beautiful markers of special occasions. We are devoted to pleasing our clients through laughter, exquisite designs, and quality service.                </span>
3671                                    <div class="store-faq__faq">
3672                        <h2 class="store-faq__faq-title">Frequently Asked Questions - FAQs</h2>
3673                        <div class="store-faq__faq-items">
3674                                                            <details class="faq">
3675                                    <summary class="faq__q">
3676                                        Do you offer same-day flower delivery in Charlottesville?                                    </summary>
3677                                    <div class="faq__content">
3678                                        <div class="faq__a">
3679                                            <div class="faq__a-inner">
3680                                                Yes, we provide same-day delivery in Charlottesville.                                            </div>
3681                                        </div>
3682                                    </div>
3683                                </details>
3684                                                            <details class="faq">
3685                                    <summary class="faq__q">
3686                                        How much does flower delivery cost in Charlottesville?                                    </summary>
3687                                    <div class="faq__content">
3688                                        <div class="faq__a">
3689                                            <div class="faq__a-inner">
3690                                                Delivery fees vary depending on the location and distance. At checkout, you’ll see the exact cost for your area.                                            </div>
3691                                        </div>
3692                                    </div>
3693                                </details>
3694                                                            <details class="faq">
3695                                    <summary class="faq__q">
3696                                        Can I order online or by phone?                                    </summary>
3697                                    <div class="faq__content">
3698                                        <div class="faq__a">
3699                                            <div class="faq__a-inner">
3700                                                Yes! You can order online anytime at hedgefineblooms.com or by phone at (434) 293-8825 during our business hours (Mon-Fri 10:00 AM-5:00 PM, Sat 10:00 AM-4:00 PM, Sun Closed).                                            </div>
3701                                        </div>
3702                                    </div>
3703                                </details>
3704                                                            <details class="faq">
3705                                    <summary class="faq__q">
3706                                        What forms of payment do you accept?                                    </summary>
3707                                    <div class="faq__content">
3708                                        <div class="faq__a">
3709                                            <div class="faq__a-inner">
3710                                                We accept major credit/debit cards, Apple Pay, Google Pay, Link, bank account payments, and Afterpay at our online checkout. For in-store or phone orders, we take cards, House Accounts, cash, and checks.                                            </div>
3711                                        </div>
3712                                    </div>
3713                                </details>
3714                                                            <details class="faq">
3715                                    <summary class="faq__q">
3716                                        Can I request certain flowers or colors?                                    </summary>
3717                                    <div class="faq__content">
3718                                        <div class="faq__a">
3719                                            <div class="faq__a-inner">
3720                                                Of course! You can let us know your preferred flowers or color palette. While some blooms may be seasonal or limited, we’ll do our best to create an arrangement that reflects your vision.                                            </div>
3721                                        </div>
3722                                    </div>
3723                                </details>
3724                                                            <details class="faq">
3725                                    <summary class="faq__q">
3726                                        What happens if the recipient isn’t home?                                    </summary>
3727                                    <div class="faq__content">
3728                                        <div class="faq__a">
3729                                            <div class="faq__a-inner">
3730                                                If the recipient isn’t available, our driver will either leave the flowers in a safe spot or, if needed, arrange a re-delivery at a later time.                                            </div>
3731                                        </div>
3732                                    </div>
3733                                </details>
3734                                                            <details class="faq">
3735                                    <summary class="faq__q">
3736                                        Do you deliver flowers to hospitals, office
3736s, or event venues in Charlottesville?                                    </summary>
3737                                    <div class="faq__content">
3738                                        <div class="faq__a">
3739                                            <div class="faq__a-inner">
3740                                                Yes, we deliver to homes, hospitals, businesses, and venues across Charlottesville. Please provide the full address and any delivery notes during checkout.                                            </div>
3741                                        </div>
3742                                    </div>
3743                                </details>
3744                                                            <details class="faq">
3745                                    <summary class="faq__q">
3746                                        Can I include add-ons with my bouquet or arrangement?                                    </summary>
3747                                    <div class="faq__content">
3748                                        <div class="faq__a">
3749                                            <div class="faq__a-inner">
3750                                                Absolutely! We offer a variety of flower delivery add-ons to personalize your arrangement such as small gifts or keepsakes. You’ll see available add-ons on each product page and again at checkout.                                            </div>
3751                                        </div>
3752                                    </div>
3753                                </details>
3754                                                            <details class="faq">
3755                                    <summary class="faq__q">
3756                                        How do I make my flowers last longer?                                    </summary>
3757                                    <div class="faq__content">
3758                                        <div class="faq__a">
3759                                            <div class="faq__a-inner">
3760                                                Trim the stems, place them in fresh water, and keep the arrangement in a cool spot away from direct sunlight to extend their life.                                            </div>
3761                                        </div>
3762                                    </div>
3763                                </details>
3764                                                            <details class="faq">
3765                                    <summary class="faq__q">
3766                                        Why choose flowers by Hedge Fine Blooms?                                    </summary>
3767                                    <div class="faq__content">
3768                                        <div class="faq__a">
3769                                            <div class="faq__a-inner">
3770                                                What sets us apart is the care in every detail: fresh, quality blooms, thoughtful design, and a wide online selection. We’ve got plenty to choose from for the big days—Valentine’s Day, Mother’s Day, Thanksgiving, and Christmas—in Charlottesville, and we don’t stop there. From everyday bouquets to weddings and events, we’ve got you covered. Have something in mind? Tell us your colors or favorite flowers and we’ll make it happen.                                            </div>
3771                                        </div>
3772                                    </div>
3773                                </details>
3774                                                    </div>
3775                                                    <div class="store-faq__faq-more">
3776                                <a href="https://hedgefineblooms.com/faq/" class="store-faq__faq-more-link">
3777                                    Read More <i class="fa fa-arrow-right" aria-hidden="true"></i>
3778                                </a>
3779                            </div>
3780                                            </div>
3781                    
3781<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Do you offer same-day flower delivery in Charlottesville?","acceptedAnswer":{"@type":"Answer","text":"Yes, we provide same-day delivery in Charlottesville."}},{"@type":"Question","name":"How much does flower delivery cost in Charlottesville?","acceptedAnswer":{"@type":"Answer","text":"Delivery fees vary depending on the location and distance. At checkout, you\u2019ll see the exact cost for your area."}},{"@type":"Question","name":"Can I order online or by phone?","acceptedAnswer":{"@type":"Answer","text":"Yes! You can order online anytime at hedgefineblooms.com or by phone at (434) 293-8825 during our business hours (Mon-Fri 10:00 AM-5:00 PM, Sat 10:00 AM-4:00 PM, Sun Closed)."}},{"@type":"Question","name":"What forms of payment do you accept?","acceptedAnswer":{"@type":"Answer","text":"We accept major credit/debit cards, Apple Pay, Google Pay, Link, bank account payments, and Afterpay at our online checkout. For in-store or phone orders, we take cards, House Accounts, cash, and checks."}},{"@type":"Question","name":"Can I request certain flowers or colors?","acceptedA
3781nswer":{"@type":"Answer","text":"Of course! You can let us know your preferred flowers or color palette. While some blooms may be seasonal or limited, we\u2019ll do our best to create an arrangement that reflects your vision."}},{"@type":"Question","name":"What happens if the recipient isn\u2019t home?","acceptedAnswer":{"@type":"Answer","text":"If the recipient isn\u2019t available, our driver will either leave the flowers in a safe spot or, if needed, arrange a re-delivery at a later time."}},{"@type":"Question","name":"Do you deliver flowers to hospitals, offices, or event venues in Charlottesville?","acceptedAnswer":{"@type":"Answer","text":"Yes, we deliver to homes, hospitals, businesses, and venues across Charlottesville. Please provide the full address and any delivery notes during checkout."}},{"@type":"Question","name":"Can I include add-ons with my bouquet or arrangement?","acceptedAnswer":{"@type":"Answer","text":"Absolutely! We offer a variety of flower delivery add-ons to personalize your arrangement such as small gifts or keepsakes. You\u2019ll see available add-ons on each product page and again at checkout."}},{"@type":"Question","name":"How do I make my flowers last longer?","acceptedA
3781nswer":{"@type":"Answer","text":"Trim the stems, place them in fresh water, and keep the arrangement in a cool spot away from direct sunlight to extend their life."}},{"@type":"Question","name":"Why choose flowers by Hedge Fine Blooms?","acceptedAnswer":{"@type":"Answer","text":"What sets us apart is the care in every detail: fresh, quality blooms, thoughtful design, and a wide online selection. We\u2019ve got plenty to choose from for the big days\u2014Valentine\u2019s Day, Mother\u2019s Day, Thanksgiving, and Christmas\u2014in Charlottesville, and we don\u2019t stop there. From everyday bouquets to weddings and events, we\u2019ve got you covered. Have something in mind? Tell us your colors or favorite flowers and we\u2019ll make it happen."}}]}</script>
3781                            </div>
3782        </div>
3783    
3784    
3785<div class="about-us-nlp row">
3786    <div class="divider divider-padding"><br/></div>
3787    <section class="about-us-nlp__section about-us-nlp__section--neighborhoods col-md-12">
3788        <h2 class="about-us-nlp__header">Where we deliver</h2>
3789        <div class="about-us-nlp__content">
3790                            <p>Hedge Fine Blooms proudly serves                     <a href="/nearby/charlottesvle/">Charlottesvle</a>, <a href="/nearby/chville/">Chville</a>, <a href="/nearby/newcomb-hall/">Newcomb Hall</a>, <a href="/nearby/eheart/">Eheart</a>, <a href="/nearby/st-george/">St George</a>, <a href="/nearby/zion-crossrds/">Zion Crossrds</a>, <a href="/nearby/sherando/">Sherando</a>, <a href="/nearby/lake-monticello/">Lake Monticello</a>, <a href="/nearby/wildwood/">Wildwood</a>, <a href="/nearby/advance-mills/">Advance Mills</a>, <a href="/nearby/akunia/">Akunia</a>, <a href="/nearby/scottsville/">Scottsville</a>, <a href="/nearby/yancey-mills/">Yancey Mills</a>, <a href="/nearby/boonesville/">Boonesville</a>, and <a href="/nearby/nortonsville/">Nortonsville</a>.                </p>
3791                                        <p>
3792                                        Hedge Fine Blooms also delivers to the following cities: Charlottesville, Earlysville, Esmont, Keene, Lyndhurst, Ruckersville, Troy, Crimora, Howardsville, Covesville, Boswells Tavern, Zion, Greenwood, Cobham, North Garden, Lake Montcelo, Dillwyn, Monticello, University, Burnleys, Crozet, Faber, Gordonsville, Campbell, Cismont, Shadwell, Wintergreen, South Garden, Bybee, Palmyra, Wilmington, Stanardsville, Waynesboro, Andersonville, Grottoes, Elkton, Afton, Barboursville, Dyke, Free Union, Mission Home, Zion Crossroads, Boyd Tavern, Keswick, Nellysford, Cunningham, Schuyler, Park, Arvonia, Sprouses Corn, Sprouses Corner                </p>
3793                    </div>
3794    </section>
3795</div>
3796</div>
3797</section>
3798
3799        <section id="footer" class="footer-about-us">
3800        <div class="social_media footer-social_media">
3801                            <div class="about-us-page-premier-florist">
3802                    <div class="about-us-store-photo-container">
3803                        <img
3804                            src="https://asset.bloomnation.com/c_fill,f_auto,h_102,q_auto,w_102/v1/vendor/5640/profile/20170120080623_file_58826dc000333.png"
3805                            alt="Hedge Fine Blooms store photo"
3806                            height="102"
3807                            width="102"
3808                            loading="lazy"
3809                            class="about-us-store-photo"
3810                        >
3811                    </div>
3812                    <p class="aboutus-bloomnationRep-text" style="margin-top: 1rem;">
3813                        Hedge Fine Blooms is a Premier Florist on <a href="https://www.bloomnation.com/">BloomNation</a>.                    </p>
3814                    <p>
3815                        <a href="https://www.bloomnation.com/join" target="_blank">Learn  what it means to be a Premier Florist and how you can become one <span class="sr-only">(link opens in a new window)</span></a>.                    </p>
3816                    <a href="https://www.bloomnation.com/" class="aboutus-logo-wrapper" aria-label="BloomNation Home Page">
3817                        <img class="bloomnation-logo-about-us-page"
3818                             src="https://asset.bloomnation.com/v1/bloomnation/black_vertical_logo.svg"
3819                             alt="BloomNation Member"
3820                             loading="lazy"
3821                             width="160"
3822                             height="72"
3823                        />
3824                    </a>
3825                </div>
3826            
3827            
3828            <div class="row social-innerContainer">
3829                                    <a href="https://www.instagram.com/hedge.fineblooms/" target="_new"
3830                       class="instagram footer-socialItem" aria-label="visit our Instagram page">
3831                        <span class="footer-socialName">Instagram </span>
3832                        <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/instagram.6ebb7516.svg" alt="" />
3833                    </a>
3834                
3835                                    <a href="https://www.facebook.com/hedgefinebloomscville/" target="_new"
3836                       class="facebook footer-socialItem" aria-label="visit our Facebook page">
3837                        <span class="footer-socialName">Facebook </span>
3838                        <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/facebook.72c20f3c.svg" alt="" />
3839                    </a>
3840                
3841                
3842                
3843                                    <a href="https://www.pinterest.com/hedgefineblooms/" target="_new"
3844                       class="pinterest footer-socialItem" aria-label="visit our Pinterest page">
3845                        <span class="footer-socialName">Pinterest </span>
3846                        <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/pinterest.dc6bd10d.svg" alt="" />
3847                    </a>
3848                
3849                                    <a href="https://www.google.com/maps?cid=13475751263381425930" target="_new"
3850                       class="googleplaces footer-socialItem" aria-label="visit our Google page">
3851                        <span class="footer-socialName">Google</span>
3852                        <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/google.9795e4d3.svg" alt="" />
3853                    </a>
3854                
3855                                    <a href="https://www.yelp.com/biz/hedge-fine-blooms-charlottesville" target="_new"
3856                       class="yelp footer-socialItem" aria-label="visit our Yelp page">
3857                        <span class="footer-socialName">Yelp </span>
3858                        <img src="https://promfiles.com/bloom/dist/frontend/premiumsites/bloom/images/pages/footer/social/home/yelp.3792410e.svg" alt="" />
3859                    </a>
3860                
3861                
3862                
3863                
3864                <div class="clearfix visible-xs visible-sm"><br/></div>
3865
3866                            </div>
3867        </div>
3868
3869                <div class="footer-more_information footer-info">
3870            <div class="footer-info__locations">
3871                                    <div class="footer-info__location">
3872                        <div class="footer-info__col footer-info__col--address footer-infoItem footer-infoItem--address">
3873                                                            <h4 class="footer-info__heading infoItem-header infoItem-header--store">Location</h4>
3874                                                                                                                        <p class="footer-info__address infoItem-text">
3875                                                                            <a href="https://www.google.com/maps/dir/?api=1&origin=&destination=115+4th+St+NE%2C+Charlottesville%2C+VA%2C+22902" target="_blank">115 4th St NE<br>Charlottesville, VA 22902<span class="sr-only">(link opens in a new window)</span></a>
3876                                                                    </p>
3877                                                    </div>
3878                        <div class="footer-info__col footer-info__col--contact footer-infoItem footer-infoItem--email">
3879                                                            <h4 class="footer-info__heading infoItem-header infoItem-header--email">Contact</h4>
3880                                                                                        <p class="infoItem-text infoItem-text--phone"><a href="tel:4342938825">(434) 293-8825</a></p>
3881                                                                                        <p class="infoItem-text infoItem-text--email"><a href="mailto:[email protected]">[email protected]</a></p>
3882                                                    </div>
3883                    </div>
3884                            </div>
3885
3886            <div class="footer-info__hours footer-infoItem footer-infoItem--hours">
3887                <h4 class="footer-info__heading infoItem-header infoItem-header--hours">Hours</h4>
3888                <div class="footer-info__hours-grid store-contact__column store-contact__column--hours store-hours">
3889                                                                    <sp
3889an class="footer-info__hours-day store-hours__label">Monday</span>
3890                        <span class="footer-info__hours-time">10 AM - 5 PM</span>
3891                                                                    <span class="footer-info__hours-day store-hours__label">Tuesday</span>
3892                        <span class="footer-info__hours-time">10 AM - 5 PM</span>
3893                                                                    <span class="footer-info__hours-day store-hours__label">Wednesday</span>
3894                        <span class="footer-info__hours-time">10 AM - 5 PM</span>
3895                                                                    <span class="footer-info__hours-day store-hours__label">Thursday</span>
3896                        <span class="footer-info__hours-time">10 AM - 5 PM</span>
3897                                                                    <span class="footer-info__hours-day store-hours__label">Friday</span>
3898                        <span class="footer-info__hours-time">10 AM - 5 PM</span>
3899                                                                <span class="footer-info__hours-day store-hours__label">Saturday</span>
3900                        <span class="footer-info__hours-time">10 AM - 4 PM</span>
3901                                            <span class="footer-info__hours-day store-hours__label">Sunday</span>
3902                        <span class="footer-info__hours-time">Closed</span>
3903                                    </div>
3904            </div>
3905        </div>
3906
3907        <section id="super-footer">
3908            <div class="footer-block footer-copyright">
3909                <div id="copyright-info" class="copyright__links">
3910            <a class="copyright__link copyright__faq-link"
3911            href="https://hedgefineblooms.com/faq/"
3912        >
3913            FAQs
3914        </a>
3915        <span>&middot;</span>
3916    
3917    <a class="copyright__link"
3918       href="https://hedgefineblooms.com/terms-of-service/"
3919    >
3920        Terms of Service
3921    </a>
3922    <span>&middot;</span>
3923
3924    <a class="copyright__link"
3925       href="https://hedgefineblooms.com/privacy-policy/"
3926    >
3927        Privacy Policy
3928    </a>
3929    <span>&middot;</span>
3930
3931    <a class="copyright__link"
3932       href="https://hedgefineblooms.com/policies/"
3933    >
3934        Policies
3935    </a>
3936    <span>&middot;</span>
3937
3938            <a class="copyright__link"
3939           href="https://hedgefineblooms.com/where-we-deliver"
3940        >
3941            Where We Deliver
3942        </a>
3943        <span>&middot;</span>
3944    
3945    <a class="copyright__link"
3946       href="https://hedgefineblooms.com/accessibility-statement/"
3947    >
3948        Accessibility
3949    </a>
3950    <span>&middot;</span>
3951
3952    <a class="copyright__link"
3953        href="/sitemap/"
3954    >
3955        Sitemap
3956    </a>
3957    <p class="copyright__all-rights-reserved">All Rights Reserved &copy;</p>
3958</div>
3959            </div>
3960        </section>
3961
3962        
3963    </section>
3964    <!-- [START] Custom HTML --><!-- [END] Custom HTML -->
3964<script>
3965window.dataLayer = window.dataLayer || [];
3966
3967</script>
3967 <div class="announcement" style="display: none">
3968    <div class="announcement-bg"></div>
3969    <div class="splash">
3970        <div class="splash-wrapper">
3971            <div>
3972                <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>
3973            </div>
3974        </div>
3975    </div>
3976</div>
3977 </div>
3978
3979<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"0ac16663c3","applicationID":"6732204,2307825","transactionName":"YFIHZkFZXxAEUhUIDlkYJkdATF4OSlIMEk5eWQFXSxdQAQpEFRQS","queueTime":0,"applicationTime":78,"atts":"TBUQEAlDTE9HUENbGkpK","errorBeacon":"bam.nr-data.net","agent":""}</script>
3979</body>
3980</html>
3981
3982

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.