/* BIP CAS - Panel ułatwień dostępu */

/* --------------------------------------------------------------------------
   Panel UI (układ jak BIP OKiS: wysuwany z prawej + zakładka)
   -------------------------------------------------------------------------- */

.bip-cas-a11y {
    --bip-a11y-accent: var(--e-global-color-8f612c8, #f27d21);
    --bip-a11y-text: var(--e-global-color-8f612c8, #f27d21);
    --bip-a11y-bg: #fff;
    --bip-a11y-active: #dedede;
    --bip-a11y-focus: #93c5fd;
    --bip-a11y-width: 250px;
    --bip-a11y-tab: 40px;
    --bip-a11y-border: 2px;
    --bip-a11y-shadow: 0 3px 15px rgba(0, 0, 0, 0.16);

    position: fixed;
    z-index: 99999;
    top: 20px;
    right: calc(-1 * var(--bip-a11y-width));
    width: var(--bip-a11y-width);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.4;
    color: var(--bip-a11y-text);
    transition: right 500ms ease;
}

@media (min-width: 992px) {
    .bip-cas-a11y {
        top: 20%;
    }
}

.bip-cas-a11y.is-open {
    right: 0;
}

.bip-cas-a11y__toggle {
    position: absolute;
    /* Poza panelem: szerokość zakładki + obramowanie panelu */
    left: calc(-1 * (var(--bip-a11y-tab) + var(--bip-a11y-border)));
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: var(--bip-a11y-tab);
    min-width: var(--bip-a11y-tab);
    max-width: var(--bip-a11y-tab);
    height: var(--bip-a11y-tab);
    min-height: var(--bip-a11y-tab);
    max-height: var(--bip-a11y-tab);
    margin: 0;
    padding: 7px;
    border: none !important;
    border-radius: 0 !important;
    background: var(--bip-a11y-accent) !important;
    background-color: var(--bip-a11y-accent) !important;
    background-image: none !important;
    color: #fff !important;
    cursor: pointer;
    box-shadow: none !important;
    text-decoration: none !important;
    transition: none;
    -webkit-tap-highlight-color: transparent;
}

.bip-cas-a11y__toggle img {
    display: block;
    width: 100%;
    height: auto;
    background: transparent !important;
    pointer-events: none;
}

/* Elementor / kit nie może podmienić kolorów zakładki */
.bip-cas-a11y__toggle:hover,
.bip-cas-a11y__toggle:focus,
.bip-cas-a11y__toggle:focus-visible,
.bip-cas-a11y__toggle:active,
.bip-cas-a11y__toggle:focus:active,
.bip-cas-a11y.is-open .bip-cas-a11y__toggle {
    background: var(--bip-a11y-accent) !important;
    background-color: var(--bip-a11y-accent) !important;
    background-image: none !important;
    color: #fff !important;
    border: none !important;
    box-shadow: none !important;
    outline: none;
    text-decoration: none !important;
    filter: none;
}

.bip-cas-a11y__toggle:hover {
    filter: brightness(0.92);
}

.bip-cas-a11y__toggle:focus-visible {
    outline: 3px solid #111 !important;
    outline-offset: 2px;
}

.bip-cas-a11y__btn:focus-visible,
.bip-cas-a11y__font-btn:focus-visible {
    outline: 3px solid var(--bip-a11y-focus);
    outline-offset: 2px;
}

.bip-cas-a11y__panel {
    box-sizing: border-box;
    border: var(--bip-a11y-border) solid var(--bip-a11y-accent) !important;
    background: #fff !important;
    box-shadow: var(--bip-a11y-shadow);
}

.bip-cas-a11y__font {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    padding: 8px 10px 6px;
    border-bottom: 1px solid #eee;
    background: #fff !important;
}

.bip-cas-a11y__font-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2rem;
    margin: 0;
    padding: 0.25rem 0.35rem;
    border: 1px solid var(--bip-a11y-accent) !important;
    border-radius: 3px;
    background: #fff !important;
    color: var(--bip-a11y-text) !important;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

.bip-cas-a11y__font-btn:hover {
    background: var(--bip-a11y-active) !important;
}

.bip-cas-a11y__font-btn[aria-disabled="true"],
.bip-cas-a11y__font-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    background: var(--bip-a11y-active) !important;
}

.bip-cas-a11y__font-status {
    grid-column: 1 / -1;
    margin: 2px 0 0;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    color: var(--bip-a11y-text) !important;
    background: transparent !important;
}

.bip-cas-a11y__list {
    list-style: none;
    margin: 0;
    padding: 0;
    background: #fff !important;
}

.bip-cas-a11y__list > li {
    margin: 0;
    padding: 0;
    text-align: left;
    background: transparent !important;
}

.bip-cas-a11y__btn {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 6px 15px;
    border: none !important;
    border-radius: 0;
    background: transparent !important;
    color: var(--bip-a11y-text) !important;
    font: inherit;
    font-size: 15px;
    font-weight: 500;
    word-spacing: 1px;
    text-align: left;
    cursor: pointer;
}

.bip-cas-a11y__btn img {
    display: block;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin-right: 10px;
    background: transparent !important;
    opacity: 1;
}

.bip-cas-a11y__btn span {
    display: block;
    background: transparent !important;
    color: var(--bip-a11y-text) !important;
}

.bip-cas-a11y__btn:hover,
.bip-cas-a11y__btn:focus,
.bip-cas-a11y__btn:focus-visible,
.bip-cas-a11y__btn:active,
.bip-cas-a11y__btn[aria-pressed="true"] {
    background: var(--bip-a11y-active) !important;
    color: var(--bip-a11y-text) !important;
    border: none !important;
    box-shadow: none !important;
    outline: none;
}

.bip-cas-a11y__btn:hover span,
.bip-cas-a11y__btn:focus span,
.bip-cas-a11y__btn:active span,
.bip-cas-a11y__btn[aria-pressed="true"] span {
    color: var(--bip-a11y-text) !important;
    background: transparent !important;
}

.bip-cas-a11y__btn:focus-visible {
    outline: 3px solid var(--bip-a11y-focus);
    outline-offset: -3px;
}

.bip-cas-a11y__btn[aria-disabled="true"],
.bip-cas-a11y__btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    background: var(--bip-a11y-active) !important;
}

