/* Keyboard navigation */
.lnb-skip-link {
    position: fixed;
    z-index: 999999;
    top: 8px;
    left: 8px;
    padding: 12px 16px;
    background: #ffffff;
    color: #111111;
    border: 2px solid #111111;
    border-radius: 4px;
    font-weight: 700;
    text-decoration: underline;
    transform: translateY(-180%);
    transition: transform .15s ease;
}
.lnb-skip-link:focus { transform: translateY(0); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid currentColor !important;
    outline-offset: 3px !important;
}

/* Links must not rely on colour alone inside running text. */
:where(p, li, blockquote, figcaption) a:not(.button):not(.btn):not(.cta) {
    text-decoration-line: underline;
    text-decoration-thickness: .12em;
    text-underline-offset: .18em;
}

/* Known low-contrast content block reported by Lighthouse. */
.vc_custom_1710334272231,
.vc_custom_1710334272231 :where(p, li, h1, h2, h3, h4, h5, h6, span):not(.button):not(.btn) {
    color: #333333 !important;
}
.vc_custom_1710334272231 a:not(.button):not(.btn):not(.cta) {
    color: #174f76 !important;
}

/* Safer defaults for muted copy on light backgrounds. */
:where(.text-muted, .subtitle, .description, .wd-entry-content, .entry-content) {
    --lnb-readable-muted: #595959;
}
:where(.text-muted, .subtitle, .description) {
    color: var(--lnb-readable-muted) !important;
}

/* Avoid motion where the visitor has requested less animation. */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
