.site-contact{display:inline-flex!important;align-items:center;justify-content:center;padding:13px 23px!important;border:1px solid #ffffff99!important;border-radius:30px!important;background:#ffffff16!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;box-shadow:inset 0 1px 0 #ffffff25!important;color:#fff8ef!important;transition:background .2s,border-color .2s!important}@media(min-width:801px) and (hover:hover){.site-contact:hover{background:#ffffff30!important;border-color:white!important}}
#vibrance-contact{position:fixed;inset:18px 18px 18px auto;margin:0;width:min(500px,calc(100vw - 36px));height:calc(100svh - 36px);max-height:none;max-width:none;padding:50px 38px;border:0;border-radius:28px;background:#faf6f2;color:#493642;font:14px/1.5 -apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;overflow:auto;transform:translateX(calc(100% + 40px));filter:blur(8px);opacity:0;transition:transform .85s cubic-bezier(.2,.75,.2,1),filter .85s,opacity .5s}
#vibrance-contact.is-entered{transform:none;filter:none;opacity:1}#vibrance-contact::backdrop{background:#251d2800;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);transition:background .85s,backdrop-filter .85s,-webkit-backdrop-filter .85s}#vibrance-contact.is-entered::backdrop{background:#251d2840;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
#vibrance-contact .contact-close{position:absolute;right:25px;top:24px;background:transparent;border:1px solid #49364233;border-radius:50%;width:36px;height:36px;color:#493642;cursor:pointer;font-size:20px}
#vibrance-contact .contact-eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase}#vibrance-contact h2{font:normal 48px/1.05 Georgia,serif;letter-spacing:-1.8px;margin:25px 0 10px}#vibrance-contact p{color:#726c78}#vibrance-contact .contact-direct{display:flex;gap:10px;margin-top:24px}#vibrance-contact .contact-direct a{padding:15px 22px;border-radius:28px;text-align:center;text-decoration:none;flex:1;background:#493642;color:white}#vibrance-contact .contact-direct .email-action{background:#ee6b7b}
#vibrance-contact form{display:grid;gap:17px;margin-top:27px}#vibrance-contact label{display:grid;gap:8px;font-size:11px}#vibrance-contact input,#vibrance-contact textarea{width:100%;padding:13px 0;background:transparent;border:0;border-bottom:1px solid #ded6df;color:#493642;border-radius:0;font-family:inherit;font-size:14px;line-height:1.5}#vibrance-contact textarea{resize:vertical;min-height:85px}#vibrance-contact .contact-send{background:#493642;color:white;border:0;border-radius:28px;padding:16px 22px;text-align:left;font:inherit;cursor:pointer}#vibrance-contact button:disabled{opacity:.45;cursor:default}#vibrance-contact .contact-status{font-size:11px;min-height:16px}#vibrance-contact a:focus-visible,#vibrance-contact button:focus-visible,#vibrance-contact input:focus-visible,#vibrance-contact textarea:focus-visible{outline:2px solid #ee6b7b;outline-offset:4px}
@media(max-width:760px){.site-contact{padding:10px 17px!important;font-size:11px!important}#vibrance-contact{inset:12px;margin:0;width:calc(100vw - 24px);height:calc(100svh - 24px);padding:52px 26px 28px}#vibrance-contact h2{font-size:43px}}
#vibrance-contact .contact-close,#vibrance-contact .contact-direct a,#vibrance-contact .contact-send{transition:background .22s,color .22s,border-color .22s,transform .22s,box-shadow .22s}
@media(min-width:801px) and (hover:hover){#vibrance-contact .contact-close:hover{background:#493642;color:#fff8ef;border-color:#493642;transform:scale(1.06)}#vibrance-contact .call-action:hover,#vibrance-contact .contact-send:not(:disabled):hover{background:#6b4a60;transform:translateY(-2px);box-shadow:0 5px 14px #49364220}#vibrance-contact .contact-direct .email-action:hover{background:#da586a;transform:translateY(-2px);box-shadow:0 5px 14px #ee6b7b24}}
#vibrance-contact form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 18px}#vibrance-contact label{min-width:0;gap:5px}#vibrance-contact .contact-wide{grid-column:1/-1}#vibrance-contact input,#vibrance-contact textarea{outline:none!important;box-shadow:none!important;transition:border-color .2s}#vibrance-contact input:focus,#vibrance-contact textarea:focus{outline:none!important;border-bottom-color:#493642;box-shadow:0 1px 0 #493642!important}#vibrance-contact .field-error{color:#805167;font-size:11px;line-height:1.4}#vibrance-contact .field-error:empty{display:none}#vibrance-contact .contact-hint{font-size:10px;color:#786670;line-height:1.4}#vibrance-contact .contact-status{margin:0;min-height:0}#vibrance-contact .contact-delivery{font-size:11px;margin:0;color:#786670}#vibrance-contact textarea{min-height:65px}
#vibrance-contact label{align-content:start}#vibrance-contact a:focus-visible,#vibrance-contact button:focus-visible{outline-color:#99526f}
@media(max-width:460px){#vibrance-contact label:has(input[type=tel]),#vibrance-contact label:has(input[type=email]){grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){#vibrance-contact,#vibrance-contact::backdrop,#vibrance-contact button,#vibrance-contact a{transition:none!important}}

/* Mobile Contact grows out of the menu edge, leaving navigation available. */
#vibrance-contact.mobile-menu-panel{inset:0 0 var(--contact-menu-height,calc(76px + env(safe-area-inset-bottom)));z-index:45;margin:0;width:100%;height:auto;max-height:none;border-radius:0;padding:52px 24px 28px;overscroll-behavior:contain;transform:translateY(calc(100% + 2px));opacity:1;filter:none;clip-path:inset(0);transition:transform .85s cubic-bezier(.2,.75,.2,1)}
#vibrance-contact.mobile-menu-panel.is-entered{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){#vibrance-contact.mobile-menu-panel{transition:none}}

/* Selected mobile Contact option 1: stationary actions over a scrolling form. */
#vibrance-contact.mobile-menu-panel{padding:0;background:#faf6f2;scroll-padding-top:210px}
#vibrance-contact.mobile-menu-panel .contact-pinned-header{position:sticky;top:0;z-index:2;padding:26px 24px 18px;background:#faf6f2;border-bottom:1px solid #ded4d9}
#vibrance-contact.mobile-menu-panel .contact-eyebrow{display:block;line-height:12px}
#vibrance-contact.mobile-menu-panel h2{font-size:39px;line-height:1.05;margin:12px 0 5px}
#vibrance-contact.mobile-menu-panel .contact-intro{font-size:13px;line-height:18px;margin:0}
#vibrance-contact.mobile-menu-panel .contact-direct{margin-top:17px;gap:11px}
#vibrance-contact.mobile-menu-panel .contact-direct a{padding:13px 15px;line-height:19px}
#vibrance-contact.mobile-menu-panel .contact-close{top:12px;right:23px;width:34px;height:34px}
#vibrance-contact.mobile-menu-panel form{margin:0;padding:28px 24px;gap:22px 18px}
#vibrance-contact.mobile-menu-panel .contact-hint,#vibrance-contact.mobile-menu-panel .contact-delivery{display:none}
#vibrance-contact.mobile-menu-panel textarea{box-sizing:border-box;resize:none;overflow-y:auto;overscroll-behavior:contain;line-height:20px;height:102px;min-height:102px;max-height:102px;padding:10px 12px;border:1px solid #ded4d9;border-radius:10px;scrollbar-width:thin}
#vibrance-contact.mobile-menu-panel textarea:focus{box-shadow:none!important;border-color:#99758a}
#vibrance-contact.mobile-menu-panel .contact-send{background:#ee6b7b;text-align:center}
#vibrance-contact.mobile-menu-panel .managed-contact-info{margin:20px 24px 0!important}
@media(min-width:801px) and (hover:hover){#vibrance-contact.mobile-menu-panel .contact-send:not(:disabled):hover{background:#db5c6d}}

#vibrance-contact.mobile-menu-panel .contact-message-frame{height:102px;padding:10px 12px;border:1px solid #ded4d9;border-radius:10px;overflow:hidden}
#vibrance-contact.mobile-menu-panel .contact-message-frame:focus-within{border-color:#99758a}
#vibrance-contact.mobile-menu-panel .contact-message-frame textarea{display:block;height:80px;min-height:80px;max-height:80px;padding:0;border:0;border-radius:0;background:transparent;line-height:20px}

/* Compact mobile heading makes the enquiry fields easier to reach. */
#vibrance-contact.mobile-menu-panel{scroll-padding-top:140px}
#vibrance-contact.mobile-menu-panel .contact-pinned-header{padding:20px 24px 16px}
#vibrance-contact.mobile-menu-panel .contact-eyebrow,#vibrance-contact.mobile-menu-panel .contact-intro{display:none}
#vibrance-contact.mobile-menu-panel h2{font-size:31px;line-height:1.1;margin:0;padding-right:42px;letter-spacing:-.8px}
#vibrance-contact.mobile-menu-panel .contact-close{top:19px}
#vibrance-contact.mobile-menu-panel .contact-direct{margin-top:15px}
#vibrance-contact .contact-hours-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left}
#vibrance-contact .contact-hours-toggle:after{content:'';flex:none;width:7px;height:7px;margin:0 3px 0 6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .32s cubic-bezier(.2,.75,.2,1)}
#vibrance-contact .contact-hours-toggle[aria-expanded=true]:after{transform:rotate(45deg)}
#vibrance-contact .contact-hours-today{font-size:11px;color:#786670;margin-left:auto}
#vibrance-contact .contact-hours-week{overflow:hidden;padding:0;min-height:0}
#vibrance-contact .contact-hours-content{padding-top:15px}
#vibrance-contact .contact-hours-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:12px}
#vibrance-contact .contact-hours-row.is-today{color:#99526f;font-weight:600}
#vibrance-contact .contact-address{display:block;color:inherit;text-decoration:underline;text-underline-offset:3px;font-size:12px;line-height:1.5;margin:12px 0 2px}
#vibrance-contact.mobile-menu-panel .managed-contact-info{margin:0 24px!important;padding:17px 0;border-bottom:1px solid #ded4d9}

/* Touch layouts retain the neutral close border, without hover or focus rings. */
#vibrance-contact.mobile-menu-panel .contact-close:focus{outline:none;box-shadow:none}
@media(prefers-reduced-motion:reduce){#vibrance-contact .contact-hours-toggle:after{transition:none}}

/* End the sheet with the same 22px spacing used above Send enquiry. */
#vibrance-contact.mobile-menu-panel form{padding-bottom:22px}
#vibrance-contact.mobile-menu-panel .contact-status:empty{display:none}
#vibrance-contact.mobile-menu-panel{overscroll-behavior:none}

/* Desktop contact stays within the viewport; only long message text scrolls. */
@media(min-width:801px){
 #vibrance-contact[open]:not(.mobile-menu-panel){display:flex;flex-direction:column;overflow:hidden;padding:clamp(20px,4svh,40px) 32px}
 #vibrance-contact:not(.mobile-menu-panel) h2{flex:none;font-size:clamp(32px,5svh,48px);margin:clamp(10px,2svh,20px) 0 8px}
 #vibrance-contact:not(.mobile-menu-panel) .contact-intro{flex:none;margin:0}
 #vibrance-contact:not(.mobile-menu-panel) .contact-direct{flex:none;margin-top:clamp(10px,2svh,20px)}
 #vibrance-contact:not(.mobile-menu-panel) .contact-direct a{padding:10px 16px}
 #vibrance-contact:not(.mobile-menu-panel) form{flex:1;min-height:0;grid-template-rows:auto auto minmax(60px,1fr) auto auto auto;gap:clamp(5px,1.2svh,12px) 18px;margin-top:clamp(10px,2svh,20px)}
 #vibrance-contact:not(.mobile-menu-panel) input{padding:clamp(6px,1.2svh,12px) 0}
 #vibrance-contact:not(.mobile-menu-panel) label:has(textarea){min-height:0;grid-template-rows:auto minmax(0,1fr) auto}
 #vibrance-contact:not(.mobile-menu-panel) .contact-message-frame{min-height:0;overflow:hidden}
 #vibrance-contact:not(.mobile-menu-panel) textarea{display:block;resize:none;min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box;padding:8px 0}
 #vibrance-contact:not(.mobile-menu-panel) .contact-send{padding:12px 18px}
 #vibrance-contact:not(.mobile-menu-panel) .managed-contact-info{flex:none;margin-bottom:8px!important}
 #vibrance-contact:not(.mobile-menu-panel) .contact-hours-content{max-height:218px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#bda7b3 transparent}

}

/* Each desktop time range shares the same hyphen centre. */
@media(min-width:801px){
 #vibrance-contact:not(.mobile-menu-panel) .contact-hours-times{flex:0 0 180px;text-align:center;font-variant-numeric:tabular-nums}
 #vibrance-contact:not(.mobile-menu-panel) .contact-hours-period{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)}
 #vibrance-contact:not(.mobile-menu-panel) .contact-hours-start{text-align:right}
 #vibrance-contact:not(.mobile-menu-panel) .contact-hours-end{text-align:left}
}

#vibrance-contact .contact-delivery,#vibrance-contact .contact-hint{display:none!important}
@media(min-width:801px){
 #vibrance-contact:not(.mobile-menu-panel) .managed-contact-info{padding-top:14px;margin-bottom:14px!important}
 #vibrance-contact:not(.mobile-menu-panel) .contact-hours-content{padding-top:8px}
 #vibrance-contact:not(.mobile-menu-panel) .contact-address{margin-top:14px}
 #vibrance-contact:not(.mobile-menu-panel) form{grid-template-rows:auto auto minmax(60px,1fr) auto auto;margin-top:14px}
}

/* The close control keeps its subtle border without an outer focus ring. */
#vibrance-contact .contact-close:focus,#vibrance-contact .contact-close:focus-visible{outline:0!important;box-shadow:none!important}

/* Fit complete opening-hours rows, with the entire week on taller screens. */
@media(min-width:801px){
 #vibrance-contact:not(.mobile-menu-panel) .contact-hours-row{box-sizing:border-box;min-height:30px;line-height:18px;padding:6px 0}
 #vibrance-contact:not(.mobile-menu-panel) .contact-hours-content{padding-top:8px;padding-bottom:0}
}
@media(min-width:801px) and (max-height:850px){#vibrance-contact:not(.mobile-menu-panel) .contact-hours-content{max-height:128px}}
@media(min-width:801px) and (max-height:650px){#vibrance-contact:not(.mobile-menu-panel) .contact-hours-content{max-height:98px}}

/* Centre Closed and each hyphen on the Today summary's measured centre. */
@media(min-width:801px){
 #vibrance-contact:not(.mobile-menu-panel) .contact-hours-times{flex-basis:var(--hours-value-width,180px);width:var(--hours-value-width,180px);transform:translateX(var(--hours-value-shift,0px))}
}