@media (max-width: 480px) {
    .bip-cas-a11y {
        top: 12px;
        --bip-a11y-width: min(250px, calc(100vw - 48px));
        right: calc(-1 * var(--bip-a11y-width));
        width: var(--bip-a11y-width);
    }

    .bip-cas-a11y.is-open {
        right: 0;
    }
}

/* --------------------------------------------------------------------------
   Zmienne i klasy trybów (na <html>)
   -------------------------------------------------------------------------- */

/*
 * Typografia BIP CAS (Elementor kit-8) używa rem + CSS variables, np.:
 * --e-global-typography-7ee4623-font-size: 1rem
 * Skalowanie root font-size wystarczy — bez nadpisywania widgetów przez em/inherit.
 */
html {
    --accessibility-font-scale: 1;
}

html.accessibility-font-size-1 {
    --accessibility-font-scale: 1.1;
    font-size: 110% !important;
}

html.accessibility-font-size-2 {
    --accessibility-font-scale: 1.2;
    font-size: 120% !important;
}

html.accessibility-font-size-3 {
    --accessibility-font-scale: 1.3;
    font-size: 130% !important;
}

/* Panel ma stały rozmiar niezależny od skali strony */
html[class*="accessibility-font-size-"] .bip-cas-a11y {
    font-size: 12px !important;
}

html[class*="accessibility-font-size-"] .bip-cas-a11y__btn {
    font-size: 15px !important;
}

html[class*="accessibility-font-size-"] .bip-cas-a11y__font-btn {
    font-size: 15px !important;
}

