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&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+ '>m_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>m_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 ▾</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 ▾</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 ▾ 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 ▾ 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 ▾</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='"<iframe\n width=\"640\"\n height=\"100\"\n style=\"border:0\"\n loading=\"lazy\"\n allowfullscreen\n referrerpolicy=\"no-referrer-when-downgrade\"\n src=\"https:\/\/www.google.com\/maps\/embed\/v1\/place?key=AIzaSyAHzvgUVsIok5CN4dCKwsA0YMgroVETihs&q=115%204th%20St%20NE%2C%20Charlottesville%2C%20VA%2C%2022902%2C%20Hedge%20Fine%20Blooms&zoom=15\"\n title=\"Map showing location of the best florist in Charlottesville, VA: Hedge Fine Blooms\"\n class=\"google-maps-iframe\">\n <\/iframe>"'> 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&q=115%204th%20St%20NE%2C%20Charlottesville%2C%20VA%2C%2022902%2C%20Hedge%20Fine%20Blooms&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>·</span> 3916 3917 <a class="copyright__link" 3918 href="https://hedgefineblooms.com/terms-of-service/" 3919 > 3920 Terms of Service 3921 </a> 3922 <span>·</span> 3923 3924 <a class="copyright__link" 3925 href="https://hedgefineblooms.com/privacy-policy/" 3926 > 3927 Privacy Policy 3928 </a> 3929 <span>·</span> 3930 3931 <a class="copyright__link" 3932 href="https://hedgefineblooms.com/policies/" 3933 > 3934 Policies 3935 </a> 3936 <span>·</span> 3937 3938 <a class="copyright__link" 3939 href="https://hedgefineblooms.com/where-we-deliver" 3940 > 3941 Where We Deliver 3942 </a> 3943 <span>·</span> 3944 3945 <a class="copyright__link" 3946 href="https://hedgefineblooms.com/accessibility-statement/" 3947 > 3948 Accessibility 3949 </a> 3950 <span>·</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 ©</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.