/* VaultlyAI accessibility foundation — WCAG 2.2 Level AA target. */
.skip-link{
  position:fixed;
  z-index:10000;
  top:10px;
  left:10px;
  padding:13px 17px;
  border:2px solid currentColor;
  border-radius:6px;
  background:#fff;
  color:#111;
  font:600 14px/1.2 "DM Sans",sans-serif;
  text-decoration:none;
  transform:translateY(-180%);
  transition:transform .15s ease;
}
.skip-link:focus{transform:translateY(0)}

:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{
  outline:3px solid #2f76d2 !important;
  outline-offset:4px !important;
  box-shadow:0 0 0 2px #fff !important;
}
:where(input,textarea,select)[aria-invalid="true"]{
  outline:3px solid #b42318 !important;
  outline-offset:2px !important;
}

.sr-only,.a11y-visually-hidden{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

html{scroll-padding-top:110px}
body{overflow-wrap:break-word}
main:focus{outline:none}
img,svg,video{max-width:100%}
:target{scroll-margin-top:110px}

/* Off-screen sections keep their layout but suspend decorative animation work. */
.perf-paused,.perf-paused *,.perf-paused::before,.perf-paused::after,
.perf-paused *::before,.perf-paused *::after{animation-play-state:paused !important}

button,[type="button"],[type="submit"],[type="reset"],summary{min-width:24px;min-height:24px}
.phone-dot{box-sizing:border-box !important;min-width:28px !important;min-height:28px !important;padding:0 !important;background-clip:content-box !important;border:10px solid transparent !important}
.phone-dot.is-active{border-inline-width:3px !important}

/* Contrast corrections identified by page-level automated testing. */
.site-header .wordmark span,.site-footer .wordmark span{color:#59616b !important}
#questions h2 em{color:#68717c !important}
.site-footer>div p,.site-footer nav,.site-footer .copyright{color:#5c5b56 !important}

.article-footer>div p,.article-footer>small,
body:not(.home-page) footer>div p,body:not(.home-page) footer>small,
.founding-footer>div p,.founding-footer>p,
.support-premium-page>.support-shell>footer>div p,
.support-premium-page>.support-shell>footer>p{color:#aaa9a3 !important}
.journal article>span{color:#555b63 !important}
.standards-content section>span{color:#5f5e59 !important}

.terms-page>header .wordmark span{color:#59616b !important}
.terms-date,.privacy-page .terms-content h3{color:#5e5f5b !important}
.terms-page>footer,.terms-page>footer a{color:#aaa !important}

/* Error/status text must remain available to assistive technology. */
.form-status:empty{display:none}
.form-status:not(:empty){display:block}

@media(max-width:700px){
  :where(.mobile-nav a,footer nav a){min-height:44px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto !important}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
  [data-founding-reveal],.reveal,.motion-reveal{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
}

@media(forced-colors:active){
  :where(a,button,input,textarea,select,summary){forced-color-adjust:auto}
  .phone-dot{border-color:ButtonFace !important}
  .phone-dot.is-active{background:Highlight !important}
}
