@media (max-width:760px){#hero :is(.t3-hero-bg,.hcs-backdrop)[style*="/hero-virlocept-plumbing.webp)"]{background-image:url(https://virloceptgroup.co.za/wp-content/themes/virlocept/assets/hero-virlocept-plumbing-m.webp)!important;background-position:center 50%!important}}
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */

:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
/*# sourceURL=global-styles-inline-css */
/* Self-hosted web fonts. Variable fonts from Google Fonts: Archivo (wght 600 to 700) and Source Sans 3 (wght 400 to 600), latin and latin-ext subsets. The 2 latin files are preloaded from inc/enqueue.php. The fallback faces size-adjust Arial (or Liberation Sans) so text wraps the same before the web font arrives: the ratios were measured from the site's own headings and sentences rendered in both fonts (Archivo 600 = 95.3% of Arial's width, Source Sans 3 400 = 93.4%), since the fonts' xAvgCharWidth tables overstate their width. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:600 700;font-display:swap;src:url(/wp-content/themes/virlocept/assets/fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600 700;font-display:swap;src:url(/wp-content/themes/virlocept/assets/fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 600;font-display:swap;src:url(/wp-content/themes/virlocept/assets/fonts/source-sans-3-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 600;font-display:swap;src:url(/wp-content/themes/virlocept/assets/fonts/source-sans-3-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Archivo Fallback';src:local('Arial'),local('Helvetica Neue'),local('Helvetica'),local('Liberation Sans');size-adjust:95.3%;ascent-override:92.1%;descent-override:22.0%;line-gap-override:0%}
@font-face{font-family:'Source Sans 3 Fallback';src:local('Arial'),local('Helvetica Neue'),local('Helvetica'),local('Liberation Sans');size-adjust:93.4%;ascent-override:109.6%;descent-override:42.8%;line-gap-override:0%}
/* Shared base: tokens, resets, header, footer, hero text block, CTA bands, newsletter, reviews. Loads on every page. */
@keyframes flow{to{stroke-dashoffset:-18}}
@keyframes brand-slide{to{transform:translateX(calc(-50% - 7px))}}
:root{--navy:#2F444F;--red:#D74D49;--btn:#C24540;--btn-hover:#A93B37;--teal:#44A893;--orange:#EBA95E;--muted:#5C6E78;--white:#FFFFFF;--off:#F7F5F2;--pale-teal:#F0F7F5;--line:rgba(47,68,79,.10);--display:"Archivo", Helvetica, Arial, sans-serif;--body:"Source Sans 3", Helvetica, Arial, sans-serif;--wrap:1240px;--radius:12px;--shadow:0 24px 60px -18px rgba(47,68,79,.28), 0 2px 8px rgba(47,68,79,.06)}
*{box-sizing:border-box}
body{font-family:var(--body);color:var(--navy);background:var(--off);font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;background:#f7f5f2}
a,button{color:inherit}
a{text-decoration:none}
button{font:inherit;background:0 0;border:0;cursor:pointer;padding:0}
svg{display:block;flex:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.skip{position:absolute;left:16px;top:-60px;z-index:200;background:var(--navy);color:#fff;padding:10px 16px;border-radius:8px;font-weight:600}
.skip:focus{top:12px}
.strip{color:#fff;font-size:14px;transition:margin-top .25s ease}
.strip a:hover,.strip svg{color:var(--orange)}
.bar{border-bottom:1px solid var(--line);position:relative}
.top::after{content:"";position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.menu>li.open .top::after,.top:hover::after,.top[aria-current=page]::after{transform:scaleX(1)}
.call span{line-height:1.2}
.btn svg{transition:transform .2s ease}
.btn:hover{background:var(--btn-hover)}
.btn:hover svg{transform:translateX(3px)}
.eyebrow{letter-spacing:.16em;text-transform:uppercase;line-height:1.2;margin:0 0 14px}
.svc[aria-current=page]{background:var(--off)}
.svc[aria-current=page] b{color:var(--red)}
@media (max-width:1180px){.call small{display:none}.top{padding:0 9px;font-size:15px}.top::after{left:9px;right:9px}.bar .wrap{gap:18px}}
@media (max-width:1024px){.wrap{padding:0 24px}.call{display:none}.strip .wrap{justify-content:center}.bar .wrap{height:72px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
:root{--edge:inset 0 1px 0 rgba(255,255,255,.85);--lift-1:0 1px 2px rgba(47,68,79,.05),0 4px 10px -5px rgba(47,68,79,.14)}
.strip{background:var(--navy);position:relative;z-index:3}
.bar{background:linear-gradient(180deg,#fff 0,#fff 100%);border-bottom:0;z-index:3;transition:box-shadow .25s ease}
.bar .wrap{height:84px;gap:20px}
.top{padding:0 11px;font-size:15px}
.top::after{left:11px;right:11px;box-shadow:0 1px 0 rgba(255,255,255,.8),inset 0 1px 0 rgba(255,255,255,.3);background:linear-gradient(var(--red),var(--red)) left bottom/100% 2px no-repeat,linear-gradient(var(--red),var(--red)) left bottom/2px 8px no-repeat,linear-gradient(var(--red),var(--red)) right bottom/2px 8px no-repeat,repeating-linear-gradient(90deg,var(--red)0 1px,transparent 1px 7px) left bottom/100% 5px no-repeat}
@media (max-width:1320px){.call small{display:none}}
@media (max-width:1024px){.bar .wrap{height:72px}}
.strip{background:linear-gradient(180deg,#34495a,#2b3f49)}
.top:hover,.top[aria-current=page]{text-shadow:0 1px 0#fff,0-1px 0 rgba(47,68,79,.12)}
.svc[aria-current=page]{background:linear-gradient(180deg,#f7f5f2,#f7f5f2)}
:root{--gutter:clamp(20px,3.2vw,64px);--hdr-h:124px}
.wrap{max-width:1680px;padding-left:var(--gutter);padding-right:var(--gutter)}
.bar .wrap{gap:clamp(14px,1.6vw,28px)}
:root{--rule-n:rgba(47,68,79,.10);--shade-n:rgba(47,68,79,.14)}
.strip{background:#2f444f}
.bar{background:linear-gradient(180deg,#fff 0,#f7f5f2 100%);box-shadow:inset 0 2px 0#fff,inset 0-1px 0 var(--rule-n),0 6px 14px -12px rgba(47,68,79,.28)}
.top::after{height:3px;bottom:0;border-radius:3px 3px 0 0;box-shadow:none;background:var(--red)}
.svc[aria-current=page]{background:#f7f5f2;box-shadow:inset 1px 2px 3px rgba(47,68,79,.09),inset -1px -1px 0#fff}
.strip a{transition:color .2s}
:root{--btn-top:#C84C47;--btn-bot:#B63F3A;--ease:cubic-bezier(.2,.7,.2,1);--bg:#F7F5F2;--hi:#FFFFFF;--lo:rgba(112,98,84,.18);--lo-soft:rgba(112,98,84,.11);--focus-ring:0 0 0 3px var(--bg),0 0 0 4.5px var(--navy),0 0 0 7.5px var(--teal)}
.disc{position:relative;width:40px;height:40px;border-radius:50%;overflow:hidden;flex:none;transition:box-shadow .22s var(--ease),background .2s ease,color .2s ease}
.disc svg,.pg .disc svg{position:absolute;top:50%;left:50%;margin:-8px 0 0-8px;transition:transform .35s cubic-bezier(.6,0,.2,1)}
.disc svg+svg,.pg .disc svg+svg{transform:translateX(-32px)}
@media (prefers-reduced-motion:reduce){.disc svg{transition:none}}
.strip{background:linear-gradient(180deg,#385260 0,#2f444f 55%,#273a43 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),inset 0-8px 12px -10px rgba(0,0,0,.3),inset 0-1px 0 rgba(0,0,0,.25)}
.h1,.h2,.h3{font-family:var(--display)}
.h1{font-weight:700;font-size:clamp(34px,4.2vw,50px);line-height:1.04;letter-spacing:-.02em;margin:0 0 18px;text-shadow:0 1px 0 rgba(255,255,255,.95),0-1px 0 rgba(47,68,79,.07)}
.h2,.h3{font-weight:600}
.h2{line-height:1.15;letter-spacing:-.015em;margin:0 0 12px;text-shadow:0 1px 0 rgba(255,255,255,.95),0-1px 0 rgba(47,68,79,.07)}
.h3{line-height:1.22;letter-spacing:-.01em;margin:0 0 8px}
.copy{max-width:62ch;margin:0 0 16px}
.pg{position:relative;display:inline-flex;justify-content:center;text-align:center;box-sizing:border-box;height:52px;min-height:52px;padding:0 69px 0 24px;border-radius:999px;font-family:var(--body);font-weight:600;font-size:15px;letter-spacing:.005em;line-height:1;white-space:nowrap;text-shadow:none;color:var(--navy);background:linear-gradient(180deg,#fff,#f5f2ee);--lo:rgba(112,98,84,.24);--lo-near:rgba(112,98,84,.16);box-shadow:0 1px 3px var(--lo-near),0 4px 14px -2px var(--lo),inset 0 0 0 transparent,inset 0 0 0 transparent,inset 0 1px 0#fff,inset 0-1px 0 rgba(112,98,84,.07);transition:box-shadow .22s var(--ease),background .2s ease,color .2s ease}
.pg:hover{box-shadow:0 2px 4px var(--lo-near),0 7px 20px -3px var(--lo),inset 0 0 0 transparent,inset 0 0 0 transparent,inset 0 1px 0#fff,inset 0-1px 0 rgba(112,98,84,.07)}
.pg:active{background:linear-gradient(180deg,#f1ede8,#f7f5f2);box-shadow:0 0 0 transparent,0 0 0 transparent,inset 0 2px 6px var(--lo),inset 0 0 0 1px var(--lo-near),inset 0 0 0 transparent,inset 0 0 0 transparent;transition-duration:.12s}
.pg:focus-visible{outline:0;box-shadow:0 1px 3px var(--lo-near),0 4px 14px -2px var(--lo),inset 0 1px 0#fff,inset 0-1px 0 rgba(112,98,84,.07),var(--focus-ring)}
.pg .disc{position:absolute;top:50%;right:7px;margin-top:-19px;width:38px;height:38px;border-radius:50%;overflow:hidden;flex:none;color:#fff;box-shadow:0 1px 2px rgba(20,32,38,.22),0 3px 8px -2px rgba(20,32,38,.32),inset 0 1px 0 rgba(255,255,255,.25);transition:background .2s ease}
.pg:focus-visible .disc svg,.pg:hover .disc svg{transform:translateX(32px)}
.pg:focus-visible .disc svg+svg,.pg:hover .disc svg+svg{transform:translateX(0)}
.pg:active .disc{box-shadow:inset 0 2px 4px rgba(0,0,0,.22)}
.pg.pg-quote .disc{background:linear-gradient(180deg,#db5752,#c9403b)}
.pg.pg-quote:hover .disc{background:linear-gradient(180deg,#e2625d,#cf4540)}
.pg.pg-go .disc{background:linear-gradient(145deg,#52b8a2,#3a9582)}
.hero{padding:clamp(40px,5vw,72px)0 clamp(48px,6vw,80px)}
.hero .eyebrow{margin-bottom:16px}
.hero .h1{max-width:13ch}
.who .ico{width:48px;height:48px}
.who .ico svg{width:22px;height:22px}
@media (max-width:600px){.hero{padding-top:28px}}
@media (prefers-reduced-motion:reduce){.pg .disc svg{transition:none}}
:root{--space:clamp(80px,9vw,136px)}
.h2{font-size:clamp(28px,3vw,34px)}
.h3{font-size:21px}
.services{position:relative;overflow-x:clip}
.dir{padding:20px 20px 14px}
@media (max-width:760px){.dir{padding:16px 12px 10px}}
@media (max-width:1149px){.gr-row{--per:2}}
@media (max-width:699px){.gr-logo{height:38px}.gr-num{font-size:30px}.gr-row{--per:1;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px}.gr-arr{width:40px;height:40px}.gr-card{aspect-ratio:270/222;padding:6.6cqw 6.6cqw 6cqw;border-radius:5cqw}.gr-card .stars i{width:5.2cqw;height:5.2cqw}.gr-text{margin-top:4.4cqw;font-size:5.5cqw;line-height:1.5;-webkit-line-clamp:5}.gr-ini{width:11.5cqw;height:11.5cqw;font-size:4.6cqw}}
@media (prefers-reduced-motion:reduce){.gr-track{transition:none}}
main:not(:has(.ab-e)){background:linear-gradient(180deg,#d6dddc 0,#f0f2f1 100%)}
:root{--space:clamp(56px,6vw,88px)}
.eyebrow,.h2{margin-bottom:12px}
:root{--join:96px;--tx-l:url("/wp-content/themes/virlocept/assets/img/i-aed21eb004.webp");--tx-h:url("/wp-content/themes/virlocept/assets/img/i-c752dc0d0d.webp");--tx-d:url("/wp-content/themes/virlocept/assets/img/i-124d687379.webp");--tx-w:url("/wp-content/themes/virlocept/assets/img/i-20959a0e36.webp")}
.services .h2{color:#fff;text-shadow:0-1px 0 rgba(0,0,0,.35)}
@media (min-width:1025px){html .bar .wrap{display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto 54px;height:auto;gap:0 24px;align-items:center}html .bar .logo{grid-column:2;grid-row:1;justify-self:center;padding:16px 0 14px;transition:padding .25s ease}html .menu{height:100%;gap:clamp(8px,1.4vw,22px)}html .top{font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:.005em}html .bar{background:linear-gradient(180deg,#fff 0,#fbfaf8 55%,#f4f1ec 100%)}}
@media (min-width:1025px){html .bar .logo{grid-row:1;padding:20px 0 16px}html .bar{box-shadow:none;background:linear-gradient(180deg,#34495a 0,#2f444f 60%,#2b3f49 100%)}html .top{color:rgba(255,255,255,.8);transition:color .2s ease}html .top:hover,html .top[aria-current=page]{color:#fff}html .bar .wrap{grid-template-rows:auto 68px}html .menu{align-items:center;gap:4px;height:100%}html .menu>li{height:40px;align-self:center;border-radius:11px;background:0 0;box-shadow:none;transition:background .2s ease,box-shadow .2s ease,transform .15s ease}html .top{height:40px;padding:0 16px;text-shadow:0-1px 0 rgba(0,0,0,.35)}html .top::after{left:50%;right:auto;width:18px;margin-left:-9px;bottom:5px;height:3px;border-radius:3px;background:var(--red);box-shadow:0 0 6px rgba(215,77,73,.55);transform:scaleX(0);transform-origin:center}html .menu>li:hover{background:linear-gradient(180deg,#46606f 0,#3a5262 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0-1px 0 rgba(6,12,16,.25),0 1px 2px rgba(6,12,16,.4),0 6px 12px -6px rgba(6,12,16,.6)}html .menu>li:has(>.top[aria-current=page]){background:linear-gradient(180deg,#223540 0,#283c47 100%);box-shadow:inset 0 2px 5px rgba(6,12,16,.55),inset 0-1px 0 rgba(255,255,255,.08),0 1px 0 rgba(255,255,255,.06)}html .menu>li.open .top::after,html .top[aria-current=page]::after,html .top[aria-current=page]:hover::after{transform:scaleX(1)}html .top:hover::after{transform:scaleX(0)}html .menu>li:active{box-shadow:inset 0 2px 5px rgba(6,12,16,.55)}}
@media (min-width:1025px) and (max-width:1240px){html .top{padding:0 11px}}
@media (min-width:1025px){html .bar{background:linear-gradient(180deg,#fff 0,#fbfaf8 55%,#f4f1ec 100%);box-shadow:inset 0 1px 0#fff,0 1px 0 rgba(112,98,84,.16)}html .top{color:rgba(47,68,79,.78);text-shadow:0 1px 0 rgba(255,255,255,.9)}html .top:hover,html .top[aria-current=page]{color:#2f444f;text-shadow:0 1px 0 rgba(255,255,255,.9)}html .menu>li:hover{background:linear-gradient(180deg,#fff 0,#f6f3ef 100%);box-shadow:inset 0 1px 0#fff,0 0 0 1px rgba(112,98,84,.12),0 1px 2px rgba(112,98,84,.2),0 6px 12px -6px rgba(47,68,79,.3)}html .menu>li:has(>.top[aria-current=page]){background:linear-gradient(180deg,#e8e3dc 0,#efebe6 100%);box-shadow:inset 0 2px 5px rgba(112,98,84,.32),inset 0-1px 0 rgba(255,255,255,.8),0 1px 0#fff}html .menu>li:active{box-shadow:inset 0 2px 5px rgba(112,98,84,.32)}html .bar{overflow-x:clip}html .bar .wrap{grid-template-rows:116px 56px;transition:grid-template-rows .4s var(--hdr-ease)}html .strip{transition:margin-top .4s var(--hdr-ease)}html .bar .logo{grid-row:1;grid-column:2;align-self:center;padding:0;transition:opacity .28s ease,transform .4s var(--hdr-ease),visibility 0s linear 0s}}
@media (prefers-reduced-motion:reduce){html .bar .logo,html .bar .wrap,html .strip{transition:none!important}}
:root{--hgutter:24px;--plate:linear-gradient(145deg,#2F4450,#26363F);--plate-sh:-4px -4px 10px rgba(58,83,97,.26),6px 8px 16px rgba(8,14,18,.42),inset 1px 1px 0 rgba(255,255,255,.07),inset -1px -1px 0 rgba(0,0,0,.3);--raise-bg:linear-gradient(145deg,#33495A,#283A44);--raise:-3px -3px 7px rgba(62,88,103,.5),4px 4px 9px rgba(10,16,20,.6),inset 1px 1px 0 rgba(255,255,255,.06);--lift:-4px -4px 9px rgba(62,88,103,.55),6px 7px 14px rgba(10,16,20,.65),inset 1px 1px 0 rgba(255,255,255,.06);--sink:inset 3px 3px 7px rgba(10,16,20,.65),inset -2px -2px 6px rgba(62,88,103,.45);--well:#243540;--ink:#EAF0F2;--ink2:#A9B8BF;--ink-dim:rgba(234,240,242,.72);--strip-h:48px;--bar-h:84px;--pill-h:54px;--item-h:44px;--logo-h:60px;--lnk-fs:16px;--pill-pad:34px;--link-gap:30px;--m-lnk-fs:17px;--m-row-h:60px}
.hdr .wrap{max-width:1280px;padding:0 24px}
.eyebrow{text-shadow:none!important;font-weight:700;opacity:1;color:var(--btn)}
:root{--sec:clamp(36px,3.6vw,52px);--g:clamp(56px,6vw,88px);--gh:calc(var(--g) / 2);--hdr0:132px}
.vgm{--s-strip:#E4E0DA;--s-bar:#EFECE7;--s-ink:#2F444F;--s-ink2:#5C6E78;--s-pill:#F4F2EE;--s-hi:rgba(255,255,255,.55);--s-pillSh:inset 0 1px 0 rgba(255,255,255,.7), inset 0 -1px 0 rgba(47,68,79,.06), 0 0 0 1px rgba(47,68,79,.07), -1px -1px 2px var(--s-hi), 2px 3px 6px -1px rgba(47,68,79,.18);--s-key:#EDEAE5;--s-keySh:inset 1px 2px 3px rgba(47,68,79,.16), inset -1px -1px 0 var(--s-hi), 0 0 0 1px rgba(47,68,79,.05);--s-raise:inset 0 1px 0 rgba(255,255,255,.7), 0 0 0 1px rgba(47,68,79,.07), -1px -1px 1px var(--s-hi), 1px 2px 3px rgba(47,68,79,.16);--s-rule:#CDC7BF;--s-red:#C24540;--s-disp:'Archivo','Helvetica Neue',Arial,sans-serif;--s-body:'Source Sans 3','Segoe UI',system-ui,sans-serif;position:absolute;top:0;left:0;right:0;z-index:300;color:var(--s-ink);font-family:var(--s-body);font-size:15px;line-height:1.3;text-align:left}
.vgm *,.vgm ::after,.vgm ::before{box-sizing:border-box}
.vgm a{color:inherit;text-decoration:none}
.vgm button{font:inherit;color:inherit;cursor:pointer;border:0;background:0 0;margin:0;letter-spacing:inherit;text-transform:none}
.vgm svg{display:block;flex:none}
.vgm img{max-width:none}
.vgm :focus-visible{outline:2px solid #eba95e;outline-offset:2px}
.vgm [hidden]{display:none!important}
.vgm-loc,.vgm-strip{display:flex;align-items:center}
.vgm-strip{background:var(--s-strip);box-shadow:inset 0-1px 0 rgba(47,68,79,.08);height:44px;padding-inline:22px;gap:16px}
.vgm-loc{gap:8px;font-size:13px;color:#3e4f59;letter-spacing:.02em;white-space:nowrap}
.vgm-bar{position:relative;z-index:2;background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.04));-webkit-backdrop-filter:blur(26px) saturate(1.7);backdrop-filter:blur(26px) saturate(1.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0-1px 0 rgba(255,255,255,.18),0 1px 0 rgba(47,68,79,.08);height:92px;padding-inline:32px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px}
.vgm-brand{display:flex;align-items:center;gap:18px;height:66px;width:max-content;justify-self:center;flex:none}
.vgm-emb{height:64px;width:auto}
.vgm--dark .vgm-burger{color:var(--s-ink)}
.vgm-navwrap{position:relative}
.vgm-links>a,.vgm-links>button,.vgm-pill{display:flex;align-items:center;border-radius:999px}
.vgm-pill{gap:6px;padding:6px;background:var(--s-pill);box-shadow:var(--s-pillSh)}
.vgm-links{width:540px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.vgm-links>a,.vgm-links>button{justify-content:center;gap:8px;height:44px;padding:0 12px;font:600 16px/1 var(--s-disp);color:var(--s-ink);white-space:nowrap;transition:background .2s,box-shadow .2s}
.vgm-links>a:hover,.vgm-links>button:hover{background:var(--s-key);box-shadow:var(--s-raise)}
.vgm-links>[aria-current],.vgm-links>button[aria-expanded=true]{background:var(--s-key);box-shadow:var(--s-keySh)}
.vgm-dnav>button svg,.vgm-links svg{transition:transform .2s}
.vgm-dnav>button[aria-expanded=true] svg,.vgm-links button[aria-expanded=true] svg{transform:rotate(180deg)}
.vgm-contact{justify-self:center;gap:8px;flex:none}
.vgm-emg{display:flex;align-items:center;gap:10px;height:44px;padding:0 16px 0 6px;border-radius:999px;white-space:nowrap}
.vgm-disc{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(#cf5550,#b63f3a);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),1px 2px 3px rgba(47,68,79,.25)}
.vgm-kt b,.vgm-t1{display:block;font:600 14px/1.1 var(--s-disp);color:var(--s-ink)}
.vgm-kt em,.vgm-t2{display:block;font-size:12px;line-height:1.2;color:var(--s-ink2)}
.vgm-key{display:grid;width:44px;height:44px}
.vgm button.vgm-burger,.vgm-key[aria-current]{background:var(--s-pill);box-shadow:var(--s-raise)}
.vgm button.vgm-burger,.vgm-key{border-radius:50%;place-items:center}
.vgm button.vgm-burger{display:none;width:46px;height:46px;color:var(--s-ink);justify-self:end;transition:background .2s,box-shadow .2s}
.vgm button.vgm-burger:hover{background:var(--s-key)}
.vgm button.vgm-burger[aria-expanded=true],.vgm-key{background:var(--s-key);box-shadow:var(--s-keySh)}
.vgm-tray{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);z-index:5;padding:10px;border-radius:26px;background:var(--s-pill);box-shadow:var(--s-pillSh),0 14px 24px -12px rgba(47,68,79,.35)}
.vgm-kt{--acc:#44A893;width:746px}
.vgm-kt b{font:600 13.5px/1.2 var(--s-disp)}
.vgm-kt em{font-style:normal;line-height:1.25}
.vgm-probs{margin-top:10px;padding:8px 8px 6px;border-radius:18px;background:var(--s-key);box-shadow:var(--s-keySh)}
.vgm-pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 4px}
.vgm-prow{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:46px;padding:6px 10px;border-radius:14px;transition:background .2s,box-shadow .2s}
.vgm-prow b{font-size:13px}
.vgm-prow em{color:var(--acc)}
.vgm-prow svg{width:16px;height:16px;color:var(--s-ink2)}
.vgm-prow:focus-visible,.vgm-prow:hover{background:var(--s-pill);box-shadow:var(--s-raise)}
.vgm-dnav>[aria-current],.vgm-prow:hover svg{color:var(--s-red)}
.vgm-drawer{background:rgba(239,236,231,.86);-webkit-backdrop-filter:blur(22px) saturate(1.5);backdrop-filter:blur(22px) saturate(1.5);padding:8px 16px 20px;gap:14px;border-top:1px solid var(--s-rule);box-shadow:0 16px 24px -16px rgba(47,68,79,.35);max-height:calc(100vh - 112px);overflow:auto}
.vgm-dnav,.vgm-drawer{display:flex;flex-direction:column}
.vgm-dnav>a,.vgm-dnav>button{width:100%;padding:0;display:flex;align-items:center;justify-content:space-between;height:52px;font:600 17px/1 var(--s-disp);color:var(--s-ink);border-bottom:1px solid var(--s-rule);text-align:left}
.vgm-sub{padding:8px 0 10px;border-bottom:1px solid var(--s-rule)}
.vgm-sub .vgm-kt{width:auto;padding:6px;border-radius:18px;background:var(--s-key);box-shadow:var(--s-keySh)}
.vgm-sub .vgm-probs{background:0 0;box-shadow:none;padding:4px 0 0}
.vgm-sub .vgm-pgrid{grid-template-columns:1fr}
.vgm-sub .vgm-prow{min-height:38px;padding:4px 8px}
.vgm-drawer .vgm-contact{justify-content:space-between;width:100%}
.vgm-drawer .vgm-emg{flex:1;min-width:0;justify-content:center}
.vgm-drawer .vgm-emg>span:last-child{min-width:0}
.vgm-drawer .vgm-emg .vgm-t1,.vgm-drawer .vgm-emg .vgm-t2{overflow:hidden;text-overflow:ellipsis}
@media (max-width:1280px){.vgm-bar{padding-inline:24px;gap:16px}.vgm-links{width:460px}.vgm-brand{gap:14px}}
@media (max-width:1150px){.vgm-bar{padding-inline:20px;gap:12px}.vgm-links{width:380px}.vgm-links>a,.vgm-links>button{font-size:15px;padding:0 8px;gap:6px}.vgm-brand{gap:12px}.vgm-emb{height:56px}.vgm-emg{padding-right:12px;gap:8px}}
@media (max-width:1024px){.vgm-bar .vgm-contact,.vgm-bar .vgm-navwrap,.vgm-loc{display:none}.vgm-strip{justify-content:center;padding-inline:8px}.vgm-bar{height:72px;padding-inline:16px;grid-template-columns:46px minmax(0,1fr) 46px;gap:12px;background:var(--s-bar);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 0 rgba(47,68,79,.1)}.vgm button.vgm-burger{display:grid;grid-column:3}.vgm-brand{grid-column:2;gap:12px;justify-self:center;height:56px;max-width:100%}.vgm-emb{height:50px}}
@media (max-width:380px){.vgm-strip{padding-inline:6px}.vgm-bar{padding-inline:12px}.vgm-brand{gap:10px}.vgm-drawer{padding:8px 12px 18px}.vgm-drawer .vgm-contact{gap:6px}.vgm-drawer .vgm-key{width:40px;height:40px}.vgm-drawer .vgm-emg{padding:0 8px 0 5px;gap:8px}.vgm-drawer .vgm-disc{width:32px;height:32px}.vgm-drawer .vgm-t1{font-size:13px}.vgm-drawer .vgm-t2{font-size:11px}}
@media (prefers-reduced-motion:reduce){.vgm *{transition:none!important}}
html.nf.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"],html.nf.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]:hover,html.nf.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"],html.nf.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover{background:linear-gradient(#fff,#f5f2ee);color:#2f444f;box-shadow:0 1px 3px rgba(6,12,16,.35),0 4px 14px -2px rgba(6,12,16,.55),inset 0 1px 0#fff,inset 0-1px 0 rgba(112,98,84,.07)}
html.nf.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]:hover,html.nf.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover{background:#fff}
html.nf.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]::after,html.nf.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]::after{background:radial-gradient(circle closest-side,#2f444f calc(100% - 5.5px),#f8f6f2 calc(100% - 5px),#f8f6f2 calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#eba95e 0 120deg,#3e7d19 120deg 240deg,#004eba 240deg 360deg);box-shadow:0 1px 2px rgba(20,32,38,.22),0 3px 8px -2px rgba(20,32,38,.32),inset 0 1px 0 rgba(255,255,255,.25)}
html.nf.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"] svg,html.nf.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"] svg{color:#fff}
.vg-crumb [aria-current]{color:#fff}
html:root{--g:clamp(56px,6.667vw,96px)}
:root{--vir:#44A893;--umb:#3E7D19;--lh:#004EBA}
.vgm-strip{justify-content:space-between}
.vgm-loc .mb-short,html.n2 .vgm .vgm-prow>svg,html.n2 .vgm.vgm::before{display:none}
.hb-strip-emg{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px 0 2px;border-radius:999px;color:#3e4f59;font-size:13px;white-space:nowrap;transition:background .2s,box-shadow .2s}
.hb-strip-emg .vgm-disc{width:26px;height:26px;color:#fff}
.hb-strip-emg .vgm-disc svg{width:15px;height:15px}
.hb-strip-emg b{font-weight:600;color:var(--s-ink)}
.hb-strip-emg em{font-style:normal;margin-left:-2px}
.hb-strip-emg:hover{background:var(--s-pill);box-shadow:var(--s-raise)}
.vgm-brand.mb-emb{gap:0;width:auto}
.vgm-links.mb-links{width:auto;grid-template-columns:72px 13px 170px 150px 140px 13px repeat(3,44px);gap:4px;align-items:center}
.vgm-links>.vgm-pdiv{width:1px;height:22px;background:var(--s-rule);margin:0 6px}
.vgm-links>a.vgm-key{width:44px;height:44px;padding:0;display:grid}
.vgm-tray.mb-tray{width:900px}
.mb-cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}
.vgm-probs.mb-col{margin-top:0;padding:8px}
.mb-head,.mb-logo{display:flex;align-items:center}
.mb-head{flex-direction:column;gap:6px;padding:8px 6px 10px;margin-bottom:6px;border-bottom:1px solid var(--s-rule)}
.mb-logo{justify-content:center;height:32px}
.mb-logo img{width:auto;display:block}
.mb-logo img[alt=Virlocept]{height:30px}
.mb-logo img[alt=Umbuso]{height:25px}
.mb-logo img[alt=Lighthaven]{height:25.5px}
.mb-col .vgm-pgrid{grid-template-columns:1fr}
.mb-col.mb-wide .vgm-pgrid{grid-template-columns:1fr 1fr}
.vgm-prow[aria-current]{background:var(--s-pill);box-shadow:var(--s-raise)}
.vgm-drawer .vgm-disc{color:#fff}
@media (min-width:1025px){.vgm-bar{display:flex;justify-content:center;align-items:center;height:104px;background:radial-gradient(55% 70%at 12% 8%,rgba(68,168,147,.22),transparent 70%),radial-gradient(45% 60%at 88% 95%,rgba(120,150,170,.16),transparent 70%),radial-gradient(40% 50%at 60% 40%,rgba(120,150,170,.14),transparent 70%),#1c2b32;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0-1px 0 rgba(255,255,255,.05)}.vgm-bar>.vgm-brand.mb-emb{display:none}.mb-emb .vgm-emb{height:76px}.vgm-bar .vgm-navwrap{justify-self:center}}
@media (min-width:1025px) and (max-width:1150px){.vgm-tray.mb-tray{width:800px}.mb-emb .vgm-emb,.vgm-brand.mb-emb{height:66px}.hb-strip-emg em{display:none}}
@media (max-width:1024px){.hb-strip-emg,.vgm-loc .mb-full{display:none}.vgm-strip{height:36px;justify-content:center}.vgm-loc{display:flex;font-size:12px}.vgm-loc .mb-short{display:inline}.vgm-sub .vgm-kt{background:0 0;box-shadow:none;padding:0;border-radius:0}.mb-cols{grid-template-columns:1fr;gap:8px}.vgm-sub .vgm-probs.mb-col{background:var(--s-key);box-shadow:var(--s-keySh);padding:8px}.vgm-sub .mb-col .vgm-prow b{font-size:13px}}
@media (min-width:1025px){.vgm{isolation:isolate;--mbg:max(32px,calc((100% - 1240px)/2 + 32px));background:radial-gradient(55% 70%at 12% 8%,rgba(68,168,147,.22),transparent 70%),radial-gradient(45% 60%at 88% 95%,rgba(120,150,170,.16),transparent 70%),radial-gradient(40% 50%at 60% 40%,rgba(120,150,170,.14),transparent 70%),#1c2b32}.vgm::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.015));box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0-1px 0 rgba(255,255,255,.05)}.vgm-strip{background:0 0;box-shadow:inset 0-1px 0 rgba(255,255,255,.1);padding-inline:var(--mbg)}.hb-strip-emg,.vgm .hb-strip-emg em,.vgm-loc{color:rgba(234,240,242,.72)}.hb-strip-emg b{color:#fff}.hb-strip-emg:hover{background:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.vgm-bar{justify-content:flex-start;gap:16px;height:104px;padding-inline:var(--mbg);background:0 0;box-shadow:none}.vgm-bar>.vgm-brand.mb-emb{display:flex;justify-content:center;height:72px;width:66px;flex:none;border-radius:22px}.vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:58px}.vgm-bar .vgm-navwrap{flex:1;min-width:0}.vgm-bar>.vgm-brand.mb-emb,.vgm-links.mb-links{background:#efece7;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 1px rgba(0,0,0,.2),0 22px 40px -18px rgba(0,0,0,.6)}.vgm-links.mb-links{width:100%;grid-template-columns:repeat(3,minmax(0,1fr)) 13px repeat(3,44px)}}
html.n2 .vgm.vgm{--navy:#2F444F;--ink2:#5C6E78;--red:#C24540;--rule:#E4E0DA;--off:#F7F5F2;--mbg:max(32px,calc((100% - 1240px)/2 + 32px));background:0 0}
html.n2 .vgm .mb-col:nth-child(1){--accInk:#8A5210;--accBg:#FDF4E8}
html.n2 .vgm .mb-col:nth-child(2){--accInk:#4C8A27;--accBg:#EDF5E6}
html.n2 .vgm .mb-col:nth-child(3){--accInk:#2F6FD0;--accBg:#E8F0FC}
html.n2 .vgm .mb-cols{gap:0}
html.n2 .vgm .vgm-probs.mb-col{margin:0;padding:26px 24px 22px;border-radius:0;background:0 0;box-shadow:none;border-left:1px solid var(--rule)}
html.n2 .vgm .vgm-probs.mb-col:first-child{border-left:0}
html.n2 .vgm .mb-head{align-items:flex-start;gap:9px;padding:0 0 14px;margin:0 0 8px;border-bottom:1px solid var(--rule)}
html.n2 .vgm .mb-logo{height:30px;justify-content:flex-start}
html.n2 .vgm .mb-head em{white-space:nowrap;font:600 11px/1.2 var(--s-body);letter-spacing:.09em;text-transform:uppercase;color:var(--ink2);text-align:left}
html.n2 .vgm .vgm-pgrid{gap:0 16px}
html.n2 .vgm .vgm-prow,html.n2 .vgm .vgm-prow:focus-visible,html.n2 .vgm .vgm-prow:hover,html.n2 .vgm .vgm-prow[aria-current]{background:0 0;box-shadow:none}
html.n2 .vgm .vgm-prow{justify-content:flex-start;gap:12px;min-height:48px;padding:6px 0;border-radius:0}
html.n2 .vgm .vgm-prow b{flex:1;min-width:0;font:600 15px/1.25 var(--s-body);letter-spacing:.005em;color:var(--navy);transition:color .2s}
html.n2 .vgm .nv-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;flex:none;background:var(--accBg);color:var(--accInk);transition:background .2s,color .2s}
html.n2 .vgm .vgm-prow .nv-ic svg,html.n2 .vgm .vgm-prow:hover .nv-ic svg{width:18px;height:18px;color:inherit;transform:none}
html.n2 .vgm .vgm-prow:focus-visible b,html.n2 .vgm .vgm-prow:hover b,html.n2 .vgm .vgm-prow[aria-current] b{color:var(--accInk)}
html.n2 .vgm .vgm-prow:focus-visible .nv-ic,html.n2 .vgm .vgm-prow:hover .nv-ic,html.n2 .vgm .vgm-prow[aria-current] .nv-ic{background:var(--accInk);color:#fff}
html.n2 .vgm .vgm-tray .nv-feat{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;margin:14px;padding:22px;border-radius:12px;color:#fff;background:radial-gradient(90% 70%at 100%0,rgba(68,168,147,.35),transparent 70%),radial-gradient(80% 60%at 0 100%,rgba(120,150,170,.22),transparent 70%),#2f444f}
html.n2 .vgm .nv-eb{font:600 11px/1.2 var(--s-body);letter-spacing:.14em;text-transform:uppercase;color:#eba95e}
html.n2 .vgm .nv-feat strong{font:600 22px/1.15 var(--s-disp);letter-spacing:-.01em}
html.n2 .vgm .nv-go{position:relative;display:flex;align-items:center;justify-content:center;height:44px;margin-top:8px;padding:0 46px 0 10px;border-radius:999px;background:#fff;color:#2f444f;font:600 15px/1 var(--s-body);white-space:nowrap}
html.n2 .vgm .nv-go i{position:absolute;right:6px;top:6px;width:32px;height:32px;border-radius:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%23fff'%3E%3Cpath d='M686-450H190q-13 0-21.5-8.5T160-480q0-13 8.5-21.5T190-510h496L459-737q-9-9-9-21t9-21q9-9 21-9t21 9l278 278q5 5 7 10t2 11q0 6-2 11t-7 10L501-181q-9 9-21 9t-21-9q-9-9-9-21t9-21l227-227Z'/%3E%3C/svg%3E")50% 50%/15px no-repeat,radial-gradient(circle closest-side,#2f444f calc(100% - 5.5px),#f8f6f2 calc(100% - 5px),#f8f6f2 calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#eba95e 0 120deg,#3e7d19 120deg 240deg,#004eba 240deg 360deg);transition:background-position .2s}
html.n2 .vgm .nv-feat:hover .nv-go i{background-position:calc(50% + 3px) 50%,50% 50%,50% 50%}
@media (min-width:1025px){html.n2 .vgm .vgm-strip{height:40px;padding-inline:var(--mbg);box-shadow:none}html.n2 .vgm .hb-strip-emg:hover{background:0 0;box-shadow:none}html.n2 .vgm .vgm-bar{display:flex;align-items:center;justify-content:flex-start;gap:26px;height:84px;padding-inline:var(--mbg);-webkit-backdrop-filter:none;backdrop-filter:none}html.n2 .vgm .vgm-bar>.vgm-brand.mb-emb,html.n2 .vgm .vgm-links.mb-links{display:flex;align-items:center;border-radius:0;background:0 0;box-shadow:none}html.n2 .vgm .vgm-bar>.vgm-brand.mb-emb{justify-content:center;width:auto;height:auto;flex:none}html.n2 .vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:66px}html.n2 .vgm .vgm-navwrap{position:static;flex:1;min-width:0;height:100%}html.n2 .vgm .vgm-links.mb-links{gap:0;width:100%;height:100%;padding:0}html.n2 .vgm .vgm-links>.vgm-pdiv{flex:1;width:auto;height:1px;margin:0;background:0 0}html.n2 .vgm .vgm-links>a:not(.vgm-key),html.n2 .vgm .vgm-links>button{position:relative;flex:none;height:100%;padding:0 18px;border-radius:0;background:0 0;box-shadow:none;font:600 16px/1 var(--s-disp);letter-spacing:.005em;transition:color .2s}html.n2 .vgm .vgm-links>a:not(.vgm-key)::after,html.n2 .vgm .vgm-links>button::after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:3px;background:var(--nvline,#C24540);transform:scaleX(0);transform-origin:0 50%;transition:transform .25s cubic-bezier(.6,0,.2,1)}html.n2 .vgm .vgm-links>[aria-current]:not(.vgm-key)::after,html.n2 .vgm .vgm-links>a:not(.vgm-key):hover::after,html.n2 .vgm .vgm-links>button:hover::after,html.n2 .vgm .vgm-links>button[aria-expanded=true]::after{transform:scaleX(1)}html.n2 .vgm .vgm-links>a.vgm-key{flex:none;width:44px;height:44px;margin-left:10px;border-radius:50%;background:0 0;box-shadow:inset 0 0 0 1px var(--nvkline,#D5D0C9);color:var(--nvkink,#2F444F);transition:background .2s,color .2s,box-shadow .2s}html.n2 .vgm .vgm-links>a.vgm-key svg{color:currentColor}html.n2 .vgm .vgm-links>a.vgm-key:hover{background:var(--nvkink,#2F444F);color:var(--nvkinv,#fff);box-shadow:none}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"],html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover{position:relative;display:flex;align-items:center;justify-content:center;width:176px;height:52px;margin-left:18px;padding:0 52px 0 12px;border-radius:999px;font:600 15px/1 var(--s-body);letter-spacing:.005em;color:#fff;white-space:nowrap;background:linear-gradient(145deg,#cf4b46,#b63f3a);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 16px -8px rgba(160,50,45,.7)}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]::before{content:"Get in touch"}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"] svg{display:none}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]::after{content:"";position:absolute;right:7px;top:7px;width:38px;height:38px;border-radius:50%;box-shadow:0 2px 5px rgba(90,24,21,.3);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%23C24540'%3E%3Cpath d='M686-450H190q-13 0-21.5-8.5T160-480q0-13 8.5-21.5T190-510h496L459-737q-9-9-9-21t9-21q9-9 21-9t21 9l278 278q5 5 7 10t2 11q0 6-2 11t-7 10L501-181q-9 9-21 9t-21-9q-9-9-9-21t9-21l227-227Z'/%3E%3C/svg%3E")50% 50%/16px no-repeat;transition:background-position .2s}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover::after{background-position:calc(50% + 3px) 50%}html.n2 .vgm .vgm-tray.mb-tray{left:var(--mbg);right:var(--mbg);width:auto;transform:none;top:100%;padding:0;border-radius:0 0 16px 16px;background:#fff;box-shadow:0 0 0 1px rgba(47,68,79,.08),0 34px 60px -24px rgba(16,28,34,.55)}html.n2 .vgm .mb-cols{grid-template-columns:2.2fr 1.05fr 1.05fr 1.1fr}}
@media (min-width:1025px) and (max-width:1219px){html.n2 .vgm .vgm-tray .nv-feat{display:none}html.n2 .vgm .mb-cols{grid-template-columns:2fr 1fr 1fr}html.n2 .vgm .vgm-probs.mb-col{padding:22px 20px 18px}html.n2 .vgm .vgm-links>a:not(.vgm-key),html.n2 .vgm .vgm-links>button{padding:0 14px}html.n2 .vgm .vgm-links>a:not(.vgm-key)::after,html.n2 .vgm .vgm-links>button::after{left:14px;right:14px}}
@media (max-width:1024px){html.n2 .vgm .vgm-bar{background:#fff;box-shadow:0 1px 0 var(--rule)}html.n2 .vgm button.vgm-burger{width:46px;height:46px;border-radius:12px;background:0 0;box-shadow:inset 0 0 0 1px #d5d0c9;color:var(--navy)}html.n2 .vgm button.vgm-burger[aria-expanded=true]{background:var(--navy);color:#fff;box-shadow:none}html.n2 .vgm .vgm-drawer{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;border-top:1px solid var(--rule);padding:4px 20px 22px;gap:18px;box-shadow:0 24px 30px -20px rgba(16,28,34,.5)}html.n2 .vgm .vgm-dnav>a,html.n2 .vgm .vgm-dnav>button{height:56px;color:var(--navy);border-bottom-color:var(--rule)}html.n2 .vgm .vgm-dnav>[aria-current],html.n2 .vgm .vgm-dnav>button[aria-expanded=true]{color:var(--red)}html.n2 .vgm .vgm-sub{padding:0;border-bottom-color:var(--rule)}html.n2 .vgm .vgm-sub .vgm-probs.mb-col{padding:18px 0 10px;background:0 0;box-shadow:none;border-left:0;border-top:1px solid var(--rule)}html.n2 .vgm .vgm-sub .vgm-probs.mb-col:first-child{border-top:0}html.n2 .vgm .vgm-sub .mb-cols{gap:0}html.n2 .vgm .vgm-sub .vgm-pgrid{gap:0 12px}html.n2 .vgm .vgm-sub .mb-col.mb-wide .vgm-pgrid{grid-template-columns:1fr 1fr}html.n2 .vgm .vgm-sub .vgm-prow{min-height:48px;padding:6px 0}html.n2 .vgm .vgm-sub .vgm-prow b{font-size:15px}html.n2 .vgm .vgm-sub .vgm-prow>svg{display:none}html.n2 .vgm .vgm-drawer .vgm-contact{padding:0;gap:8px;border-radius:0;background:0 0;box-shadow:none}html.n2 .vgm .vgm-drawer .vgm-emg{height:52px;background:var(--navy);border-radius:999px;padding:0 16px 0 9px}html.n2 .vgm .vgm-drawer .vgm-t1{color:#fff}html.n2 .vgm .vgm-drawer .vgm-t2{color:rgba(255,255,255,.78)}html.n2 .vgm .vgm-drawer .vgm-key{width:52px;height:52px;background:0 0;box-shadow:inset 0 0 0 1px #d5d0c9;color:var(--navy)}html.n2 .vgm .vgm-drawer .vgm-key svg{color:currentColor}html.n2 .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]{background:var(--red);color:#fff;box-shadow:none}}
@media (max-width:380px){html.n2 .vgm .vgm-drawer .vgm-key{width:46px;height:46px}}
html.n3 .vgm .vgm-strip{background:#24363f}
html.n3 .vgm .hb-strip-emg,html.n3 .vgm .hb-strip-emg em,html.n3 .vgm .vgm-loc{color:rgba(255,255,255,.8)}
@media (min-width:1025px){html.n3 .vgm.vgm{--nvline:linear-gradient(90deg,#EBA95E 0 33.33%,#3E7D19 33.33% 66.66%,#004EBA 66.66%);--nvkline:rgba(255,255,255,.34);--nvkink:#fff;--nvkinv:#2F444F}html.n3 .vgm .vgm-bar{background:#2f444f;box-shadow:0 16px 30px -20px rgba(8,16,20,.8)}html.n3 .vgm .vgm-bar>.vgm-brand.mb-emb{align-self:flex-start;position:relative;z-index:6;width:96px;height:112px;border-radius:0 0 18px 18px;background:#fff;box-shadow:0 16px 26px -14px rgba(8,16,20,.7)}html.n3 .vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:86px}html.n3 .vgm .vgm-links>a:not(.vgm-key),html.n3 .vgm .vgm-links>button{color:#fff}html.n3 .vgm .vgm-links>a:not(.vgm-key):hover,html.n3 .vgm .vgm-links>button:hover,html.n3 .vgm .vgm-links>button[aria-expanded=true]{color:#eba95e}html.n3 .vgm .vgm-links>a.vgm-key:not([aria-label="Get in touch"]):hover{background:#fff;color:#2f444f}html.n3 .vgm .vgm-tray.mb-tray{top:calc(100% + 40px);border-radius:16px}html.n3 .vgm .vgm-tray.mb-tray::before{content:"";position:absolute;left:0;right:0;top:-40px;height:40px}}
@media (max-width:1024px){html.n3 .vgm .vgm-bar{background:#2f444f;box-shadow:none}html.n3 .vgm .vgm-bar>.vgm-brand.mb-emb{align-self:start;width:60px;height:80px;justify-content:center;border-radius:0 0 14px 14px;background:#fff;box-shadow:0 12px 18px -10px rgba(8,16,20,.7);position:relative;z-index:3}html.n3 .vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:62px}html.n3 .vgm button.vgm-burger{box-shadow:inset 0 0 0 1px rgba(255,255,255,.34);color:#fff}html.n3 .vgm button.vgm-burger[aria-expanded=true]{background:#fff;color:#2f444f}}
html.nf .vgm.vgm{background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.015)),radial-gradient(55% 70%at 12% 8%,rgba(68,168,147,.22),transparent 70%),radial-gradient(45% 60%at 88% 95%,rgba(120,150,170,.16),transparent 70%),radial-gradient(40% 50%at 60% 40%,rgba(120,150,170,.14),transparent 70%),#1c2b32}
html.nf .vgm .vgm-strip{background:rgba(0,0,0,.26);box-shadow:inset 0-1px 0 rgba(255,255,255,.09)}
html.nf .vgm .hb-strip-emg,html.nf .vgm .hb-strip-emg em,html.nf .vgm .vgm-loc{color:rgba(234,240,242,.72)}
html.nf .vgm .vgm-bar{background:0 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 16px 30px -20px rgba(8,16,20,.8)}
html.nf .vgm .vgm-bar>.vgm-brand.mb-emb{background:linear-gradient(180deg,#f6f4f0,#e6e2db);box-shadow:inset 0-1px 0 rgba(47,68,79,.1),0 0 0 1px rgba(0,0,0,.35),0 16px 26px -14px rgba(0,0,0,.75)}
html.nf .vgm .vgm-tray .nv-feat{background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.015)),radial-gradient(90% 70%at 100%0,rgba(68,168,147,.3),transparent 70%),radial-gradient(80% 60%at 0 100%,rgba(120,150,170,.2),transparent 70%),#1c2b32}
@media (min-width:1025px){html.nf .vgm .vgm-links>a:not(.vgm-key),html.nf .vgm .vgm-links>button{color:#eaf0f2}html.nf .vgm .vgm-links>a:not(.vgm-key):hover,html.nf .vgm .vgm-links>button:hover,html.nf .vgm .vgm-links>button[aria-expanded=true]{color:#eba95e}html.nf .vgm .vgm-links>a.vgm-key:not([aria-label="Get in touch"]){background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38);color:#eaf0f2}html.nf .vgm .vgm-links>a.vgm-key:not([aria-label="Get in touch"]):hover{background:#eba95e;color:#16242a;box-shadow:none}}
@media (max-width:1024px){html.nf .vgm button.vgm-burger{background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38);color:#eaf0f2}html.nf .vgm button.vgm-burger[aria-expanded=true]{background:#eba95e;color:#16242a;box-shadow:none}html.nf .vgm .vgm-drawer .vgm-emg{background:#1c2b32}}
html.nf.nf.nf .vgm .vgm-key[aria-label^=Call] svg{color:#eba95e}
html.nf.nf.nf .vgm .vgm-key[aria-label="Email us"] svg{color:#44a893}
html.nf.nf.nf .vgm .vgm-key[aria-label="Get in touch"] svg{color:#e2615d}
@media (min-width:1025px){html.nf.nf.nf .vgm .vgm-links>a.vgm-key,html.nf.nf.nf .vgm .vgm-links>a.vgm-key:hover{position:static;display:grid;place-items:center;width:44px;height:44px;margin-left:10px;padding:0;border-radius:50%;font-size:0;background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45);transition:background .2s}html.nf.nf.nf .vgm .vgm-links>a.vgm-key:hover{background:#2e4651}html.nf.nf.nf .vgm .vgm-links>a.vgm-key::after,html.nf.nf.nf .vgm .vgm-links>a.vgm-key::before{content:none}html.nf.nf.nf .vgm .vgm-links>a.vgm-key svg{display:block}}
@media (max-width:1024px){html.nf.nf.nf .vgm .vgm-drawer .vgm-contact,html.nf.nf.nf .vgm button.vgm-burger{background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45)}html.nf.nf.nf .vgm button.vgm-burger{border-radius:50%;color:#eaf0f2}html.nf.nf.nf .vgm button.vgm-burger[aria-expanded=true]{background:#16242a;box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25);color:#eba95e}html.nf.nf.nf .vgm .vgm-drawer .vgm-contact{padding:6px;gap:8px;border-radius:999px}html.nf.nf.nf .vgm .vgm-drawer .vgm-emg{height:44px;padding:0 16px 0 6px;background:0 0}html.nf.nf.nf .vgm .vgm-drawer .vgm-t1{color:#fff}html.nf.nf.nf .vgm .vgm-drawer .vgm-t2{color:rgba(234,240,242,.72)}html.nf.nf.nf .vgm .vgm-drawer .vgm-key{width:44px;height:44px;background:#16242a;box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25)}}
@media (max-width:380px){html.nf.nf.nf .vgm .vgm-drawer .vgm-key{width:40px;height:40px}html.nf.nf.nf .vgm .vgm-drawer .vgm-emg{padding:0 8px 0 5px}}
@media (min-width:1025px){html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"],html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:168px;height:44px;padding:0 46px 0 14px;border-radius:999px;font:600 15px/1 var(--s-body);letter-spacing:.005em;color:#eaf0f2;white-space:nowrap;background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45);margin-left:10px;transition:background .2s}html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]::before{content:"Get in touch"}html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]::after{content:"";position:absolute;right:6px;top:6px;width:32px;height:32px;border-radius:50%;background:#16242a;box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25)}html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"] svg{display:block;position:absolute;right:13px;top:13px;z-index:1;color:#eba95e}html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover{background:#2e4651}}
@media (max-width:1024px){html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"],html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]:hover{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:168px;height:44px;padding:0 46px 0 14px;border-radius:999px;font:600 15px/1 var(--s-body);letter-spacing:.005em;color:#eaf0f2;white-space:nowrap;background:#16242a;box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25)}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]::before{content:"Get in touch"}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]::after{content:"";position:absolute;right:6px;top:6px;width:32px;height:32px;border-radius:50%;background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45)}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"] svg{display:block;position:absolute;right:13px;top:13px;z-index:1;color:#eba95e}}
@media (max-width:380px){html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"],html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]:hover{width:126px;height:40px;padding:0 37px 0 7px;font-size:13px}html.nf.nf.nf .vgm .vgm-drawer .vgm-emg{gap:6px}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]::after{right:5px;top:5px;width:30px;height:30px}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"] svg{right:11px;top:11px}}
[data-bb=group]{--bbg:radial-gradient(circle closest-side,#2F444F calc(100% - 5.5px),#F8F6F2 calc(100% - 5px),#F8F6F2 calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#EBA95E 0 120deg,#3E7D19 120deg 240deg,#004EBA 240deg 360deg);--bbgh:radial-gradient(circle closest-side,#3A5360 calc(100% - 5.5px),#F8F6F2 calc(100% - 5px),#F8F6F2 calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#EBA95E 0 120deg,#3E7D19 120deg 240deg,#004EBA 240deg 360deg);--bbl:transparent;--bbline:linear-gradient(90deg,#EBA95E 0 33.33%,#3E7D19 33.33% 66.66%,#004EBA 66.66%);--bba:#2F444F}
[data-bb=virlocept]{--bb1:#F6C07A;--bb2:#EAA553;--bbh1:#F9C98A;--bbh2:#EEAE60;--bbl:#EAA553;--bba:#E49B3E}
[data-bb=lighthaven],[data-bb=umbuso],[data-bb=virlocept]{--bbline:initial;--bbg:initial;--bbgh:initial}
[data-bb=umbuso]{--bb1:#4F9A24;--bb2:#3E7D19;--bbh1:#5AA82B;--bbh2:#45891D;--bbl:#3E7D19;--bba:#3E7D19}
[data-bb=lighthaven]{--bb1:#1F6FE0;--bb2:#004EBA;--bbh1:#2F7DEA;--bbh2:#0A5ACB;--bbl:#004EBA;--bba:#004EBA}
[data-bb] .hb-card>.disc,[data-bb] .pg:not(.pg-emg) .disc,[data-bb] .sv-card>.disc,[data-bb] .sv-mt-go .disc{background:var(--bbg,linear-gradient(180deg,var(--bb1),var(--bb2)))!important}
[data-bb] .hb-card:hover>.disc,[data-bb] .pg:not(.pg-emg):hover .disc,[data-bb] .sv-card:hover>.disc,[data-bb] .sv-mt-go:hover .disc,[data-bb] .sv-mt:hover .sv-mt-go .disc{background:var(--bbgh,linear-gradient(180deg,var(--bbh1),var(--bbh2)))!important}
.gr-line{display:flex;align-items:center;gap:14px}
.gr-logo{display:block;height:44px;width:auto}
.gr-sep{width:1px;height:30px;background:rgba(47,68,79,.2)}
.gr-num{font:700 34px/1 var(--display);letter-spacing:-.02em}
.gr-of{font-size:15px;color:var(--muted);margin-left:-6px;align-self:flex-end;padding-bottom:3px}
.gr-row{--g:20px;--per:3;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:18px;align-items:center}
.gr-arr{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff;color:var(--navy);box-shadow:0 0 0 1px rgba(47,68,79,.08),0 8px 18px -12px rgba(20,32,38,.45);transition:color .2s ease,box-shadow .2s ease}
.gr-arr:hover{color:var(--red);box-shadow:0 0 0 1px rgba(47,68,79,.12),0 12px 22px -12px rgba(20,32,38,.55)}
.gr-arr:active{box-shadow:inset 0 2px 5px rgba(20,32,38,.2)}
.gr-prev svg{transform:rotate(180deg)}
.gr-view{overflow:hidden;padding:4px 3px 28px;margin:-4px -3px -28px;touch-action:pan-y}
.gr-track{list-style:none;margin:0;padding:0;display:flex;gap:var(--g);transform:translateX(calc(var(--i)*-1*(100% + var(--g))/var(--per)));transition:transform .55s cubic-bezier(.22,.61,.36,1)}
.gr-cw{flex:0 0 calc((100% - (var(--per) - 1)*var(--g))/var(--per));container-type:inline-size;min-width:0}
.gr-card{aspect-ratio:380/252;width:100%;display:flex;flex-direction:column;padding:7cqw 7cqw 6.4cqw;border-radius:4.2cqw;background:#fff;box-shadow:0 0 0 1px rgba(47,68,79,.06),0 14px 30px -18px rgba(20,32,38,.35)}
.gr-card .stars{gap:.9cqw}
.gr-card .stars i{width:4.3cqw;height:4.3cqw}
.gr-text{margin:4.4cqw 0 0;flex:1;font-size:4.6cqw;line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.gr-ini{display:grid;place-items:center;flex:none;width:9.6cqw;height:9.6cqw;border-radius:50%;background:#e9edee;color:var(--navy);font:700 3.9cqw/1 var(--display)}
@media (max-width:1149px){.gr-row{--per:2}}
@media (max-width:699px){.gr-logo{height:38px}.gr-num{font-size:30px}.gr-row{--per:1;grid-template-columns:40px minmax(0,1fr) 40px;gap:8px}.gr-arr{width:40px;height:40px}.gr-card{aspect-ratio:270/222;padding:6.6cqw 6.6cqw 6cqw;border-radius:5cqw}.gr-card .stars i{width:5.2cqw;height:5.2cqw}.gr-text{margin-top:4.4cqw;font-size:5.5cqw;line-height:1.5;-webkit-line-clamp:5}.gr-ini{width:11.5cqw;height:11.5cqw;font-size:4.6cqw}}
@media (prefers-reduced-motion:reduce){.gr-track{transition:none}}
.gf{--a:#EBA95E;--ink:#2F444F;--dkKey:#253942;--dkWell:#16242A;--kh:50px;--kg:10px;--bw:190px;--dkRaised:inset 0 1px 0 rgba(255,255,255,.10),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45);--dkPressed:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25);--ltRaised:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(47,68,79,.10),0 0 0 1px rgba(0,0,0,.35),0 10px 18px -10px rgba(0,0,0,.75);--display:'Archivo','Helvetica Neue',Arial,sans-serif;--body:'Source Sans 3','Segoe UI',system-ui,sans-serif;position:relative;overflow-x:clip;padding:28px 20px 0;color:#eaf0f2;font:15px/1.4 var(--body);text-align:left;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.015)),radial-gradient(55% 70%at 12% 8%,rgba(68,168,147,.22),transparent 70%),radial-gradient(45% 60%at 88% 95%,rgba(235,169,94,.16),transparent 70%),radial-gradient(40% 50%at 60% 40%,rgba(120,150,170,.14),transparent 70%),#1c2b32;box-shadow:inset 0 1px 0 rgba(255,255,255,.16)}
.gf *,.gf ::after,.gf ::before{box-sizing:border-box}
.gf a{color:inherit;text-decoration:none}
.gf :focus-visible{outline:2px solid #eba95e;outline-offset:2px}
.gf-in{max-width:1240px;margin:0 auto;padding-bottom:28px;display:flex;flex-direction:column;gap:26px}
.gf-h{margin:0;height:28px;font:600 11px/28px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--a);white-space:nowrap}
.gf-emb,.gf-key{display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#f6f4f0,#e6e2db);box-shadow:var(--ltRaised)}
.gf-emb{height:120px;border-radius:24px}
.gf-emb img{height:76%;width:auto}
.gf-keys{display:flex;flex-direction:column;min-width:0}
.gf-kl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--kg)}
.gf-key{height:var(--kh);padding:0 12px;border-radius:16px;transition:transform .2s}
.gf-key img{width:auto;max-width:100%;max-height:calc(var(--kh) - 18px)}
.gf-key:focus-visible,.gf-key:hover{transform:translateY(-2px)}
.gf-key.is-on{background:linear-gradient(180deg,#d6d1c9,#e7e3dc);box-shadow:inset 2px 3px 7px rgba(47,68,79,.4),inset -1px -1px 0 rgba(255,255,255,.7),0 0 0 2px var(--a);transform:none}
.gf-mapcol,.gf-soc{display:flex;gap:12px}
.gf-soc{justify-content:center;list-style:none;margin:0;padding:0}
.gf-mapcol{flex-direction:column;min-width:0}
.gf-soc a{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--dkKey);box-shadow:var(--dkRaised)}
.gf-soc img{width:20px;height:20px;border-radius:4px;display:block}
.gf-lists{display:grid;grid-template-columns:minmax(0,1fr);gap:22px 24px}
.gf-stack{display:contents}
.gf-grp{order:-1}
.gf-l{list-style:none;margin:0;padding:0;display:grid;grid-auto-rows:32px;gap:2px;justify-items:start}
.gf-c li,.gf-l a{display:flex;gap:10px}
.gf-l a{align-items:center;height:32px;padding:0 12px 0 4px;border-radius:999px;white-space:nowrap;transition:background .2s,box-shadow .2s}
.gf-l a.all{font-weight:600}
.gf-well{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;flex:none;background:var(--dkWell);box-shadow:var(--dkPressed);color:var(--a);transition:background .2s,color .2s}
.gf-well svg{width:13px;height:13px}
.gf-l a:hover{background:var(--dkKey);box-shadow:var(--dkRaised);color:#fff}
.gf-dir:hover .gf-well,.gf-l a:hover .gf-well{background:var(--a);color:#16242a;box-shadow:none}
.gf-c{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.gf-c li{align-items:flex-start;min-height:32px;padding:4px 0 0 4px;line-height:20px}
.gf-c li>:not(.gf-well){margin-top:2px}
.gf-c address{font-style:normal}
.gf-c a:hover{color:var(--a)}
.gf-map{position:relative;overflow:hidden;border-radius:22px;background:var(--dkWell);box-shadow:var(--dkPressed);height:170px;--ms:1;--px:55%}
.gf-map::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 2px 3px 12px rgba(0,0,0,.55),inset 0 0 0 1px rgba(0,0,0,.3);pointer-events:none}
.gf-mlay{position:absolute;width:calc(900px*var(--ms));height:calc(838px*var(--ms));left:calc(var(--px) - 646px*var(--ms));top:calc(50% - 364px*var(--ms))}
.gf-mlay img{width:100%;height:100%;max-width:none;display:block;filter:invert(1) hue-rotate(180deg) brightness(.78) contrast(.95) saturate(.75)}
.gf-pin{position:absolute;left:calc(646px*var(--ms));top:calc(364px*var(--ms))}
.gf-pin i{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:var(--a);box-shadow:0 0 0 3px #fff,1px 2px 5px rgba(0,0,0,.6)}
.gf-pin b,.gf-pin small{position:absolute;left:14px;white-space:nowrap}
.gf-pin b{top:-18px;font:700 13px/1 var(--display);text-shadow:0 0 4px #0f1a1f,0 0 4px #0f1a1f,0 0 2px #0f1a1f}
.gf-pin small{top:-2px;font-size:11.5px;color:rgba(234,240,242,.8);text-shadow:0 0 4px #0f1a1f,0 0 2px #0f1a1f}
.gf-dir,.gf-osm{position:absolute;z-index:2;right:12px}
.gf-dir{bottom:12px;display:flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 5px;border-radius:999px;background:var(--dkKey);box-shadow:var(--dkRaised);font:600 14px/1 var(--display);color:#fff;white-space:nowrap}
.gf-dir .gf-well{width:30px;height:30px}
.gf-dir .gf-well svg{width:15px;height:15px}
.gf-osm{left:12px;top:8px;font-size:9.5px;color:rgba(234,240,242,.6);line-height:1.2}
.gf-strip{margin:0-20px;padding:0 20px;background:rgba(0,0,0,.26);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),inset 0 2px 3px rgba(0,0,0,.25);font-size:12.5px;color:rgba(234,240,242,.68)}
.gf-regs span,.gf-strip-in{display:flex;align-items:center;gap:6px}
.gf-strip-in{max-width:1240px;margin:0 auto;min-height:64px;padding:12px 0 calc(12px + env(safe-area-inset-bottom,0));flex-direction:column;justify-content:center;text-align:center}
.gf-co{font-variant-numeric:tabular-nums}
.gf-co i{font-style:normal}
.gf-regs{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 16px}
.gf-regs span{white-space:nowrap}
.gf-regs svg{width:13px;height:13px;color:#e2615d}
.gf-leg{display:flex;gap:16px}
.gf-leg a:hover,.gf-pin b{color:#fff}
@media (max-width:560px){.gf-kl{grid-template-columns:minmax(0,1fr)}}
@media (max-width:699px){.gf-grp .gf-l,.gf-umb .gf-l,.gf-vir .gf-l{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;column-gap:8px;justify-items:stretch}.gf-umb .gf-l,.gf-vir .gf-l{grid-template-rows:repeat(4,32px)}.gf-grp .gf-l{grid-template-rows:repeat(2,32px)}.gf-l a{gap:8px;font-size:14px}.gf-grp .gf-l a,.gf-umb .gf-l a,.gf-vir .gf-l a{padding-right:4px;width:max-content;max-width:100%}}
@media (max-width:560px){.gf{padding-top:24px}.gf-in{gap:24px;padding-bottom:24px}.gf-emb{height:100px}.gf-keys .gf-h{height:32px}.gf-lists{gap:20px}.gf-ct,.gf-lists{padding-top:20px;border-top:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(0,0,0,.35)}.gf-c{font-size:14px}.gf-c li{gap:8px}.gf-mapcol{gap:14px}.gf-strip-in{gap:8px;padding-top:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0))}.gf-co span{display:block;white-space:nowrap}.gf-co i{display:none}}
@media (max-width:379px){.gf-umb .gf-l{grid-template-columns:max-content max-content;justify-content:space-between;column-gap:4px}.gf-umb .gf-l a{font-size:13px;gap:6px;padding:0 2px 0 0;max-width:none}}
@media (max-width:339px){.gf-umb .gf-l a{font-size:12px;gap:5px}.gf-umb .gf-well{width:22px;height:22px}}
@media (min-width:700px){.gf-lists{grid-template-columns:minmax(max-content,1fr) minmax(0,1fr)}.gf-umb .gf-l,.gf-vir .gf-l{grid-template-rows:repeat(4,32px);grid-auto-flow:column;column-gap:10px;justify-content:start}}
@media (min-width:561px) and (max-width:960px){.gf-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:24px}.gf-emb,.gf-keys,.gf-lists{grid-column:1/-1}.gf-soc{justify-content:flex-end}.gf-map{flex:1;height:auto;min-height:150px;--px:45%}}
@media (min-width:961px){.gf{padding:38px 32px 0}.gf-strip{margin:0-32px;padding:0 32px}.gf-in{display:grid;grid-template-columns:var(--bw) var(--bw) max-content minmax(180px,420px);justify-content:space-between;column-gap:24px;row-gap:26px;align-items:start;padding-bottom:36px}.gf-emb{grid-column:1;grid-row:1;margin-top:38px;height:calc(var(--kh)*3 + var(--kg)*2)}.gf-keys{grid-column:2;grid-row:1}.gf-keys .gf-h{height:38px}.gf-kl{grid-template-columns:minmax(0,1fr)}.gf-ct{grid-column:3;grid-row:1}.gf-mapcol{grid-column:4;grid-row:1}.gf-soc{justify-content:flex-end}.gf-map{height:calc(var(--kh)*3 + var(--kg)*2 - 6px);--ms:1;--px:38%}.gf-lists,.gf-strip-in{justify-content:space-between}.gf-lists{grid-column:1/-1;grid-row:2;display:flex;gap:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(0,0,0,.35)}.gf-vir .gf-l{grid-template-rows:repeat(4,32px);grid-auto-flow:column;column-gap:10px}.gf-strip-in{flex-direction:row;flex-wrap:wrap;gap:6px 24px;text-align:left}}
@media (min-width:1200px){.gf-map{--px:42%}.gf-c{display:grid;grid-template-rows:repeat(4,auto);grid-auto-flow:column;column-gap:20px;row-gap:2px;justify-content:start}.gf-c li:nth-child(5){grid-row:1/span 4}}
@media (min-width:1100px){.gf-umb .gf-l{grid-template-rows:repeat(4,32px);grid-auto-flow:column;column-gap:10px}}
@media (min-width:961px) and (max-width:1099px){.gf-lists{gap:16px}.gf-l a{font-size:14px;gap:8px;padding-right:6px}.gf-umb .gf-l,.gf-vir .gf-l{column-gap:4px}}
@media (min-width:961px) and (max-width:1009px){.gf-lists{gap:8px}.gf-l a{padding-right:2px;gap:7px}}
@media (min-width:1010px) and (max-width:1199px){.gf-b1{display:none}}
@media (min-width:700px) and (max-width:759px){.gf{--kh:64px}.gf-in{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:24px}.gf-emb{grid-column:1;height:auto;align-self:stretch;border-radius:20px}.gf-emb img{height:68px}.gf-keys{grid-column:2/-1}.gf-lists{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(0,0,0,.35)}.gf-l a{font-size:14px;gap:8px}.gf-umb .gf-l,.gf-vir .gf-l{column-gap:4px}.gf-ct{grid-column:1/3}.gf-mapcol{grid-column:3/-1}}
@media (min-width:760px) and (max-width:960px){.gf{--kh:64px}.gf-in{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:stretch;gap:0 24px}.gf-lists,.gf-stack{display:contents}.gf-emb{flex:0 0 calc((100% - 72px)/4);height:auto;border-radius:20px}.gf-emb img{height:68px}.gf-keys{flex:1 1 0}.gf-in::before{content:"";order:1;flex:0 0 100%;height:1px;margin-top:24px;background:rgba(255,255,255,.12);box-shadow:0-1px 0 rgba(0,0,0,.35)}.gf-in::after{content:"";order:5;flex:0 0 100%;height:0}.gf-ct,.gf-grp,.gf-lit,.gf-mapcol,.gf-umb,.gf-vir{margin-top:24px}.gf-grp{order:2}.gf-vir{order:3}.gf-umb{order:4}.gf-lit{order:6}.gf-ct{order:7}.gf-mapcol{order:8;flex:1 1 0;min-width:200px;max-width:420px}.gf-l a{font-size:14px;gap:8px}.gf-umb .gf-l,.gf-vir .gf-l{column-gap:4px}.gf-vir .gf-l a{padding-right:4px}.gf-umb .gf-l a{padding-right:0}}
@media (min-width:700px) and (max-width:960px){.gf{--kh:72px}.gf-emb{align-self:end;height:var(--kh)}.gf-emb img{height:56px}.gf-c{font-size:14px}.gf-c li{gap:8px}}
@media (min-width:760px) and (max-width:960px){.gf-emb{align-self:flex-end}.gf-ct,.gf-lit,.gf-mapcol{margin-top:28px}}
.nlb-hold{position:relative;z-index:2;max-width:1240px;height:6px;margin:0 auto 46px}
.nlb{min-height:260px;position:absolute;left:0;right:0;bottom:0;overflow:hidden;padding:40px clamp(22px,4vw,52px) 28px;border-radius:24px;background:#fff;color:#2f444f;box-shadow:inset 0-1px 0 rgba(47,68,79,.1),0 0 0 1px rgba(47,68,79,.12),0 22px 34px -20px rgba(8,14,18,.75);display:flex;flex-wrap:wrap;align-items:center;gap:28px 56px;font-family:"Source Sans 3",Helvetica,Arial,sans-serif}
.nlb,.nlb *{box-sizing:border-box}
.nlb-bar{position:absolute;top:0;left:0;right:0;height:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.nlb-form{flex:1 1 260px;min-width:0}
.nlb h2{margin:0;font-family:Archivo,Helvetica,Arial,sans-serif;font-weight:700;font-size:clamp(28px,3vw,38px);line-height:1.08;letter-spacing:-.02em;color:#2f444f}
.nlb-form{flex:1 1 380px;max-width:520px;margin:0}
.nlb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.nlb-row{position:relative}
.nlb-fld{display:block;width:100%;height:60px;margin:0;padding:0 150px 0 26px;border:0;border-radius:999px;background:#f1f3f1;box-shadow:inset 0 2px 5px rgba(47,68,79,.16);font:400 17px/1.4"Source Sans 3",Helvetica,Arial,sans-serif;color:#2f444f}
.nlb-fld::placeholder{color:#6b7b84;opacity:1}
.nlb-go{position:absolute;top:4px;right:4px;display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 64px 0 22px;border:0;border-radius:999px;cursor:pointer;font:600 15px/1"Source Sans 3",Helvetica,Arial,sans-serif;letter-spacing:.005em;white-space:nowrap;color:#fff;background:linear-gradient(180deg,#36505c,#263842);box-shadow:0 1px 3px rgba(20,32,38,.25),0 8px 20px -6px rgba(20,32,38,.5),inset 0 1px 0 rgba(255,255,255,.14),inset 0-1px 0 rgba(0,0,0,.2);transition:background .2s}
.nlb-go:hover{background:linear-gradient(180deg,#3d5a67,#2b3f4a)}
.nlb-go:active{box-shadow:inset 0 2px 6px rgba(8,14,18,.5)}
.nlb-go span{position:absolute;top:7px;right:7px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;color:#263842}
.nlb .nlb-fld:focus-visible,.nlb .nlb-go:focus-visible,.nlb .nlb-msg a:focus-visible{outline:3px solid #2f444f;outline-offset:3px}
.nlb-msg{min-height:40px;margin:12px 0 0;padding:0 8px;font-size:13.5px;line-height:1.45;color:#5c6e78}
.nlb-msg b{font-weight:600;color:#2f444f}
.gf .nlb-msg a,.nlb .nlb-legal a{color:#2f444f;font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media (max-width:560px){.nlb{padding:32px 22px 24px}.nlb-msg{min-height:60px}}
html .vgm .nv-feat .nv-go.nv-go.nv-go i{background-color:#eaa553}
html body .pg.pg-go:not(.gk-btn) .disc,html body .pg.pg-quote:not(.gk-btn) .disc,html body .sv-card>.disc,html body .sv-mt .sv-mt-go .disc{background:radial-gradient(circle closest-side,#2f444f calc(100% - 5.5px),#f8f6f2 calc(100% - 5px),#f8f6f2 calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#eba95e 0 120deg,#3e7d19 120deg 240deg,#004eba 240deg 360deg)}
html body .pg.pg-go:not(.gk-btn):hover .disc,html body .pg.pg-quote:not(.gk-btn):hover .disc,html body .sv-card:hover>.disc,html body .sv-mt:hover .sv-mt-go .disc{background:radial-gradient(circle closest-side,#3a5360 calc(100% - 5.5px),#f8f6f2 calc(100% - 5px),#f8f6f2 calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#eba95e 0 120deg,#3e7d19 120deg 240deg,#004eba 240deg 360deg)}
html body a.pg[href*=Umbuso] .disc{background:linear-gradient(180deg,#46871f,#356d14)}
html body a.pg[href*=Umbuso]:hover .disc{background:linear-gradient(180deg,#4f9424,#3b7717)}
html body a.pg[href*=Lighthaven] .disc{background:linear-gradient(180deg,#0a56c4,#003f99)}
html body a.pg[href*=Lighthaven]:hover .disc{background:linear-gradient(180deg,#1562d2,#0448a8)}
html body .ct2-dd-o[aria-selected=true]{background:#fdf5ea;color:#8a5510}
html body[data-bb=group] .bg-rule{width:72px;background:linear-gradient(90deg,#eba95e 0 33.33%,#3e7d19 33.33% 66.66%,#004eba 66.66%)}
html body[data-bb=group] main .eyebrow,html body[data-bb=group] main .sv-w{color:#a8691a}
html body[data-bb=group] main #renovations .pj-eb::before{background:#eaa553}
html body[data-bb=group] main #gardens .pj-eb{color:#3e7d19}
html body[data-bb=group] main #gardens .pj-eb::before{background:#3e7d19}
html body[data-bb=group] main #developments .pj-eb{color:#004eba}
html body[data-bb=group] main #developments .pj-eb::before{background:#004eba}
@media (min-width:1025px){html.n2.n3 .vgm.vgm .vgm-navwrap{position:relative}html.n2.n3 .vgm.vgm .vgm-tray.mb-tray{left:0;right:0;width:auto;transform:none;top:calc(100% + 12px)}html.n2.n3 .vgm.vgm .vgm-tray.mb-tray::before{top:-12px;height:12px}html.n2.n3 .vgm.vgm .vgm-tray .mb-cols{grid-template-columns:minmax(0,1fr) 200px 222px 212px}html.n2.n3 .vgm.vgm .vgm-tray .mb-col.mb-wide .vgm-pgrid{grid-template-columns:.78fr 1.22fr}html.n2.n3 .vgm.vgm .vgm-tray .vgm-probs.mb-col{padding-inline:20px}}
@media (min-width:1025px) and (max-width:1219px){html.n2.n3 .vgm.vgm .vgm-tray .mb-cols{grid-template-columns:minmax(0,1fr) 200px 220px}}
html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb{width:76px;height:100px}
html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:80px;width:auto}
@media (max-width:1024px){html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb{margin-bottom:-20px}}
@media (min-width:1025px){html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb{width:116px;height:136px}html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:106px}html.n2.n3 .vgm.vgm .vgm-tray .mb-cols.mb-cols{grid-template-columns:minmax(0,1.08fr) minmax(0,1.12fr) minmax(0,.8fr)}html.n2.n3 .vgm.vgm .vgm-tray .mb-col .vgm-pgrid.vgm-pgrid{grid-template-columns:1fr 1fr;gap:0 14px}html.n2.n3 .vgm.vgm .vgm-tray .mb-col:nth-child(3) .vgm-pgrid.vgm-pgrid{grid-template-columns:1fr}html.n2.n3 .vgm.vgm .vgm-tray .mb-col .vgm-prow b{white-space:nowrap}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat.nv-feat{display:flex;grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px 18px;margin:0 14px 14px;padding:14px 14px 14px 24px}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat .nv-eb{flex:none}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat strong{flex:none;font-size:18px}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat .nv-go{flex:none;margin:0;min-width:150px}}
@media (min-width:1025px) and (max-width:1219px){html.n2.n3 .vgm.vgm .vgm-tray .vgm-probs.mb-col{padding-inline:16px}html.n2.n3 .vgm.vgm .vgm-tray .mb-col .vgm-prow{gap:9px}html.n2.n3 .vgm.vgm .vgm-tray .mb-col .vgm-prow b{font-size:14px;white-space:normal}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat strong{flex:1}}
@media (max-width:1024px){html.n2 .vgm .vgm-sub .mb-col:nth-child(2) .vgm-pgrid{grid-template-columns:1fr 1fr}}
.nlb .nlb-legal{flex:1 1 100%;font-size:13px;line-height:1.45;color:#5c6e78}
.nlb .nlb-msg{min-height:0}
.nlb.nlb{align-content:center;row-gap:16px}
.nlb .nlb-legal{margin:0}
@media (max-width:560px){.nlb .nlb-fld{padding-right:26px}.nlb .nlb-go{position:relative;top:auto;right:auto;width:100%;margin-top:10px}}
.gf .gf-h{font-size:12.5px}
.gr-card .gr-text{font-size:max(13px,4.6cqw)}
.gr-card .gr-ini{font-size:max(12px,3.9cqw)}
@media (max-width:760px){.gr-card .gr-text{font-size:max(13px,5.5cqw)}.gr-card .gr-ini{font-size:max(12px,4.6cqw)}}
.gf .gf-c a,.gf .gf-leg a,.nlb-legal a{padding-block:4px}
.gf .gf-leg a{display:inline-block}
@media (max-width:703px){:root:has(#hero.ct-hero){--hero-lap:110px}:root:has(#hero.ct-hero+.t3-body .ct2){--hero-lap:194px}}
.gf-foot{display:contents}
html body main .eyebrow{color:#9a6016}
html body main .services .sec-head .eyebrow,html body[data-bb] main :is(.eyebrow):not(.band.navy *){color:#9a6016!important}
html .vgm .vgm-links>a:focus-visible,html .vgm .vgm-links>button:focus-visible,html .vgm a:focus-visible,html .vgm button:focus-visible{outline:2px solid #eba95e;outline-offset:3px}
:root{--hdr0:108px}
@media (min-width:1025px){:root{--hdr0:124px}}
html.nf.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"],html.nf.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]{background-color:#fff;transition:background-color .2s,box-shadow .2s}
.gr-ini{position:relative;overflow:hidden}
.gr-ini img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:reduce){html body :is(.hb-frame,.pj-frame,.sv-frame,.rp-frame){transition:none}html body :is(.hb-frame,.pj-frame,.sv-frame,.rp-frame)::before{animation:none}}
html body[data-bb=group] .gf[data-biz=group]{--a:#FFFFFF;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.015)),radial-gradient(55% 70% at 12% 8%,rgba(47,68,79,.75),transparent 70%),radial-gradient(45% 60% at 88% 95%,rgba(255,255,255,.05),transparent 70%),radial-gradient(40% 50% at 60% 40%,rgba(120,150,170,.12),transparent 70%),#1c2b32}
html body[data-bb=group] .gf[data-biz=group] :focus-visible{outline-color:#fff}
html body[data-bb=group] .gf[data-biz=group] .gf-c a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
html body[data-bb=group] .gf[data-biz=group] .gf-pin i{background:#2F444F}
html body .gf{--a:#FFFFFF;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.015)),radial-gradient(55% 70% at 12% 8%,rgba(47,68,79,.75),transparent 70%),radial-gradient(45% 60% at 88% 95%,rgba(255,255,255,.05),transparent 70%),radial-gradient(40% 50% at 60% 40%,rgba(120,150,170,.12),transparent 70%),#1c2b32}
html body .gf :focus-visible{outline-color:#fff}
html body .gf .gf-c a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
html body .gf .gf-pin i{background:#2F444F}
html body .sv-eb::before,html body .sv-eb::after{content:none}
html body .nlb-go span{color:#263842;background:radial-gradient(circle closest-side,#fff calc(100% - 5.5px),#2b3f4a calc(100% - 5px),#2b3f4a calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#eba95e 0 120deg,#3e7d19 120deg 240deg,#004eba 240deg 360deg)}
html body[data-bb=virlocept] .nlb-bar span{background:#EBA95E!important}
html body[data-bb=umbuso] .nlb-bar span{background:#3E7D19!important}
html body[data-bb=lighthaven] .nlb-bar span{background:#004EBA!important}
html body main .sv-rot .sv-w.on{color:#b8751f}
html body[data-bb=umbuso] main .sv-rot .sv-w.on,html body main .sv-rot .sv-w.on.w-u{color:#3E7D19}
html body[data-bb=lighthaven] main .sv-rot .sv-w.on,html body main .sv-rot .sv-w.on.w-l{color:#004EBA}
html body main .sv-rot .sv-w.on.w-v{color:#b8751f}
html.n2 body .vgm .vgm-dnav>[aria-current],html.n2 body .vgm .vgm-dnav>[data-current],html.n2 body .vgm .vgm-dnav>button[aria-expanded=true]{color:#2F444F}
html.n2 body[data-bb=virlocept] .vgm .vgm-dnav>[aria-current],html.n2 body[data-bb=virlocept] .vgm .vgm-dnav>[data-current],html.n2 body[data-bb=virlocept] .vgm .vgm-dnav>button[aria-expanded=true]{color:#b8751f}
html.n2 body[data-bb=umbuso] .vgm .vgm-dnav>[aria-current],html.n2 body[data-bb=umbuso] .vgm .vgm-dnav>[data-current],html.n2 body[data-bb=umbuso] .vgm .vgm-dnav>button[aria-expanded=true]{color:#3E7D19}
html.n2 body[data-bb=lighthaven] .vgm .vgm-dnav>[aria-current],html.n2 body[data-bb=lighthaven] .vgm .vgm-dnav>[data-current],html.n2 body[data-bb=lighthaven] .vgm .vgm-dnav>button[aria-expanded=true]{color:#004EBA}
html body .gf .gf-emb.is-on{position:relative;background:linear-gradient(180deg,#d6d1c9,#e7e3dc);box-shadow:inset 2px 3px 7px rgba(47,68,79,.4),inset -1px -1px 0 rgba(255,255,255,.7)}
html body .gf .gf-emb.is-on::after{content:"";position:absolute;inset:-2px;border-radius:inherit;padding:2px;pointer-events:none;background:linear-gradient(90deg,#eba95e,#3e7d19 33.33%,#004eba 66.66%,#eba95e);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
html body .gf .gf-regs svg{color:#EBA95E}
html body[data-bb=umbuso] main .eyebrow:not(.band.navy *){color:#3E7D19!important}
html body[data-bb=lighthaven] main .eyebrow:not(.band.navy *){color:#004EBA!important}
html body[data-bb=group] main :is(.eyebrow,.t3-eb,.gk-eb,.au-role,.au-grp-lab,.pj-eb)::before,html body[data-bb=group] main :is(.eyebrow,.t3-eb,.gk-eb,.au-role,.au-grp-lab,.pj-eb)::after{content:none!important}
html body main .sv-rot .sv-w{color:#b8751f}
html body[data-bb=umbuso] main .sv-rot .sv-w,html body main .sv-rot .sv-w.w-u{color:#3E7D19}
html body[data-bb=lighthaven] main .sv-rot .sv-w,html body main .sv-rot .sv-w.w-l{color:#004EBA}
html body main .sv-rot .sv-w.w-v{color:#b8751f}
html.nf.n3 .vgm .vgm-links>a:not(.vgm-key):hover,html.nf.n3 .vgm .vgm-links>button:hover,html.nf.n3 .vgm .vgm-links>button[aria-expanded=true],html.n3 .vgm .vgm-links>a:not(.vgm-key):hover,html.n3 .vgm .vgm-links>button:hover,html.n3 .vgm .vgm-links>button[aria-expanded=true]{color:#fff}
html.n3 .vgm .vgm-links>a:not(.vgm-key),html.n3 .vgm .vgm-links>button{z-index:0}
html.n3 .vgm .vgm-links>[aria-current]:not(.vgm-key)::before{content:"";position:absolute;z-index:-1;left:4px;right:4px;top:50%;height:42px;transform:translateY(-50%);border-radius:999px;background:rgba(255,255,255,.14);pointer-events:none}

/* Blocks with the hover border: on hover the border is the only change. The block, its photo, its arrow and its shadow stay as they are. */
html body :is(.hb-card,.pj-card,.rp-card,.sv-card,.sv-mt):hover:not(:focus-visible){box-shadow:0 0 0 1px rgba(47,68,79,.06),0 14px 28px -16px rgba(20,32,38,.55)!important}
html body .sv-mt:hover:not(:focus-visible){box-shadow:0 0 0 1px rgba(47,68,79,.06),0 14px 28px -16px rgba(20,32,38,.55),inset 0 1px 0 rgba(255,255,255,.1)!important}
html body :is(.hb-card,.pj-card,.rp-card,.sv-card,.sv-mt) img{transform:none!important}
html body :is(.hb-card,.sv-card)>.disc svg:first-child{transform:none!important}
html body :is(.hb-card,.sv-card)>.disc svg+svg{display:none!important}
html body :is(.hb-card,.sv-card):hover>.disc.disc{background:var(--bbg,linear-gradient(180deg,var(--bb1),var(--bb2)))!important}
html body .sv-mt:hover .sv-mt-go:not(:hover):not(:focus-visible){box-shadow:0 1px 3px rgba(6,12,16,.35),0 4px 14px -2px rgba(6,12,16,.55),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(112,98,84,.07)!important}
html body .sv-mt .sv-mt-go:is(:hover,:focus-visible){box-shadow:0 2px 4px rgba(6,12,16,.35),0 7px 20px -3px rgba(6,12,16,.55),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(112,98,84,.07)!important}
html body .sv-mt:hover .sv-mt-go:not(:hover):not(:focus-visible) .disc{filter:none!important;background:var(--bbg,linear-gradient(180deg,var(--bb1),var(--bb2)))!important}
html body .sv-mt:hover .sv-mt-go:not(:hover):not(:focus-visible) .disc svg{animation:none!important}
/* Click and tap highlight: no browser highlight box or text selection on links, buttons and controls when clicked or tapped. Keyboard focus outlines (:focus-visible) are unchanged. Phone and email links stay selectable so the number or address can be copied. */
html{-webkit-tap-highlight-color:transparent}
:is(a,button,summary,label,[role=button],[role=tab]):not([href^="tel:"]):not([href^="mailto:"]){-webkit-user-select:none;user-select:none}
:is(a,button,summary,label,[role=button],[role=tab]) img{-webkit-user-drag:none}
:is(a,button,summary,[role=button],[role=tab]):not([href^="tel:"]):not([href^="mailto:"])::selection,:is(a,button,summary,[role=button],[role=tab]):not([href^="tel:"]):not([href^="mailto:"]) ::selection{background:transparent}

/* Google reviews: a reviewer's name from Google links to their Google profile; it reads as the plain name. */
.gr-name a{color:inherit;text-decoration:none}
/* .gr-name clips its overflow, so keyboard focus shows as a thick underline rather than an outline. */
.gr-name a:hover{text-decoration:underline}
.gr-name a:focus-visible{outline:none;text-decoration:underline;text-decoration-thickness:2px}
/* Google reviews, 4 and 5 star: a 4-star card shows its 5th star grey; the review text links to the review on Google Maps and reads as plain text; the notice line sits above Read all reviews in the same muted style. */
.gr-stars i.off{background:#d5dbde}
.gr-text a{color:inherit;text-decoration:none}
.gr-text a:hover{text-decoration:underline}
.gr-text a:focus-visible{outline:none;text-decoration:underline;text-decoration-thickness:2px}

/* Phone numbers drawn from data attributes (inc/helpers.php vg_hide_numbers), so the page source holds no numbers. Non-breaking spaces keep each number on 1 line. */
.vgn::before{content:attr(data-n1) "\00a0" attr(data-n2) "\00a0" attr(data-n3)}
.vgn.on::before{content:none}
/* Template stylesheet: service-virlocept.css. Loads after shared.css. */
body,html{margin:0}
body{font-family:var(--body);color:var(--navy);background:var(--off);font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;background:#f7f5f2}
.strip .wrap{justify-content:space-between;height:40px;gap:24px}
.bar .wrap,.menu,.menu>li,.strip .wrap{display:flex;align-items:center}
.menu{align-items:stretch;list-style:none;margin:0;padding:0;height:100%;gap:4px}
.menu>li{position:static}
.btn,.call,.top{align-items:center;font-weight:600;white-space:nowrap}
.top{position:relative;display:flex;height:100%}
.top::after{content:"";position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.menu>li.open .top::after,.top:hover::after,.top[aria-current=page]::after{transform:scaleX(1)}
.btn,.call{gap:10px;font-size:15px}
.call{display:flex}
.call small,.toggle span small{display:block;font-weight:400;color:var(--muted)}
.call small{font-size:12px;line-height:1.1}
.btn{display:inline-flex;justify-content:center;background:var(--btn);color:#fff;letter-spacing:.005em;line-height:1;height:48px;padding:0 22px;border-radius:8px;transition:background .2s ease}
.btn:hover{background:var(--btn-hover)}
main{min-height:120vh;min-height:0;background:linear-gradient(180deg,#1c2b32 0,#3a5260 36%,#d6dddc 46%,#f0f2f1 100%)}
.toggle{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--pale-teal);border-radius:10px;font-weight:600;cursor:pointer}
.toggle span small{font-size:14px}
@media (max-width:1180px){.call small{display:none}.top{padding:0 9px;font-size:15px}.top::after{left:9px;right:9px}.bar .wrap{gap:18px}}
@media (max-width:1024px){.wrap{padding:0 24px}.call{display:none}.strip .wrap{justify-content:center}.bar .wrap{height:72px}}
@media (max-width:600px){.wrap{padding:0 16px}.strip{font-size:13px}.strip .wrap{height:36px}}
.strip{background:var(--navy);position:relative;z-index:3}
.bar .wrap{height:84px;gap:20px}
.top{padding:0 11px;font-size:15px}
.top::after{left:11px;right:11px;box-shadow:0 1px 0 rgba(255,255,255,.8),inset 0 1px 0 rgba(255,255,255,.3);background:linear-gradient(var(--red),var(--red)) left bottom/100% 2px no-repeat,linear-gradient(var(--red),var(--red)) left bottom/2px 8px no-repeat,linear-gradient(var(--red),var(--red)) right bottom/2px 8px no-repeat,repeating-linear-gradient(90deg,var(--red)0 1px,transparent 1px 7px) left bottom/100% 5px no-repeat}
@media (max-width:1320px){.call small{display:none}}
@media (max-width:1024px){.bar .wrap{height:72px}}
@media (max-width:600px){.bar .wrap{height:64px;gap:8px}}
.strip{background:linear-gradient(180deg,#34495a,#2b3f49)}
.call,.eyebrow,.top{text-shadow:0 1px 0 rgba(255,255,255,.95),0-1px 0 rgba(47,68,79,.07)}
.top:hover,.top[aria-current=page]{text-shadow:0 1px 0#fff,0-1px 0 rgba(47,68,79,.12)}
.plan{margin:0;display:flex;flex-direction:column;border-radius:10px;overflow:hidden;background:linear-gradient(rgba(47,68,79,.07) 1px,transparent 1px) -1px -1px/20px 20px,linear-gradient(90deg,rgba(47,68,79,.07) 1px,transparent 1px) -1px -1px/20px 20px,linear-gradient(rgba(47,68,79,.05) 1px,transparent 1px) -1px -1px/100px 100px,#fff}
.plan svg{width:100%;height:auto;padding:16px 18px 8px;overflow:visible;margin:auto 0}
.wrap{max-width:1680px;padding-left:var(--gutter);padding-right:var(--gutter)}
.bar .wrap{gap:clamp(14px,1.6vw,28px)}
@media (max-height:760px) and (min-width:1025px){.plan svg{padding:10px 14px 4px}}
@media (max-width:1180px) and (min-width:1025px){.top{padding:0 8px;font-size:14px}.top::after{left:8px;right:8px}.call>span:last-child{display:none}}
.strip{background:#2f444f}
.top::after{height:3px;bottom:0;border-radius:3px 3px 0 0;box-shadow:none;background:var(--red)}
.plan{background-position:center center;box-shadow:inset 1px 2px 4px rgba(47,68,79,.1),inset -1px -1px 0#fff,0 0 0 1px rgba(68,168,147,.18)}
.strip a:hover,.strip a:hover svg{color:#eba95e}
@media (max-width:1024px){.bar .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.call{display:none!important}}
@media (max-width:600px){.strip{display:none}.bar .wrap{height:64px}}
.plan{transition:box-shadow .2s ease}
.plan:hover{box-shadow:inset 1px 2px 4px rgba(47,68,79,.1),inset -1px -1px 0#fff,0 0 0 1.5px rgba(68,168,147,.55)}
.bar{--bg:#F7F5F2;--hi:#FFFFFF;--lo:rgba(112,98,84,.18);--lo-soft:rgba(112,98,84,.11)}
.disc svg,.pg .disc svg{position:absolute;top:50%;left:50%;margin:-8px 0 0-8px;transition:transform .35s cubic-bezier(.6,0,.2,1)}
.disc svg+svg,.pg .disc svg+svg{transform:translateX(-32px)}
@media (prefers-reduced-motion:reduce){.disc svg{transition:none}}
.bar{--lo:rgba(112,98,84,.24);--lo-near:rgba(112,98,84,.16);background:linear-gradient(180deg,#fff 0,#fbfaf8 45%,#f2eee9 100%);box-shadow:inset 0 7px 8px -8px rgba(20,32,38,.22),inset 0 1px 0 rgba(255,255,255,.9),inset 0-10px 14px -12px rgba(112,98,84,.22),inset 0-1px 0 rgba(112,98,84,.16),0 1px 2px rgba(47,68,79,.07),0 14px 28px -18px rgba(47,68,79,.42)}
.strip{background:linear-gradient(180deg,#385260 0,#2f444f 55%,#273a43 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),inset 0-8px 12px -10px rgba(0,0,0,.3),inset 0-1px 0 rgba(0,0,0,.25)}
.plan{align-self:stretch;background-image:none;background-color:#f0f7f5}
.plan>svg{flex:1 1 auto;width:100%;min-height:0;padding:14px 16px 10px;margin:0;overflow:visible}
.pg{position:relative;display:inline-flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;height:52px;min-height:52px;padding:0 69px 0 24px;border-radius:999px;font-family:var(--body);font-weight:600;font-size:15px;letter-spacing:.005em;line-height:1;white-space:nowrap;text-shadow:none;color:var(--navy);background:linear-gradient(180deg,#fff,#f5f2ee);--lo:rgba(112,98,84,.24);--lo-near:rgba(112,98,84,.16);box-shadow:0 1px 3px var(--lo-near),0 4px 14px -2px var(--lo),inset 0 0 0 transparent,inset 0 0 0 transparent,inset 0 1px 0#fff,inset 0-1px 0 rgba(112,98,84,.07);transition:box-shadow .22s var(--ease),background .2s ease,color .2s ease}
.pg:hover{box-shadow:0 2px 4px var(--lo-near),0 7px 20px -3px var(--lo),inset 0 0 0 transparent,inset 0 0 0 transparent,inset 0 1px 0#fff,inset 0-1px 0 rgba(112,98,84,.07)}
.pg:active{background:linear-gradient(180deg,#f1ede8,#f7f5f2);box-shadow:0 0 0 transparent,0 0 0 transparent,inset 0 2px 6px var(--lo),inset 0 0 0 1px var(--lo-near),inset 0 0 0 transparent,inset 0 0 0 transparent;transition-duration:.12s}
.pg:focus-visible{outline:0;box-shadow:0 1px 3px var(--lo-near),0 4px 14px -2px var(--lo),inset 0 1px 0#fff,inset 0-1px 0 rgba(112,98,84,.07),var(--focus-ring)}
.pg:focus-visible .disc svg,.pg:hover .disc svg{transform:translateX(32px)}
.pg:focus-visible .disc svg+svg,.pg:hover .disc svg+svg{transform:translateX(0)}
.checks li i,.ico{flex:none;display:grid;place-items:center;border-radius:50%}
.ico{width:44px;height:44px;color:var(--teal);background:linear-gradient(145deg,#fff 0,#f0f7f5 100%);box-shadow:-2px -2px 4px rgba(255,255,255,.95),2px 3px 6px rgba(47,68,79,.13),inset 0 1px 0#fff;transition:background .16s,color .16s}
.hero{padding:clamp(40px,5vw,72px)0 clamp(48px,6vw,80px);overflow:hidden}
.hero .eyebrow{margin-bottom:16px}
.who{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.who .ico{width:48px;height:48px}
.who .ico svg{width:22px;height:22px}
.who h3{margin:4px 0 0}
.who p{margin:0;color:var(--muted);font-size:15px;line-height:1.5;flex:1}
.checks{list-style:none;margin:0 0 28px;padding:0;display:grid;gap:12px}
.checks li{display:flex;gap:12px;align-items:flex-start;line-height:1.45}
.checks li i{width:26px;height:26px;margin-top:1px;color:#fff;background:linear-gradient(145deg,#52b8a2,#3a9582);box-shadow:-2px -2px 4px rgba(255,255,255,.95),2px 3px 6px rgba(47,68,79,.16)}
.checks li i svg{width:13px;height:13px}
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center}
.about .eyebrow{color:var(--red)}
.brands{padding:36px 0 40px}
@media (max-width:760px){.brands{padding:32px 0}}
@media (max-width:1024px){.hero .h1{max-width:16ch}.about{grid-template-columns:1fr;gap:36px}}
@media (max-width:760px){.who{grid-template-columns:1fr}}
@media (max-width:600px){.hero{padding-top:28px}}
@media (prefers-reduced-motion:reduce){.pg .disc svg{transition:none}}
.about{gap:clamp(40px,6vw,96px)}
.about .copy{font-size:16.5px;line-height:1.65}
.marks{display:flex;flex-wrap:wrap;align-items:center;gap:18px 48px}
@media (max-width:760px){.marks{gap:18px}:root{--space:64px}}
.is-done .done{display:flex!important}
.issue{position:absolute;left:50%;top:50%;width:300px;margin:-205px 0 0-150px;text-align:left;background:#fff;border-radius:14px;overflow:hidden;cursor:pointer;box-shadow:0 26px 50px -22px rgba(47,68,79,.5),0 0 0 1px rgba(47,68,79,.06);transition:transform .6s var(--ease),box-shadow .3s}
.issue img{display:block;width:100%;height:190px;object-fit:cover}
.issue .body{display:block;padding:18px 20px 22px}
.issue .eyebrow{display:block;margin-bottom:8px}
.issue h3{font-family:var(--display);font-weight:600;font-size:19px;line-height:1.2;margin:0 0 12px;color:var(--navy)}
.issue ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.issue li{display:flex;gap:9px;font-size:14px;line-height:1.4;color:var(--muted)}
.issue li svg{color:var(--teal);margin-top:2px}
@media (max-width:1100px){.issue{width:250px;margin-left:-125px}}
@media (max-width:960px) and (min-width:761px){.issue{width:220px;margin-left:-110px}.issue img{height:160px}}
@media (max-width:420px){.issue{width:228px;margin-left:-114px}}
@media (prefers-reduced-motion:reduce){.issue{transition:none}}
:root{--space:clamp(56px,6vw,88px)}
.eyebrow,.h2{margin-bottom:12px}
@media (max-width:760px){:root{--space:48px}}
:root{--join:96px;--tx-l:url("/wp-content/themes/virlocept/assets/img/i-aed21eb004.webp");--tx-h:url("/wp-content/themes/virlocept/assets/img/i-c752dc0d0d.webp");--tx-d:url("/wp-content/themes/virlocept/assets/img/i-124d687379.webp");--tx-w:url("/wp-content/themes/virlocept/assets/img/i-20959a0e36.webp");--hgutter:24px;--plate:linear-gradient(145deg,#2F4450,#26363F);--plate-sh:-4px -4px 10px rgba(58,83,97,.26),6px 8px 16px rgba(8,14,18,.42),inset 1px 1px 0 rgba(255,255,255,.07),inset -1px -1px 0 rgba(0,0,0,.3);--raise-bg:linear-gradient(145deg,#33495A,#283A44);--raise:-3px -3px 7px rgba(62,88,103,.5),4px 4px 9px rgba(10,16,20,.6),inset 1px 1px 0 rgba(255,255,255,.06);--lift:-4px -4px 9px rgba(62,88,103,.55),6px 7px 14px rgba(10,16,20,.65),inset 1px 1px 0 rgba(255,255,255,.06);--sink:inset 3px 3px 7px rgba(10,16,20,.65),inset -2px -2px 6px rgba(62,88,103,.45);--well:#243540;--ink:#EAF0F2;--ink2:#A9B8BF;--ink-dim:rgba(234,240,242,.72);--strip-h:48px;--bar-h:84px;--pill-h:54px;--item-h:44px;--logo-h:60px;--lnk-fs:16px;--pill-pad:34px;--link-gap:30px;--m-lnk-fs:17px;--m-row-h:60px}
@media (min-width:1025px){html .bar .wrap{display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto 54px;height:auto;gap:0 24px;align-items:center}html .menu{height:100%;gap:clamp(8px,1.4vw,22px)}html .top{font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:.005em}html .bar{background:linear-gradient(180deg,#fff 0,#fbfaf8 55%,#f4f1ec 100%)}}
html[data-opt=zz] .top[aria-current=page]{text-shadow:none;color:#fff}
@media (min-width:1025px){html .bar{box-shadow:none;background:linear-gradient(180deg,#34495a 0,#2f444f 60%,#2b3f49 100%)}html .top{color:rgba(255,255,255,.8);transition:color .2s ease}html .top:hover,html .top[aria-current=page]{color:#fff}html .bar .wrap{grid-template-rows:auto 68px}html .menu{align-items:center;gap:4px;height:100%}html .menu>li{height:40px;align-self:center;border-radius:11px;background:0 0;box-shadow:none;transition:background .2s ease,box-shadow .2s ease,transform .15s ease}html .top{height:40px;padding:0 16px;text-shadow:0-1px 0 rgba(0,0,0,.35)}html .top::after{left:50%;right:auto;width:18px;margin-left:-9px;bottom:5px;height:3px;border-radius:3px;background:var(--red);box-shadow:0 0 6px rgba(215,77,73,.55);transform:scaleX(0);transform-origin:center}html .menu>li:hover{background:linear-gradient(180deg,#46606f 0,#3a5262 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0-1px 0 rgba(6,12,16,.25),0 1px 2px rgba(6,12,16,.4),0 6px 12px -6px rgba(6,12,16,.6)}html .menu>li:has(>.top[aria-current=page]){background:linear-gradient(180deg,#223540 0,#283c47 100%);box-shadow:inset 0 2px 5px rgba(6,12,16,.55),inset 0-1px 0 rgba(255,255,255,.08),0 1px 0 rgba(255,255,255,.06)}html .menu>li.open .top::after,html .top[aria-current=page]::after,html .top[aria-current=page]:hover::after{transform:scaleX(1)}html .top:hover::after{transform:scaleX(0)}html .menu>li:active{box-shadow:inset 0 2px 5px rgba(6,12,16,.55)}}
@media (min-width:1025px) and (max-width:1240px){html .top{padding:0 11px}}
@media (min-width:1025px){html .bar{background:linear-gradient(180deg,#fff 0,#fbfaf8 55%,#f4f1ec 100%);box-shadow:inset 0 1px 0#fff,0 1px 0 rgba(112,98,84,.16)}html .top{color:rgba(47,68,79,.78);text-shadow:0 1px 0 rgba(255,255,255,.9)}html .top:hover,html .top[aria-current=page]{color:#2f444f;text-shadow:0 1px 0 rgba(255,255,255,.9)}html .menu>li:hover{background:linear-gradient(180deg,#fff 0,#f6f3ef 100%);box-shadow:inset 0 1px 0#fff,0 0 0 1px rgba(112,98,84,.12),0 1px 2px rgba(112,98,84,.2),0 6px 12px -6px rgba(47,68,79,.3)}html .menu>li:has(>.top[aria-current=page]){background:linear-gradient(180deg,#e8e3dc 0,#efebe6 100%);box-shadow:inset 0 2px 5px rgba(112,98,84,.32),inset 0-1px 0 rgba(255,255,255,.8),0 1px 0#fff}html .menu>li:active{box-shadow:inset 0 2px 5px rgba(112,98,84,.32)}html .bar{overflow-x:clip}html .bar .wrap{grid-template-rows:116px 56px;transition:grid-template-rows .4s var(--hdr-ease)}html .strip{transition:margin-top .4s var(--hdr-ease)}}
@media (prefers-reduced-motion:reduce){html .bar .wrap,html .strip{transition:none!important}}
.hdr,.tray::before{position:absolute;left:0;right:0}
.hdr{top:0;z-index:300;color:var(--ink)}
.tray{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%,-8px);width:max-content;max-width:calc(100vw - 32px);z-index:5;opacity:0;visibility:hidden;transition:opacity .18s,transform .22s var(--ease),visibility .18s}
.tray::before{content:"";top:-10px;height:10px}
@media (max-width:1099px){:root{--bar-h:72px;--pill-h:48px;--logo-h:46px}.key{background:var(--raise-bg);box-shadow:var(--raise)}.key{display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 12px;border-radius:18px}.key b{display:block;font:600 14px/1.2 var(--display);color:#fff}.key em{display:block;font-style:normal;font-size:12px;line-height:1.25;color:var(--ink2);margin-top:2px}.key.wa{background:linear-gradient(145deg,#2f6a60,#245349);box-shadow:-3px -3px 7px rgba(62,88,103,.45),4px 4px 10px rgba(10,16,20,.6),inset 1px 1px 0 rgba(255,255,255,.12)}.key.wa em{color:rgba(234,240,242,.8)}}
.hdr .wrap{max-width:1280px;padding:0 24px}
@media (min-width:1100px){.hdr .wrap{max-width:1440px}}
@media (min-width:1200px) and (max-width:1279px){:root{--logo-h:52px}}
@media (min-width:1100px) and (max-width:1199px){:root{--logo-h:44px}}
.eyebrow{text-shadow:none!important;font-weight:700;opacity:1;color:var(--btn)}
:root{--sec:clamp(36px,3.6vw,52px);--g:clamp(56px,6vw,88px);--gh:calc(var(--g) / 2);--hdr0:132px}
.tp .pg.pg-emg{color:#fff;background:linear-gradient(180deg,#d7524d,#c24540);--lo:rgba(120,30,26,.3);--lo-near:rgba(120,30,26,.22);box-shadow:0 1px 3px var(--lo-near),0 4px 14px -2px var(--lo),inset 0 1px 0 rgba(255,255,255,.22),inset 0-1px 0 rgba(0,0,0,.12)}
.tp .pg.pg-emg:hover{background:linear-gradient(180deg,#db5b56,#c94a45)}
.tp .pg.pg-emg .disc{color:#c24540;background:#fff}
main.tp{background-image:linear-gradient(#1c2b32 0,#1c2b32 12px,#1c2b32 24px,#1c2b32 36px,#1c2b32 48px,#1c2b32 60px,#1c2b33 72px,#1c2c33 84px,#1d2c33 96px,#1d2c33 108px,#1d2c33 120px,#1d2c34 132px,#1d2d34 144px,#1e2d34 156px,#1e2d35 168px,#1e2e35 180px,#1e2e35 192px,#1f2e36 204px,#1f2f36 216px,#1f2f37 228px,#1f2f37 240px,#203038 252px,#203038 264px,#203139 276px,#213139 288px,#21323a 300px,#21323a 312px,#22333b 324px,#22333c 336px,#23343c 348px,#23343d 360px,#23353d 372px,#24353e 384px,#24363f 396px,#25363f 408px,#253740 420px,#263841 432px,#263841 444px,#273942 456px,#273943 468px,#273a44 480px,#283b44 492px,#283b45 504px,#293c46 516px,#293c46 528px,#2a3d47 540px,#2a3e48 552px,#2b3e49 564px,#2b3f49 576px,#2c404a 588px,#2c404b 600px,#2d414c 612px,#2d414c 624px,#2e424d 636px,#2e434e 648px,#2f434f 660px,#2f444f 672px,#304550 684px,#304551 696px,#314651 708px,#314652 720px,#314753 732px,#324754 744px,#324854 756px,#334955 768px,#334956 780px,#344a56 792px,#344a57 804px,#344b57 816px,#354b58 828px,#354c59 840px,#364c59 852px,#364d5a 864px,#364d5a 876px,#374e5b 888px,#374e5b 900px,#374e5c 912px,#384f5c 924px,#384f5d 936px,#384f5d 948px,#38505d 960px,#39505e 972px,#39505e 984px,#39515e 996px,#39515f 1008px,#39515f 1020px,#39515f 1032px,#3a515f 1044px,#3a5260 1056px,#3a5260 1068px,#3a5260 1080px,#3a5260 1092px,#3a5260 1104px,#3a5260 1116px,#3a5260 1128px,#3c5462 1140px,#415865 1152px,#485f6c 1164px,#546975 1176px,#627680 1188px,#73858e 1200px,#85959c 1212px,#98a6ab 1224px,#a9b6b9 1236px,#b9c3c5 1248px,#c6cfcf 1260px,#cfd6d6 1272px,#d4dbda 1284px,#d6dddc 1296px,#d6dddc 1308px,#d6dddc 1320px,#d6dddc 1332px,#d6dddc 1344px,#d6dddc 1356px,#d6dddc 1368px,#d6dddc 1380px,#d6dddc 1392px,#d6dddc 1404px,#d6dddc 1416px,#d7dddc 1428px,#d7dedd 1440px,#d7dedd 1452px,#d7dedd 1464px,#d7dedd 1476px,#d7dedd 1488px,#d7dedd 1500px,#d7dedd 1512px,#d8dedd 1524px,#d8dedd 1536px,#d8dfde 1548px,#d8dfde 1560px,#d8dfde 1572px,#d9dfde 1584px,#d9dfde 1596px,#d9dfde 1608px,#d9e0df 1620px,#d9e0df 1632px,#dae0df 1644px,#dae0df 1656px,#dae0df 1668px,#dae1e0 1680px,#dbe1e0 1692px,#dbe1e0 1704px,#dbe1e0 1716px,#dce1e0 1728px,#dce2e1 1740px,#dce2e1 1752px,#dce2e1 1764px,#dde2e1 1776px,#dde3e2 1788px,#dde3e2 1800px,#dee3e2 1812px,#dee3e2 1824px,#dee4e3 1836px,#dfe4e3 1848px,#dfe4e3 1860px,#dfe4e3 1872px,#dfe5e4 1884px,#e0e5e4 1896px,#e0e5e4 1908px,#e0e5e4 1920px,#e1e6e5 1932px,#e1e6e5 1944px,#e1e6e5 1956px,#e2e6e5 1968px,#e2e7e6 1980px,#e2e7e6 1992px,#e3e7e6 2004px,#e3e8e7 2016px,#e3e8e7 2028px,#e4e8e7 2040px,#e4e8e7 2052px,#e4e9e8 2064px,#e5e9e8 2076px,#e5e9e8 2088px,#e5e9e8 2100px,#e6eae9 2112px,#e6eae9 2124px,#e6eae9 2136px,#e7eae9 2148px,#e7ebea 2160px,#e7ebea 2172px,#e8ebea 2184px,#e8ebea 2196px,#e8eceb 2208px,#e9eceb 2220px,#e9eceb 2232px,#e9eceb 2244px,#e9edec 2256px,#eaedec 2268px,#eaedec 2280px,#eaedec 2292px,#ebeeed 2304px,#ebeeed 2316px,#ebeeed 2328px,#ebeeed 2340px,#eceeed 2352px,#ecefee 2364px,#ecefee 2376px,#ecefee 2388px,#edefee 2400px,#edefee 2412px,#edf0ef 2424px,#edf0ef 2436px,#edf0ef 2448px,#eef0ef 2460px,#eef0ef 2472px,#eef0ef 2484px,#eef1f0 2496px,#eef1f0 2508px,#eff1f0 2520px,#eff1f0 2532px,#eff1f0 2544px,#eff1f0 2556px,#eff1f0 2568px,#eff1f0 2580px,#eff2f1 2592px,#f0f2f1 2604px,#f0f2f1 2616px,#f0f2f1 2628px,#f0f2f1 2640px,#f0f2f1 2652px,#f0f2f1 2664px,#f0f2f1 2676px,#f0f2f1 2688px,#f0f2f1 2700px,#f0f2f1 2712px,#f0f2f1 2724px)}
main.tp3{background:#f0f2f1}
.t3-hero{position:relative;overflow:hidden;color:#fff;padding:calc(var(--hdr0,150px) + clamp(40px,5vw,72px))0 calc(var(--t3-lap) + clamp(56px,5vw,76px))}
.tp3{--t3-lap:clamp(90px,10vw,150px)}
.t3-hero-bg{position:absolute;inset:0}
.t3-hero-bg{background-size:cover;background-position:center 45%}
.t3-hero-bg::after{content:"";position:absolute;inset:0}
.t3-hero-bg::after{background:linear-gradient(180deg,rgba(28,43,50,.86)0,rgba(28,43,50,.6) 38%,rgba(28,43,50,.7) 70%,rgba(28,43,50,.9) 100%)}
.t3-hero-in{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.t3-hero .pg{--lo:rgba(6,12,16,.55);--lo-near:rgba(6,12,16,.35)}
.t3-q{border-bottom:1px solid rgba(47,68,79,.16)}
.t3-q p{margin:0;padding:0 48px 20px 0;font-size:16px;line-height:1.6;color:var(--muted)}
@media (max-width:700px){.t3-q p{padding-right:0}}
main.tp,main.tp3{background-color:#eef1f0!important;background-image:var(--tx-h),var(--tx-l),linear-gradient(180deg,#e3e8e7 0%,#f5f6f5 100%)!important;background-size:512px 512px,512px 512px,100% 100%!important;background-repeat:repeat,repeat,no-repeat!important;background-position:0 0,0 0,0 0!important;display:flow-root}
main.tp.tc{background:#fff!important;background-image:none!important}
.tc .tc-in{max-width:1240px;margin:0 auto}
.tc .wrap{max-width:none;padding:0 20px}
@media (min-width:961px){.tc .wrap{padding:0 32px}}
.t3-hero.tc-hero{padding:calc(var(--hdr0,150px) + clamp(40px,5vw,72px))0 clamp(40px,5vw,72px);color:#fff}
.tc-hero-in{display:flex;flex-direction:column;align-items:center;text-align:center}
.tc-h1{margin:14px 0 30px;max-width:16em;font:700 clamp(32px,3.6vw,50px)/1.04 var(--display);letter-spacing:-.02em;text-wrap:balance;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.tc-h1:last-child{margin-bottom:0}
.tc-svc{padding:var(--g)0}
.tc-st{display:flex;align-items:center;gap:12px;min-height:44px;margin:0 0 12px;font:600 18px/1.25 var(--display);color:var(--navy)}
.tc-ic{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#2e8c78;box-shadow:inset 0 0 0 1px rgba(68,168,147,.3)}
.tc-ic svg{width:22px;height:22px}
.tc-emg,.tc-ic{background:#f0f7f5}
.tc-emg-in{display:flex;align-items:center;justify-content:space-between;gap:20px 48px;padding:36px 0}
.tc-emg-h{margin:0 0 6px;font:600 22px/1.22 var(--display);letter-spacing:-.01em;color:var(--navy)}
.tc-emg p{margin:0;color:var(--navy)}
.tc-emg .pg{flex:none}
@media (max-width:760px){.tc-emg-in{flex-direction:column;align-items:stretch}}
.vg-crumb{position:absolute;z-index:3;top:142px;left:calc(max(32px,(100% - 1240px)/2 + 32px) + 160px);margin:0;max-width:100%}
.vg-crumb ol{list-style:none;margin:0;padding:0;font:600 14px/1.2 var(--body);white-space:nowrap;color:rgba(255,255,255,.7);text-shadow:0 1px 2px rgba(0,0,0,.45)}
.vg-crumb li,.vg-crumb ol{display:flex;align-items:center;gap:10px}
.vg-crumb li+li::before{content:"/";color:rgba(255,255,255,.35)}
.vg-crumb a{color:rgba(255,255,255,.78);transition:color .2s}
.vg-crumb a:focus-visible,.vg-crumb a:hover{color:#fff}
.vg-crumb [aria-current]{color:#fff}
@media (max-width:1024px){.vg-crumb{top:122px;left:max(20px,3.2%)}.vg-crumb li:not(.vg-up){display:none}.vg-crumb li.vg-up::before{content:"";width:7px;height:7px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);color:inherit;opacity:.7}}
html:root{--g:clamp(56px,6.667vw,96px)}
main>.tc-svc{padding-top:var(--g)!important}
main>.tc-svc{padding-bottom:var(--g)!important}
main{--red:#E49B3E}
main .eyebrow{color:#b8751f}
#hero.t3-hero{display:flex;justify-content:center}
#hero.t3-hero{--hero-h:clamp(580px,calc(426px + 15.7vw),640px);box-sizing:border-box;min-height:var(--hero-h);flex-direction:column}
#hero.t3-hero>.wrap{width:100%;position:relative;top:calc(var(--hero-lift)/-2)}
@media (max-width:860px){#hero.t3-hero{--hero-h:618px}}
@media (max-width:480px){#hero.t3-hero{--hero-h:637px}}
@media (max-width:400px){#hero.t3-hero{--hero-h:670px}}
#hero.t3-hero h1{font-size:clamp(30px,4.3vw,56px);line-height:1.08;letter-spacing:-.01em}
#hero .vg-crumb a,#hero .vg-crumb li,#hero .vg-crumb ol{font:600 14px/1.2 var(--body)}
:root{--hero-lift:0px;--hero-lap:144px}
:root:has(#hero.t3-hero+:is(.fc)){--hero-lift:86px}
@media (max-width:760px){:root{--hero-lap:126px}}
@media (max-width:703px){:root{--hero-lap:194px}:root:has(#hero.t3-hero+:is(.fc)){--hero-lift:154px}:root:has(#hero.hero-cs+.fc-sec){--hero-lift:64px}}
#hero+.fc{margin-top:calc(-58px - var(--hero-lift))}
@media (max-width:760px){#hero+.fc{margin-top:calc(-40px - var(--hero-lift))}}
#hero.t3-hero:not(:has(.ty-tick)):has(+.t3-body)>.wrap{top:calc((var(--t3-lap) - max(var(--t3-lap),var(--hero-lap)))/2)}
[data-bb] .hb-card>.disc,[data-bb] .pg:not(.pg-emg) .disc,[data-bb] .sv-card>.disc,[data-bb] .sv-mt-go .disc{background:var(--bbg,linear-gradient(180deg,var(--bb1),var(--bb2)))!important}
[data-bb] .hb-card:hover>.disc,[data-bb] .pg:not(.pg-emg):hover .disc,[data-bb] .sv-card:hover>.disc,[data-bb] .sv-mt-go:hover .disc,[data-bb] .sv-mt:hover .sv-mt-go .disc{background:var(--bbgh,linear-gradient(180deg,var(--bbh1),var(--bbh2)))!important}
.fc{position:relative;z-index:2;margin-top:-58px}
.fc-wrap{width:min(1240px,calc(100% - 64px));margin:0 auto}
.fc-box{position:relative;border-radius:20px;background:#fff;box-shadow:0 34px 70px -34px rgba(20,32,38,.6),0 0 0 1px rgba(47,68,79,.06)}
.fc-key,.fc-keys{border-radius:999px;display:grid}
.fc-keys{position:relative;top:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 clamp(14px,2vw,24px) 14px;padding:6px;background:linear-gradient(180deg,#34495a,#263842);box-shadow:0 14px 30px -14px rgba(20,32,38,.7)}
.fc-key{height:56px;border:0;margin:0;cursor:pointer;background:0 0;padding:0 14px;place-items:center;color:rgba(255,255,255,.82);transition:background .2s ease,color .2s ease}
.fc-key:hover{background:rgba(255,255,255,.08);color:#fff}
.fc-key[aria-selected=true]{background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(20,32,38,.35)}
.fc-key:focus-visible{outline:3px solid #fff;outline-offset:-5px}
.fc-stack{display:grid}
.fc-stack>*{grid-area:1/1;min-width:0}
.fc-stack>:not(.on){visibility:hidden}
.fc-stack>:not(.on) *{visibility:hidden!important}
html main.tp.tc{background:var(--tx-h)0 0/512px 512px,var(--tx-l)0 0/512px 512px!important}
.t3-hero.tc-hero.fc-hero{padding-bottom:calc(clamp(40px,5vw,72px) + 58px)}
.fc-svc .fc-stack{padding:clamp(30px,3.2vw,44px) clamp(22px,3vw,36px) clamp(26px,3vw,38px)}
.fc-svc .fc-panel{display:grid;align-content:center}.fc-svc .tc-svc{padding:0}
.fc-svc .wrap{padding:0;width:auto}
.fc-svc .tc-in,.fc-svc .wrap{max-width:none}
.fc-svc .tc-emg{border-radius:0 0 20px 20px}
.fc-svc .tc-emg-in{padding:26px clamp(22px,3vw,36px)}
@media (max-width:760px){.fc{margin-top:-40px}.fc-key{height:50px;padding:0 8px}.fc-stack>:not(.on){display:none}.fc-svc .fc-stack{padding:22px 16px 18px}.fc-svc .fc-panel{align-content:start}.fc-svc .tc-emg-in{padding:22px 16px}}
@media (max-width:640px){.fc-wrap{width:calc(100% - 32px)}}
@media (prefers-reduced-motion:reduce){.fc-key{transition:none}}
.gf *,.gf ::after,.gf ::before{box-sizing:border-box}
.gf a{color:inherit;text-decoration:none}
.gf-emb img{height:76%;width:auto}
.gf-key img{width:auto;max-width:100%;max-height:calc(var(--kh) - 18px)}
.gf-soc a{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--dkKey);box-shadow:var(--dkRaised)}
.gf-soc img{width:20px;height:20px;border-radius:4px;display:block}
.gf-c li,.gf-l a{display:flex;gap:10px}
.gf-l a{align-items:center;height:32px;padding:0 12px 0 4px;border-radius:999px;white-space:nowrap;transition:background .2s,box-shadow .2s}
.gf-well svg{width:13px;height:13px}
.gf-l a:hover{background:var(--dkKey);box-shadow:var(--dkRaised);color:#fff}
.gf-c li{align-items:flex-start;min-height:32px;padding:4px 0 0 4px;line-height:20px}
.gf-c a:hover{color:var(--a)}
.gf-mlay img{width:100%;height:100%;max-width:none;display:block;filter:invert(1) hue-rotate(180deg) brightness(.78) contrast(.95) saturate(.75)}
.gf-pin i{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:var(--a);box-shadow:0 0 0 3px #fff,1px 2px 5px rgba(0,0,0,.6)}
.gf-pin b,.gf-pin small{position:absolute;left:14px;white-space:nowrap}
.gf-pin b{top:-18px;font:700 13px/1 var(--display);text-shadow:0 0 4px #0f1a1f,0 0 4px #0f1a1f,0 0 2px #0f1a1f}
.gf-pin small{top:-2px;font-size:11.5px;color:rgba(234,240,242,.8);text-shadow:0 0 4px #0f1a1f,0 0 2px #0f1a1f}
.gf-dir .gf-well svg{width:15px;height:15px}
.gf-regs span,.gf-strip-in{display:flex;align-items:center;gap:6px}
.gf-co i{font-style:normal}
.gf-regs span{white-space:nowrap}
.gf-regs svg{width:13px;height:13px;color:#e2615d}
.gf-leg a:hover,.gf-pin b{color:#fff}
@media (max-width:699px){.gf-grp .gf-l,.gf-umb .gf-l,.gf-vir .gf-l{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;column-gap:8px;justify-items:stretch}.gf-umb .gf-l,.gf-vir .gf-l{grid-template-rows:repeat(4,32px)}.gf-grp .gf-l{grid-template-rows:repeat(2,32px)}.gf-l a{gap:8px;font-size:14px}.gf-grp .gf-l a,.gf-umb .gf-l a,.gf-vir .gf-l a{padding-right:4px;width:max-content;max-width:100%}}
@media (max-width:560px){.gf{padding-top:24px}.gf-in{gap:24px;padding-bottom:24px}.gf-emb{height:100px}.gf-keys .gf-h{height:32px}.gf-lists{gap:20px}.gf-ct,.gf-lists{padding-top:20px;border-top:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(0,0,0,.35)}.gf-c{font-size:14px}.gf-c li{gap:8px}.gf-mapcol{gap:14px}.gf-strip-in{gap:8px;padding-top:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0))}.gf-co span{display:block;white-space:nowrap}.gf-co i{display:none}}
@media (max-width:379px){.gf-umb .gf-l{grid-template-columns:max-content max-content;justify-content:space-between;column-gap:4px}.gf-umb .gf-l a{font-size:13px;gap:6px;padding:0 2px 0 0;max-width:none}}
@media (max-width:339px){.gf-umb .gf-l a{font-size:12px;gap:5px}.gf-umb .gf-well{width:22px;height:22px}}
@media (min-width:1200px){.gf-map{--px:42%}.gf-c{display:grid;grid-template-rows:repeat(4,auto);grid-auto-flow:column;column-gap:20px;row-gap:2px;justify-content:start}.gf-c li:nth-child(5){grid-row:1/span 4}}
@media (min-width:961px) and (max-width:1099px){.gf-lists{gap:16px}.gf-l a{font-size:14px;gap:8px;padding-right:6px}.gf-umb .gf-l,.gf-vir .gf-l{column-gap:4px}}
@media (min-width:961px) and (max-width:1009px){.gf-lists{gap:8px}.gf-l a{padding-right:2px;gap:7px}}
@media (min-width:700px) and (max-width:759px){.gf{--kh:64px}.gf-in{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:24px}.gf-emb{grid-column:1;height:auto;align-self:stretch;border-radius:20px}.gf-emb img{height:68px}.gf-keys{grid-column:2/-1}.gf-lists{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(0,0,0,.35)}.gf-l a{font-size:14px;gap:8px}.gf-umb .gf-l,.gf-vir .gf-l{column-gap:4px}.gf-ct{grid-column:1/3}.gf-mapcol{grid-column:3/-1}}
@media (min-width:760px) and (max-width:960px){.gf{--kh:64px}.gf-in{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:stretch;gap:0 24px}.gf-lists,.gf-stack{display:contents}.gf-emb{flex:0 0 calc((100% - 72px)/4);height:auto;border-radius:20px}.gf-emb img{height:68px}.gf-keys{flex:1 1 0}.gf-in::before{content:"";order:1;flex:0 0 100%;height:1px;margin-top:24px;background:rgba(255,255,255,.12);box-shadow:0-1px 0 rgba(0,0,0,.35)}.gf-in::after{content:"";order:5;flex:0 0 100%;height:0}.gf-ct,.gf-grp,.gf-lit,.gf-mapcol,.gf-umb,.gf-vir{margin-top:24px}.gf-grp{order:2}.gf-vir{order:3}.gf-umb{order:4}.gf-lit{order:6}.gf-ct{order:7}.gf-mapcol{order:8;flex:1 1 0;min-width:200px;max-width:420px}.gf-l a{font-size:14px;gap:8px}.gf-umb .gf-l,.gf-vir .gf-l{column-gap:4px}.gf-vir .gf-l a{padding-right:4px}.gf-umb .gf-l a{padding-right:0}}
@media (min-width:700px) and (max-width:960px){.gf{--kh:72px}.gf-emb{align-self:end;height:var(--kh)}.gf-emb img{height:56px}.gf-c{font-size:14px}.gf-c li{gap:8px}}
.eyebrow,.gf .gf-osm,.gf small{font-size:12px}
.gf .gf-c a,.gf .gf-leg a,.vg-crumb a{padding-block:4px}
.gf .gf-leg a{display:inline-block}
@media (max-height:520px) and (orientation:landscape){#hero.t3-hero{--hero-h:max(340px,100svh)}}
html body main .eyebrow{color:#9a6016}
html body[data-bb] main :is(.eyebrow,.t3-eb):not(.band.navy *){color:#9a6016!important}
.ct-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.vh-brands-li .brand-row>li[aria-hidden=true]{display:none}
:root{--hdr0:108px}
@media (min-width:1025px){:root{--hdr0:124px}}
html body .gf .gf-c a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
html body .gf .gf-pin i{background:#2F444F}
html body .nlb-go span{color:#263842;background:radial-gradient(circle closest-side,#fff calc(100% - 5.5px),#2b3f4a calc(100% - 5px),#2b3f4a calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#eba95e 0 120deg,#3e7d19 120deg 240deg,#004eba 240deg 360deg)}
html body[data-bb=virlocept] .nlb-bar span{background:#EBA95E!important}
html body[data-bb=umbuso] .nlb-bar span{background:#3E7D19!important}
html body[data-bb=lighthaven] .nlb-bar span{background:#004EBA!important}
html body .gf .gf-regs svg{color:#EBA95E}
html body[data-bb=umbuso] main .eyebrow:not(.band.navy *){color:#3E7D19!important}
html body[data-bb=lighthaven] main .eyebrow:not(.band.navy *){color:#004EBA!important}
html body[data-bb=group] main :is(.eyebrow,.t3-eb,.gk-eb,.au-role,.au-grp-lab,.pj-eb)::before,html body[data-bb=group] main :is(.eyebrow,.t3-eb,.gk-eb,.au-role,.au-grp-lab,.pj-eb)::after{content:none!important}
/* Site header and menu. The 1 copy of the header rules for every page. Loads after the template stylesheet. */
.vgm *,.vgm ::after,.vgm ::before{box-sizing:border-box}
.vgm button{font:inherit;color:inherit;cursor:pointer;border:0;margin:0;letter-spacing:inherit;text-transform:none;background:0 0}
.vgm a{color:inherit;text-decoration:none}
.vgm svg{display:block;flex:none}
.vgm img{max-width:none}
.vgm-links>a,.vgm-links>button,.vgm-pill{display:flex;align-items:center;border-radius:999px}
.vgm-links>a,.vgm-links>button{justify-content:center;gap:8px;height:44px;padding:0 12px;font:600 16px/1 var(--s-disp);color:var(--s-ink);white-space:nowrap;transition:background .2s,box-shadow .2s}
.vgm-links>a:hover,.vgm-links>button:hover{background:var(--s-key);box-shadow:var(--s-raise)}
.vgm-links>[aria-current],.vgm-links>[data-current],.vgm-links>button[aria-expanded=true]{background:var(--s-key);box-shadow:var(--s-keySh)}
.vgm-dnav>button svg,.vgm-links svg{transition:transform .2s}
.vgm-dnav>button[aria-expanded=true] svg,.vgm-links button[aria-expanded=true] svg{transform:rotate(180deg)}
.vgm-kt b,.vgm-t1{display:block;font:600 14px/1.1 var(--s-disp);color:var(--s-ink)}
.vgm-kt em,.vgm-t2{display:block;font-size:12px;line-height:1.2;color:var(--s-ink2)}
.vgm-kt b{font:600 13.5px/1.2 var(--s-disp)}
.vgm-kt em{font-style:normal;line-height:1.25}
.vgm-prow b{font-size:13px}
.vgm-prow em{color:var(--acc)}
.vgm-prow svg{width:16px;height:16px;color:var(--s-ink2)}
.vgm-dnav>[aria-current],.vgm-dnav>[data-current],.vgm-prow:hover svg{color:var(--s-red)}
.vgm-dnav>a,.vgm-dnav>button{width:100%;padding:0;display:flex;align-items:center;justify-content:space-between;height:52px;font:600 17px/1 var(--s-disp);color:var(--s-ink);border-bottom:1px solid var(--s-rule);text-align:left}
.vgm-sub .vgm-prow em{display:none}
.vgm-drawer .vgm-emg>span:last-child{min-width:0}
@media (max-width:1150px){.vgm-bar{padding-inline:20px;gap:12px}.vgm-links{width:380px}.vgm-links>a,.vgm-links>button{font-size:15px;padding:0 8px;gap:6px}.vgm-brand{gap:12px}.vgm-emb{height:56px}.vgm-emg{padding-right:12px;gap:8px}}
html.nf.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"] svg,html.nf.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"] svg{color:#fff}
.vgm-loc .mb-short,html.n2 .vgm .vgm-prow>svg,html.n2 .vgm.vgm::before{display:none}
.hb-strip-emg .vgm-disc svg{width:15px;height:15px}
.hb-strip-emg b{font-weight:600;color:var(--s-ink)}
.hb-strip-emg em{font-style:normal;margin-left:-2px}
.mb-logo img{width:auto;display:block}
@media (min-width:1025px) and (max-width:1150px){.vgm-tray.mb-tray{width:800px}.mb-emb .vgm-emb,.vgm-brand.mb-emb{height:66px}.hb-strip-emg em{display:none}}
@media (max-width:1024px){.hb-strip-emg,.vgm-loc .mb-full{display:none}.vgm-strip{height:36px;justify-content:center}.vgm-loc{display:flex;font-size:12px}.vgm-loc .mb-short{display:inline}.vgm-sub .vgm-kt{background:0 0;box-shadow:none;padding:0;border-radius:0}.mb-cols{grid-template-columns:1fr;gap:8px}.vgm-sub .vgm-probs.mb-col{background:var(--s-key);box-shadow:var(--s-keySh);padding:8px}.vgm-sub .mb-col .vgm-prow b{font-size:13px}}
@media (min-width:1025px){.vgm{isolation:isolate;--mbg:max(32px,calc((100% - 1240px)/2 + 32px));background:radial-gradient(55% 70%at 12% 8%,rgba(68,168,147,.22),transparent 70%),radial-gradient(45% 60%at 88% 95%,rgba(120,150,170,.16),transparent 70%),radial-gradient(40% 50%at 60% 40%,rgba(120,150,170,.14),transparent 70%),#1c2b32}.vgm::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.015));box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0-1px 0 rgba(255,255,255,.05)}.vgm-strip{background:0 0;box-shadow:inset 0-1px 0 rgba(255,255,255,.1);padding-inline:var(--mbg)}.hb-strip-emg,.vgm .hb-strip-emg em,.vgm-loc{color:rgba(234,240,242,.72)}.hb-strip-emg b{color:#fff}.hb-strip-emg:hover{background:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.vgm-bar{justify-content:flex-start;gap:16px;height:104px;padding-inline:var(--mbg);background:0 0;box-shadow:none}.vgm-bar>.vgm-brand.mb-emb{display:flex;justify-content:center;height:72px;width:66px;flex:none;border-radius:22px}.vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:58px}.vgm-bar .vgm-navwrap{flex:1;min-width:0}.vgm-bar>.vgm-brand.mb-emb,.vgm-links.mb-links{background:#efece7;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 0 0 1px rgba(0,0,0,.2),0 22px 40px -18px rgba(0,0,0,.6)}.vgm-links.mb-links{width:100%;grid-template-columns:repeat(3,minmax(0,1fr)) 13px repeat(3,44px)}}
html.n2 .vgm .mb-head em{white-space:nowrap;font:600 11px/1.2 var(--s-body);letter-spacing:.09em;text-transform:uppercase;color:var(--ink2);text-align:left}
html.n2 .vgm .vgm-prow b{flex:1;min-width:0;font:600 15px/1.25 var(--s-body);letter-spacing:.005em;color:var(--navy);transition:color .2s}
html.n2 .vgm .vgm-prow .nv-ic svg,html.n2 .vgm .vgm-prow:hover .nv-ic svg{width:18px;height:18px;color:inherit;transform:none}
html.n2 .vgm .vgm-prow:focus-visible b,html.n2 .vgm .vgm-prow:hover b,html.n2 .vgm .vgm-prow[aria-current] b{color:var(--accInk)}
html.n2 .vgm .nv-go{display:flex;justify-content:center}
html.n2 .vgm .nv-go{position:relative;align-items:center;height:44px;margin-top:8px;padding:0 46px 0 10px;border-radius:999px;background:#fff;color:#2f444f;font:600 15px/1 var(--s-body);white-space:nowrap}
html.n2 .vgm .nv-go i{position:absolute;right:6px;top:6px;width:32px;height:32px;border-radius:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%23fff'%3E%3Cpath d='M686-450H190q-13 0-21.5-8.5T160-480q0-13 8.5-21.5T190-510h496L459-737q-9-9-9-21t9-21q9-9 21-9t21 9l278 278q5 5 7 10t2 11q0 6-2 11t-7 10L501-181q-9 9-21 9t-21-9q-9-9-9-21t9-21l227-227Z'/%3E%3C/svg%3E")50% 50%/15px no-repeat,radial-gradient(circle closest-side,#2f444f calc(100% - 5.5px),#f8f6f2 calc(100% - 5px),#f8f6f2 calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#eba95e 0 120deg,#3e7d19 120deg 240deg,#004eba 240deg 360deg);transition:background-position .2s}
html.n2 .vgm .nv-feat:hover .nv-go i{background-position:calc(50% + 3px) 50%,50% 50%,50% 50%}
@media (min-width:1025px){html.n2 .vgm .vgm-strip{height:40px;padding-inline:var(--mbg);box-shadow:none}html.n2 .vgm .hb-strip-emg:hover{background:0 0;box-shadow:none}html.n2 .vgm .vgm-bar{display:flex;align-items:center;justify-content:flex-start;gap:26px;height:84px;padding-inline:var(--mbg);-webkit-backdrop-filter:none;backdrop-filter:none}html.n2 .vgm .vgm-bar>.vgm-brand.mb-emb,html.n2 .vgm .vgm-links.mb-links{display:flex;align-items:center;border-radius:0;background:0 0;box-shadow:none}html.n2 .vgm .vgm-bar>.vgm-brand.mb-emb{justify-content:center;width:auto;height:auto;flex:none}html.n2 .vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:66px}html.n2 .vgm .vgm-navwrap{position:static;flex:1;min-width:0;height:100%}html.n2 .vgm .vgm-links.mb-links{gap:0;width:100%;height:100%;padding:0}html.n2 .vgm .vgm-links>.vgm-pdiv{flex:1;width:auto;height:1px;margin:0;background:0 0}html.n2 .vgm .vgm-links>a:not(.vgm-key),html.n2 .vgm .vgm-links>button{position:relative;flex:none;height:100%;padding:0 18px;border-radius:0;background:0 0;box-shadow:none;font:600 16px/1 var(--s-disp);letter-spacing:.005em;transition:color .2s}html.n2 .vgm .vgm-links>a:not(.vgm-key)::after,html.n2 .vgm .vgm-links>button::after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:3px;background:var(--nvline,#C24540);transform:scaleX(0);transform-origin:0 50%;transition:transform .25s cubic-bezier(.6,0,.2,1)}html.n2 .vgm .vgm-links>[aria-current]:not(.vgm-key)::after,html.n2 .vgm .vgm-links>[data-current]::after,html.n2 .vgm .vgm-links>a:not(.vgm-key):hover::after,html.n2 .vgm .vgm-links>button:hover::after,html.n2 .vgm .vgm-links>button[aria-expanded=true]::after{transform:scaleX(1)}html.n2 .vgm .vgm-links>a.vgm-key{flex:none;width:44px;height:44px;margin-left:10px;border-radius:50%;background:0 0;box-shadow:inset 0 0 0 1px var(--nvkline,#D5D0C9);color:var(--nvkink,#2F444F);transition:background .2s,color .2s,box-shadow .2s}html.n2 .vgm .vgm-links>a.vgm-key svg{color:currentColor}html.n2 .vgm .vgm-links>a.vgm-key:hover{background:var(--nvkink,#2F444F);color:var(--nvkinv,#fff);box-shadow:none}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"],html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover{position:relative;display:flex;align-items:center;justify-content:center;width:176px;height:52px;margin-left:18px;padding:0 52px 0 12px;border-radius:999px;font:600 15px/1 var(--s-body);letter-spacing:.005em;color:#fff;white-space:nowrap;background:linear-gradient(145deg,#cf4b46,#b63f3a);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 16px -8px rgba(160,50,45,.7)}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]::before{content:"Get in touch"}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"] svg{display:none}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]::after{content:"";position:absolute;right:7px;top:7px;width:38px;height:38px;border-radius:50%;box-shadow:0 2px 5px rgba(90,24,21,.3);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%23C24540'%3E%3Cpath d='M686-450H190q-13 0-21.5-8.5T160-480q0-13 8.5-21.5T190-510h496L459-737q-9-9-9-21t9-21q9-9 21-9t21 9l278 278q5 5 7 10t2 11q0 6-2 11t-7 10L501-181q-9 9-21 9t-21-9q-9-9-9-21t9-21l227-227Z'/%3E%3C/svg%3E")50% 50%/16px no-repeat;transition:background-position .2s}html.n2 .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover::after{background-position:calc(50% + 3px) 50%}html.n2 .vgm .vgm-tray.mb-tray{left:var(--mbg);right:var(--mbg);width:auto;transform:none;top:100%;padding:0;border-radius:0 0 16px 16px;background:#fff;box-shadow:0 0 0 1px rgba(47,68,79,.08),0 34px 60px -24px rgba(16,28,34,.55)}html.n2 .vgm .mb-cols{grid-template-columns:2.2fr 1.05fr 1.05fr 1.1fr}}
@media (min-width:1025px) and (max-width:1219px){html.n2 .vgm .vgm-tray .nv-feat{display:none}html.n2 .vgm .mb-cols{grid-template-columns:2fr 1fr 1fr}html.n2 .vgm .vgm-probs.mb-col{padding:22px 20px 18px}html.n2 .vgm .vgm-links>a:not(.vgm-key),html.n2 .vgm .vgm-links>button{padding:0 14px}html.n2 .vgm .vgm-links>a:not(.vgm-key)::after,html.n2 .vgm .vgm-links>button::after{left:14px;right:14px}}
@media (max-width:1024px){html.n2 .vgm .vgm-bar{background:#fff;box-shadow:0 1px 0 var(--rule)}html.n2 .vgm button.vgm-burger{width:46px;height:46px;border-radius:12px;background:0 0;box-shadow:inset 0 0 0 1px #d5d0c9;color:var(--navy)}html.n2 .vgm button.vgm-burger[aria-expanded=true]{background:var(--navy);color:#fff;box-shadow:none}html.n2 .vgm .vgm-drawer{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;border-top:1px solid var(--rule);padding:4px 20px 22px;gap:18px;box-shadow:0 24px 30px -20px rgba(16,28,34,.5)}html.n2 .vgm .vgm-dnav>a,html.n2 .vgm .vgm-dnav>button{height:56px;color:var(--navy);border-bottom-color:var(--rule)}html.n2 .vgm .vgm-dnav>[aria-current],html.n2 .vgm .vgm-dnav>[data-current],html.n2 .vgm .vgm-dnav>button[aria-expanded=true]{color:var(--red)}html.n2 .vgm .vgm-sub{padding:0;border-bottom-color:var(--rule)}html.n2 .vgm .vgm-sub .vgm-probs.mb-col{padding:18px 0 10px;background:0 0;box-shadow:none;border-left:0;border-top:1px solid var(--rule)}html.n2 .vgm .vgm-sub .vgm-probs.mb-col:first-child{border-top:0}html.n2 .vgm .vgm-sub .mb-cols{gap:0}html.n2 .vgm .vgm-sub .vgm-pgrid{gap:0 12px}html.n2 .vgm .vgm-sub .mb-col.mb-wide .vgm-pgrid{grid-template-columns:1fr 1fr}html.n2 .vgm .vgm-sub .vgm-prow{min-height:48px;padding:6px 0}html.n2 .vgm .vgm-sub .vgm-prow b{font-size:15px}html.n2 .vgm .vgm-sub .vgm-prow>svg{display:none}html.n2 .vgm .vgm-drawer .vgm-contact{padding:0;gap:8px;border-radius:0;background:0 0;box-shadow:none}html.n2 .vgm .vgm-drawer .vgm-emg{height:52px;background:var(--navy);border-radius:999px;padding:0 16px 0 9px}html.n2 .vgm .vgm-drawer .vgm-t1{color:#fff}html.n2 .vgm .vgm-drawer .vgm-t2{color:rgba(255,255,255,.78)}html.n2 .vgm .vgm-drawer .vgm-key{width:52px;height:52px;background:0 0;box-shadow:inset 0 0 0 1px #d5d0c9;color:var(--navy)}html.n2 .vgm .vgm-drawer .vgm-key svg{color:currentColor}html.n2 .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]{background:var(--red);color:#fff;box-shadow:none}}
@media (max-width:380px){html.n2 .vgm .vgm-drawer .vgm-key{width:46px;height:46px}}
html.n3 .vgm .vgm-strip{background:#24363f}
html.n3 .vgm .hb-strip-emg,html.n3 .vgm .hb-strip-emg em,html.n3 .vgm .vgm-loc{color:rgba(255,255,255,.8)}
html.n3 .vgm .hb-strip-emg b{color:#fff}
@media (min-width:1025px){html.n3 .vgm.vgm{--nvline:linear-gradient(90deg,#EBA95E 0 33.33%,#3E7D19 33.33% 66.66%,#004EBA 66.66%);--nvkline:rgba(255,255,255,.34);--nvkink:#fff;--nvkinv:#2F444F}html.n3 .vgm .vgm-bar{background:#2f444f;box-shadow:0 16px 30px -20px rgba(8,16,20,.8)}html.n3 .vgm .vgm-bar>.vgm-brand.mb-emb{align-self:flex-start;position:relative;z-index:6;width:96px;height:112px;border-radius:0 0 18px 18px;background:#fff;box-shadow:0 16px 26px -14px rgba(8,16,20,.7)}html.n3 .vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:86px}html.n3 .vgm .vgm-links>a:not(.vgm-key),html.n3 .vgm .vgm-links>button{color:#fff}html.n3 .vgm .vgm-links>a:not(.vgm-key):hover,html.n3 .vgm .vgm-links>button:hover,html.n3 .vgm .vgm-links>button[aria-expanded=true]{color:#eba95e}html.n3 .vgm .vgm-links>a.vgm-key:not([aria-label="Get in touch"]):hover{background:#fff;color:#2f444f}html.n3 .vgm .vgm-tray.mb-tray{top:calc(100% + 40px);border-radius:16px}html.n3 .vgm .vgm-tray.mb-tray::before{content:"";position:absolute;left:0;right:0;top:-40px;height:40px}}
@media (max-width:1024px){html.n3 .vgm .vgm-bar{background:#2f444f;box-shadow:none}html.n3 .vgm .vgm-bar>.vgm-brand.mb-emb{align-self:start;width:60px;height:80px;justify-content:center;border-radius:0 0 14px 14px;background:#fff;box-shadow:0 12px 18px -10px rgba(8,16,20,.7);position:relative;z-index:3}html.n3 .vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:62px}html.n3 .vgm button.vgm-burger{box-shadow:inset 0 0 0 1px rgba(255,255,255,.34);color:#fff}html.n3 .vgm button.vgm-burger[aria-expanded=true]{background:#fff;color:#2f444f}}
html.nf .vgm .vgm-strip{background:rgba(0,0,0,.26);box-shadow:inset 0-1px 0 rgba(255,255,255,.09)}
html.nf .vgm .hb-strip-emg,html.nf .vgm .hb-strip-emg em,html.nf .vgm .vgm-loc{color:rgba(234,240,242,.72)}
html.nf .vgm .vgm-bar{background:0 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 16px 30px -20px rgba(8,16,20,.8)}
html.nf .vgm .vgm-bar>.vgm-brand.mb-emb{background:linear-gradient(180deg,#f6f4f0,#e6e2db);box-shadow:inset 0-1px 0 rgba(47,68,79,.1),0 0 0 1px rgba(0,0,0,.35),0 16px 26px -14px rgba(0,0,0,.75)}
@media (min-width:1025px){html.nf .vgm .vgm-links>a:not(.vgm-key),html.nf .vgm .vgm-links>button{color:#eaf0f2}html.nf .vgm .vgm-links>a:not(.vgm-key):hover,html.nf .vgm .vgm-links>button:hover,html.nf .vgm .vgm-links>button[aria-expanded=true]{color:#eba95e}html.nf .vgm .vgm-links>a.vgm-key:not([aria-label="Get in touch"]){background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38);color:#eaf0f2}html.nf .vgm .vgm-links>a.vgm-key:not([aria-label="Get in touch"]):hover{background:#eba95e;color:#16242a;box-shadow:none}}
@media (max-width:1024px){html.nf .vgm button.vgm-burger{background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38);color:#eaf0f2}html.nf .vgm button.vgm-burger[aria-expanded=true]{background:#eba95e;color:#16242a;box-shadow:none}html.nf .vgm .vgm-drawer .vgm-emg{background:#1c2b32}}
html.nf.nf.nf .vgm .vgm-key[aria-label^=Call] svg{color:#eba95e}
html.nf.nf.nf .vgm .vgm-key[aria-label="Email us"] svg{color:#44a893}
html.nf.nf.nf .vgm .vgm-key[aria-label="Get in touch"] svg{color:#e2615d}
@media (min-width:1025px){html.nf.nf.nf .vgm .vgm-links>a.vgm-key,html.nf.nf.nf .vgm .vgm-links>a.vgm-key:hover{position:static;display:grid;place-items:center;width:44px;height:44px;margin-left:10px;padding:0;border-radius:50%;font-size:0;background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45);transition:background .2s}html.nf.nf.nf .vgm .vgm-links>a.vgm-key:hover{background:#2e4651}html.nf.nf.nf .vgm .vgm-links>a.vgm-key::after,html.nf.nf.nf .vgm .vgm-links>a.vgm-key::before{content:none}html.nf.nf.nf .vgm .vgm-links>a.vgm-key svg{display:block}}
@media (max-width:1024px){html.nf.nf.nf .vgm .vgm-drawer .vgm-contact,html.nf.nf.nf .vgm button.vgm-burger{background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45)}html.nf.nf.nf .vgm button.vgm-burger{border-radius:50%;color:#eaf0f2}html.nf.nf.nf .vgm button.vgm-burger[aria-expanded=true]{background:#16242a;box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25);color:#eba95e}html.nf.nf.nf .vgm .vgm-drawer .vgm-contact{padding:6px;gap:8px;border-radius:999px}html.nf.nf.nf .vgm .vgm-drawer .vgm-emg{height:44px;padding:0 16px 0 6px;background:0 0}html.nf.nf.nf .vgm .vgm-drawer .vgm-t1{color:#fff}html.nf.nf.nf .vgm .vgm-drawer .vgm-t2{color:rgba(234,240,242,.72)}html.nf.nf.nf .vgm .vgm-drawer .vgm-key{width:44px;height:44px;background:#16242a;box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25)}}
@media (max-width:380px){html.nf.nf.nf .vgm .vgm-drawer .vgm-key{width:40px;height:40px}html.nf.nf.nf .vgm .vgm-drawer .vgm-emg{padding:0 8px 0 5px}}
@media (min-width:1025px){html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"],html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:168px;height:44px;padding:0 46px 0 14px;border-radius:999px;font:600 15px/1 var(--s-body);letter-spacing:.005em;color:#eaf0f2;white-space:nowrap;background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45);margin-left:10px;transition:background .2s}html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]::before{content:"Get in touch"}html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]::after{content:"";position:absolute;right:6px;top:6px;width:32px;height:32px;border-radius:50%;background:#16242a;box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25)}html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"] svg{display:block;position:absolute;right:13px;top:13px;z-index:1;color:#eba95e}html.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"]:hover{background:#2e4651}}
@media (max-width:1024px){html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"],html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]:hover{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:168px;height:44px;padding:0 46px 0 14px;border-radius:999px;font:600 15px/1 var(--s-body);letter-spacing:.005em;color:#eaf0f2;white-space:nowrap;background:#16242a;box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25)}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]::before{content:"Get in touch"}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]::after{content:"";position:absolute;right:6px;top:6px;width:32px;height:32px;border-radius:50%;background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45)}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"] svg{display:block;position:absolute;right:13px;top:13px;z-index:1;color:#eba95e}}
@media (max-width:380px){html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"],html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]:hover{width:126px;height:40px;padding:0 37px 0 7px;font-size:13px}html.nf.nf.nf .vgm .vgm-drawer .vgm-emg{gap:6px}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]::after{right:5px;top:5px;width:30px;height:30px}html.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"] svg{right:11px;top:11px}}
html .vgm .nv-feat .nv-go.nv-go.nv-go i{background-color:#eaa553}
@media (min-width:1025px){html.n2.n3 .vgm.vgm .vgm-navwrap{position:relative}html.n2.n3 .vgm.vgm .vgm-tray.mb-tray{left:0;right:0;width:auto;transform:none;top:calc(100% + 12px)}html.n2.n3 .vgm.vgm .vgm-tray.mb-tray::before{top:-12px;height:12px}html.n2.n3 .vgm.vgm .vgm-tray .mb-cols{grid-template-columns:minmax(0,1fr) 200px 222px 212px}html.n2.n3 .vgm.vgm .vgm-tray .mb-col.mb-wide .vgm-pgrid{grid-template-columns:.78fr 1.22fr}html.n2.n3 .vgm.vgm .vgm-tray .vgm-probs.mb-col{padding-inline:20px}}
@media (min-width:1025px) and (max-width:1219px){html.n2.n3 .vgm.vgm .vgm-tray .mb-cols{grid-template-columns:minmax(0,1fr) 200px 220px}}
html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb{width:76px;height:100px}
html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:80px;width:auto}
@media (max-width:1024px){html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb{margin-bottom:-20px}}
@media (min-width:1025px){html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb{width:116px;height:136px}html.n3 .vgm.vgm .vgm-bar>.vgm-brand.mb-emb .vgm-emb{height:106px}html.n2.n3 .vgm.vgm .vgm-tray .mb-cols.mb-cols{grid-template-columns:minmax(0,1.08fr) minmax(0,1.12fr) minmax(0,.8fr)}html.n2.n3 .vgm.vgm .vgm-tray .mb-col .vgm-pgrid.vgm-pgrid{grid-template-columns:1fr 1fr;gap:0 14px}html.n2.n3 .vgm.vgm .vgm-tray .mb-col:nth-child(3) .vgm-pgrid.vgm-pgrid{grid-template-columns:1fr}html.n2.n3 .vgm.vgm .vgm-tray .mb-col .vgm-prow b{white-space:nowrap}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat.nv-feat{display:flex;grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px 18px;margin:0 14px 14px;padding:14px 14px 14px 24px}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat .nv-eb{flex:none}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat strong{flex:none;font-size:18px}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat .nv-go{flex:none;margin:0;min-width:150px}}
@media (min-width:1025px) and (max-width:1219px){html.n2.n3 .vgm.vgm .vgm-tray .vgm-probs.mb-col{padding-inline:16px}html.n2.n3 .vgm.vgm .vgm-tray .mb-col .vgm-prow{gap:9px}html.n2.n3 .vgm.vgm .vgm-tray .mb-col .vgm-prow b{font-size:14px;white-space:normal}html.n2.n3 .vgm.vgm .vgm-tray .nv-feat strong{flex:1}}
@media (max-width:1024px){html.n2 .vgm .vgm-sub .mb-col:nth-child(2) .vgm-pgrid{grid-template-columns:1fr 1fr}}
html .vgm .vgm-links>a:focus-visible,html .vgm .vgm-links>button:focus-visible,html .vgm a:focus-visible,html .vgm button:focus-visible{outline:2px solid #eba95e;outline-offset:3px}
html.nf.nf.nf.nf .vgm .vgm-links>a.vgm-key[aria-label="Get in touch"],html.nf.nf.nf.nf .vgm .vgm-drawer .vgm-key[aria-label="Get in touch"]{background-color:#fff;transition:background-color .2s,box-shadow .2s}
html.n2 body .vgm .vgm-dnav>[aria-current],html.n2 body .vgm .vgm-dnav>[data-current],html.n2 body .vgm .vgm-dnav>button[aria-expanded=true]{color:#2F444F}
html.n2 body[data-bb=virlocept] .vgm .vgm-dnav>[aria-current],html.n2 body[data-bb=virlocept] .vgm .vgm-dnav>[data-current],html.n2 body[data-bb=virlocept] .vgm .vgm-dnav>button[aria-expanded=true]{color:#b8751f}
html.n2 body[data-bb=umbuso] .vgm .vgm-dnav>[aria-current],html.n2 body[data-bb=umbuso] .vgm .vgm-dnav>[data-current],html.n2 body[data-bb=umbuso] .vgm .vgm-dnav>button[aria-expanded=true]{color:#3E7D19}
html.n2 body[data-bb=lighthaven] .vgm .vgm-dnav>[aria-current],html.n2 body[data-bb=lighthaven] .vgm .vgm-dnav>[data-current],html.n2 body[data-bb=lighthaven] .vgm .vgm-dnav>button[aria-expanded=true]{color:#004EBA}
html.nf.n3 .vgm .vgm-links>a:not(.vgm-key):hover,html.nf.n3 .vgm .vgm-links>button:hover,html.nf.n3 .vgm .vgm-links>button[aria-expanded=true],html.n3 .vgm .vgm-links>a:not(.vgm-key):hover,html.n3 .vgm .vgm-links>button:hover,html.n3 .vgm .vgm-links>button[aria-expanded=true]{color:#fff}
html.n3 .vgm .vgm-links>a:not(.vgm-key),html.n3 .vgm .vgm-links>button{z-index:0}
html.n3 .vgm .vgm-links>[aria-current]:not(.vgm-key)::before{content:"";position:absolute;z-index:-1;left:4px;right:4px;top:50%;height:42px;transform:translateY(-50%);border-radius:999px;background:rgba(255,255,255,.14);pointer-events:none}
@media (prefers-reduced-motion:reduce){.vgm *{transition:none!important}}

/* Site search: the round key beside Get in touch, its tray under the menu, and the field at the top of the phone drawer. Rows: business colour disc, name, label, the line where the words were found. */
.vs-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
html.n2.nf body .vgm .vgm-links>button.vgm-find{position:relative;display:grid;place-items:center;flex:none;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;font-size:0;color:#eaf0f2;background:#253942;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45);cursor:pointer;transition:background .2s,color .2s}
html.n2.nf body .vgm .vgm-links>button.vgm-find::after,html.n2.nf body .vgm .vgm-links>button.vgm-find::before{content:none}
html.n2.nf body .vgm .vgm-links>button.vgm-find:hover{background:#2e4651;color:#fff}
html.n2.nf body .vgm .vgm-links>button.vgm-find[aria-expanded=true]{background:#fff;color:#2f444f;box-shadow:0 1px 3px rgba(6,12,16,.35),0 4px 14px -2px rgba(6,12,16,.55)}
html.n2.nf body .vgm .vgm-links>button.vgm-find svg{display:block;width:20px;height:20px;color:currentColor;transform:none}
.vs-form{display:flex;align-items:center;gap:10px;margin:0}
.vs-lens{flex:none;color:#5c6e78}
.vs-in{flex:1;min-width:0;height:100%;margin:0;padding:0;border:0;background:0 0;outline:0;font:500 16px/1.2 var(--s-body);color:#2f444f;-webkit-appearance:none;appearance:none;border-radius:0}
.vs-form .vs-in:focus,.vs-form .vs-in:focus-visible,.vs-pform .vs-in:focus,.vs-pform .vs-in:focus-visible{outline:0;box-shadow:none}
.vs-in::placeholder{color:#7d8b93;opacity:1}
.vs-in::-webkit-search-cancel-button,.vs-in::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
.vs-list{list-style:none;margin:0;padding:6px;overflow:auto;overscroll-behavior:contain}
.vs-row{display:grid;grid-template-columns:34px minmax(0,1fr) 16px;align-items:start;gap:14px;padding:10px 12px;border-radius:12px;color:#2f444f;text-decoration:none;transition:background .15s}
.vs-row:hover,.vs-row:focus-visible{background:#f4f2ee}
html .vgm .vs-row:focus-visible,html .vgm .vs-all:focus-visible{outline:2px solid #eba95e;outline-offset:-2px}
.vs-row{--accInk:#2F444F;--accBg:#EEF1F3}
.vs-row[data-b=virlocept]{--accInk:#8A5210;--accBg:#FDF4E8}
.vs-row[data-b=umbuso]{--accInk:#4C8A27;--accBg:#EDF5E6}
.vs-row[data-b=lighthaven]{--accInk:#2F6FD0;--accBg:#E8F0FC}
.vs-ic{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accBg);color:var(--accInk);transition:background .15s,color .15s}
.vs-ic svg{width:18px;height:18px}
.vs-row:hover .vs-ic,.vs-row:focus-visible .vs-ic{background:var(--accInk);color:#fff}
.vs-tx{display:grid;gap:3px;min-width:0}
.vs-tx b{font:600 15px/1.25 var(--s-body);color:#2f444f;overflow-wrap:anywhere}
.vs-tx em{font:600 11px/1.2 var(--s-body);font-style:normal;letter-spacing:.09em;text-transform:uppercase;color:#5c6e78}
.vs-sn{font-size:14px;line-height:1.4;color:#5c6e78;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.vs-sn:empty{display:none}
.vs-tx mark{background:0 0;color:#2f444f;font-weight:700}
.vs-go{align-self:center;color:#9aa6ad;transition:color .15s,transform .15s}
.vs-row:hover .vs-go,.vs-row:focus-visible .vs-go{color:#2f444f;transform:translateX(2px)}
.vs-none{margin:0;padding:16px 20px 18px;font-size:15px;line-height:1.45;color:#2f444f}
.vs-none a{color:#2f444f;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.vs-all{display:flex;align-items:center;justify-content:center;gap:8px;height:48px;border-top:1px solid #ebe7e1;font:600 15px/1 var(--s-body);color:#2f444f;text-decoration:none}
.vs-all:hover{background:#f8f7f4}
.vs-all svg{transition:transform .15s}
.vs-all:hover svg{transform:translateX(2px)}
.vs-res[hidden],.vs-none[hidden],.vs-all[hidden]{display:none}
@media (min-width:1025px){
html.n2 .vgm .vgm-srch{position:absolute;z-index:5;right:0;top:calc(100% + 12px);width:min(680px,100%);border-radius:16px;background:#fff;box-shadow:0 0 0 1px rgba(47,68,79,.08),0 34px 60px -24px rgba(16,28,34,.55);overflow:hidden;text-align:left}
html.n2 .vgm .vgm-srch[hidden]{display:none}
html.n2 .vgm .vgm-srch::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
html.n2 .vgm .vgm-srch .vs-form{height:64px;padding:0 12px 0 22px}
html.n2 .vgm .vgm-srch .vs-in{font-size:17px}
html.n2 .vgm .vs-x{display:grid;place-items:center;flex:none;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:0 0;color:#5c6e78;cursor:pointer;transition:background .15s,color .15s}
html.n2 .vgm .vs-x:hover{background:#f1efeb;color:#2f444f}
html.n2 .vgm .vgm-srch .vs-res{border-top:1px solid #ebe7e1}
html.n2 .vgm .vgm-srch .vs-list{max-height:min(56vh,480px)}
html.n2 .vgm .vgm-dsrch{display:none}
}
@media (max-width:1024px){
html.n2 .vgm .vgm-srch{display:none}
html.n2 .vgm .vgm-dsrch{display:block;padding-top:14px}
html.n2 .vgm .vgm-dsrch .vs-form{height:52px;padding:0 18px;border-radius:999px;background:#f4f2ee;box-shadow:inset 1px 2px 3px rgba(47,68,79,.14),inset -1px -1px 0 rgba(255,255,255,.6),0 0 0 1px rgba(47,68,79,.06)}
html.n2 .vgm .vgm-dsrch .vs-form:focus-within{box-shadow:inset 1px 2px 3px rgba(47,68,79,.14),0 0 0 2px #eba95e}
html.n2 .vgm .vgm-dsrch .vs-list{padding:8px 0 0}
html.n2 .vgm .vgm-dsrch .vs-row{grid-template-columns:34px minmax(0,1fr);padding:10px 4px;border-radius:10px}
html.n2 .vgm .vgm-dsrch .vs-go{display:none}
html.n2 .vgm .vgm-dsrch .vs-none{padding:16px 4px 4px}
html.n2 .vgm .vgm-dsrch .vs-all{justify-content:flex-start;padding:0 4px;border-top:1px solid #ebe7e1;margin-top:6px}
html.n2 .vgm .vgm-dsrch.has-q~.vgm-dnav,html.n2 .vgm .vgm-dsrch.has-q~.vgm-contact{display:none}
}

/* Services tray foot: the line under "Tell us what needs doing" is removed, so the heading takes the free space and the links stay at the right. */
@media (min-width:1025px){html.n2.n3 .vgm.vgm .vgm-tray .nv-feat strong{flex:1}}

/* Phone menu drawer: fills the screen in the header's dark colours. It opens under the bar; the strip, the bar, the emblem and the menu key stay above it in the same place; the key turns into a close key. Trays inside it (Services, search results) are white cards, as on desktop. */
.vgm-burger .vgm-bi-close,.vgm-burger[aria-expanded=true] .vgm-bi-open{display:none}
.vgm-burger[aria-expanded=true] .vgm-bi-close{display:block}
@keyframes vgmDrIn{from{opacity:0}to{opacity:1}}
@media (max-width:1024px){
html.vgm-lock body .vgm .vgm-strip,html.vgm-lock body .vgm .vgm-bar{position:relative;z-index:4}
html.n2.nf body .vgm .vgm-drawer{position:fixed;top:var(--hdr0,108px);right:0;bottom:0;left:0;z-index:3;display:flex;flex-direction:column;gap:0;width:auto;height:auto;max-height:none;margin:0;padding:calc(var(--hdrE,136px) - var(--hdr0,108px) + 20px) 20px calc(24px + env(safe-area-inset-bottom,0px));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:0;border-radius:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);-webkit-backdrop-filter:none;backdrop-filter:none;color:#eaf0f2;background:radial-gradient(80% 45%at 10% 0,rgba(68,168,147,.12),transparent 70%),radial-gradient(70% 36%at 95% 100%,rgba(120,150,170,.12),transparent 70%),radial-gradient(60% 40%at 60% 45%,rgba(120,150,170,.08),transparent 70%),#1c2b32;animation:vgmDrIn .2s ease}
html.n2.nf body .vgm .vgm-drawer[hidden]{display:none}
html.n2.nf body .vgm .vgm-backdrop{background:0 0}
html.n2.nf body .vgm .vgm-drawer>*{flex:none}
/* search field: a pressed-in well, like the keys in the contact pill */
html.n2.nf body .vgm .vgm-dsrch{padding:0 0 10px}
html.n2.nf body .vgm .vgm-dsrch .vs-form{height:52px;padding:0 18px;border-radius:999px;background:#16242a;box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),inset -1px -1px 0 rgba(255,255,255,.07),0 0 0 1px rgba(0,0,0,.25)}
html.n2.nf body .vgm .vgm-dsrch .vs-form:focus-within{box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),0 0 0 2px #eba95e}
html.n2.nf body .vgm .vgm-dsrch .vs-lens{color:rgba(234,240,242,.6)}
html.n2.nf body .vgm .vgm-dsrch .vs-in{color:#fff}
html.n2.nf body .vgm .vgm-dsrch .vs-in::placeholder{color:rgba(234,240,242,.55)}
html.n2.nf body .vgm .vgm-dsrch .vs-res{margin-top:12px;padding:6px 12px 0;border-radius:16px;color:#2f444f;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 24px 40px -20px rgba(0,0,0,.7)}
html.n2.nf body .vgm .vgm-dsrch .vs-res[hidden]{display:none}
/* links */
html.n2.nf body .vgm .vgm-dnav>a,html.n2.nf body .vgm .vgm-dnav>button{height:60px;color:#fff;font-size:19px;border-bottom:1px solid rgba(255,255,255,.12)}
html.n2.nf body .vgm .vgm-dnav>button svg{color:rgba(234,240,242,.7)}
html.n2.nf body .vgm .vgm-dnav>[aria-current],html.n2.nf body .vgm .vgm-dnav>[data-current],html.n2.nf body .vgm .vgm-dnav>button[aria-expanded=true],html.n2.nf body .vgm .vgm-dnav>button[aria-expanded=true] svg{color:#eba95e}
html.n2.nf body .vgm .vgm-dnav>a:focus-visible,html.n2.nf body .vgm .vgm-dnav>button:focus-visible{outline:2px solid #eba95e;outline-offset:-2px;border-radius:8px}
/* Services: 1 white card under the Services row */
html.n2.nf body .vgm .vgm-sub{margin:4px 0 14px;padding:4px 16px;border:0;border-radius:16px;color:#2f444f;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 24px 40px -20px rgba(0,0,0,.7)}
html.n2.nf body .vgm .vgm-sub[hidden]{display:none}
html.n2.nf body .vgm .vgm-sub .vgm-probs.mb-col{border-top-color:#ebe7e1}
/* contact pill sits at the foot of the screen when the list is short */
html.n2.nf body .vgm .vgm-drawer .vgm-contact{margin-top:auto}
html.n2.nf body .vgm .vgm-dnav{margin-bottom:28px}
}
@media (max-width:1024px) and (prefers-reduced-motion:reduce){html.n2.nf body .vgm .vgm-drawer{animation:none}}
/* phones under 360px: room for "Emergency" and the full search hint; Get in touch keeps the site button size */
@media (max-width:359px){
html.n2.nf body .vgm .vgm-drawer{padding-left:14px;padding-right:14px}
html.n2.nf body .vgm .vgm-dsrch .vs-form{padding:0 14px}
html.n2.nf body .vgm .vgm-dsrch .vs-in::placeholder{font-size:14px}
html.nf.nf.nf.nf body .vgm .vgm-drawer .vgm-contact{padding:5px;gap:4px}
html.nf.nf.nf.nf body .vgm .vgm-drawer .vgm-emg{gap:5px;padding:0 3px 0 2px}
html.nf.nf.nf.nf body .vgm .vgm-drawer .vgm-disc{width:30px;height:30px}
html.nf.nf.nf.nf body .vgm .vgm-drawer .vgm-t1{font-size:12.5px}
html.nf.nf.nf.nf body .vgm .vgm-drawer .vgm-t2{font-size:10.5px}
}


/* Services tray: each business head matches the business switcher. A strip in the business colour runs along its top, the logo sits in the middle and an arrow disc in the business colour sits on the right. On desktop the heads run flush along the top of the tray; in the phone menu each head is a rounded block. */
html.n2 .vgm.vgm .vgm-kt .mb-col a.mb-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:20px 16px 14px;background:#F7F5F2;border-bottom:1px solid rgba(47,68,79,.12);color:#2F444F;text-decoration:none;transition:background .2s ease}
html.n2 .vgm.vgm .vgm-kt .mb-col a.mb-head::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--bc)}
html.n2 .vgm.vgm .vgm-kt .mb-col a.mb-head:hover{background:#EFEBE6}
html.n2 .vgm.vgm .vgm-kt .mb-col a.mb-head:focus-visible{outline:3px solid #2F444F;outline-offset:-3px}
html.n2 .vgm.vgm .vgm-kt .mb-col .mb-head .mb-logo{justify-content:center;height:30px;min-width:0;padding-left:46px}
html.n2 .vgm.vgm .vgm-kt .mb-col .mb-head .mb-logo img{max-width:100%}
html.n2 .vgm.vgm .vgm-kt .mb-col .mb-go{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--bc);color:#fff}
html.n2 .vgm.vgm .vgm-kt .mb-col .mb-go svg{transition:transform .2s ease}
html.n2 .vgm.vgm .vgm-kt .mb-col a.mb-head:hover .mb-go svg{transform:translateX(2px)}
@media (min-width:1025px){
html.n2.n3 .vgm.vgm .vgm-tray.vgm-tray .vgm-probs.mb-col.mb-col{padding-top:0}
html.n2.n3 .vgm.vgm .vgm-tray.vgm-tray .mb-col a.mb-head{margin:0 -20px 14px}
html.n2.n3 .vgm.vgm .vgm-tray.vgm-tray .mb-col:first-child a.mb-head{border-top-left-radius:16px}
html.n2.n3 .vgm.vgm .vgm-tray.vgm-tray .mb-col:last-child a.mb-head{border-top-right-radius:16px}
html.n2.n3 .vgm.vgm .vgm-tray.vgm-tray .mb-col a.mb-head{overflow:hidden}
}
@media (min-width:1025px) and (max-width:1219px){html.n2.n3 .vgm.vgm .vgm-tray.vgm-tray .mb-col a.mb-head{margin:0 -16px 14px}}
@media (max-width:1024px){html.n2 .vgm.vgm .vgm-sub .mb-col a.mb-head{overflow:hidden;margin:0 0 10px;border-bottom:0;border-radius:12px}}
@media (prefers-reduced-motion:reduce){html.n2 .vgm.vgm .vgm-kt .mb-col a.mb-head,html.n2 .vgm.vgm .vgm-kt .mb-col .mb-go svg{transition:none}}


/* Phone menu colours: the menu belongs to the group, so it stays neutral. The close key, the open Services row, the current page and the focus rings are white, not mustard. The open or current row is marked with a brighter line under it. */
@media (max-width:1024px){
html.nf.nf.nf.nf .vgm button.vgm-burger[aria-expanded=true]{color:#fff}
html.n2.nf body .vgm.vgm .vgm-dnav>a,html.n2.nf body .vgm.vgm .vgm-dnav>button{color:rgba(255,255,255,.86)}
html.n2.nf body .vgm.vgm .vgm-dnav>[aria-current],html.n2.nf body .vgm.vgm .vgm-dnav>[data-current],html.n2.nf body .vgm.vgm .vgm-dnav>button[aria-expanded=true]{color:#fff;border-bottom-color:rgba(255,255,255,.6)}
html.n2.nf body .vgm.vgm .vgm-dnav>button svg,html.n2.nf body .vgm.vgm .vgm-dnav>button[aria-expanded=true] svg{color:#fff}
html.n2.nf body .vgm.vgm .vgm-dnav>a:focus-visible,html.n2.nf body .vgm.vgm .vgm-dnav>button:focus-visible,html.nf .vgm.vgm .vgm-drawer a:focus-visible,html.nf .vgm.vgm .vgm-drawer button:focus-visible,html.nf .vgm.vgm button.vgm-burger:focus-visible{outline-color:#fff}
html.n2.nf body .vgm.vgm .vgm-dsrch .vs-form:focus-within{box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),0 0 0 2px #fff}
html.n2.nf body .vgm.vgm .vgm-sub a:focus-visible,html.n2.nf body .vgm.vgm .vgm-dsrch .vs-res a:focus-visible{outline-color:#2f444f}
}


/* Header colours: the header and menu belong to the group, so every state stays neutral (navy and white). Mustard is a Virlocept colour and is not used here: hover, open and current links, keys, the tray eyebrow and focus rings are white on the dark bar and navy on white surfaces. */
html.n3.n3 .vgm.vgm .vgm-links>a:not(.vgm-key):hover,html.n3.n3 .vgm.vgm .vgm-links>button:hover,html.n3.n3 .vgm.vgm .vgm-links>button[aria-expanded=true],html.nf.nf .vgm.vgm .vgm-links>a:not(.vgm-key):hover,html.nf.nf .vgm.vgm .vgm-links>button:hover,html.nf.nf .vgm.vgm .vgm-links>button[aria-expanded=true]{color:#fff}
html.nf.nf .vgm.vgm .vgm-links>a.vgm-key:not([aria-label="Get in touch"]):hover{background:#fff;color:#2f444f}
html.nf.nf.nf.nf .vgm.vgm .vgm-key[aria-label^=Call] svg,html.nf.nf.nf.nf .vgm.vgm .vgm-links>a.vgm-key[aria-label="Get in touch"] svg,html.nf.nf.nf.nf .vgm.vgm .vgm-drawer .vgm-key[aria-label="Get in touch"] svg{color:#fff}
html.n2.n2 .vgm.vgm .nv-eb{color:rgba(255,255,255,.7)}
html .vgm.vgm :focus-visible,html .vgm.vgm a:focus-visible,html .vgm.vgm button:focus-visible{outline-color:#fff}
html .vgm.vgm .vgm-tray .mb-cols :focus-visible,html .vgm.vgm .vgm-sub :focus-visible,html .vgm.vgm .vs-res :focus-visible,html .vgm.vgm .vs-row:focus-visible,html .vgm.vgm .vs-all:focus-visible{outline-color:#2f444f}
html.n2.n2 .vgm.vgm .vgm-dsrch .vs-form:focus-within{box-shadow:inset 1px 2px 3px rgba(47,68,79,.14),0 0 0 2px #2f444f}
@media (max-width:1024px){html.n2.nf body .vgm.vgm .vgm-dsrch .vs-form:focus-within{box-shadow:inset 1px 2px 4px rgba(0,0,0,.6),0 0 0 2px #fff}}


/* Focus rings that must stay visible. The dark "Not sure who to call?" panel in the Services tray takes a white ring; the white desktop search bar takes a navy ring. */
html .vgm.vgm .vgm-tray .mb-cols .nv-feat a:focus-visible{outline-color:#fff}
html .vgm.vgm .vgm-srch.vs-box :focus-visible{outline-color:#2f444f}


/* Phone call key: on 1024px and under, a round call key sits left of the emblem, in the empty first column of the bar, styled like the menu key. Hidden on desktop, where the strip shows the emergency number. */
.vgm .vgm-call{display:none}
@media (max-width:1024px){
  html .vgm.vgm .vgm-bar>.vgm-call{display:grid;place-items:center;grid-column:1;grid-row:1;width:46px;height:46px;border-radius:50%;background:#253942;color:#eaf0f2;text-decoration:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.38),-1px -1px 2px rgba(255,255,255,.04),2px 4px 8px rgba(0,0,0,.45);transition:background .2s}
  html .vgm.vgm .vgm-bar>.vgm-call:hover{background:#2c434e}
  html .vgm.vgm .vgm-bar>.vgm-call:focus-visible{outline:2px solid #fff;outline-offset:3px}
  html .vgm.vgm .vgm-bar>.vgm-brand{grid-row:1}
  html .vgm.vgm .vgm-bar>button.vgm-burger{grid-row:1}
}


/* Group wordmark beside the emblem (26 Oct 2026). Desktop: on the bar after the emblem tab. Phones and tablets: the tab and the wordmark sit together in the middle column, centred as a pair. */
.vgm .vgm-bar>.vgm-wm{display:flex;align-items:center;flex:none;text-decoration:none}
.vgm .vgm-bar>.vgm-wm img{display:block;width:auto}
@media (min-width:1025px){html .vgm.vgm .vgm-bar>.vgm-wm{margin-left:-8px}html .vgm.vgm .vgm-bar>.vgm-wm img{height:32px}}
@media (max-width:1024px){html .vgm.vgm .vgm-bar>.vgm-wm{grid-column:2;grid-row:1;justify-self:center;height:46px;margin-left:89px}html .vgm.vgm .vgm-bar>.vgm-wm img{height:24px}html .vgm.vgm .vgm-bar>.vgm-brand.mb-emb{margin-right:117px}}
@media (max-width:380px){html .vgm.vgm .vgm-bar>.vgm-wm{margin-left:88px}html .vgm.vgm .vgm-bar>.vgm-wm img{height:20px}html .vgm.vgm .vgm-bar>.vgm-brand.mb-emb{margin-right:99px}}

/* Desktop menu links centred between the wordmark and the search button (26 Oct 2026). The 2 auto margins share the free space; the 26px divider width matches the gap between the wordmark and the menu, so both sides of the links get the same space. */
@media (min-width:1025px){html.n2 .vgm .vgm-links>.vgm-svc{margin-left:auto}html.n2 .vgm .vgm-links>.vgm-pdiv{flex:0 0 26px;margin-left:auto}}

/* Services tray width (3 Nov 2026). The tray starts under the left edge of the Group wordmark and ends at the right edge of Get in touch, the width it had before the wordmark joined the bar. Without this it spans only the menu area, and from 1220px the service names run past their columns. The offset is the 26px gap after the wordmark plus the wordmark's width (32px high, 2837 x 655). */
@media (min-width:1025px){html.n2.n3 .vgm.vgm .vgm-navwrap .vgm-tray.mb-tray{left:calc(-26px - 32px * 2837 / 655)}}
/* Patch layer (business keys, service switcher, hero text standard, services link). Loads last. */

/* ---- biz-keys.css ---- */
/* Business switcher on the services card of the Virlocept, Umbuso and Lighthaven landing pages (same keys as the Group Services page) */
/* Business switcher on Projects, Services and the Virlocept, Umbuso and Lighthaven pages: colour strip, logo and arrow disc per business. */
:is(.fc-keys,.bk-keys){position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border-radius:20px 20px 0 0;padding-top:6px}
.bk-keys{scroll-margin-top:40px;margin:calc(-1*clamp(28px,3.2vw,44px)) calc(-1*clamp(22px,3vw,36px)) clamp(28px,3.2vw,42px)}
:is(.fc-key,.bk-key){container-type:inline-size;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;margin:0;padding:16px 20px;border:0;border-bottom:1px solid rgba(47,68,79,.12);border-radius:0;background:#F7F5F2;color:#2F444F;font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:background .2s ease}
:is(.fc-key,.bk-key)::before{content:"";position:absolute;top:-6px;left:0;right:0;height:6px;background:var(--bc)}
:is(.fc-key,.bk-key)+:is(.fc-key,.bk-key){border-left:1px solid rgba(47,68,79,.12)}
:is(.fc-key,.bk-key):hover{background:#EFEBE6}
:is(.fc-key[aria-selected=true],.bk-key[aria-current=page]){background:#fff;border-bottom-color:transparent}
.bk-key[aria-current=page]{cursor:default}
:is(.fc-key,.bk-key):focus-visible{outline:3px solid #2F444F;outline-offset:-3px}
.fc-lg{display:flex;align-items:center;justify-content:center;min-width:0;padding-left:calc(clamp(30px,10cqi,40px) + 12px)}
.fc-lg img{display:block;width:auto;height:auto;max-width:100%;max-height:clamp(24px,15cqi,46px)}
.fc-go{display:grid;place-items:center;width:clamp(30px,10cqi,40px);height:clamp(30px,10cqi,40px);border-radius:50%;background:rgba(47,68,79,.1);color:#2F444F;transition:background .2s ease,color .2s ease}
:is(.fc-key[aria-selected=true],.bk-key[aria-current=page]) .fc-go{background:var(--bc);color:#fff}
@media (max-width:760px){.bk-keys{margin:-24px -16px 24px}}
@media (max-width:840px){:is(.fc-key,.bk-key){grid-template-columns:minmax(0,1fr);padding:12px 6px 17px}.fc-lg{padding-left:0}.fc-lg img{max-height:30px}.fc-go{display:none}:is(.fc-key,.bk-key):not([aria-selected=true]):not([aria-current=page]) .fc-lg img{opacity:.55}:is(.fc-key[aria-selected=true],.bk-key[aria-current=page])::after{content:"";position:absolute;left:50%;bottom:8px;width:28px;height:3px;margin-left:-14px;border-radius:2px;background:var(--bc)}}
@media (prefers-reduced-motion:reduce){:is(.fc-key,.bk-key),.fc-go{transition:none}}


/* ---- service pages ---- */
/* Previous and Next on the service card open the neighbouring page; the header, hero photo, breadcrumb, card and footer hold still while it loads */
@view-transition{navigation:auto}
.vgm{view-transition-name:vt-hdr}
#hero .t3-hero-bg{view-transition-name:vt-herobg}
#hero h1{view-transition-name:vt-h1}
#hero .vg-crumb{view-transition-name:vt-crumb}
.fc-box{view-transition-name:vt-card}
.gf{view-transition-name:vt-ftr}
::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none}
#hero.t3-hero{position:relative}
html{overflow-x:clip}

/* Next band */
main > .nx{padding-top:var(--g)!important}
.nx{--bizd:var(--biz)}
.nx[style*="#EBA95E"]{--bizd:#B8751F}
.nx-in{width:min(1240px,calc(100% - 64px));margin:0 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,4.5vw,72px);align-items:center}
.nx-pic{position:relative;display:block;border-radius:20px;overflow:hidden;aspect-ratio:16/9;background:#2F444F;box-shadow:0 34px 70px -34px rgba(20,32,38,.6),0 0 0 1px rgba(47,68,79,.06)}
.nx-pic::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--biz)}
.nx-pic img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.3,.7,.2,1)}
.nx-in:hover .nx-pic img{transform:scale(1.035)}
.nx-eb{display:flex;align-items:center;gap:12px;margin:0 0 14px;font:600 12px/1.2 var(--body,'Source Sans 3',sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--bizd)}
.nx-logo{display:block;height:34px;width:auto;margin:0 0 16px}
.nx-h{margin:0 0 12px;font:700 clamp(34px,3.6vw,50px)/1.04 var(--display,'Archivo',sans-serif);letter-spacing:-.02em;color:#2F444F}
.nx-p{margin:0 0 28px;max-width:38ch;font-size:clamp(17px,1.4vw,19px);line-height:1.5;color:#5C6E78}
.nx-row{display:flex;align-items:center;gap:22px 26px;flex-wrap:wrap}
.nx-go{position:relative;display:inline-flex;align-items:center;height:60px;padding:0 80px 0 28px;border-radius:999px;font:600 17px/1 var(--body,'Source Sans 3',sans-serif);white-space:nowrap;text-decoration:none;color:#fff;background:linear-gradient(180deg,#36505C,#263842);box-shadow:0 1px 3px rgba(20,32,38,.25),0 10px 24px -8px rgba(20,32,38,.55),inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.2);transition:background .2s}
.nx-go:hover{color:#fff;background:linear-gradient(180deg,#3D5A67,#2B3F4A)}
.nx-go:active{box-shadow:inset 0 2px 6px rgba(8,14,18,.5)}
.nx-go:focus-visible{outline:3px solid var(--bizd);outline-offset:3px}
.nx-disc{position:absolute;top:50%;right:8px;margin-top:-22px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--biz);color:#fff;transition:transform .25s}
.nx-go:hover .nx-disc{transform:translateX(3px)}
.nx[style*="#EBA95E"] .nx-disc{color:#2F444F}
.nx-prog{display:inline-flex;align-items:center;gap:5px}
.nx-prog i{width:16px;height:4px;border-radius:2px;background:rgba(47,68,79,.16)}
.nx-prog i.on{background:var(--biz)}
.nx-prog em{margin-left:8px;font:600 14px/1 var(--body,'Source Sans 3',sans-serif);font-style:normal;color:#5C6E78}

@media (max-width:860px){
  .nx-in{grid-template-columns:1fr;gap:26px}
}
@media (max-width:640px){
  .nx-in{width:calc(100% - 32px)}
  .nx-go{height:56px;font-size:16px;padding:0 70px 0 22px}
}
@media (prefers-reduced-motion:reduce){.nx-pic img,.nx-disc{transition:none}}


/* ---- hero-text.css ---- */
/* Hero text standard
   Every page hero uses the same heading and subheader styles as the Virlocept
   Group home hero. The heading has no rule under it; the hero
   layout (heading centred in the photo, hero heights) is in theme.css. */

:root{
  --hx-top:calc(130px + clamp(56px,6vw,84px));
}
@media (max-width:860px){
  :root{--hx-top:164px}
}

/* 1. Anchor the text block at the same height in every hero */
#hero.t3-hero,
#hero.hero-cs{
  justify-content:flex-start !important;
  align-items:stretch !important;
  padding-top:var(--hx-top) !important;
}
#hero.t3-hero>.wrap,
#hero.hero-cs>.wrap{top:0 !important;margin-top:0 !important}
#hero.t3-hero .t3-hero-in,
#hero.hero-cs .hcs-in{padding-top:0 !important;margin-top:0 !important}

/* 2. Header */
#hero .hx-h1,
.gh3 .hx-h1{
  font-family:var(--display) !important;
  font-weight:700 !important;
  font-size:clamp(30px,4.3vw,56px) !important;
  line-height:1.08 !important;
  letter-spacing:-.01em !important;
  text-transform:none !important;
  color:#fff !important;
  text-shadow:0 2px 14px rgba(0,0,0,.3) !important;
  text-wrap:balance;
  max-width:16em !important;
  margin:0 auto !important;
  text-align:center !important;
}

/* 4. Subheader */
#hero .hx-sub,
.gh3 .hx-sub{
  font-family:var(--body) !important;
  font-weight:400 !important;
  font-size:clamp(17px,1.5vw,20px) !important;
  line-height:1.55 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  color:rgba(255,255,255,.92) !important;
  text-shadow:0 1px 6px rgba(0,0,0,.3) !important;
  text-wrap:balance;
  max-width:58ch !important;
  margin:0 auto !important;
  text-align:center !important;
}

/* Phones: the card under Contact, legal, 404 and Thank you heroes overlaps by
   the same amount as every other page */
@media (max-width:703px){
  :root:has(#hero.ct-hero){--hero-lap:194px !important}
}


/* ---- services-link.css ---- */
html .vgm .vgm-links>a.vgm-svc{text-decoration:none}
html .vgm .vgm-links>a.vgm-svc[aria-expanded=true] svg{transform:rotate(180deg)}
html.n2 .vgm .vgm-links>a.vgm-svc[aria-expanded=true]::after{transform:scaleX(1)}
html.nf.n3 .vgm .vgm-links>a.vgm-svc[aria-expanded=true],html.n3 .vgm .vgm-links>a.vgm-svc[aria-expanded=true]{color:#fff}
html.n2.n3 .vgm.vgm .vgm-tray .nv-feat .nv-all{flex:none;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0;margin:0 4px 0 0;font:600 15px/1 var(--s-body);color:#fff;text-decoration:none;white-space:nowrap;border-radius:999px}
html.n2.n3 .vgm.vgm .vgm-tray .nv-feat .nv-all svg{transition:transform .2s}
html.n2.n3 .vgm.vgm .vgm-tray .nv-feat .nv-all:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
html.n2.n3 .vgm.vgm .vgm-tray .nv-feat .nv-all:hover svg{transform:translateX(3px)}
html.n2.n3 .vgm.vgm .vgm-tray .nv-feat a.nv-go{text-decoration:none}
html.n2 .vgm .nv-feat a.nv-go:hover i{background-position:calc(50% + 3px) 50%,50% 50%,50% 50%}



/* Group pages stay group neutral: mustard is Virlocept's colour, so on pages and parts that belong to the whole group the accents are navy and white. Business colours stay on business cards, business columns and business pages. */
html body[data-bb=group] .ct2 .ct-ic:not(.sos):not(.wa){color:#fff}
html body[data-bb=group] .ct2 .ct2-key:hover b{color:#fff}
html body[data-bb=group] .ct2 .ct2-addr svg{color:#fff}
html body[data-bb=group] .ct2 .ct2-addr-a:hover span{color:#fff;text-decoration:underline;text-underline-offset:4px}


/* Switcher logos keep their space while they load: the logo box is as tall as the logo's largest size, so the switcher and everything under it stay put when the logo files arrive (Projects layout shift). */
.fc-lg{min-height:clamp(24px,15cqi,46px)}
@media (max-width:840px){.fc-lg{min-height:30px}}

/* Theme adjustments on top of the template stylesheets. */

/* The rotating word in "We write about ..." ran 30px past the card on phones. Let the heading wrap and keep the word inside the card. */
@media (max-width: 760px) {
	.bg .sv-h2, .sv-h2 { white-space: normal; }
	.sv-rot { max-width: 100%; }
}

/* The Projects page shows every project. The 3-card cap stays on the Home "Recent work" block only. */
body.vg-projects .fc-pj .fc-stack .pj-item:nth-child(n+4) { display: block; }

/* Form errors read under the field (the screen-reader text becomes visible when the field is invalid). */
.ct-f.bad .ct-errtx {
	position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal;
	display: block; order: 3; margin-top: 6px; font: 600 14px/1.35 var(--body, 'Source Sans 3', sans-serif); color: #B3261E; text-transform: none; letter-spacing: 0;
}
.ct-f.bad .ct-lbl { display: flex; flex-direction: column; }
.ct-f.bad .ct-lbl .ct-errtx { order: 3; }




/* No visible text under 12px. */
.brands-lab { font-size: 12px !important; }

/* Footer links and the newsletter button change on hover like the rest of the site. */
.gf-foot a:not(.gf-key):not(.gf-emb):not(.gf-dir):hover { color: #fff; }
#nlb button:hover .disc, .nlb-go:hover .disc { transform: translateX(3px); }

/* Blog: empty state and pagination. */
.bg-empty { padding: 24px; color: #5C6E78; }
.vg-pager { display: flex; justify-content: space-between; gap: 16px; margin: 32px 0 0; font-weight: 600; }
.vg-pager a { color: #2F444F; }

/* Post body: images and embeds from the editor stay inside the sheet. */
.bp-sheet img, .bp-sheet iframe { max-width: 100%; height: auto; border-radius: 10px; }
.bp-sheet figure { margin: 24px 0; }
.bp-sheet figcaption { font-size: 14px; color: #5C6E78; margin-top: 6px; }
.bp-sheet blockquote { margin: 24px 0; padding-left: 18px; border-left: 4px solid #EBA95E; }
.bp-sheet .wp-block-table table { width: 100%; border-collapse: collapse; }
.bp-sheet .wp-block-table td, .bp-sheet .wp-block-table th { border-bottom: 1px solid #D9E0E2; padding: 8px 10px; text-align: left; }

/* Footer fixes. */
/* Contact rows: the links (phone, email, call-outs) had 4px of extra top padding, so their text sat below the icon. Pull it back so every row lines up with its icon disc; the tap area stays the same. */
.gf-foot .gf-c li > a { margin-top: -2px; margin-bottom: -4px; }
/* Phones: the 5 Virlocept Group links run in 2 columns like the business lists (3 rows), not 3 cramped columns. */
@media (max-width: 699px) {
	.gf-grp .gf-l { grid-template-rows: repeat(3, 32px); }
}

/* Logged-in view: the WordPress admin bar (32px, 46px on tablets and phones) sat over the header's top strip. Start the header below it. Visitors never see the admin bar. */
body.admin-bar .vgm { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar .vgm { top: 46px; }
}

/* Newsletter and CTA bands: the band card rises out of the footer over the last section. That section sits at z-index 2 so its stone texture painted over the top of the card, leaving a grey top and a white strip at the foot. Lift the footer above main so the whole card is clean white. */
.gf { z-index: 3; }

/* The contact form posts to the theme's enquiry endpoint. Honeypot field, failure message, reCAPTCHA note. */
.ct-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ct-fail { margin: 16px 0 0; padding: 12px 14px; border-left: 3px solid var(--btn, #C2423D); background: rgba(194, 66, 61, .08); color: var(--navy, #26343B); font-size: 15px; line-height: 1.45; }
.ct-fail a { color: inherit; font-weight: 600; }
.ct-fail:focus { outline: 2px solid var(--btn, #C2423D); outline-offset: 2px; }
.ct-rc { margin: 12px 0 0; font-size: 12.5px; line-height: 1.4; color: var(--muted); }
.ct-rc a { color: inherit; }
.grecaptcha-badge { visibility: hidden; }

/* Newsletter deferred: the newsletter band keeps its design but cannot submit until MailerLite is connected. */
.nlb-soon .nlb-fld:disabled, .nlb-soon .nlb-go:disabled { opacity: .55; cursor: not-allowed; }

/* Empty state on a Projects tab with no projects yet. */
.pj-empty { max-width: 56ch; margin: 28px auto 0; padding: 22px 24px; border: 1px dashed rgba(47, 68, 79, .25); border-radius: 14px; text-align: center; font-size: 17px; line-height: 1.5; color: var(--navy, #2F444F); }
.pj-empty a { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* "Our latest projects" fits the number of projects instead of leaving empty columns. 1 project fills the row as a feature card. */
.rw4.rw4-n1 { grid-template-columns: minmax(0, 1fr); }
.rw4.rw4-n1 .rp-card { aspect-ratio: 21 / 9; }
.rw4.rw4-n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rw4.rw4-n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) {
	.rw4.rw4-n1 .rp-card { aspect-ratio: 16 / 10; }
	.rw4.rw4-n3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	.rw4.rw4-n1 .rp-card { aspect-ratio: 5 / 4; }
}

/* Titles keep every word when a visitor applies WCAG text spacing. Services card subtitles allow 3 lines. */
main.tp.pj.gs .pj-card .pj-p { -webkit-line-clamp: 3; }

/* Dropdown options stay readable at narrow widths. 1 column below 480px and labels wrap instead of truncating. */
.ct2-dd-o { white-space: normal; height: auto; min-height: 44px; padding-top: 6px; padding-bottom: 6px; }
.ct2-dd-o span { overflow: visible; text-overflow: clip; }
@media (max-width: 480px) {
	.ct2-dd-l.c2 { grid-template-columns: minmax(0, 1fr); }
}

/* The hours popover is a disclosure driven by the button's aria-expanded, not by hover and focus alone. */
.ct2-hrs .ct2-hrs-pop, .ct2-hrs:hover .ct2-hrs-pop, .ct2-hrs:focus-within .ct2-hrs-pop { display: none; opacity: 1; visibility: visible; transform: none; }
.ct2-hrs.open .ct2-hrs-pop { display: block; }
.ct2-hrs:hover .ct2-hrs-b svg, .ct2-hrs:focus-within .ct2-hrs-b svg { transform: none; }
.ct2-hrs.open .ct2-hrs-b { color: #fff; }
.ct2-hrs.open .ct2-hrs-b svg { transform: rotate(180deg); }

/* Backdrop behind the open mobile drawer. Touches on it do not scroll the page; a tap closes the menu. */
.vgm-backdrop { position: fixed; inset: 0; z-index: 1; background: rgba(28, 43, 50, .38); touch-action: none; overscroll-behavior: contain; }
.vgm-backdrop[hidden] { display: none; }
html.vgm-lock .vgm-drawer { position: relative; z-index: 2; overscroll-behavior: contain; }
html.vgm-lock .vgm-strip { position: relative; z-index: 2; }

/* Font stacks include the size-adjusted fallback faces from fonts.css, so text keeps its height until the web font arrives. */
:root{--display:'Archivo','Archivo Fallback',Arial,sans-serif;--body:'Source Sans 3','Source Sans 3 Fallback',Arial,sans-serif}
/* Footer bands set the families directly in the template stylesheets; point them at the same stacks. */
.nlb h2{font-family:var(--display)}
.nlb{font-family:var(--body)}

/* Text contrast on the rendered backgrounds. Measured with the text made transparent and the median pixel behind it. */
:root { --muted: #4A5B64; }
.nx-p { color: #4A5B64; }
.nx-eb, .lg .t3-card a { color: #8E5813; }
html body main .sv-rot .sv-w, html body main .sv-rot .sv-w.on, html body main .sv-rot .sv-w.w-v, html body main .sv-rot .sv-w.on.w-v { color: #8E5813; }
html body .pg.pg-emg { background: linear-gradient(180deg, #C2423D, #AD3B36) !important; }
html body .pg.pg-emg:hover { background: linear-gradient(180deg, #B33E39, #9E3632) !important; }

/* The footer stays in flow so the contentinfo landmark survives in older Safari. Its children keep the same layout because .gf is a block container. */
.gf-foot { display: block; }

/* Visually hidden text for live regions on every page (the template stylesheets only define it on the contact and service stylesheets). */
.ct-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* IOS Safari: a flick up that overshoots the top triggered pull-to-refresh, reloading the page. No overscroll at the top or bottom, so the scroll stays on the page. */
html { overscroll-behavior-y: none; }


/* Project cards link to the project's gallery page: pointer, lift on hover, the red disc slides in. */
.pj a.pj-card.pj-link,.pj a.pj-card.pj-link:hover{cursor:pointer}
.pj a.pj-card.pj-link:hover{box-shadow:0 0 0 1px rgba(47,68,79,.08),0 22px 40px -18px rgba(20,32,38,.6)}
a.pj-card.pj-link{text-decoration:none;color:#fff}

/* Section spacing on the 8-point grid. 1 gap between sections: 56px on phones, 72px from 840px, 96px from 1200px.
   The closing CTA or newsletter band sits the same gap below the last section, and the footer starts 48px under the band.
   --band-lift is how far the band reaches into the footer: the footer's top padding plus the 6px band holder. */
html:root:root{--g:56px;--band-lift:34px}
@media (min-width:840px){html:root:root{--g:72px}}
@media (min-width:1200px){html:root:root{--g:96px}}
@media (max-width:560px){html:root:root{--band-lift:30px}}
@media (min-width:961px){html:root:root{--band-lift:44px}}
html body main>.nlb-last.nlb-last.nlb-last{padding-bottom:calc(var(--nlb-h,260px) + var(--g) - var(--band-lift))!important}
html body main>.ctb-last.ctb-last.ctb-last{padding-bottom:calc(var(--ctb-h,260px) + var(--g) - var(--band-lift))!important}
html body .nlb-hold,html body .ctb-hold{margin-bottom:48px}

/* Hero: the line under the heading and the tagline are gone; the heading sits in the middle of the photo,
   between the breadcrumb and the card that overlaps the hero. The blog post meta line, the project facts line, the
   Thank you and 404 messages and the Group home deck stay. The hero heights are set so the longest heading of each kind
   fits. The hero sizes themselves are in the "Hero sizes" block at the end of this file. */
#hero.t3-hero .hx-h1 { max-width: 11.5em !important; }
#hero .hx-sub { margin-top: 16px !important; max-width: 46ch !important; }

/* Headings split at their natural phrases: each .h1-line starts a new line; .nowrap keeps words together;
   .nowrap-wide keeps a line together from 481px up (on phones it wraps). A .nowrap-wide line can be up to 1.2em wider
   than the heading's 11.5em, so it reaches 1em past the heading on each side and stays centred. */
.hx-h1 .h1-line { display: block; text-wrap: balance; }
.hx-h1 .nowrap { white-space: nowrap; }
@media (min-width: 481px) { .hx-h1 .nowrap-wide { white-space: nowrap; margin-inline: -1em; } }


/* Google reviews band, Home and About. Rating line: logo, divider, stars filled to the score, score, count, on 1 line at every width.
   Cards: photo and name, stars, 3 lines of review; each card is 1 fixed design in cqw, so it scales as 1 piece.
   Arrows and the screen counter sit centred under the cards, "Read all reviews" under them. Each arrow moves a full screen of cards (reviews.js).
   Cards a screen: 3 from 1024px, 2 from 700 to 1023px, 3 from 540 to 699px, 2 from 368 to 539px, 1 under 368px. Phones use their own card
   proportions, and the single card under 368px has its own. The breakpoints keep the review text at 12px or more at every width. */
.gp-main .reviews .gh3-rvt,.au-band.reviews .au-rvt{margin:0 0 14px}
.gp-main .reviews .gh3-rvh,.au-band.reviews .au-rvh{display:flex;margin:0 0 26px}
.reviews .gr-line{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;white-space:nowrap}
.reviews .gr-line .gr-logo{height:32px;width:auto}
.reviews .gr-line .gr-sep{width:1px;height:24px;background:rgba(47,68,79,.2)}
.reviews .gr-rate{position:relative;display:inline-block;line-height:0}
.reviews .gr-rs{display:inline-flex;gap:2px}
.reviews .gr-rs i{display:block;flex:none;width:18px;height:18px;background:rgba(47,68,79,.16);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.reviews .gr-rs.gr-on{position:absolute;inset:0 auto 0 0;overflow:hidden}
.reviews .gr-rs.gr-on i{background:var(--orange)}
.reviews .gr-line .gr-num{font:700 22px/1 var(--display);letter-spacing:-.01em;color:var(--navy)}
.reviews .gr-line .gr-of{font-size:15px;color:var(--muted);margin:0;padding:0;align-self:center}

.reviews .gr-row{--per:3;--g:16px;display:grid;grid-template-columns:1fr auto auto auto 1fr;column-gap:14px;row-gap:22px;align-items:center}
.reviews .gr-view{grid-column:1/-1;grid-row:1}
.reviews .gr-arr{grid-row:2;width:44px;height:44px}
.reviews .gr-prev{grid-column:2}
.reviews .gr-next{grid-column:4}
.reviews .gr-count{grid-row:2;grid-column:3;margin:0;min-width:3.2em;text-align:center;font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}
.reviews .gr-all{margin:18px 0 0;text-align:center;font-size:15px}
.reviews .gr-all a{color:var(--muted);text-decoration:none}
.reviews .gr-note{margin:6px 0 0;text-align:center;font-size:13px;line-height:1.4;color:var(--muted)}
.reviews .gr-all a:hover,.reviews .gr-all a:focus-visible{color:var(--navy);text-decoration:underline}
.reviews .gr-track{align-items:start}
.reviews .gr-cw{display:block}

.reviews .gr-card{aspect-ratio:100/49;height:auto;min-height:0;display:flex;flex-direction:column;gap:3cqw;padding:5.4cqw;border-radius:4cqw}
.reviews .gr-card .gr-hd{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3cqw}
.reviews .gr-card .gr-ini{width:9.6cqw;height:9.6cqw;font-size:4cqw}
.reviews .gr-card .gr-name{font-size:4.4cqw;font-weight:600;line-height:1.2;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reviews .gr-card .gr-stars{grid-column:1/-1;gap:.7cqw}
.reviews .gr-card .gr-stars i{width:4.6cqw;height:4.6cqw}
.reviews .gr-card .gr-text{flex:none;margin:0;font-size:4cqw;line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}

@media (min-width:700px) and (max-width:1023px){.reviews .gr-row{--per:2;--g:14px}}
@media (max-width:699px){
	.gp-main .reviews .gh3-rvh,.au-band.reviews .au-rvh{margin-bottom:20px}
	.reviews .gr-line{gap:8px}
	.reviews .gr-line .gr-logo{height:26px}
	.reviews .gr-line .gr-sep{height:20px}
	.reviews .gr-rs{gap:1px}
	.reviews .gr-rs i{width:15px;height:15px}
	.reviews .gr-line .gr-num{font-size:19px}
	.reviews .gr-line .gr-of{font-size:14px}
	.reviews .gr-row{--per:3;--g:8px;grid-template-columns:1fr auto auto auto 1fr;gap:18px 14px}
	.reviews .gr-arr{width:44px;height:44px}
	.reviews .gr-count,.reviews .gr-all{font-size:14px}
	.reviews .gr-all{margin-top:16px}
	.reviews .gr-card{aspect-ratio:100/76;gap:4cqw;padding:7cqw;border-radius:6cqw}
	.reviews .gr-card .gr-hd{gap:4cqw}
	.reviews .gr-card .gr-ini{width:14cqw;height:14cqw;font-size:6cqw}
	.reviews .gr-card .gr-name{font-size:8cqw}
	.reviews .gr-card .gr-stars{gap:1cqw}
	.reviews .gr-card .gr-stars i{width:7cqw;height:7cqw}
	.reviews .gr-card .gr-text{font-size:7.6cqw;line-height:1.4}
}
@media (max-width:539px){.reviews .gr-row{--per:2}}
@media (max-width:367px){
	.reviews .gr-row{--per:1}
	.reviews .gr-card{aspect-ratio:100/56;gap:3.5cqw;padding:6cqw;border-radius:5cqw}
	.reviews .gr-card .gr-hd{gap:3.5cqw}
	.reviews .gr-card .gr-ini{width:11cqw;height:11cqw;font-size:4.8cqw}
	.reviews .gr-card .gr-name{font-size:5.2cqw}
	.reviews .gr-card .gr-stars{gap:.8cqw}
	.reviews .gr-card .gr-stars i{width:5.4cqw;height:5.4cqw}
	.reviews .gr-card .gr-text{font-size:4.6cqw;line-height:1.4}
}

/* Group home hero: the line under the heading keeps the 16px gap every hero subheader has. */
html body #hero.gh3-split .hx-h1 + .hx-sub{margin-top:16px !important}

/* Hero sizes. 1 size per kind of hero, set by the screen tier: phones to 839px, tablets 840 to 1199px, desktop from 1200px.
   --he is where the photo or navy area ends and the card starts, measured from the top of the page:
   photo heroes 400 / 440 / 480px, navy heroes (no photo: blog post, Thank you, 404, Search, legal pages) 360 / 400 / 416px.
   The hero is --he plus the depth the card overlaps it (--hl), so every card starts at --he. The heading sits centred between the
   breadcrumb (--ht) and the card, with at least --hp clear above and below. The Group home is 760px from 1001px; below that its
   business card stacks inside the photo and the hero follows its content. Landscape phones use the phone sizes.
   These rules replace the earlier hero heights in this file, overrides.css, service-card.css and the per-page stylesheets, and hero-fit.js. */
html body #hero.t3-hero.t3-hero.t3-hero, html body #hero.hero-cs.hero-cs.hero-cs {
	--he: 360px; --hl: 144px; --ht: 152px; --hp: 28px;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	--hero-h: calc(var(--he) + var(--hl)) !important;
	min-height: calc(var(--he) + var(--hl)) !important;
	height: auto !important;
	padding-top: var(--ht) !important;
	padding-bottom: var(--hl) !important;
}
html body #hero.t3-hero.t3-hero.t3-hero:has(.t3-hero-bg[style*="background-image"]), html body #hero.hero-cs.hero-cs.hero-cs { --he: 400px; }
html body #hero.t3-hero.t3-hero.t3-hero > .wrap, html body #hero.hero-cs.hero-cs.hero-cs > .wrap {
	top: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; padding-block: var(--hp) !important;
}
html body #hero.hero-cs.hero-cs.hero-cs { --hl: 58px; }
@media (max-width: 760px) {
	html body #hero.t3-hero.t3-hero.t3-hero { --hl: 126px; }
	html body #hero.hero-cs.hero-cs.hero-cs { --hl: 40px; }
}
@media (max-width: 703px) {
	html body #hero.t3-hero.t3-hero.t3-hero { --hl: 194px; }
	html body #hero.hero-cs.hero-cs.hero-cs { --hl: 104px; }
}
@media (min-width: 761px) {
	/* Contact, Search, Thank you, 404 and the legal pages: the card overlaps by the larger of the 2 lap settings, which grows to 150px on wide screens. */
	html body #hero.t3-hero.t3-hero.t3-hero.ct-hero { --hl: max(144px, min(150px, 10vw)); }
}
@media (min-width: 840px) and (min-height: 521px), (min-width: 840px) and (orientation: portrait) {
	html body #hero.t3-hero.t3-hero.t3-hero, html body #hero.hero-cs.hero-cs.hero-cs { --he: 400px; --hp: 32px; }
	html body #hero.t3-hero.t3-hero.t3-hero:has(.t3-hero-bg[style*="background-image"]), html body #hero.hero-cs.hero-cs.hero-cs { --he: 440px; }
}
@media (min-width: 1025px) {
	html body #hero.t3-hero.t3-hero.t3-hero, html body #hero.hero-cs.hero-cs.hero-cs { --ht: 172px; }
}
@media (min-width: 1200px) and (min-height: 521px) {
	html body #hero.t3-hero.t3-hero.t3-hero, html body #hero.hero-cs.hero-cs.hero-cs { --he: 416px; }
	html body #hero.t3-hero.t3-hero.t3-hero:has(.t3-hero-bg[style*="background-image"]), html body #hero.hero-cs.hero-cs.hero-cs { --he: 480px; }
}
@media (min-width: 1001px) {
	html body #hero.gh3.gh3 { min-height: 760px !important; height: auto !important; }
}
@media (max-width: 1000px), (max-height: 520px) and (orientation: landscape) {
	html body #hero.gh3.gh3 { min-height: 0 !important; height: auto !important; --hero-h: auto !important; }
}

/* Hero headings. Group home: "Welcome to" over "Virlocept Group", larger on phones. Every other hero runs a step smaller on phones and uses the full width. From 1001px every hero takes the Group home's size. */
@media (max-width: 560px) {
	html body #hero.gh3-split .hx-h1 { font-size: clamp(38px, 10.5vw, 46px) !important; max-width: none !important; }
	html body #hero .hx-h1:not(#gp-h) { font-size: clamp(32px, 8.6vw, 35px) !important; }
	html body #hero #hero-h { text-wrap: balance; }
	html body #hero #hero-h .h1-line { display: inline; }
}
@media (min-width: 1001px) { html body #hero .hx-h1 { font-size: clamp(30px, 3.6vw, 52px) !important; } }

/* Group home hero buttons: the text sits in the middle of the whole button, the disc over the right end */
html body #hero.gh3-split .gh3-btns .pg { padding-left: var(--btn-pr) !important; padding-right: var(--btn-pr) !important; justify-content: center; }
@media (min-width: 861px) { html body #hero.gh3-split .gh3-btns .pg { width: 280px; } }

/* Group home About block: the 3 contact rows sit side by side as tiles on tablets and phones; phones show the short labels */
html body .ab-act .ab-sh { display: none; }
@media (max-width: 1000px) {
	html body .ab-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 12px; }
	html body .ab-row { flex-direction: column; justify-content: flex-start; gap: 8px; padding: 14px 6px 12px; text-align: center; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); }
	html body .ab-row + .ab-row::before { content: none; }
	html body .ab-row .ab-go { display: none; }
	html body .ab-ic { width: 40px; height: 40px; }
	html body .ab-tx { gap: 2px; justify-items: center; }
	html body .ab-act { font-size: 16px; white-space: nowrap; }
}
@media (max-width: 760px) {
	html body .ab-q { display: none; }
	html body .ab-act { font-size: 14px; }
	html body .ab-act .ab-lg { display: none; }
	html body .ab-act .ab-sh { display: inline; }
}

/* Rotating headings ("Our services", Services, Projects, Renovations): the word runs on in the sentence and only the words that do not fit wrap; rotate.js sets the space and where the first line sits */
html body .sv-h2.rot-flow-h { white-space: normal; text-wrap: wrap; }
html body .sv-h2.rot-flow-h .sv-lead { display: inline; }
html body .sv-h2.rot-flow-h .sv-rot.rot-flow { display: inline; overflow: visible; max-width: none; padding: 0; margin: 0; transition: opacity .3s ease; }
html body .sv-h2.rot-flow-h .sv-rot.rot-flow.fading { opacity: 0; }
html body .sv-h2.rot-flow-h .sv-rot.rot-flow .sv-w { display: none; transform: none; opacity: 1; transition: none; }
html body .sv-h2.rot-flow-h .sv-rot.rot-flow .sv-w.on { display: inline; }
@media (prefers-reduced-motion: reduce) { html body .sv-h2.rot-flow-h .sv-rot.rot-flow { transition: none; } }
/* Virlocept, Umbuso and Lighthaven pages keep 2 lines for the heading below 660px, so the service cards start at the same place on all 3 */
@media (max-width: 659px) { html body #services .sv-head .sv-h2 { --rot-lines: 2; } }

/* About card: the 3 business logos stay side by side on phones, like the business keys on the other pages */
@media (max-width: 760px) {
	html body .ad-biz { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	html body .ad-bt { height: 66px; padding: 5px 6px 0; }
	html body .ad-bt + .ad-bt { border-top: 0; border-left: 1px solid rgba(47,68,79,.12); }
	html body .ad-bt .ad-bl, html body .ad-bt[data-b] .ad-bl { transform: none; height: auto; max-height: 30px; max-width: 100%; }
}

/* About card: the values as a navy band with the 3-colour strip, 4 tabs and 1 description at a time (values.js) */
.vx { background: #1F3039; color: #fff; }
.vx-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); height: 5px; }
.vx-strip span:nth-child(1) { background: #EBA95E; }
.vx-strip span:nth-child(2) { background: #3E7D19; }
.vx-strip span:nth-child(3) { background: #004EBA; }
.vx-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid rgba(255,255,255,.12); }
.vx-tab { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-width: 0; min-height: 92px; margin: 0; padding: 16px 4px 20px; border: 0; border-radius: 0; background: transparent; color: #fff; font: 600 13px/1.2 var(--display); opacity: .55; cursor: pointer; transition: opacity .2s ease; }
.vx-tab + .vx-tab { border-left: 1px solid rgba(255,255,255,.10); }
.vx-tab:hover { opacity: .8; }
.vx-tab[aria-selected=true] { opacity: 1; cursor: default; }
.vx-tab[aria-selected=true]::after { content: ""; position: absolute; left: 50%; bottom: 8px; width: 28px; height: 3px; margin-left: -14px; border-radius: 2px; background: #fff; }
.vx-tab:focus-visible { outline: 3px solid #fff; outline-offset: -3px; }
.vx-disc { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; }
.vx-tab[aria-selected=true] .vx-disc { background: #fff; color: #1F3039; }
.vx-name { white-space: nowrap; }
.vx-pans { display: grid; padding: 18px 22px 24px; text-align: center; }
.vx-pan { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility 0s .25s; }
.vx-pan.on { opacity: 1; visibility: visible; transition: opacity .25s ease; }
.vx-pan b { display: block; margin-bottom: 6px; font: 700 18px/1.2 var(--display); color: #fff; }
.vx-pan p { margin: 0 auto; max-width: 300px; font-size: 15px; line-height: 1.5; color: #B4C4CB; text-wrap: balance; }
@media (min-width: 561px) {
	.vx-tab { min-height: 104px; font-size: 15px; }
	.vx-pan b { font-size: 20px; }
	.vx-pan p { max-width: 460px; font-size: 16px; }
}
@media (min-width: 1200px) {
	.vx-tab { flex-direction: row; gap: 12px; min-height: 84px; font-size: 17px; }
	.vx-pans { padding: 22px 32px 28px; }
	.vx-pan b { font-size: 22px; }
	.vx-pan p { max-width: 720px; font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) { .vx-tab, .vx-pan, .vx-pan.on { transition: none; } }

/* Quote band above the footer: the photo fills the right half of the band and a white panel over its left edge holds the heading, line and button. bands.js measures the band, so its height follows the content. */
.ctb-hold{position:relative;z-index:2;max-width:1240px;height:6px;margin:0 auto 46px}
.gf .ctb{font-family:var(--body);position:absolute;left:0;right:0;bottom:0;overflow:hidden;box-sizing:border-box;display:flex;min-height:260px;padding:22px 14px 14px;border-radius:24px;background:linear-gradient(180deg,#36505c,#263842);color:#2f444f;text-align:left;box-shadow:inset 0 -1px 0 rgba(47,68,79,.1),0 0 0 1px rgba(47,68,79,.12),0 22px 34px -20px rgba(8,14,18,.75)}
.gf .ctb,.gf .ctb *{box-sizing:border-box}
.gf .ctb-bar{position:absolute;z-index:3;top:0;left:0;right:0;height:8px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.gf .ctb-shot{position:absolute;top:0;right:0;bottom:0;display:block;width:50%;max-width:none;height:100%;object-fit:cover;border-radius:0}
.gf .ctb-panel{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;width:60%;min-height:224px;padding:28px 40px 28px 42px;border-radius:18px;background:#fff;box-shadow:0 18px 40px -18px rgba(8,14,18,.55),0 0 0 1px rgba(47,68,79,.08)}
.gf .ctb-copy{min-width:0;max-width:100%}
.gf .ctb h2{font-family:var(--display);margin:0;padding:0;max-width:22ch;font-weight:700;font-size:clamp(27px,2.7vw,34px);line-height:1.08;letter-spacing:-.025em;color:#2f444f;text-wrap:balance}
.gf .ctb-copy p{margin:10px 0 0;font-size:18px;line-height:1.45;color:#4a5c66}
.gf .ctb-go{position:relative;display:inline-flex;align-items:center;justify-content:center;max-width:100%;margin-top:22px;border:0;border-radius:999px;cursor:pointer;white-space:nowrap;text-decoration:none;color:#fff;background:linear-gradient(180deg,#36505c,#263842);box-shadow:0 1px 3px rgba(20,32,38,.25),0 10px 24px -8px rgba(20,32,38,.55),inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.2)}
.gf .ctb-go:hover{color:#fff}
.gf .ctb-go:active{box-shadow:inset 0 2px 6px rgba(8,14,18,.5)}
.gf .ctb-disc{position:absolute;top:50%;display:grid;place-items:center;border-radius:50%}
.gf .ctb a:focus-visible{outline:3px solid #2f444f;outline-offset:3px}
html body[data-bb=group] .gf .ctb-go{max-width:320px}
@media (max-width:760px){
	.gf .ctb{flex-direction:column;min-height:0;padding:0 10px 10px}
	.gf .ctb-shot{position:relative;width:calc(100% + 20px);height:200px;margin:0 -10px}
	.gf .ctb-panel{width:auto;min-height:0;margin-top:-30px;padding:22px 18px 18px;box-shadow:0 -10px 30px -14px rgba(8,14,18,.5),0 0 0 1px rgba(47,68,79,.08)}
	.gf .ctb-copy p{font-size:17px}
	.gf .ctb-go{width:100%;max-width:440px;margin-top:20px}
}
/* Newsletter band above the footer: a navy band with the colour strip on top, the heading and line on the left and the sign-up field with its 2 notices on the right. From 1001 to 1199px the field column narrows; up to 1000px the field sits under the heading. */
html body .gf .nlb{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,520px);align-items:center;gap:24px 64px;min-height:260px;overflow:hidden;box-sizing:border-box;padding:48px 64px 40px;border-radius:24px;background:linear-gradient(180deg,#36505c,#263842);color:#fff;text-align:left;font-family:var(--body);box-shadow:inset 0 -1px 0 rgba(255,255,255,.06),0 0 0 1px rgba(47,68,79,.12),0 22px 34px -20px rgba(8,14,18,.75)}
html body .gf .nlb-copy,html body .gf .nlb-side{min-width:0}
html body .gf .nlb h2{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(27px,2.7vw,34px);line-height:1.08;letter-spacing:-.025em;color:#fff;text-wrap:balance}
html body .gf .nlb-line{margin:10px 0 0;font-size:18px;line-height:1.45;color:#d3dce0;text-wrap:pretty}
html body .gf .nlb-form{flex:none;max-width:none;margin:0}
html body .gf .nlb .nlb-fld{background:#fff;box-shadow:inset 0 2px 5px rgba(47,68,79,.16)}
html body .gf .nlb-msg{min-height:0;margin:10px 0 0;padding:0 0 0 26px;font-size:13.5px;line-height:1.45;color:#d3dce0}
html body .gf .nlb .nlb-msg b{color:#fff}
html body .gf .nlb .nlb-legal{margin:2px 0 0;padding:0 0 0 26px;font-size:13px;line-height:1.45;color:#c5d0d5}
html body .gf .nlb .nlb-legal a{color:#fff}
html body .gf .nlb-soon .nlb-fld:disabled{opacity:1;background:#e6ebed}
html body .gf .nlb-soon .nlb-go:disabled{opacity:.75}
html body .gf .nlb .nlb-fld:focus-visible,html body .gf .nlb .nlb-go:focus-visible,html body .gf .nlb a:focus-visible{outline:3px solid #fff;outline-offset:3px}
@media (max-width:1199px){
	html body .gf .nlb{grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:24px 48px;padding:44px 48px 36px}
}
@media (max-width:1000px){
	html body .gf .nlb{grid-template-columns:minmax(0,1fr);padding:44px 40px 36px}
	html body .gf .nlb-line{font-size:17px}
}
@media (max-width:560px){
	html body .gf .nlb{padding:36px 22px 26px}
	html body .gf .nlb-msg,html body .gf .nlb .nlb-legal{padding-left:0}
}


/* Group wordmark in the footer emblem tile (26 Oct 2026). The tile keeps its size at every width, so nothing else in the footer moves. Desktop: the navy wordmark under the emblem. Phones and tablets: beside it. */
.gf-emb{gap:16px}
.gf-emb .gf-em{height:76px;width:auto}
.gf-emb .gf-wm{display:block;width:auto;height:34px}
@media (min-width:561px) and (max-width:699px){.gf-emb .gf-em{height:91px}.gf-emb .gf-wm{height:42px}}
@media (min-width:700px) and (max-width:960px){.gf-emb{gap:10px;padding:0 10px}.gf-emb .gf-em{height:52px}.gf-emb .gf-wm{height:auto;width:calc(100% - 54px);max-width:110px;min-width:0}}
@media (min-width:961px){.gf-emb{flex-direction:column;gap:12px}.gf-emb .gf-em{height:94px}.gf-emb .gf-wm{height:auto;width:148px}}

/* Phones (6 Nov 2026): the breadcrumb sits centred above the heading, clear of the logo badge, and each photo hero is as tall as its heading needs. */
@media (max-width: 703px) {
	html body #hero.t3-hero.t3-hero.t3-hero { --ht: 136px; }
	html body #hero.t3-hero.t3-hero.t3-hero:has(.t3-hero-bg[style*="background-image"]) { --he: 320px; }
	/* The 16 service pages share 1 size so the Previous and Next switcher stays at the same height on screen from page to page; 372px fits a 4-line heading. */
	html body #hero.t3-hero.tc-hero.t3-hero.t3-hero:has(.t3-hero-bg[style*="background-image"]) { --he: 372px; }
	html body #hero.t3-hero > .vg-crumb { position: relative; z-index: 3; top: auto; left: auto; align-self: center; max-width: calc(100% - 40px); margin: 28px 0 -16px; }
	html body #hero.t3-hero > .vg-crumb ol { justify-content: center; }
}

/* Group home on phones (6 Nov 2026): tighter business rows and buttons so all 3 businesses start on the first screen. */
@media (max-width: 560px) {
	html body #hero.gh3-split .gh3-btns { margin-top: 24px; gap: 12px; }
	html body #hero .gh3-biz .gb-row { padding-top: 12px; padding-bottom: 12px; gap: 6px 16px; }
	html body #hero .gh3-biz .gb-logo img { max-height: 22px; }
}

/* Footer link lists on phones (6 Nov 2026): rows 44px apart and a 44px tap area round each 32px link pill. */
@media (max-width: 699px) {
	html body .gf .gf-l { grid-auto-rows: 44px; gap: 0; align-items: center; }
	html body .gf .gf-umb .gf-l, html body .gf .gf-vir .gf-l { grid-template-rows: repeat(4, 44px); }
	html body .gf .gf-grp .gf-l { grid-template-rows: repeat(2, 44px); }
	html body .gf .gf-l a { position: relative; }
	html body .gf .gf-l a::after { content: ""; position: absolute; inset: -6px 0; }
}

/* Phones on their side (6 Nov 2026): the hero fits its heading so the first card shows on the first screen. The 16 service pages and the 3 business pages share 1 size (card at 320px, fits their longest heading), so their switchers stay put. */
@media (orientation: landscape) and (max-height: 520px) and (max-width: 1024px) {
	html body #hero.t3-hero.t3-hero.t3-hero, html body #hero.t3-hero.t3-hero.t3-hero:has(.t3-hero-bg[style*="background-image"]), html body #hero.hero-cs.hero-cs.hero-cs { --he: 0px; --ht: 136px; --hp: 24px; }
	html body #hero.t3-hero.tc-hero.t3-hero.t3-hero:has(.t3-hero-bg[style*="background-image"]) { --he: 320px; --ht: 136px; --hp: 24px; }
	html body #hero.hero-cs.hero-cs.hero-cs { --he: 320px; }
}

/* Project cards on phones: the title and location stop short of the arrow disc (disc 6cqw from the edge, 10.5cqw wide, plus a 3cqw gap), so long titles wrap instead of running under it. */
@media (max-width: 760px) {
	html body .pj .pj-item:nth-child(n) .pj-card .pj-body { right: 19.5cqw; }
}
/* ==========================================================================
   GLOBAL BUTTON SETTINGS
   Virlocept Group website · button standard of 12 October 2026

   Every button on the site takes its size, font, disc, colours and hover
   from the settings below. Change a value here and every button follows,
   on every page and for every business. This file loads last, so it wins
   over the page stylesheets.

   The rules
   - 1 size: 52px high, 15px Source Sans 3 semibold, a 38px disc 7px in from
     the right edge. The text centres in the space left of the disc.
   - Only the icon disc takes colour:
       Virlocept Group and Group buttons: the mustard, green and blue ring,
         navy centre, white icon (on light and navy pills alike)
       Virlocept: mustard disc, white arrow
       Umbuso: green disc, white arrow
       Lighthaven: blue disc, white arrow
     Every icon in a coloured disc is white (20 October 2026).
     A button for another business takes that business's colour.
   - Red is for the emergency button only.
   - 1 hover: the pill keeps its colour, the shadow deepens, the disc
     brightens a little, and the icon slides out to the right and back in
     from the left. Keyboard focus shows the same effect.
   ========================================================================== */

:root{
  /* size */
  --btn-h:52px;            /* button height */
  --btn-disc:38px;         /* icon disc */
  --btn-gap:7px;           /* space between the disc and the button's edge */
  --btn-pl:24px;           /* left padding */
  --btn-pr:69px;           /* right padding: gap + disc + 24px, keeps the text centred left of the disc */
  /* type */
  --btn-font:600 15px/1 "Source Sans 3",Helvetica,Arial,sans-serif;
  /* colours */
  --c-navy:#2F444F;
  --ring:radial-gradient(circle closest-side,#2f444f calc(100% - 5.5px),#f8f6f2 calc(100% - 5px),#f8f6f2 calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#eba95e 0 120deg,#3e7d19 120deg 240deg,#004eba 240deg 360deg);
  --d-v:linear-gradient(180deg,#F2B569,#E9A352); --d-v-h:linear-gradient(180deg,#F6C17E,#EDAD5E);   /* Virlocept mustard */
  --d-u:linear-gradient(180deg,#4F9A24,#3E7D19); --d-u-h:linear-gradient(180deg,#5AA72C,#448A1C);   /* Umbuso green */
  --d-l:linear-gradient(180deg,#1F6FE0,#004EBA); --d-l-h:linear-gradient(180deg,#2F7DEA,#0A5ACB);   /* Lighthaven blue */
  /* hover */
  --btn-dur:.45s;          /* icon slide */
  --btn-ease:cubic-bezier(.6,0,.2,1);
  --btn-disc-hover:brightness(1.1);
}

/* 1. One size for every pill */
html body .pg,
html body .ctb-go,
html body .nx-go,
html body .nlb-go,
html body .sv-mt-go,
html body .nv-go,
html body .gf-dir,
html body .sc-go,
html body .fq-btn{
  height:var(--btn-h)!important; min-height:var(--btn-h)!important;
  padding:0 var(--btn-pr) 0 var(--btn-pl)!important;
  font:var(--btn-font)!important; letter-spacing:.005em!important;
  border-radius:999px!important; box-sizing:border-box!important;
}
html body .nv-go{display:inline-flex!important;align-items:center;justify-content:center}

/* 2. One disc for every pill */
html body .pg .disc,
html body .ctb-go .ctb-disc,
html body .nx-go .nx-disc,
html body .nlb-go>span,
html body .sv-mt-go .disc,
html body .nv-go i,
html body .gf-dir .gf-well,
html body .sc-go .sc-disc,
html body .fq-btn .fq-disc{
  position:absolute!important; top:50%!important; right:var(--btn-gap)!important; left:auto!important;
  margin-top:calc(var(--btn-disc) / -2)!important;
  width:var(--btn-disc)!important; height:var(--btn-disc)!important; border-radius:50%!important;
}
html body .ctb-go .ctb-disc,
html body .nx-go .nx-disc,
html body .gf-dir .gf-well{display:grid!important;place-items:center}
html body .ctb-go .ctb-disc svg,
html body .nx-go .nx-disc svg,
html body .gf-dir .gf-well svg,
html body .sc-go .sc-disc svg,
html body .fq-btn .fq-disc svg{width:16px!important;height:16px!important}
/* Previous on the service card bar: the disc sits on the left, so the padding mirrors */
html body .sc-prev{padding:0 var(--btn-pl) 0 var(--btn-pr)!important}
html body .sc-prev .sc-disc{left:var(--btn-gap)!important;right:auto!important}

/* 3. Menu: Get in touch at the same size */
html body .vgm .vgm-key[aria-label="Get in touch"],
html body .vgm .vgm-key[aria-label="Get in touch"]:hover{
  width:auto!important; height:var(--btn-h)!important;
  padding:0 var(--btn-pr) 0 var(--btn-pl)!important;
  font:var(--btn-font)!important;
}
html body .vgm .vgm-key[aria-label="Get in touch"]::after{
  right:var(--btn-gap)!important; top:var(--btn-gap)!important;
  width:var(--btn-disc)!important; height:var(--btn-disc)!important;
}
html body .vgm .vgm-key[aria-label="Get in touch"] svg{
  right:calc(var(--btn-gap) + var(--btn-disc) / 2 - 9px)!important;
  top:calc(var(--btn-h) / 2 - 9px)!important;
}

/* 4. Get directions matches the Group buttons: light pill, navy text, ring disc on the right */
html body .gf-dir{
  gap:0!important; color:var(--c-navy)!important;
  background:linear-gradient(180deg,#fff,#f5f2ee)!important;
  box-shadow:0 1px 3px rgba(112,98,84,.16),0 4px 14px -2px rgba(112,98,84,.24),inset 0 1px 0 #fff!important;
}
html body .gf-dir:hover{background:linear-gradient(180deg,#fff,#efebe5)!important}
html body .gf-dir .gf-well{background:var(--ring)!important;color:#fff!important;box-shadow:0 1px 2px rgba(20,32,38,.22)!important}

/* 5. Business service pages: the CTA band disc takes the business colour */
html body[data-bb="virlocept"] .ctb-go .ctb-disc{background:var(--d-v)!important;color:#fff!important}
html body[data-bb="umbuso"] .ctb-go .ctb-disc{background:var(--d-u)!important;color:#fff!important}
html body[data-bb="lighthaven"] .ctb-go .ctb-disc{background:var(--d-l)!important;color:#fff!important}
html body[data-bb="virlocept"] .ctb-go:hover .ctb-disc{background:var(--d-v-h)!important}
html body[data-bb="umbuso"] .ctb-go:hover .ctb-disc{background:var(--d-u-h)!important}
html body[data-bb="lighthaven"] .ctb-go:hover .ctb-disc{background:var(--d-l-h)!important}

/* 6. Every icon in a coloured disc is white, mustard included (20 October 2026; was navy on mustard).
   The quote band and newsletter discs on Group pages take the standard ring (navy centre, white arrow),
   not the white centre with a navy arrow. */
html body :is(.disc,.t3-sv-d,.cbs-disc,.ctb-disc,.nx-disc,.sc-disc,.fq-disc),
html body [data-bb] :is(.disc,.t3-sv-d,.cbs-disc,.ctb-disc,.nx-disc,.sc-disc,.fq-disc),
html body [data-bb] [data-bb] :is(.disc,.t3-sv-d,.cbs-disc,.ctb-disc,.nx-disc,.sc-disc,.fq-disc),
html body .nx.nx-cross .nx-go .nx-disc{color:#fff!important}
html body .nlb-go>span,html body[data-bb=group] .gf .ctb-disc{background:var(--ring)!important;color:#fff!important}
html body .nlb-go:hover>span,html body[data-bb=group] .gf .ctb-go:hover .ctb-disc{background:radial-gradient(circle closest-side,#3a5360 calc(100% - 5.5px),#f8f6f2 calc(100% - 5px),#f8f6f2 calc(100% - 3px),transparent calc(100% - 2.5px)),conic-gradient(#eba95e 0 120deg,#3e7d19 120deg 240deg,#004eba 240deg 360deg)!important}
html body .pg.pg-emg .disc,html body [data-bb] .pg.pg-emg .disc,html body [data-bb] [data-bb] .pg.pg-emg .disc{color:#C24540!important}

/* 7. One hover for every button (12 October 2026, later)
   The pill keeps its colour, the shadow deepens, the disc brightens a little,
   and the icon slides out to the right and back in from the left. */
@keyframes btn-through{
  0%{translate:0 0;opacity:1}
  45%{translate:14px 0;opacity:0}
  46%{translate:-14px 0;opacity:0}
  100%{translate:0 0;opacity:1}
}

/* the pill keeps its colour */
html body .ctb-go:hover,html body .nx-go:hover,html body .nlb-go:hover,html body .sc-go:hover,html body .fq-btn:hover{background:linear-gradient(180deg,#36505c,#263842)!important}
html body .pg.pg-emg:hover{background:linear-gradient(180deg,#d7524d,#c24540)!important}
html body .gf-dir:hover{background:linear-gradient(180deg,#fff,#f5f2ee)!important}
html body .vgm .vgm-key[aria-label="Get in touch"]:hover{background:linear-gradient(180deg,#fff,#f5f2ee)!important}
html body .nv-go:hover{background:#fff!important}

/* the shadow deepens */
html body .ctb-go,html body .nx-go,html body .nlb-go,html body .sc-go,html body .fq-btn{transition:box-shadow .22s ease!important}
html body .ctb-go:hover,html body .nx-go:hover,html body .nlb-go:hover,html body .sc-go:hover,html body .fq-btn:hover,
html body .ctb-go:focus-visible,html body .nx-go:focus-visible,html body .nlb-go:focus-visible,html body .sc-go:focus-visible,html body .fq-btn:focus-visible{
  box-shadow:0 2px 5px rgba(20,32,38,.3),0 14px 28px -8px rgba(20,32,38,.62),inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.2)!important}
html body .vgm .vgm-key[aria-label="Get in touch"],html body .nv-go,html body .gf-dir{transition:box-shadow .22s ease!important}
html body .vgm .vgm-key[aria-label="Get in touch"]:hover,html body .nv-go:hover,html body .gf-dir:hover,
html body .vgm .vgm-key[aria-label="Get in touch"]:focus-visible,html body .nv-go:focus-visible,html body .gf-dir:focus-visible{
  box-shadow:0 2px 4px rgba(6,12,16,.35),0 9px 22px -4px rgba(6,12,16,.55),inset 0 1px 0 #fff!important}
html body .pg.pg-emg:hover{box-shadow:0 2px 4px rgba(120,30,26,.3),0 10px 22px -6px rgba(160,50,45,.6),inset 0 1px 0 rgba(255,255,255,.22)!important}

/* the disc brightens a little and stays where it is */
html body .pg .disc,html body .sv-mt-go .disc,html body .ctb-go .ctb-disc,html body .nx-go .nx-disc,
html body .nlb-go>span,html body .nv-go i,html body .gf-dir .gf-well,html body .sc-go .sc-disc,html body .fq-btn .fq-disc{transition:filter .2s ease!important}
html body .pg:hover .disc,html body .sv-mt-go:hover .disc,html body .sv-mt:hover .sv-mt-go .disc,html body .ctb-go:hover .ctb-disc,html body .nx-go:hover .nx-disc,html body .nlb-go:hover>span,html body .nv-go:hover i,html body .gf-dir:hover .gf-well,html body .sc-go:hover .sc-disc,html body .fq-btn:hover .fq-disc{filter:var(--btn-disc-hover)}
html body .nx-go:hover .nx-disc,html body .nx-go .nx-disc{transform:none!important}
html body .vgm .vgm-key[aria-label="Get in touch"]::after{transition:filter .2s ease}
html body .vgm .vgm-key[aria-label="Get in touch"]:hover::after,html body .vgm .vgm-key[aria-label="Get in touch"]:focus-visible::after{filter:var(--btn-disc-hover)}

/* the icon slides through: 1 icon per disc */
html body .pg .disc svg+svg,html body .sv-mt-go .disc svg+svg{display:none!important}
html body .pg .disc svg,html body .sv-mt-go .disc svg{transform:none!important;transition:none!important}
html body .pg:hover .disc svg,html body .pg:focus-visible .disc svg,
html body .sv-mt-go:hover .disc svg,html body .sv-mt:hover .sv-mt-go .disc svg,html body .sv-mt-go:focus-visible .disc svg,
html body .ctb-go:hover .ctb-disc svg,html body .ctb-go:focus-visible .ctb-disc svg,
html body .nx-go:hover .nx-disc svg,html body .nx-go:focus-visible .nx-disc svg,
html body .nlb-go:hover>span svg,html body .nlb-go:focus-visible>span svg,
html body .gf-dir:hover .gf-well svg,html body .gf-dir:focus-visible .gf-well svg,
html body .sc-next:hover .sc-disc svg,html body .sc-next:focus-visible .sc-disc svg,
html body .fq-btn:hover .fq-disc svg,html body .fq-btn:focus-visible .fq-disc svg,
html body .vgm .vgm-key[aria-label="Get in touch"]:hover svg,html body .vgm .vgm-key[aria-label="Get in touch"]:focus-visible svg{
  animation:btn-through var(--btn-dur) var(--btn-ease)}

/* Previous: the left arrow slides out to the left and back in from the right */
@keyframes btn-back{
  0%{translate:0 0;opacity:1}
  45%{translate:-14px 0;opacity:0}
  46%{translate:14px 0;opacity:0}
  100%{translate:0 0;opacity:1}
}
html body .sc-prev:hover .sc-disc svg,html body .sc-prev:focus-visible .sc-disc svg{animation:btn-back var(--btn-dur) var(--btn-ease)}

/* the tray's Get a quote draws its arrow as a background, so the arrow moves to its own layer */
html body .nv-go i{background:var(--ring)!important}
html body .nv-go i::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' fill='%23fff'%3E%3Cpath d='M686-450H190q-13 0-21.5-8.5T160-480q0-13 8.5-21.5T190-510h496L459-737q-9-9-9-21t9-21q9-9 21-9t21 9l278 278q5 5 7 10t2 11q0 6-2 11t-7 10L501-181q-9 9-21 9t-21-9q-9-9-9-21t9-21l227-227Z'/%3E%3C/svg%3E") 50% 50%/16px no-repeat}
html body .nv-go:hover i::after,html body .nv-go:focus-visible i::after{animation:btn-through var(--btn-dur) var(--btn-ease)}

/* round arrow controls follow the same hover: no colour change or growth, icon slides through */
html body .gr-arr:hover{color:#2F444F!important;transform:none!important;background:#fff!important}
html body .gr-arr:hover svg,html body .gr-arr:focus-visible svg{animation:btn-through var(--btn-dur) var(--btn-ease)}

@media (prefers-reduced-motion:reduce){
  html body a svg,html body button svg,html body .nv-go i::after{animation:none!important}
}
/* ==========================================================================
   Service pages: the card slider and the questions card (15 October 2026)

   The card under the hero is the switcher. A bar along its top edge holds
   Previous and Next (the neighbouring service pages, or the next business
   at either end), the business and service name in the middle, and a line
   along the bottom of the bar that marks the service's place in the order.
   The services sit in the card as rows in 3 columns.

   The questions sit in their own card at the same width: heading and topic
   switch across the top, the questions closed in 2 columns, and a stone foot
   with the Ask us a question button. Button size, disc and hover come from
   buttons.css.
   ========================================================================== */

/* business colour: the disc, the progress line and the eyebrow */
body[data-bb="virlocept"]{--sc-c:#EBA95E;--sc-k:#fff;--sc-t:#8E5813}
body[data-bb="umbuso"]{--sc-c:#3E7D19;--sc-k:#fff;--sc-t:#3E7D19}
body[data-bb="lighthaven"]{--sc-c:#004EBA;--sc-k:#fff;--sc-t:#004EBA}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}

/* side padding shared by the bar, the services, the emergency strip and the questions card */
.fc-svc,.fq{--sc-pad:clamp(20px,3.2vw,44px)}

/* -------- the bar -------- */
.sc-bar{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;padding:22px var(--sc-pad) 20px;border-bottom:1px solid #ECE8E2}
.sc-go{--dc:var(--sc-c);--dk:var(--sc-k);position:relative;display:inline-flex;align-items:center;justify-content:center;justify-self:start;width:236px;max-width:100%;color:#fff;text-align:center;text-decoration:none;background:linear-gradient(180deg,#36505C,#263842);box-shadow:0 1px 3px rgba(20,32,38,.25),0 10px 24px -8px rgba(20,32,38,.55),inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.2)}
.sc-next{justify-self:end}
.sc-go:active{box-shadow:inset 0 2px 6px rgba(8,14,18,.5)}
.sc-go:focus-visible{outline:3px solid var(--sc-c);outline-offset:3px}
.sc-disc{display:grid;place-items:center;background:var(--dc);color:var(--dk)}
.sc-tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-mid{display:grid;justify-items:center;gap:6px;margin:0;text-align:center}
.sc-eb{font:600 12px/1 var(--body,'Source Sans 3',sans-serif);letter-spacing:.16em;text-transform:uppercase;color:var(--sc-t)}
.sc-now{font:700 20px/1.1 var(--display,'Archivo',sans-serif);letter-spacing:-.01em;color:#2F444F;white-space:nowrap}
.sc-track{position:absolute;left:0;right:0;bottom:-1px;height:3px}
.sc-fill{position:absolute;top:0;bottom:0;left:calc(100% * var(--i) / var(--n));width:calc(100% / var(--n));border-radius:3px;background:var(--sc-c)}

/* -------- the services: rows in 3 columns -------- */
.fc-svc .fc-stack{padding:clamp(26px,3.2vw,44px) var(--sc-pad) clamp(24px,3vw,40px)}
.fc-svc .svx-in{display:block}
.svx-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(24px,3vw,44px)}
.svx-list li{position:relative;margin:0;padding:22px 0 22px 58px;border-top:1px solid #ECE8E2}
.svx-list li:nth-child(-n+3){border-top:0;padding-top:4px}
.svx-list .tc-st{display:block;min-height:0;margin:0 0 6px;font-size:17px;line-height:1.25}
.svx-list .tc-ic{position:absolute;left:0;top:20px;width:42px;height:42px;background:#f0f7f5}
.svx-list li:nth-child(-n+3) .tc-ic{top:2px}
.svx-list .tc-ic svg{width:21px;height:21px}
.svx-list p{margin:0;font-size:15.5px;line-height:1.5;color:#4A5B64}
.fc-svc .tc-emg-in{padding:26px var(--sc-pad)}

/* -------- the questions card -------- */
main>.fq{padding-top:var(--g)}
.fq-card{width:min(1240px,calc(100% - 64px));margin:0 auto;border-radius:20px;background:#fff;box-shadow:0 34px 70px -34px rgba(20,32,38,.6),0 0 0 1px rgba(47,68,79,.06);overflow:hidden}
.fq-top{display:flex;align-items:center;justify-content:space-between;gap:20px 40px;padding:40px var(--sc-pad) 32px;border-bottom:1px solid #ECE8E2}
.fq-h{margin:0;font:700 clamp(26px,2.4vw,32px)/1.1 var(--display,'Archivo',sans-serif);letter-spacing:-.015em;color:#2F444F;text-wrap:balance}
.fq-sw{flex:none;display:flex;gap:6px;max-width:100%;padding:6px;border-radius:999px;background:#F7F5F2;box-shadow:inset 0 0 0 1px rgba(47,68,79,.12)}
.fq-tab{height:44px;padding:0 20px;border:0;border-radius:999px;background:none;cursor:pointer;color:#2F444F;font:600 15px/1 var(--body,'Source Sans 3',sans-serif);white-space:nowrap;transition:background .15s,color .15s}
.fq-tab:hover{background:rgba(47,68,79,.08)}
.fq-tab[aria-selected="true"]{color:#fff;background:#2F444F}
.fq-tab:focus-visible,.fq-q:focus-visible{outline:3px solid #EBA95E;outline-offset:2px}
/* every topic sits in 1 grid cell, so the card keeps the height of the longest topic */
.fq-panels{display:grid;padding:8px var(--sc-pad) 16px}
.fq-panel{grid-area:1/1;min-width:0}
.fq-panel[hidden]{display:block;visibility:hidden}
.fq-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px;align-items:start}
.fq-col{min-width:0}
.fq-item{border-top:1px solid #ECE8E2}
.fq-col .fq-item:first-child{border-top:0}
.fq-item h3{margin:0}
.fq-q{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:72px;padding:18px 0;border:0;background:none;text-align:left;cursor:pointer;color:#2F444F;font:600 17px/1.3 var(--display,'Archivo',sans-serif);letter-spacing:-.005em}
.fq-q i{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#f0f7f5;color:#2e8c78;box-shadow:inset 0 0 0 1px rgba(68,168,147,.3);transition:transform .25s,background .2s,color .2s,box-shadow .2s}
.fq-q:hover i{box-shadow:inset 0 0 0 1px #2e8c78}
.fq-q[aria-expanded="true"] i{transform:rotate(45deg);background:#2F444F;color:#fff;box-shadow:none}
.fq-a{padding:0 58px 22px 0}
.fq-a p{margin:0;font-size:16px;line-height:1.55;color:#4A5B64}
.fq-foot{display:flex;align-items:center;justify-content:space-between;gap:16px 32px;padding:24px var(--sc-pad);background:#F7F5F2;border-top:1px solid #ECE8E2}
.fq-foot p{margin:0;font:600 20px/1.25 var(--display,'Archivo',sans-serif);letter-spacing:-.01em;color:#2F444F}
.fq-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;color:#fff;text-decoration:none;white-space:nowrap;background:linear-gradient(180deg,#36505C,#263842);box-shadow:0 1px 3px rgba(20,32,38,.25),0 10px 24px -8px rgba(20,32,38,.55),inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.2)}
.fq-btn:focus-visible{outline:3px solid #EBA95E;outline-offset:3px}
.fq-disc{display:grid;place-items:center;background:var(--sc-c);color:var(--sc-k)}

@media (prefers-reduced-motion:reduce){.fq-q i,.fq-tab{transition:none}}

/* -------- tablet -------- */
@media (max-width:1100px){
  .fq-top{flex-direction:column;align-items:flex-start}
  .fq-sw{overflow-x:auto;scrollbar-width:none}
  .fq-sw::-webkit-scrollbar{display:none}
  .fq-tab{flex:none}
}
@media (max-width:1024px){
  .svx-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .svx-list li:nth-child(3){border-top:1px solid #ECE8E2;padding-top:22px}
  .svx-list li:nth-child(3) .tc-ic{top:20px}
}
@media (max-width:860px){
  .fq-cols{grid-template-columns:minmax(0,1fr)}
  .fq-col+.fq-col .fq-item:first-child{border-top:1px solid #ECE8E2}
}

/* -------- phone -------- */
@media (max-width:703px){
  .sc-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:16px 12px 14px}
  .sc-mid{display:none}
  html body .sc-go{width:100%;padding:0 12px 0 50px!important;font-size:14px!important}
  html body .sc-next{padding:0 50px 0 12px!important}
  .sc-tx{white-space:normal;line-height:1.1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .svx-list{grid-template-columns:minmax(0,1fr)}
  .svx-list li,.svx-list li:nth-child(-n+3){padding:18px 0 18px 54px;border-top:1px solid #ECE8E2}
  .svx-list li:first-child{border-top:0;padding-top:2px}
  .svx-list .tc-ic,.svx-list li:nth-child(-n+3) .tc-ic{top:16px;width:40px;height:40px}
  .svx-list li:first-child .tc-ic{top:0}
  .svx-list .tc-st{font-size:16.5px;margin-bottom:4px}
  .svx-list p{font-size:15px}
  .fq-top{padding:26px 18px 20px;gap:16px}
  .fq-h{font-size:26px}
  .fq-sw{align-self:stretch;margin:0 -18px;padding:0 18px;border-radius:0;background:none;box-shadow:none}
  .fq-tab{height:42px;padding:0 16px;font-size:14.5px;box-shadow:inset 0 0 0 1px rgba(47,68,79,.14)}
  .fq-tab[aria-selected="true"]{box-shadow:none}
  .fq-panels{padding:0 18px 8px}
  .fq-q{min-height:64px;padding:16px 0;font-size:16px}
  .fq-q i{width:34px;height:34px}
  .fq-a{padding-right:0}
  .fq-a p{font-size:15px}
  .fq-foot{flex-direction:column;align-items:stretch;padding:20px 18px}
  .fq-foot p{font-size:18px}
  html body .fq-btn{width:100%}
}
@media (max-width:640px){
  .fq-card{width:calc(100% - 32px)}
}

/* Smallest phones (under 360px): the Previous and Next switch buttons show every service name in full. The label drops to 13px and the bar and button keep 8px inner spacing, so the longest single word (maintenance) fits beside the arrow disc without being cut. */
@media (max-width:359px){
  .sc-bar.sc-bar{padding-inline:8px;gap:6px}
  html body .sc-go.sc-go{padding:0 8px 0 50px!important;font-size:13px!important}
  html body .sc-next.sc-next{padding:0 50px 0 8px!important}
}

/* Questions card on the Virlocept page, Contact and Renovations and developments.
   The phone number in an answer is a call link in the answer's own navy, underlined.
   On the Group page (Renovations and developments) the button disc takes the Group ring
   and the focus outline is navy, so no business colour shows on a Group part.
   The band above the card drops its own bottom padding, so the 1 section gap sits between them. */
main>.band:has(+.fq)>.wrap{padding-bottom:0}
/* Contact: the contact card above already leaves 1 section gap below it, and nothing follows the questions card but the footer */
main>.t3-body+.fq{padding-top:0;padding-bottom:var(--g)}
/* Contact: the card sits in the page's wrap at the contact card's width */
.fq>.wrap>.fq-card{width:auto;max-width:1160px}
.fq-a a{color:#2F444F;font-weight:600;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.fq-a a:focus-visible{outline:3px solid #EBA95E;outline-offset:2px;border-radius:2px}
html body[data-bb="group"] .fq-btn .fq-disc{background:var(--ring)!important;color:#fff!important}
body[data-bb="group"] .fq-tab:focus-visible,body[data-bb="group"] .fq-q:focus-visible,body[data-bb="group"] .fq-btn:focus-visible,body[data-bb="group"] .fq-a a:focus-visible{outline-color:#2F444F}


/* Service lists (6 Nov 2026): a short last row sits centred under the rows above instead of leaving an empty space on the right. Same item widths as before. */
@media (min-width:1025px){
  .svx-list{grid-template-columns:repeat(6,minmax(0,1fr))}
  .svx-list li{grid-column:span 2}
  .svx-list li:nth-child(3n+1):nth-last-child(2){grid-column:2/span 2}
  .svx-list li:nth-child(3n+1):last-child{grid-column:3/span 2}
}
@media (min-width:704px) and (max-width:1024px){
  .svx-list{grid-template-columns:repeat(4,minmax(0,1fr))}
  .svx-list li{grid-column:span 2}
  .svx-list li:nth-child(odd):last-child{grid-column:2/span 2}
}
/* Cookie banner (inc/consent.php, assets/js/consent.js). Group neutral: navy card, white text, white and outline pills. */
.vgc{position:fixed;z-index:90;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:min(420px,calc(100% - 32px));padding:20px 22px;border-radius:16px;background:#2f444f;color:#eaf0f2;box-shadow:0 18px 40px rgba(20,30,36,.35),inset 0 1px 0 rgba(255,255,255,.08);opacity:0;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease}
.vgc.is-in{opacity:1;transform:none}
.vgc[hidden]{display:none}
.vgc-h{margin:0 0 6px;font:600 17px/1.3 var(--display);color:#fff}
.vgc-h:focus{outline:none}
.vgc-h:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:4px}
.vgc-p{margin:0 0 16px;font-size:15px;line-height:1.5;color:rgba(234,240,242,.85)}
.vgc-p a{color:#fff;text-decoration:underline;text-underline-offset:2px}
.vgc-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vgc .vgc-btn{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:999px;font:600 15px/1 var(--body);text-align:center;cursor:pointer;border:0;transition:background .2s,color .2s,box-shadow .2s}
.vgc .vgc-yes{background:#fff;color:#2f444f}
.vgc .vgc-yes:hover{background:#e6ecee}
.vgc .vgc-no{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.vgc .vgc-no:hover{box-shadow:inset 0 0 0 1.5px #fff;background:rgba(255,255,255,.08)}
.vgc .vgc-btn:focus-visible,.vgc-p a:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:480px){.vgc{left:12px;right:12px;width:auto;bottom:calc(12px + env(safe-area-inset-bottom));padding:18px}}
@media (prefers-reduced-motion:reduce){.vgc{transition:none}}
@media print{.vgc{display:none!important}}

/* "Cookie settings" in the footer legal links: looks and behaves like the links beside it. */
.gf .gf-leg{flex-wrap:wrap;row-gap:4px;justify-content:center}
.gf .gf-leg .gf-ck{display:inline-block;padding:4px 0;margin:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer}
.gf .gf-leg .gf-ck:hover{color:#fff}
