/* Shared navigation and access refinements. Page-specific visual systems remain intact. */
/* Use the site typeface throughout desktop, dropdown and mobile navigation. */
.nav,
.nav :is(a, button, b, em, small) { font-family: "Sen", sans-serif; }
.q-site-skip {
  position: fixed;
  top: 12px;
  left: 16px;
  z-index: 10000;
  padding: 13px 20px;
  border: 2px solid #315c97;
  border-radius: 8px;
  background: #fff;
  color: #123763;
  font: 600 1rem/1.5 "Sen", sans-serif;
  transform: translateY(-180%);
}
.q-site-skip:focus { transform: none; }
.nav.nav-enhanced .nav-group .dropdown {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
}
.nav.nav-enhanced .nav-group.is-open .dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
.nav .dropdown { max-height: calc(100dvh - 110px); overflow-y: auto; }
.nav .dropdown a { min-height: 44px; }
.nav .dropdown em { color: #536681; font-size: .875rem; line-height: 1.5; }
.nav .dropdown > small { color: #536681; }
.nav :is(a, button):focus-visible,
.site-footer a:focus-visible,
.qad-table-wrap:focus-visible {
  outline: 3px solid #307fe2;
  outline-offset: 4px;
}
.site-footer a:focus-visible { outline-color: #9ec9ff; }
.mobile-navigation { overscroll-behavior: contain; }
@media (max-width: 1050px) {
  .nav { height: 72px; }
  .nav nav, .nav > .nav-actions { display: none; }
  .nav .menu { display: block; }
  .nav .mobile-navigation { top: 72px; max-height: calc(100dvh - 72px); }
  .nav .mobile-navigation.open { display: block; }
}
@media (min-width: 1051px) {
  .nav .menu, .nav .mobile-navigation { display: none; }
}

/* Availability is a compact status, not another promotional badge. */
.qt-main .qt-currency-status,
.qinv-main .qinv-token-status {
  display: inline-block;
  margin-top: 7px;
  padding: 3px 8px;
  border: 1px solid #bbcadf;
  border-radius: 5px;
  color: #3d5b80;
  background: #f0f5fb;
  font: 400 .875rem/1.5 "Sen", sans-serif;
  letter-spacing: 0;
}
.qinv-token-set li { position: relative; }
.qinv-main .qinv-token-status { margin-top: 0; }
.qm-main .qm-source-fallback {
  display: block;
  margin-top: 6px;
  color: #536681;
  font-size: .875rem;
  font-weight: 400;
  line-height: 1.5;
}

/* Reveal effects are optional: content remains available with scripting disabled. */
.reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Pricing and related FAQs remain visible below the sticky navigation. */
.qh-main :is(#pricing,#pricing-other-costs,#faq,#partner-questions){scroll-margin-top:7rem}

/* Confirmation for bundled ZIP downloads. Native modal keeps focus inside. */
html.q-download-open { overflow: hidden; }
.q-download-dialog {
  box-sizing: border-box;
  position: fixed;
  inset: 0;
  width: min(30rem, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  margin: auto;
  padding: 2rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid #cfdaea;
  border-radius: 1rem;
  background: #fff;
  color: #17375e;
  box-shadow: 0 1.5rem 5rem #0b24433d;
  font: 400 1rem/1.6 "Sen", sans-serif;
  text-align: left;
}
.q-download-dialog::backdrop { background: #102840b3; }
.q-download-dialog .q-download-eyebrow {
  margin: 0 2rem 1rem 0;
  color: #536681;
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.q-download-dialog h2 {
  margin: 0 0 1rem;
  font: 700 1.5rem/1.3 "Sen", sans-serif;
  color: #17375e;
  letter-spacing: -.02em;
}
.q-download-dialog #q-download-description { margin: 0 0 1rem; color: #536681; }
.q-download-dialog #q-download-details {
  margin: 0;
  padding: .75rem 1rem;
  border: 1px solid #dae3ef;
  border-radius: .5rem;
  background: #f0f5fb;
  color: #17375e;
  font-size: .9375rem;
}
.q-download-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.75rem; }
.q-download-dialog :is(button, a) { box-sizing: border-box; font: 700 1rem/1.4 "Sen", sans-serif; cursor: pointer; }
.q-download-dialog :is(.q-download-cancel, .q-download-confirm) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 9rem;
  min-height: 3rem;
  padding: .75rem 1rem;
  border: 1px solid #bfcede;
  border-radius: .5rem;
  color: #17375e;
  background: #fff;
  text-align: center;
  text-decoration: none;
}
.q-download-dialog .q-download-confirm { color: #fff; background: #1b4f91; border-color: #1b4f91; }
.q-download-dialog .q-download-confirm:hover { background: #143d70; border-color: #143d70; }
.q-download-dialog .q-download-cancel:hover { background: #f0f5fb; }
.q-download-dialog .q-download-close {
  position: absolute;
  top: .5rem;
  right: .5rem;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 0;
  border-radius: .5rem;
  background: transparent;
  color: #536681;
  font-size: 1.75rem;
}
.q-download-dialog .q-download-close:hover { background: #f0f5fb; }
.q-download-dialog :is(button, a):focus-visible { outline: 3px solid #307fe2; outline-offset: 3px; }
@media (max-width: 420px) {
  .q-download-dialog { padding: 1.5rem; }
  .q-download-actions { flex-direction: column; }
  .q-download-dialog :is(.q-download-cancel, .q-download-confirm) { flex-basis: auto; }
}
