/* Optional preferences, off by default. Native controls, no third-party overlay. */
.impact-a11y-tools[hidden],.impact-a11y-panel[hidden],.impact-a11y-header-trigger[hidden]{display:none!important}
.impact-a11y-header-trigger{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;min-height:28px;border:0;padding:2px 0;background:transparent;color:#004a82;font:inherit;font-size:11px;font-weight:700;letter-spacing:0;text-transform:none;cursor:pointer}
.impact-a11y-header-trigger span{font-size:15px}
.impact-a11y-tools{position:fixed;right:18px;bottom:max(68px,calc(env(safe-area-inset-bottom) + 68px));z-index:10010;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#004a82}
.impact-a11y-trigger{display:grid;place-items:center;width:48px;height:48px;border:2px solid #004a82;border-radius:50%;background:#fff;color:#004a82;font:700 21px/1 system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 18px #004a8233}
.impact-a11y-panel{position:absolute;right:0;bottom:60px;width:min(360px,calc(100vw - 36px));max-height:calc(100vh - 152px);max-height:calc(100dvh - 152px);overflow-y:auto;overscroll-behavior:contain;padding:20px;background:#fff;border:1px solid #617f9a;border-radius:14px;box-shadow:0 8px 35px #004a8233;scroll-padding:12px}
.impact-a11y-panel *{box-sizing:border-box;scroll-margin:12px;letter-spacing:normal}
.impact-a11y-panel__heading{display:flex;align-items:start;gap:12px;justify-content:space-between;margin-bottom:18px}
.impact-a11y-panel h2{font:700 20px/1.25 system-ui,sans-serif;color:#004a82;margin:0;letter-spacing:normal;text-wrap:wrap}
.impact-a11y-panel p{font:400 14px/1.5 system-ui,sans-serif;color:#36576c;margin:0 0 10px;overflow-wrap:anywhere}
.impact-a11y-close{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid #617f9a;border-radius:5px;color:#004a82;background:#eef3f9;font:400 26px/1 system-ui,sans-serif;cursor:pointer}
.impact-a11y-fonts{display:flex;gap:8px;margin-bottom:18px}
.impact-a11y-fonts button{flex:1;min-height:44px;border:1px solid #617f9a;border-radius:6px;background:#fff;color:#004a82;font:600 18px/1.2 system-ui,sans-serif;cursor:pointer}
.impact-a11y-fonts button[aria-pressed=true]{background:#004a82;color:#fff;border-color:#004a82}
.impact-a11y-option{display:flex;align-items:center;gap:12px;min-height:44px;font:500 16px/1.4 system-ui,sans-serif;cursor:pointer;color:#004a82;margin:4px 0}
.impact-a11y-option input{width:24px;height:24px;flex:0 0 24px;margin:0;accent-color:#004a82}
.impact-a11y-reset{width:100%;min-height:44px;margin:14px 0 12px;padding:8px 10px;border:1px solid #617f9a;border-radius:6px;color:#004a82;background:#eef3f9;font:600 14px/1.4 system-ui,sans-serif;cursor:pointer;white-space:normal}
.impact-a11y-panel .impact-a11y-note{font-size:12px}
.impact-a11y-information{border-top:1px solid #617f9a;padding-top:9px}
.impact-a11y-information summary{min-height:32px;cursor:pointer;font:600 14px/1.5 system-ui,sans-serif;padding:4px 0}
.impact-a11y-information p{font-size:13px;margin-top:10px}
.impact-a11y-information a{color:#004a82;text-decoration:underline;text-underline-offset:3px}
html.impact-a11y-links a[href]{text-decoration-line:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px!important}
html.impact-a11y-motion{scroll-behavior:auto!important}
html.impact-a11y-motion *,html.impact-a11y-motion *::before,html.impact-a11y-motion *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
/* Explicit user-selected black/white palette; photos remain intact. */
html.impact-a11y-contrast,html.impact-a11y-contrast body{background:#000!important;color:#fff!important;color-scheme:dark}
html.impact-a11y-contrast body *{color:#fff!important;background-color:transparent!important;background-image:none!important;border-color:#fff!important;text-shadow:none!important;box-shadow:none!important}
/* Generated layers are not elements: clear their paint too, without removing meaningful text/icons. */
html.impact-a11y-contrast body *::before,html.impact-a11y-contrast body *::after{color:inherit!important;background-color:transparent!important;background-image:none!important;border-color:currentColor!important;text-shadow:none!important;box-shadow:none!important}
/* Opaque surfaces remain opaque over photographs, underlying page content and menus. */
html.impact-a11y-contrast body :is(.impact-site-header,.impact-primary-nav,.sub-menu,.impact-a11y-panel,.impact-consent,.impact-consent__inner,.impact-cookie-banner,.impact-sticky-cta,.impact-skip-link,.impact-hero-card__badge,.impact-hero-card__overlay span,.impact-person__arrow,.impact-portrait-composition__mark){background:#000!important}
/* The logo artwork is dark and transparent, unlike the surrounding text. Keep a white backing. */
html.impact-a11y-contrast body :is(.impact-bundled-logo,.custom-logo,.impact-social-card__avatar){background:#fff!important;box-shadow:0 0 0 3px #fff!important}
html.impact-a11y-contrast body a[href]{color:#ffef00!important}
html.impact-a11y-contrast body button,html.impact-a11y-contrast body [type=submit],html.impact-a11y-contrast body a.impact-button{background:#fff!important;color:#000!important;border:2px solid #fff!important}
html.impact-a11y-contrast body button *,html.impact-a11y-contrast body a.impact-button *{color:#000!important}
html.impact-a11y-contrast .impact-a11y-fonts button[aria-pressed=true]{background:#ffef00!important;border-color:#ffef00!important}
html.impact-a11y-contrast body :is(input,textarea,select){background:#000!important;color:#fff!important;accent-color:#ffef00}
html.impact-a11y-contrast body :is(input,textarea)::placeholder{color:#ddd!important;opacity:1!important}
html.impact-a11y-contrast body :is(input,textarea,select)[aria-invalid=true]{border:3px double #ffef00!important}
html.impact-a11y-contrast body :is(button,input,select,textarea):disabled,html.impact-a11y-contrast body [aria-disabled=true]{opacity:1!important;border-style:dashed!important;cursor:not-allowed}
html.impact-a11y-contrast body :is(.impact-scale,.impact-map__scale) input:checked+span,html.impact-a11y-contrast body .page-numbers.current{background:#ffef00!important;color:#000!important;border-color:#ffef00!important}
html.impact-a11y-contrast body :is(.impact-scale,.impact-map__scale) input:focus-visible+span{outline:3px solid #ffef00!important;outline-offset:4px!important;box-shadow:0 0 0 6px #000!important}
html.impact-a11y-contrast body :is(.impact-map__progress,.impact-map__bar,.impact-diagnostic__progress-bar,.impact-result-bar__track){background:#000!important;outline:1px solid #fff;outline-offset:1px}
html.impact-a11y-contrast body :is(.impact-map__progress,.impact-map__bar,.impact-diagnostic__progress-bar,.impact-result-bar__track)>span{background:#ffef00!important}
html.impact-a11y-contrast body .impact-map__recommendation li::before{background:#fff!important}
html.impact-a11y-contrast body ::selection{background:#ffef00!important;color:#000!important}
html.impact-a11y-contrast body :focus-visible{outline:3px solid #ffef00!important;outline-offset:4px!important;box-shadow:0 0 0 6px #000!important}
/* Already inert while the full-screen menu is open; do not cover its last link visually. */
body.nav-open .impact-a11y-tools{visibility:hidden}
@media(max-width:680px){.impact-a11y-header-trigger{font-size:10px}.impact-a11y-header-trigger span{font-size:13px}.impact-header-meta__inner>span{min-width:0}.impact-a11y-tools{right:12px}.impact-a11y-panel{width:min(360px,calc(100vw - 24px));padding:16px}.impact-a11y-panel h2{font-size:18px}}
@media(max-height:420px){.impact-a11y-tools{right:auto;left:12px;bottom:12px}.impact-a11y-panel{right:auto;left:0;max-height:calc(100dvh - 88px)}}
/* A filtered ancestor creates a fixed-position containing block and clipped the menu at zoom. */
@media(max-width:1160px){.impact-site-header{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.impact-primary-nav{top:var(--impact-nav-top,106px);bottom:auto;height:calc(100vh - var(--impact-nav-top,106px));height:calc(100dvh - var(--impact-nav-top,106px));max-height:calc(100dvh - var(--impact-nav-top,106px));overflow-y:auto;overscroll-behavior:contain;scroll-padding:12px}.impact-primary-nav :where(a,button){scroll-margin-block:12px}}
@media print{.impact-a11y-tools,.impact-a11y-header-trigger{display:none!important}}

@media(max-width:1160px) and (max-height:350px){.impact-header-meta{display:none}.impact-header-main{min-height:56px}.impact-site-header .impact-bundled-logo,.impact-site-header .custom-logo{max-height:40px}.impact-primary-nav{padding:8px 16px}.impact-menu a{padding-block:10px}}
