.skip-link {
    position: absolute;
    left: 8px;
    top: -50px;
    z-index: 2000;
    background: #000;
    color: #fff;
    padding: 10px 14px;
    border-radius: 4px;
    text-decoration: none;
}

.skip-link:focus {
    top: 8px;
}

*:focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
}

body.accessibility-mode {
    font-size: 112%;
    line-height: 1.7;
}

body.accessibility-mode p,
body.accessibility-mode li,
body.accessibility-mode a,
body.accessibility-mode label,
body.accessibility-mode button,
body.accessibility-mode input,
body.accessibility-mode textarea,
body.accessibility-mode select {
    font-size: 1.05em;
}

body.accessibility-mode .navbar,
body.accessibility-mode .dropdown-menu,
body.accessibility-mode .header-bg,
body.accessibility-mode .membership-item,
body.accessibility-mode .card {
    background-color: #111 !important;
    color: #fff !important;
}

body.accessibility-mode .text-muted,
body.accessibility-mode .navbar .navbar-nav .nav-link,
body.accessibility-mode .dropdown-item {
    color: #fff !important;
}

body.accessibility-mode a {
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

body.accessibility-mode .btn-primary {
    background: #005fcc !important;
    border-color: #005fcc !important;
}

body.accessibility-mode .owl-dot {
    width: 18px !important;
    height: 18px !important;
}

body.reduce-motion * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
}

@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.carousel-toggle-btn {
    position: absolute;
    right: 20px;
    bottom: 22px;
    z-index: 5;
    border: 1px solid #fff;
    background: rgba(0, 0, 0, 0.85);
    color: #fff;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
}

/* Contrast hardening for default mode (Lighthouse) */
body {
    color: #1f2933;
    background-color: #ffffff;
}

.text-primary {
    color: #145c3a !important;
}

.navbar.navbar-light {
    background-color: #ffffff !important;
}

.navbar-light .navbar-nav .nav-link {
    color: #1f2933 !important;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .show > .nav-link {
    color: #145c3a !important;
}

.btn-primary,
a.btn.btn-primary {
    background-color: #145c3a !important;
    border-color: #145c3a !important;
    color: #ffffff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
a.btn.btn-primary:hover,
a.btn.btn-primary:focus {
    background-color: #10492e !important;
    border-color: #10492e !important;
    color: #ffffff !important;
}

#accessibilityToggle.btn-outline-primary {
    color: #145c3a !important;
    border-color: #145c3a !important;
    background-color: #ffffff !important;
    font-weight: 600;
}

#accessibilityToggle.btn-outline-primary:hover,
#accessibilityToggle.btn-outline-primary:focus,
#accessibilityToggle.btn-outline-primary:active,
#accessibilityToggle.btn-outline-primary[aria-pressed="true"] {
    color: #ffffff !important;
    border-color: #145c3a !important;
    background-color: #145c3a !important;
}

.carousel-toggle-btn:hover,
.carousel-toggle-btn:focus {
    background: rgba(0, 0, 0, 0.95);
    color: #ffffff;
}
