/* Shared homepage button baseline. Keep this after page-specific styles. */
/* The approved inquiry title uses the same two unbroken lines at every size. */
html body .hero-form h2 .hero-form-title-line{display:block;white-space:nowrap}
:root{--site-button-blue:#00aeef;--site-button-hover:#008ac0;--site-button-radius:9999px}
html body :is(button,input[type="submit"],input[type="button"],[role="button"],a.pill,a.cta,a.button,a.fc-button,a.nc-button,a.mp-button,a.sd-button,a.promo-button,a.tab-cta,a.option-button,a.sm-cta,a.mobile-plan){border-radius:var(--site-button-radius)!important}
html body :is(a,button,input).site-button{display:inline-flex!important;max-width:100%!important;box-sizing:border-box!important;white-space:normal!important;align-items:center!important;justify-content:center!important;gap:18px!important;min-height:46px!important;padding:11px 24px!important;border-width:1px;border-style:solid;font-family:Inter,system-ui,sans-serif!important;font-size:14px!important;font-weight:500!important;line-height:1.55!important;text-decoration:none!important;text-align:center!important;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
html body .site-button-primary{background:var(--site-button-blue)!important;color:#fff!important;border-color:transparent!important}
html body .site-button-primary:is(:hover,:focus-visible){background:var(--site-button-hover)!important;color:#fff!important}
html body .site-button-outline{background:transparent!important}
/* Match Contact's blue text and border hover on outlined Explore Services CTAs. */
html body a.site-explore-services:not(.site-button-primary):is(:hover,:focus-visible){color:var(--site-button-blue)!important;border-color:var(--site-button-blue)!important}
html body a.site-explore-services:is(:hover,:focus-visible) span{color:inherit!important}
html body .site-control-blue{color:#fff!important}
html body .site-button-arrow{display:inline-block;flex:none;color:inherit!important;font:inherit!important;line-height:1!important;margin:0!important}
html body .site-button:focus-visible{outline:3px solid var(--site-button-blue);outline-offset:4px}
html body .site-button:disabled{cursor:not-allowed;opacity:.6}
@media(prefers-reduced-motion:reduce){html body .site-button{transition:none}}

/* A font-independent arrow prevents iOS from displaying the blue emoji tile.
   The shared script inserts these icons only at the mobile breakpoint. */
@media(max-width:800px){
  html body svg.site-mobile-arrow{display:inline-block!important;width:1em!important;height:1em!important;flex:none!important;overflow:visible;vertical-align:-.125em;fill:none!important;stroke:currentColor!important;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
  html body svg.site-mobile-arrow path{fill:none!important;stroke:inherit!important;stroke-width:inherit}
}

/* Option 27: site-wide mobile contact reveal. Hidden on desktop and in design studies. */
html body .vnw-mobile-contact{display:none}
html body .vnw-mobile-email-sheet[hidden]{display:none!important}
html body .vnw-mobile-email-sheet{display:none}
@media(max-width:800px){
  html body .vnw-mobile-contact{position:fixed;z-index:70;right:15px;bottom:calc(20px + env(safe-area-inset-bottom,0px));display:block;width:min(320px,calc(100vw - 30px));height:54px;font-family:Inter,system-ui,sans-serif;pointer-events:none}
  html body .vnw-mobile-contact__trigger{position:absolute;right:0;bottom:0;display:grid;place-items:center;width:142px;height:54px;margin:0;padding:0;border:1px solid #10b9f2;border-radius:999px!important;color:#fff;background:#00aeef;box-shadow:0 8px 23px rgba(0,0,0,.26);cursor:pointer;white-space:nowrap;pointer-events:auto;transition:width .34s cubic-bezier(.2,.8,.2,1),background-color .34s}
  html body .vnw-mobile-contact.is-open .vnw-mobile-contact__trigger{width:54px;border-radius:50%!important;background:#111719}
  html body .vnw-mobile-contact__label{font:500 19px/1 Fraunces,Georgia,serif;letter-spacing:-.035em;transition:opacity .16s,transform .3s}
  html body .vnw-mobile-contact.is-open .vnw-mobile-contact__label{opacity:0;transform:scale(.6)}
  html body .vnw-mobile-contact__close{position:absolute;opacity:0;transform:rotate(-90deg) scale(.6);font:400 25px/1 Inter,system-ui,sans-serif;transition:opacity .2s,transform .34s}
  html body .vnw-mobile-contact.is-open .vnw-mobile-contact__close{opacity:1;transform:rotate(0) scale(1)}
  html body .vnw-mobile-contact__choices{position:absolute;right:62px;bottom:2px;left:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;height:50px;visibility:hidden;opacity:0;transform:translateX(40px) scale(.88);transform-origin:right center;transition:opacity .22s,transform .38s cubic-bezier(.2,.8,.2,1),visibility 0s linear .38s;pointer-events:none}
  html body .vnw-mobile-contact.is-open .vnw-mobile-contact__choices{visibility:visible;opacity:1;transform:translateX(0) scale(1);transition-delay:.06s,0s,0s;pointer-events:auto}
  html body .vnw-mobile-contact__choices a{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;padding:5px;border:1px solid #4c6670;border-radius:999px;color:#fff;background:#111719;box-shadow:0 7px 17px rgba(0,0,0,.22);font:700 14px/1.2 Inter,system-ui,sans-serif;text-decoration:none;white-space:nowrap;cursor:pointer}
  html body .vnw-mobile-contact__choices a:first-child{border-color:#00aeef;background:#00aeef}
  html body .vnw-mobile-contact__choices svg{width:21px;height:21px;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
  html body .vnw-mobile-contact :is(a,button):is(:hover,:focus-visible){filter:brightness(1.12)}
  html body .vnw-mobile-contact :is(a,button):focus-visible{outline:3px solid #00aeef;outline-offset:3px}
  html body.mobile-menu-open .vnw-mobile-contact,html body.nav-open .vnw-mobile-contact{visibility:hidden;pointer-events:none}
  html body.has-vnw-mobile-contact .mobile-plan{display:none!important}
  html body.has-vnw-mobile-contact #vnw-site-footer{padding-bottom:calc(95px + env(safe-area-inset-bottom,0px))}
  html body.vnw-mobile-email-open{overflow:hidden}
  html body .vnw-mobile-email-sheet{position:fixed;z-index:1000;inset:0;display:flex;align-items:flex-end;overflow:hidden;font-family:Inter,system-ui,sans-serif}
  html body .vnw-mobile-email-sheet__scrim{position:absolute;inset:0;background:rgba(8,15,18,.68);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
  html body .vnw-mobile-email-sheet__card{position:relative;display:flex;flex-direction:column;box-sizing:border-box;width:100%;height:min(590px,calc(100dvh - 20px));max-height:calc(100dvh - 20px);padding:18px 21px calc(19px + env(safe-area-inset-bottom,0px));overflow:hidden;overscroll-behavior:contain;border-radius:25px 25px 0 0;color:#111719;background:#f8f6f2;box-shadow:0 -15px 38px rgba(0,0,0,.2);animation:vnw-mobile-email-in .28s cubic-bezier(.2,.8,.2,1) both}
  html body .vnw-mobile-email-sheet__grabber{display:block;width:37px;height:4px;flex:none;margin:0 auto 17px;border-radius:99px;background:#b7c0c3}
  html body .vnw-mobile-email-sheet__heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
  html body .vnw-mobile-email-sheet__kicker{margin:0;color:#008fbf;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
  html body .vnw-mobile-email-sheet__close{display:grid;place-items:center;width:38px;height:38px;flex:none;padding:0;border:1px solid #bbc5c9;border-radius:50%!important;color:#23343a;background:transparent;font:400 25px/1 Inter,system-ui,sans-serif;cursor:pointer}
  html body .vnw-mobile-email-sheet__card h2{margin:0 0 8px;font:400 clamp(31px,9vw,38px)/1.04 Fraunces,Georgia,serif;letter-spacing:-.035em}
  html body .vnw-mobile-email-sheet__description{margin:0 0 18px;color:#5d686c;font-size:13px;line-height:1.4}
  html body .vnw-mobile-email-sheet form{display:grid;gap:11px;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:3px;scrollbar-width:thin;scrollbar-color:#b1bfc4 transparent}
  html body .vnw-mobile-email-sheet__pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  html body .vnw-mobile-email-sheet label{display:grid;gap:5px;min-width:0;color:#27343a;font-size:12px;font-weight:700}
  html body .vnw-mobile-email-sheet :is(input,textarea){box-sizing:border-box;width:100%;min-height:43px;padding:9px 11px;border:1px solid #c9d0d2;border-radius:9px;color:#111719;background:#fff;font:400 16px/1.3 Inter,system-ui,sans-serif;resize:vertical}
  html body .vnw-mobile-email-sheet textarea{min-height:68px}
  html body .vnw-mobile-email-sheet :is(input,textarea)::placeholder{color:#9ba1a3}
  html body .vnw-mobile-email-sheet :is(input,textarea,button):focus-visible{outline:2px solid #00aeef;outline-offset:2px}
  html body .vnw-mobile-email-sheet__footer{flex:none;padding-top:12px;background:inherit}
  html body button.vnw-mobile-email-sheet__send{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%;min-height:46px!important;margin:0;padding:8px 17px!important;border:0;color:#fff;background:#00aeef;font-size:15px!important;font-weight:700!important}
  html body .vnw-mobile-email-sheet__send span{font-size:21px;font-weight:400}
  html body .vnw-mobile-email-sheet__status{margin:8px 0 0;color:#007da9;font-size:11px;font-weight:700;text-align:center}
  html body .vnw-mobile-email-sheet__status:empty{display:none}
}
@keyframes vnw-mobile-email-in{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){html body .vnw-mobile-contact__trigger,html body .vnw-mobile-contact__label,html body .vnw-mobile-contact__close,html body .vnw-mobile-contact__choices{transition:none}html body .vnw-mobile-email-sheet__card{animation:none}}
