/* Website 2026 — v5_821 interaction + accessibility consistency pass */

/* Keyboard skip navigation: unobtrusive until used. */
.skip-link{
  position:fixed;
  top:10px;
  left:10px;
  z-index:100000;
  padding:11px 16px;
  border-radius:10px;
  background:#fff;
  color:#0b1739;
  border:2px solid #1267e8;
  box-shadow:0 8px 24px rgba(11,23,57,.18);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px;
  font-weight:800;
  line-height:1.2;
  text-decoration:none;
  transform:translateY(-160%);
  transition:transform .16s ease;
}
.skip-link:focus,
.skip-link:focus-visible{transform:translateY(0);outline:none;}

/* One consistent, high-visibility keyboard focus treatment. */
:where(a,button,input,select,textarea,summary,[role="button"],[role="link"],[tabindex]:not([tabindex="-1"])):focus-visible{
  outline:3px solid #1267e8;
  outline-offset:3px;
}

/* White focus cue where a blue ring can disappear into dark/blue surfaces. */
:where(.section-dark,.dark,.cta-dark,.site-footer,footer,[class*="dark"])
:where(a,button,summary,[role="button"],[role="link"],[tabindex]:not([tabindex="-1"])):focus-visible{
  outline-color:#fff;
  box-shadow:0 0 0 2px rgba(18,103,232,.9);
}

/* Form controls: keyboard focus should be at least as clear as hover. */
:where(input,select,textarea):focus-visible{
  border-color:#1267e8 !important;
  box-shadow:0 0 0 3px rgba(18,103,232,.16);
}

/* Interactive affordances. */
:where(button,summary,[role="button"]){cursor:pointer;}
:where(button,[role="button"]):disabled,
:where(button,[role="button"])[aria-disabled="true"]{cursor:not-allowed;}

/* Give card-like links a clear keyboard state without changing the desktop visual language. */
:where(.solution-card,.card,.feature-card,.benefit-card,.capability-card,.proof-card,.role-card,.integration-card):focus-within{
  outline:3px solid rgba(18,103,232,.62);
  outline-offset:3px;
}

/* Banking Pressure → Impact is hover-reveal on desktop; make each row keyboard operable too. */
.bank-pressure-impact-row[tabindex="0"]:focus-visible{
  outline:3px solid #1267e8;
  outline-offset:5px;
  border-radius:16px;
}
@media (hover:hover) and (pointer:fine){
  .bank-pressure-impact-row[tabindex="0"]:focus .bank-pressure-card p,
  .bank-pressure-impact-row[tabindex="0"]:focus .bank-impact-card p{
    opacity:1 !important;
    max-height:140px !important;
    transform:none !important;
    pointer-events:auto !important;
  }
}

/* Touch targets: keep desktop density, but guarantee usable controls on coarse pointers. */
@media (hover:none), (pointer:coarse){
  :where(a.btn,a.button,button,input[type="button"],input[type="submit"],input[type="reset"],summary,.nav-cta,.cta-button,[role="button"]){
    min-height:44px;
  }
  :where(.site-nav a,.mobile-nav a,footer a){
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
}

/* Respect the operating-system motion preference across legacy and newer components. */
@media (prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto !important;}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* Windows High Contrast / forced-colors fallback. */
@media (forced-colors:active){
  :where(a,button,input,select,textarea,summary,[role="button"],[role="link"],[tabindex]:not([tabindex="-1"])):focus-visible{
    outline:2px solid Highlight;
  }
  :where(button,.btn,.button,.cta-button){border:1px solid ButtonText;}
}
