/*
 * Lex Digitalis · RC12.16.2
 * RC12.15 accessibility/performance hardening scoped away from the public sidebar.
 * IMPORTANT: this file MUST NOT target .site-sidebar, .mobile-topbar, .sidebar-backdrop,
 * .nav-toggle, .sidebar-close or generic page selectors that can change RC12.14 navigation.
 */

.site-main,
.site-footer,
.site-main > *,
.site-main .container {
  min-inline-size: 0;
}

.site-main :where(img, svg, video, canvas, iframe),
.site-footer :where(img, svg, video, canvas, iframe),
.audit-express-modal :where(img, svg, video, canvas, iframe) {
  max-inline-size: 100%;
}

.site-main img,
.site-footer img,
.audit-express-modal img {
  height: auto;
}

.site-main :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.site-footer :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.cookie-consent :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.audit-express-modal :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #2f73d9;
  outline-offset: 3px;
}

.section-dark :where(a, button):focus-visible,
.site-footer :where(a, button):focus-visible {
  outline-color: #f1cf70;
}

.skip-link:focus-visible {
  outline: 3px solid #2f73d9;
  outline-offset: 3px;
}

.site-main :target {
  scroll-margin-top: 1.25rem;
}

.site-main p,
.site-main li,
.site-main a,
.site-footer a,
.v6-public-flash,
.rc12-breadcrumbs,
.audit-express-modal-card {
  overflow-wrap: break-word;
}

.site-main pre,
.site-main code,
.site-main .legal-table-wrap,
.site-main .private-table-wrap,
.site-main table {
  max-inline-size: 100%;
}

.site-main pre,
.site-main .legal-table-wrap,
.site-main .private-table-wrap {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.site-main :where(.btn, button, input:not([type="hidden"]), select),
.site-footer :where(a, button),
.cookie-consent__actions :where(a, button) {
  min-block-size: 44px;
}

.site-main input[type="checkbox"],
.site-main input[type="radio"] {
  min-block-size: auto;
}

.site-main form :where(input, select, textarea):focus-visible {
  border-color: #2f73d9;
  box-shadow: 0 0 0 3px rgba(47, 115, 217, .16);
}

.audit-express-modal-card,
.audit-express-modal-wizard,
.audit-express-modal [data-express-modal-root],
.audit-express-modal .v6-express-question-stack,
.audit-express-modal .lex-express-question-block,
.audit-express-modal .lex-express-options,
.audit-express-modal .lex-express-option {
  min-inline-size: 0;
  max-inline-size: 100%;
}

.audit-express-modal-card {
  overscroll-behavior: contain;
}

.audit-express-modal .lex-express-q-text,
.audit-express-modal .lex-express-option,
.audit-express-modal .v6-express-choice-card {
  overflow-wrap: anywhere;
}

@supports (content-visibility: auto) {
  .site-main > .section:not(.page-hero),
  body.is-home .site-main > section:not(:first-child),
  .site-footer {
    content-visibility: auto;
    contain-intrinsic-size: 720px;
  }
}

@media (max-width: 1080px) {
  .site-main,
  .site-footer {
    inline-size: 100%;
    max-inline-size: 100%;
  }
}

@media (max-width: 760px) {
  .site-main .hero-actions,
  .site-main .center-actions,
  .rc12-final-actions,
  .cookie-consent__actions {
    align-items: stretch;
  }

  .site-main .hero-actions > .btn,
  .site-main .center-actions > .btn,
  .rc12-final-actions > .btn {
    white-space: normal;
    text-align: center;
  }

  .audit-express-modal .v6-express-question-stack {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 620px) {
  .site-main h1 {
    font-size: clamp(2rem, 11vw, 3.15rem);
  }

  .site-main h2 {
    font-size: clamp(1.7rem, 8.5vw, 2.45rem);
  }

  .site-main .section-text,
  .site-main .hero-text {
    max-inline-size: 100%;
  }

  .cookie-consent {
    inset-inline: .65rem;
    inset-block-end: .65rem;
  }
}

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

  .accordion-content,
  .audit-express-modal-card {
    transition: none !important;
    animation: none !important;
  }
}

@media (forced-colors: active) {
  .site-main :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
  .site-footer :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
  .cookie-consent :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid Highlight;
  }

  .site-main .btn,
  .site-footer .footer-cta {
    border: 1px solid ButtonText;
  }
}

@media print {
  .skip-link,
  .cookie-consent {
    display: none !important;
  }

  .site-main > .section,
  .site-footer {
    content-visibility: visible !important;
    contain-intrinsic-size: auto !important;
  }
}
