/**
 * Shared visual foundation and document shell.
 *
 * Owns typography/tokens, header/footer, navigation, common forms/dialogs and shared states
 * across modern routes. Section-specific rules belong in css/<section>.css, inner-body rules in
 * vwbh-pages.css. Enqueued before composition/section styles by parts/vwbh-layout-open.php.
 * Preserve compatibility selectors and asset order; legacy routes may retain old styles and
 * plugin dependencies.
 */
/* Shared Ventura typography, brand shell, forms and dialogs. Composition lives in home/pages CSS. */
body.vwbh-site{--vwbh-navy:#27395a;--vwbh-teal:#71afa6;--vwbh-gold:#ffb800;--vwbh-pale:#f1f4f9;--vwbh-ink:#4c6264;margin:0;background:#fafcff;color:var(--vwbh-navy);font-family:"Josefin Sans",sans-serif;font-weight:300;font-size:22px;line-height:1.3}
.vwbh-site *,.vwbh-site *::before,.vwbh-site *::after{box-sizing:border-box}
.vwbh-site [hidden]{display:none!important}
.vwbh-site a{color:inherit;text-underline-offset:.18em}
.vwbh-site button,.vwbh-site input,.vwbh-site select,.vwbh-site textarea{font:inherit}
.vwbh-site button,.vwbh-site input[type=submit]{cursor:pointer}
.vwbh-site a:focus-visible,.vwbh-site button:focus-visible,.vwbh-site input:focus-visible,.vwbh-site select:focus-visible,.vwbh-site textarea:focus-visible{outline:3px solid #146c75;outline-offset:4px}
.vwbh-site img{display:block;max-width:100%;height:auto}
.vwbh-site h1,.vwbh-site h2,.vwbh-site h3,.vwbh-site p{margin:0}
.vwbh-site h2{font-size:40px;font-weight:600;text-transform:uppercase;line-height:1.2;letter-spacing:.03em;margin-bottom:28px;text-align:center}
.vwbh-site h3{font-size:26px;font-weight:600;line-height:1.15}
.vwbh-site p+p{margin-top:1em}
:where(.vwbh-site) .vwbh-home__container{width:min(1140px,calc(100% - 48px));margin-inline:auto}
:where(.vwbh-site) .vwbh-home__screen-reader,:where(.vwbh-site) .vwbh-home__skip{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
:where(.vwbh-site) .vwbh-home__skip:focus{left:16px;top:16px;width:auto;height:auto;z-index:10000;padding:12px;background:white}
:where(.vwbh-site) .vwbh-home__missing{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:44px;background:repeating-linear-gradient(135deg,#e3e8ee 0 12px,#f4f6f9 12px 24px);border:1px dashed #66778e;color:#34445c;padding:12px;text-align:center;font:14px/1.35 system-ui,sans-serif;overflow:hidden}
:where(.vwbh-site) .vwbh-home__header{background:#fff;padding:42px 0 27px}
:where(.vwbh-site) .vwbh-home__header-top{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr) max-content;align-items:center;gap:30px}
:where(.vwbh-site) .vwbh-home__brand{display:block;width:100%;max-width:420px;min-height:54px;text-decoration:none}
:where(.vwbh-site) .vwbh-home__brand img{width:100%;height:auto}
:where(.vwbh-site) .vwbh-home__tagline{font-size:19px;line-height:1.1;border-left:1px solid var(--vwbh-navy);padding-left:28px;letter-spacing:.03em}
.vwbh-site a.vwbh-home__address{display:flex;align-items:center;gap:9px;background:var(--vwbh-navy);color:white;border-radius:8px;font-style:normal;font-size:16px;line-height:1.05;letter-spacing:.04em;padding:10px 14px;text-decoration:none}
:where(.vwbh-site) .vwbh-home__small-icon{max-width:24px;max-height:28px;flex:0 0 auto}
:where(.vwbh-site) .vwbh-home__small-icon.vwbh-home__missing{width:18px;height:20px;min-height:20px;min-width:18px;max-width:18px;padding:0;font-size:0}
:where(.vwbh-site) .vwbh-home__header-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:30px}
:where(.vwbh-site) .vwbh-home__phone{display:flex;align-items:center;gap:10px;white-space:nowrap;text-decoration:none;font-size:19px;font-weight:400;letter-spacing:.04em}
:where(.vwbh-site) .vwbh-home__menu{display:flex;align-items:center;gap:29px;list-style:none;margin:0;padding:0;font-size:20px;font-weight:400}
:where(.vwbh-site) .vwbh-home__menu li{position:relative;list-style:none}
:where(.vwbh-site) .vwbh-home__menu a{text-decoration:none}
:where(.vwbh-site) .vwbh-home__menu a:hover,:where(.vwbh-site) .vwbh-home__menu .current-menu-item>a{text-decoration:underline}
:where(.vwbh-site) .vwbh-home__menu .sub-menu{display:none;position:absolute;left:0;top:100%;z-index:20;background:white;padding:14px;min-width:230px;box-shadow:0 4px 19px #4c62644d;list-style:none}
:where(.vwbh-site) .vwbh-home__menu .sub-menu li+li{margin-top:12px}
:where(.vwbh-site) .vwbh-home__menu .sub-menu .sub-menu{left:100%;top:0}
:where(.vwbh-site) .vwbh-home__menu li:hover>.sub-menu,:where(.vwbh-site) .vwbh-home__menu li:focus-within>.sub-menu{display:block}
:where(.vwbh-site) .vwbh-home__submenu-toggle{background:none;border:0;color:var(--vwbh-navy);font-size:18px;padding:4px 7px}
:where(.vwbh-site) .vwbh-home__submenu-toggle img{transform:rotate(90deg)}
:where(.vwbh-site) .vwbh-home__tagline{position:relative;border:0}
:where(.vwbh-site) .vwbh-home__divider{position:absolute;left:0;top:50%;width:1px;height:53px;transform:translateY(-50%)}
:where(.vwbh-site) .vwbh-home__divider img{position:absolute;left:0;top:0;transform-origin:0 0;transform:rotate(90deg)}
:where(.vwbh-site) .vwbh-home__menu-toggle{display:none}
:where(.vwbh-site) .vwbh-home__asset-mask{background-color:var(--vwbh-asset-mask-color);mask-image:var(--vwbh-asset-mask);mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:var(--vwbh-asset-mask);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}
:where(.vwbh-site) .vwbh-home__brand .vwbh-home__asset-mask,:where(.vwbh-site) .vwbh-home__footer-brand .vwbh-home__asset-mask{height:auto}
.vwbh-site img[src$=".svg"]:where([data-vwbh-asset]){width:auto;height:auto;max-width:none;max-height:none;flex-shrink:0}
/* One visual button component. Existing theme classes and native form markup are adapters;
   sections own only placement/width. Add future CTA adapters here and to the shared states. */
.vwbh-site :is(.vwbh-home__button,.vwbh-download-brochure__button,.wpcf7-submit,input[type=submit]){display:inline-flex;justify-content:center;align-items:center;max-width:100%;min-height:55px;padding:14px 24px;border:0;border-radius:8px;background:var(--vwbh-button-background,var(--vwbh-teal));color:white;text-align:center;text-decoration:none;font-size:20px;font-weight:400;line-height:1.2;cursor:pointer}
:where(.vwbh-site) .vwbh-home__button--navy{--vwbh-button-background:var(--vwbh-navy)}
.vwbh-site :is(.vwbh-home__button,.vwbh-download-brochure__button,.wpcf7-submit,input[type=submit]):disabled{opacity:.55;cursor:not-allowed}
.vwbh-site .wpcf7{width:100%}
.vwbh-site .wpcf7 form{margin:0}
.vwbh-site .wpcf7 label,.vwbh-site .form__label{display:block;font:14px/1.5 Montserrat,sans-serif;color:var(--vwbh-navy);margin-bottom:8px}
.vwbh-site .wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=radio]),.vwbh-site .wpcf7 select,.vwbh-site .wpcf7 textarea{display:block;width:100%;min-height:42px;background:rgb(39 57 90 / .05);border:1px solid #dfe5ed;border-radius:8px;padding:10px 12px;color:var(--vwbh-navy);font:16px/1.4 Montserrat,sans-serif}
.vwbh-site .wpcf7 textarea{min-height:110px;resize:vertical}
.vwbh-site .form__items{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vwbh-site .form__item{margin-bottom:16px;min-width:0}
.vwbh-site .form__item--full-width{grid-column:1/-1}
.vwbh-site .wpcf7 form>p{margin:16px 0}
.vwbh-site .wpcf7-not-valid-tip{display:block;font:14px/1.4 Montserrat,sans-serif;color:#b42318;margin-top:5px}
.vwbh-site .wpcf7-response-output{font:14px/1.5 Montserrat,sans-serif;margin:20px 0 0!important;padding:12px!important}
.vwbh-site .wpcf7-spinner{vertical-align:middle}
.vwbh-site .vwbh-home__cf7 .close-btn{display:none}
:where(.vwbh-site) .vwbh-home__footer{padding-block:40px 50px;text-align:center}
:where(.vwbh-site) .vwbh-home__footer-brand{display:block;margin:0 auto 35px;width:210px;min-height:160px}
:where(.vwbh-site) .vwbh-home__footer-brand img{max-width:210px;margin:auto}
:where(.vwbh-site) .vwbh-home__nav--footer .vwbh-home__menu{justify-content:center;flex-wrap:wrap;font-size:18px;gap:24px}
:where(.vwbh-site) .vwbh-home__footer-contacts{display:flex;justify-content:center;align-items:center;gap:40px;margin-top:45px;font-size:18px}
:where(.vwbh-site) .vwbh-home__footer-contacts>a,:where(.vwbh-site) .vwbh-home__footer-contacts>address{display:flex;align-items:center;gap:12px;text-decoration:none;font-style:normal;text-align:left}
:where(.vwbh-site) .vwbh-home__dialog-fallback{max-width:650px;margin:40px auto;padding:24px}
:where(.vwbh-site) .vwbh-home__dialog{width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:32px;border:0;border-radius:20px;background:white;color:var(--vwbh-navy);overflow:auto}
:where(.vwbh-site) .vwbh-home__dialog::backdrop{background:rgb(10 24 42 / .7)}
:where(.vwbh-site) .vwbh-home__dialog-inner{position:relative}
:where(.vwbh-site) .vwbh-home__dialog-close{display:block;margin-left:auto;margin-bottom:16px;background:var(--vwbh-navy);color:white;border:0;border-radius:6px;padding:8px 12px;font-size:16px}
:where(.vwbh-site).vwbh-home--dialog-open{overflow:hidden}
@media(max-width:1199px){
:where(.vwbh-site) .vwbh-home__header-top{grid-template-columns:1fr 1fr}
:where(.vwbh-site) .vwbh-home__tagline{display:none}
:where(.vwbh-site) .vwbh-home__address{justify-self:end}
:where(.vwbh-site) .vwbh-home__menu{gap:18px;font-size:18px}
:where(.vwbh-site) .vwbh-home__header-bottom{gap:18px}
:where(.vwbh-site) .vwbh-home__footer-contacts{gap:24px;flex-wrap:wrap}
}

@media(max-width:900px){
:where(.vwbh-site) .vwbh-home__header{padding:24px 0}
:where(.vwbh-site) .vwbh-home__header-bottom{flex-wrap:wrap}
:where(.vwbh-site) .vwbh-home__nav{width:100%;order:3}
:where(.vwbh-site) .vwbh-home__nav--footer{order:initial}
:where(.vwbh-site) .vwbh-home__menu{flex-wrap:wrap}
:where(.vwbh-site).vwbh-home--menu-ready .vwbh-home__menu-toggle{display:block;background:var(--vwbh-navy);color:white;border:0;border-radius:6px;padding:10px 18px;font-size:18px}
:where(.vwbh-site).vwbh-home--menu-ready .vwbh-home__header .vwbh-home__nav{display:none}
:where(.vwbh-site).vwbh-home--menu-ready .vwbh-home__menu-toggle[aria-expanded=true]+.vwbh-home__nav{display:block}
}
@media(max-width:767px){
body.vwbh-site{font-size:19px}
:where(.vwbh-site) .vwbh-home__container{width:calc(100% - 40px)}
.vwbh-site h2{font-size:30px;margin-bottom:22px}
.vwbh-site h3{font-size:24px}
:where(.vwbh-site) .vwbh-home__header-top{grid-template-columns:1fr;gap:18px}
:where(.vwbh-site) .vwbh-home__brand{max-width:360px}
:where(.vwbh-site) .vwbh-home__address{justify-self:start;font-size:15px}
:where(.vwbh-site) .vwbh-home__header-bottom{margin-top:20px}
:where(.vwbh-site) .vwbh-home__phone{font-size:18px}
:where(.vwbh-site) .vwbh-home__header .vwbh-home__menu{flex-direction:column;align-items:stretch;gap:0}
:where(.vwbh-site) .vwbh-home__header .vwbh-home__menu>li{padding-block:12px;border-bottom:1px solid #e0e7ef}
:where(.vwbh-site) .vwbh-home__menu .sub-menu,:where(.vwbh-site) .vwbh-home__menu .sub-menu .sub-menu{position:static;box-shadow:none;padding:14px 0 4px 18px;min-width:0}
:where(.vwbh-site).vwbh-home--menu-ready .vwbh-home__menu li:hover>.sub-menu,:where(.vwbh-site).vwbh-home--menu-ready .vwbh-home__menu li:focus-within>.sub-menu{display:none}
.vwbh-site .form__items{grid-template-columns:1fr}
:where(.vwbh-site) .vwbh-home__footer-contacts{flex-direction:column;align-items:flex-start;gap:26px}
:where(.vwbh-site) .vwbh-home__footer{padding-top:36px}
:where(.vwbh-site) .vwbh-home__dialog{padding:24px 20px}
}
@media(prefers-reduced-motion:no-preference){
.vwbh-site{scroll-behavior:smooth}
.vwbh-site :is(.vwbh-home__button,.vwbh-download-brochure__button,.wpcf7-submit,input[type=submit],a.vwbh-home__address){transition:background-color .15s ease,box-shadow .15s ease,transform .1s ease}
.vwbh-site :is(.vwbh-home__button,.vwbh-download-brochure__button,.wpcf7-submit,input[type=submit],a.vwbh-home__address):where(:not(:disabled):not([aria-disabled=true])):active{transform:translateY(1px)}
}
/* Shared Figma CTA states: preserve resting teal/navy, highlight gold for mouse/keyboard.
   Restrict hover to hover-capable pointers; pressed feedback also works on touch. */
@media(hover:hover){
.vwbh-site :is(.vwbh-home__button,.vwbh-download-brochure__button,.wpcf7-submit,input[type=submit],a.vwbh-home__address):where(:not(:disabled):not([aria-disabled=true])):hover{background:var(--vwbh-gold);color:white}
}
.vwbh-site :is(.vwbh-home__button,.vwbh-download-brochure__button,.wpcf7-submit,input[type=submit],a.vwbh-home__address):where(:not(:disabled):not([aria-disabled=true])):focus-visible{background:var(--vwbh-gold);color:white}
.vwbh-site :is(.vwbh-home__button,.vwbh-download-brochure__button,.wpcf7-submit,input[type=submit],a.vwbh-home__address):where(:not(:disabled):not([aria-disabled=true])):active{background:var(--vwbh-gold);color:white;box-shadow:inset 0 2px 5px rgb(39 57 90 / .25)}
@media (max-width: 1199px){
body.vwbh-site .vwbh-home__header .vwbh-home__header-bottom{ flex-wrap: wrap; }
body.vwbh-site .vwbh-home__header .vwbh-home__nav{ width: 100%; order: 3; }
body.vwbh-site .vwbh-home__header .vwbh-home__menu{ flex-wrap: wrap; }
body.vwbh-site.vwbh-home--menu-ready .vwbh-home__header .vwbh-home__menu-toggle{
    display: block; background: var(--vwbh-navy); color: white; border: 0; border-radius: 6px;
    padding: 10px 18px; font-size: 18px;
  }
body.vwbh-site.vwbh-home--menu-ready .vwbh-home__header .vwbh-home__nav{ display: none; }
body.vwbh-site.vwbh-home--menu-ready .vwbh-home__header .vwbh-home__menu-toggle[aria-expanded=true] + .vwbh-home__nav{ display: block; }
}

:where(.vwbh-site) .vwbh-home__menu .vwbh-home__submenu-open>.sub-menu{display:block}
@media(max-width:767px){:where(.vwbh-site).vwbh-home--menu-ready .vwbh-home__menu .vwbh-home__submenu-open>.sub-menu{display:block!important}}
/* Compatibility with retained plugin/content styles; shell structure has one owner. */
body.vwbh-site .vwbh-home__header,body.vwbh-site .vwbh-home__footer{flex-shrink:0}
body.vwbh-site .vwbh-home__header p,body.vwbh-site .vwbh-home__footer p,body.vwbh-site .vwbh-home__footer address{margin:0}
body.vwbh-site .vwbh-home__menu li{margin:0;padding:0}
body.vwbh-site .vwbh-home__menu .sub-menu li+li{margin-top:12px}
body.vwbh-site .vwbh-home__menu a{display:inline;padding:0;color:inherit;font:inherit;line-height:inherit;text-decoration:none;white-space:normal}
body.vwbh-site .vwbh-home__menu a::before{content:none}
body.vwbh-site .vwbh-home__menu a:hover,body.vwbh-site .vwbh-home__menu .current-menu-item>a{text-decoration:underline}
body.vwbh-site .vwbh-home__menu .sub-menu{margin:0;border:0;border-radius:0;overflow:visible;animation:none;transform:none}
body.vwbh-site .vwbh-home__submenu-toggle{border-radius:0}
body.vwbh-site input[type=hidden]{display:none}
body.vwbh-site .vwbh-shell__skip{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
body.vwbh-site .vwbh-shell__skip:focus{left:16px;top:16px;width:auto;height:auto;z-index:10000;padding:12px;background:white;color:var(--vwbh-navy);outline:3px solid #146c75;outline-offset:4px}
body.vwbh-site:is(.vwbh-home--dialog-open,.vwbh-site--dialog-open){overflow:hidden}
@media(max-width:1199px){
  body.vwbh-site .vwbh-home__header .vwbh-home__header-bottom{flex-wrap:wrap}
  body.vwbh-site .vwbh-home__header .vwbh-home__nav{width:100%;order:3}
  body.vwbh-site .vwbh-home__header .vwbh-home__menu{flex-wrap:wrap}
  body.vwbh-site:is(.vwbh-home--menu-ready,.vwbh-shell--menu-ready,.vwbh-site--menu-ready) .vwbh-home__header .vwbh-home__menu-toggle{display:block;background:var(--vwbh-navy);color:white;border:0;border-radius:6px;padding:10px 18px;font-size:18px}
  body.vwbh-site:is(.vwbh-home--menu-ready,.vwbh-shell--menu-ready,.vwbh-site--menu-ready) .vwbh-home__header .vwbh-home__nav{display:none}
  body.vwbh-site:is(.vwbh-home--menu-ready,.vwbh-shell--menu-ready,.vwbh-site--menu-ready) .vwbh-home__header .vwbh-home__menu-toggle[aria-expanded=true]+.vwbh-home__nav{display:block}
}
@media(max-width:767px){
  body.vwbh-site .vwbh-home__header .vwbh-home__menu>li{padding-block:12px;border-bottom:1px solid #e0e7ef}
  body.vwbh-site:is(.vwbh-home--menu-ready,.vwbh-shell--menu-ready,.vwbh-site--menu-ready) .vwbh-home__menu li:hover>.sub-menu,body.vwbh-site:is(.vwbh-home--menu-ready,.vwbh-shell--menu-ready,.vwbh-site--menu-ready) .vwbh-home__menu li:focus-within>.sub-menu{display:none}
  body.vwbh-site:is(.vwbh-home--menu-ready,.vwbh-shell--menu-ready,.vwbh-site--menu-ready) .vwbh-home__menu .vwbh-home__submenu-open>.sub-menu{display:block!important}
}
/* The retained legacy stylesheet positions body relative; its admin bar needs the reserved-space offset. */
@media(max-width:600px){body.vwbh-site.vwbh-legacy-page.admin-bar #wpadminbar{top:-46px}}
