/* Shared WCAG 2.2 AA safeguards. Page-specific design remains in each page stylesheet. */
.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 100000;
  padding: 11px 16px;
  border: 2px solid #ffffff;
  border-radius: 7px;
  background: #0f172a;
  color: #ffffff;
  font: 700 14px/1.2 'DM Sans', system-ui, sans-serif;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform .16s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

:where(a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid #60a5fa !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px #061221 !important;
}

[role="button"]:focus-visible {
  outline: 3px solid #60a5fa !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 2px #061221 !important;
}

:where(button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"]) {
  min-height: 24px;
}

.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;
}

/* The earlier muted dark-theme palette fell below 4.5:1 on multiple pages. */
.a11y-dark-surface :where(
  .nav-link,
  .nav-btn,
  .hero p,
  .meta,
  .subtitle,
  .plan-name,
  .plan-period,
  .plan-tagline,
  .trial-note,
  .fsect,
  .foff,
  .faq-arrow,
  .still-qs p,
  .field label,
  .card p,
  .links,
  .forgot a,
  .divider,
  .section-title,
  .stat-label,
  .view-meta,
  .view-btn,
  .empty,
  .loading,
  .greeting
) {
  color: #9fb6cf !important;
}

.a11y-dark-surface .faq-a,
.a11y-dark-surface .faq-a p,
.a11y-dark-surface .faq-a li,
.a11y-dark-surface .container > p,
.a11y-dark-surface .container > ul,
.a11y-dark-surface .container > ul li,
.a11y-dark-surface td {
  color: #aebfd2 !important;
}

.a11y-dark-surface th,
.a11y-dark-surface .cat-btn,
.a11y-dark-surface .footer-links a,
.a11y-dark-surface .footer-copy {
  color: #9fb6cf !important;
}

.site-footer,
.site-footer .footer-links a,
.site-footer .footer-social-label,
.site-footer .footer-copy {
  color: #9fb6cf;
}

#dl-cookie-banner .dlc-text a {
  color: #60a5fa !important;
}

[role="dialog"]:focus {
  outline: none;
}

.dlc-card {
  position: relative;
}

.dlc-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: currentColor;
  font: 700 26px/1 system-ui, sans-serif;
  cursor: pointer;
}

[aria-busy="true"] {
  cursor: progress;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto !important;
  }

  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

@media (forced-colors: active) {
  :where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid CanvasText !important;
  }
}

@media (max-width: 760px) {
  :where(button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"], nav a) {
    min-height: 44px;
  }
}
