/* ==========================================================================
   AFBS accessibility layer
   Loaded after paroti.css on every public page. Additive only — it does not
   restyle the design, it supplies the things the theme leaves out: a skip
   link, visible keyboard focus, screen-reader-only text, and the cookie
   notice. Safe to load anywhere.
   ========================================================================== */

/* --- Skip to content -----------------------------------------------------
   First tabbable element on the page. Off-screen until focused, so mouse
   users never see it and keyboard users can jump the 40-odd nav links. */
.skip-link {
    position: absolute;
    left: 12px;
    top: -60px;
    z-index: 100000;
    display: inline-block;
    padding: 12px 22px;
    background: #0d1b3e;
    color: #ffffff !important;
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    border-radius: 0 0 10px 10px;
    transition: top .18s ease-in-out;
}
.skip-link:focus,
.skip-link:focus-visible {
    top: 0;
    outline: 3px solid #F65502;
    outline-offset: 2px;
}

/* --- Visible keyboard focus ----------------------------------------------
   The theme removes outlines in several places, which leaves keyboard users
   with no idea where they are. :focus-visible only shows for keyboard use,
   so mouse clicks stay visually unchanged. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
    outline: 3px solid #F65502 !important;
    outline-offset: 2px !important;
    border-radius: 3px;
}

/* Dark surfaces need a light ring instead, or the orange disappears. */
.main-header:focus-within a:focus-visible,
.site-footer a:focus-visible,
.member-topbar a:focus-visible,
.mobile-nav__wrapper a:focus-visible,
.legal__contact a:focus-visible {
    outline-color: #ffffff !important;
}

/* Older browsers without :focus-visible still get a focus ring. */
@supports not selector(:focus-visible) {
    a:focus, button:focus, input:focus, select:focus, textarea:focus {
        outline: 3px solid #F65502 !important;
        outline-offset: 2px !important;
    }
}

/* --- Screen-reader-only text --------------------------------------------- */
.sr-only {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* Same, but becomes visible when focused (for skip-style links). */
.sr-only-focusable:focus,
.sr-only-focusable:focus-visible {
    position: static !important;
    width: auto; height: auto;
    margin: 0; overflow: visible;
    clip: auto; white-space: normal;
}

/* --- Form labels ---------------------------------------------------------
   The theme's forms were placeholder-only. Placeholders vanish as soon as
   you type and are not reliably announced, so real labels are added in the
   markup and styled here. */
.form-label {
    display: block;
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 13.5px;
    font-weight: 700;
    color: #0d1b3e;
    margin-bottom: 7px;
    letter-spacing: .01em;
}
.form-label .req {
    color: #B33D00;          /* darker orange: 5.9:1 on white, unlike #F65502 */
    margin-left: 3px;
    font-weight: 800;
}
.form-hint {
    display: block;
    font-size: 12.5px;
    color: #647488;          /* 4.78:1 on white */
    margin-top: 5px;
    line-height: 1.55;
}

/* Consent checkbox rows */
.form-consent {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin: 6px 0 20px;
}
.form-consent input[type="checkbox"] {
    width: 18px; height: 18px;
    margin: 2px 0 0;
    flex-shrink: 0;
    accent-color: #003FBB;
    cursor: pointer;
}
.form-consent label {
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 13.5px;
    line-height: 1.65;
    color: #46506a;
    cursor: pointer;
    margin: 0;
}
.form-consent a { color: #003FBB; font-weight: 700; text-decoration: underline; }
.form-consent a:hover { color: #B33D00; }

/* --- Cookie notice -------------------------------------------------------
   Informational, not a consent gate: this site sets only strictly-necessary
   cookies, so there is nothing to opt out of. Sits bottom-left so it does
   not cover the footer CTAs. */
.cookie-notice {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 99998;
    max-width: 420px;
    background: #0d1b3e;
    color: #ffffff;
    border-radius: 14px;
    padding: 22px 24px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .35);
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
    transform: translateY(140%);
    transition: transform .4s cubic-bezier(.2, .8, .3, 1);
}
.cookie-notice.is-visible { transform: translateY(0); }
.cookie-notice__title {
    font-size: 15px; font-weight: 800; margin: 0 0 8px; color: #fff;
}
.cookie-notice__text {
    font-size: 13.5px; line-height: 1.65; color: rgba(255, 255, 255, .82); margin: 0 0 16px;
}
.cookie-notice__text a { color: #FFB380; font-weight: 700; text-decoration: underline; }
.cookie-notice__text a:hover { color: #fff; }
.cookie-notice__btn {
    background: #F65502;
    color: #fff;
    border: 0;
    border-radius: 100px;
    padding: 11px 26px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
    cursor: pointer;
    transition: background .2s ease;
}
.cookie-notice__btn:hover { background: #ffffff; color: #0d1b3e; }

@media (max-width: 560px) {
    .cookie-notice { left: 12px; right: 12px; bottom: 12px; max-width: none; padding: 18px 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .cookie-notice { transition: none; }
    .skip-link { transition: none; }
}