html[class*="accessibility-font-size-"] .bip-cas-a11y__font-status {
    font-size: 13px !important;
}

/* Skala szarości — cała strona łącznie z panelem */
html.accessibility-grayscale body {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
}

/*
 * Negatyw — czarne tło + biały tekst (cała strona + panel).
 */
html.accessibility-negative body {
    background: #000 !important;
    color: #fff !important;
}

html.accessibility-negative body * {
    background-color: #000 !important;
    background-image: none !important;
    color: #fff !important;
    border-color: #fff !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

html.accessibility-negative a,
html.accessibility-negative a:visited {
    color: #fff !important;
    background-color: #000 !important;
    text-decoration: underline !important;
}

html.accessibility-negative a:hover,
html.accessibility-negative a:focus,
html.accessibility-negative a:focus-visible {
    color: #000 !important;
    background-color: #fff !important;
}

html.accessibility-negative button,
html.accessibility-negative input,
html.accessibility-negative select,
html.accessibility-negative textarea,
html.accessibility-negative .elementor-button,
html.accessibility-negative [role="button"] {
    background-color: #000 !important;
    color: #fff !important;
    border: 2px solid #fff !important;
}

html.accessibility-negative .bip-cas-menu a.bip-cas-menu__link,
html.accessibility-negative .bip-cas-menu__toggle {
    color: #fff !important;
    background: #000 !important;
}

html.accessibility-negative .bip-cas-menu__row,
html.accessibility-negative .bip-cas-menu__li.current-menu-item > .bip-cas-menu__row,
html.accessibility-negative .bip-cas-menu__li.current-menu-ancestor > .bip-cas-menu__row,
html.accessibility-negative .bip-cas-menu__li.is-open > .bip-cas-menu__row,
html.accessibility-negative .bip-cas-menu__row:hover,
html.accessibility-negative .bip-cas-menu__row:focus-within {
    background: #000 !important;
    border-color: #fff !important;
}

/* Negatyw — ikony SVG (m.in. lupka wyszukiwania) */
html.accessibility-negative .e-search-label,
html.accessibility-negative .e-search-label svg,
html.accessibility-negative .e-font-icon-svg,
html.accessibility-negative .e-fas-search,
html.accessibility-negative svg.e-font-icon-svg,
html.accessibility-negative .e-font-icon-svg path,
html.accessibility-negative .e-search-label path {
    color: #fff !important;
    fill: #fff !important;
    stroke: #fff !important;
}

/* Negatyw — panel dopasowany do trybu */
html.accessibility-negative .bip-cas-a11y,
html.accessibility-negative .bip-cas-a11y * {
    color: #fff !important;
    border-color: #fff !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    text-decoration: none !important;
}

html.accessibility-negative .bip-cas-a11y__panel,
html.accessibility-negative .bip-cas-a11y__font,
html.accessibility-negative .bip-cas-a11y__list {
    background: #000 !important;
    border-color: #fff !important;
}

html.accessibility-negative .bip-cas-a11y__toggle,
html.accessibility-negative .bip-cas-a11y__toggle:hover,
html.accessibility-negative .bip-cas-a11y__toggle:focus,
html.accessibility-negative .bip-cas-a11y__toggle:focus-visible,
html.accessibility-negative .bip-cas-a11y__toggle:active,
html.accessibility-negative .bip-cas-a11y.is-open .bip-cas-a11y__toggle {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border: 2px solid #fff !important;
    filter: none !important;
}

html.accessibility-negative .bip-cas-a11y__toggle img {
    /* Ikona WCAG jest już biała — bez invert (invert = czarna na czarnym tle) */
    filter: none !important;
    background: transparent !important;
    opacity: 1 !important;
}

html.accessibility-negative .bip-cas-a11y__font-btn,
html.accessibility-negative .bip-cas-a11y__font-btn:hover,
html.accessibility-negative .bip-cas-a11y__font-btn:disabled {
    background: #000 !important;
    color: #fff !important;
    border: 1px solid #fff !important;
}

html.accessibility-negative .bip-cas-a11y__font-status,
html.accessibility-negative .bip-cas-a11y__btn,
html.accessibility-negative .bip-cas-a11y__btn span {
    color: #fff !important;
    background: transparent !important;
}

html.accessibility-negative .bip-cas-a11y__btn,
html.accessibility-negative .bip-cas-a11y__btn:hover,
html.accessibility-negative .bip-cas-a11y__btn:focus,
html.accessibility-negative .bip-cas-a11y__btn:focus-visible,
html.accessibility-negative .bip-cas-a11y__btn:active,
html.accessibility-negative .bip-cas-a11y__btn[aria-pressed="true"] {
    box-sizing: border-box !important;
    border: 2px solid #fff !important;
}

html.accessibility-negative .bip-cas-a11y__btn:hover,
html.accessibility-negative .bip-cas-a11y__btn:focus,
html.accessibility-negative .bip-cas-a11y__btn:active,
html.accessibility-negative .bip-cas-a11y__btn[aria-pressed="true"] {
    background: #333 !important;
    color: #fff !important;
}

html.accessibility-negative .bip-cas-a11y__btn img {
    filter: invert(1) !important;
    background: transparent !important;
}

/*
 * Wysoki kontrast — czarne tło + żółty tekst / obramowania / ikony.
 */
html.accessibility-high-contrast body {
    background: #000 !important;
    color: #ffff00 !important;
}

html.accessibility-high-contrast body * {
    background-color: #000 !important;
    background-image: none !important;
    color: #ffff00 !important;
    border-color: #ffff00 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

html.accessibility-high-contrast a,
html.accessibility-high-contrast a:visited {
    color: #ffff00 !important;
    background-color: #000 !important;
    text-decoration: underline !important;
}

html.accessibility-high-contrast a:hover,
html.accessibility-high-contrast a:focus,
html.accessibility-high-contrast a:focus-visible {
    color: #000 !important;
    background-color: #ffff00 !important;
    outline: 2px solid #ffff00 !important;
}

html.accessibility-high-contrast button,
html.accessibility-high-contrast input,
html.accessibility-high-contrast select,
html.accessibility-high-contrast textarea,
html.accessibility-high-contrast .elementor-button,
html.accessibility-high-contrast [role="button"] {
    background-color: #000 !important;
    color: #ffff00 !important;
    border: 2px solid #ffff00 !important;
}

html.accessibility-high-contrast button:hover,
html.accessibility-high-contrast button:focus-visible,
html.accessibility-high-contrast .elementor-button:hover,
html.accessibility-high-contrast .elementor-button:focus-visible {
    background-color: #ffff00 !important;
    color: #000 !important;
    border-color: #ffff00 !important;
}

html.accessibility-high-contrast .bip-cas-menu a.bip-cas-menu__link,
html.accessibility-high-contrast .bip-cas-menu__toggle {
    color: #ffff00 !important;
    background: #000 !important;
}

html.accessibility-high-contrast .bip-cas-menu__row,
html.accessibility-high-contrast .bip-cas-menu__li.current-menu-item > .bip-cas-menu__row,
html.accessibility-high-contrast .bip-cas-menu__li.current-menu-ancestor > .bip-cas-menu__row,
html.accessibility-high-contrast .bip-cas-menu__li.is-open > .bip-cas-menu__row,
html.accessibility-high-contrast .bip-cas-menu__row:hover,
html.accessibility-high-contrast .bip-cas-menu__row:focus-within {
    background: #000 !important;
    border-color: #ffff00 !important;
}

/* Wysoki kontrast — ikony SVG (lupka, Elementor icons itd.) */
html.accessibility-high-contrast .e-search-label,
html.accessibility-high-contrast .e-search-label svg,
html.accessibility-high-contrast .e-font-icon-svg,
html.accessibility-high-contrast .e-fas-search,
html.accessibility-high-contrast svg.e-font-icon-svg,
html.accessibility-high-contrast .e-font-icon-svg path,
html.accessibility-high-contrast .e-search-label path,
html.accessibility-high-contrast .elementor-icon,
html.accessibility-high-contrast .elementor-icon svg,
html.accessibility-high-contrast .elementor-icon path,
html.accessibility-high-contrast i[class*="fa"],
html.accessibility-high-contrast i[class*="eicon"] {
    color: #ffff00 !important;
    fill: #ffff00 !important;
    stroke: #ffff00 !important;
}

/* Wysoki kontrast — panel */
html.accessibility-high-contrast .bip-cas-a11y,
html.accessibility-high-contrast .bip-cas-a11y * {
    color: #ffff00 !important;
    border-color: #ffff00 !important;
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    text-decoration: none !important;
}

html.accessibility-high-contrast .bip-cas-a11y__panel,
html.accessibility-high-contrast .bip-cas-a11y__font,
html.accessibility-high-contrast .bip-cas-a11y__list {
    background: #000 !important;
    border-color: #ffff00 !important;
}

html.accessibility-high-contrast .bip-cas-a11y__toggle,
html.accessibility-high-contrast .bip-cas-a11y__toggle:hover,
html.accessibility-high-contrast .bip-cas-a11y__toggle:focus,
html.accessibility-high-contrast .bip-cas-a11y__toggle:focus-visible,
html.accessibility-high-contrast .bip-cas-a11y__toggle:active,
html.accessibility-high-contrast .bip-cas-a11y.is-open .bip-cas-a11y__toggle {
    background: #000 !important;
    background-color: #000 !important;
    color: #ffff00 !important;
    border: 2px solid #ffff00 !important;
    filter: none !important;
}

/* Biała ikona WCAG → żółta */
html.accessibility-high-contrast .bip-cas-a11y__toggle img {
    filter: brightness(0) saturate(100%) invert(91%) sepia(95%) saturate(1352%) hue-rotate(1deg) brightness(105%) contrast(101%) !important;
    background: transparent !important;
    opacity: 1 !important;
}

html.accessibility-high-contrast .bip-cas-a11y__font-btn,
html.accessibility-high-contrast .bip-cas-a11y__font-btn:hover,
html.accessibility-high-contrast .bip-cas-a11y__font-btn:disabled {
    background: #000 !important;
    color: #ffff00 !important;
    border: 1px solid #ffff00 !important;
}

html.accessibility-high-contrast .bip-cas-a11y__font-status,
html.accessibility-high-contrast .bip-cas-a11y__btn,
html.accessibility-high-contrast .bip-cas-a11y__btn span {
    color: #ffff00 !important;
    background: transparent !important;
}

html.accessibility-high-contrast .bip-cas-a11y__btn,
html.accessibility-high-contrast .bip-cas-a11y__btn:hover,
html.accessibility-high-contrast .bip-cas-a11y__btn:focus,
html.accessibility-high-contrast .bip-cas-a11y__btn:focus-visible,
html.accessibility-high-contrast .bip-cas-a11y__btn:active,
html.accessibility-high-contrast .bip-cas-a11y__btn[aria-pressed="true"] {
    box-sizing: border-box !important;
    border: 2px solid #ffff00 !important;
}

html.accessibility-high-contrast .bip-cas-a11y__btn:hover,
html.accessibility-high-contrast .bip-cas-a11y__btn:focus,
html.accessibility-high-contrast .bip-cas-a11y__btn:active,
html.accessibility-high-contrast .bip-cas-a11y__btn[aria-pressed="true"] {
    background: #ffff00 !important;
    color: #000 !important;
}

html.accessibility-high-contrast .bip-cas-a11y__btn:hover span,
html.accessibility-high-contrast .bip-cas-a11y__btn:focus span,
html.accessibility-high-contrast .bip-cas-a11y__btn:active span,
html.accessibility-high-contrast .bip-cas-a11y__btn[aria-pressed="true"] span {
    color: #000 !important;
}

/* Czarne ikony listy → żółte; na aktywnym (żółte tło) → czarne */
html.accessibility-high-contrast .bip-cas-a11y__btn img {
    filter: brightness(0) saturate(100%) invert(91%) sepia(95%) saturate(1352%) hue-rotate(1deg) brightness(105%) contrast(101%) !important;
    background: transparent !important;
}

html.accessibility-high-contrast .bip-cas-a11y__btn:hover img,
html.accessibility-high-contrast .bip-cas-a11y__btn[aria-pressed="true"] img {
    filter: brightness(0) !important;
}

/* Podkreślanie linków tekstowych */
html.accessibility-underline-links a {
    text-decoration: underline !important;
    text-decoration-thickness: 0.12em !important;
    text-underline-offset: 0.15em !important;
}

html.accessibility-underline-links a:has(> img:only-child),
html.accessibility-underline-links a:has(> svg:only-child),
html.accessibility-underline-links a:has(> i:only-child),
html.accessibility-underline-links a:has(> .elementor-icon:only-child),
html.accessibility-underline-links .bip-cas-a11y a {
    text-decoration: none !important;
}

/* Czcionka systemowa — bez icon fontów */
html.accessibility-system-font body,
html.accessibility-system-font body *:not(i):not(svg):not(path):not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not(.eicon):not([class*="eicon"]):not([class*="fa-"]):not(.elementor-icon):not(.e-font-icon-svg) {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, Helvetica, sans-serif !important;
}

/* Marker listy dokumentów — kolory trybów (domyślnie pomarańcz z kit) */
html.accessibility-high-contrast .bip-cas-documents li::marker,
html.accessibility-high-contrast .bip-cas-documents__item::marker {
    color: #ffff00 !important;
}

html.accessibility-high-contrast .bip-cas-documents__info-btn,
html.accessibility-high-contrast .bip-cas-documents__info-btn:hover,
html.accessibility-high-contrast .bip-cas-documents__info-btn:focus,
html.accessibility-high-contrast .bip-cas-documents__info-btn:focus-visible,
html.accessibility-high-contrast .bip-cas-documents__info-btn:active {
    color: #ffff00 !important;
    border-color: #ffff00 !important;
    background: #000 !important;
    background-color: #000 !important;
}

html.accessibility-high-contrast .bip-cas-documents__info-tooltip {
    background: #000 !important;
    color: #ffff00 !important;
    border-color: #ffff00 !important;
    box-shadow: none !important;
}

html.accessibility-high-contrast .bip-cas-documents__info-tooltip::after {
    border-top-color: #000 !important;
}

html.accessibility-high-contrast .bip-cas-documents__info-tooltip::before {
    border-top-color: #ffff00 !important;
}

html.accessibility-high-contrast .bip-cas-documents__info-label {
    color: #ffff00 !important;
}

html.accessibility-negative .bip-cas-documents li::marker,
html.accessibility-negative .bip-cas-documents__item::marker {
    color: #fff !important;
}

html.accessibility-negative .bip-cas-documents__info-btn,
html.accessibility-negative .bip-cas-documents__info-btn:hover,
html.accessibility-negative .bip-cas-documents__info-btn:focus,
html.accessibility-negative .bip-cas-documents__info-btn:focus-visible,
html.accessibility-negative .bip-cas-documents__info-btn:active {
    color: #fff !important;
    border-color: #fff !important;
    background: #000 !important;
    background-color: #000 !important;
}

html.accessibility-negative .bip-cas-documents__info-tooltip {
    background: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
    box-shadow: none !important;
}

html.accessibility-negative .bip-cas-documents__info-tooltip::after {
    border-top-color: #000 !important;
}

html.accessibility-negative .bip-cas-documents__info-tooltip::before {
    border-top-color: #fff !important;
}

html.accessibility-negative .bip-cas-documents__info-label {
    color: #fff !important;
}
