/* =========================================================
   ACCESSIBILITY LAUNCHER
   ========================================================= */

.a11y-launcher {
    position: fixed;
    z-index: 500;

    right: 20px;
    bottom: 20px;

    display: inline-flex;
    align-items: center;
    gap: 8px;

    min-height: 42px;

    padding: 8px 12px;

    border: 1px solid #d9e1dd;
    border-radius: 10px;

    background: rgba(255, 255, 255, .96);
    color: #18231e;

    font-size: 11px;
    font-weight: 750;

    box-shadow:
        0 10px 30px rgba(20, 33, 28, .10);

    cursor: pointer;

    backdrop-filter: blur(12px);
}

.a11y-launcher svg {
    width: 18px;
    height: 18px;
}

.a11y-launcher:hover {
    border-color: #aebdb5;

    background: #fff;

    transform: translateY(-1px);
}


/* =========================================================
   OVERLAY
   ========================================================= */

.site-tools-overlay {
    position: fixed;
    z-index: 600;
    inset: 0;

    background: rgba(11, 18, 15, .28);

    backdrop-filter: blur(3px);
}


/* =========================================================
   ACCESSIBILITY PANEL
   ========================================================= */

.a11y-panel {
    position: fixed;
    z-index: 610;

    top: 0;
    right: 0;

    width: min(410px, 100%);
    height: 100vh;

    overflow-y: auto;

    border-left: 1px solid #e1e7e3;

    background: #fff;

    box-shadow:
        -20px 0 50px
        rgba(20, 33, 28, .12);

    transform: translateX(102%);

    transition:
        transform .22s cubic-bezier(.2, .8, .2, 1);
}

.a11y-panel.is-open {
    transform: translateX(0);
}

.a11y-panel-header {
    position: sticky;
    z-index: 2;
    top: 0;

    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;

    padding: 25px 26px 20px;

    border-bottom: 1px solid #edf1ef;

    background: rgba(255, 255, 255, .96);

    backdrop-filter: blur(16px);
}

.a11y-eyebrow {
    display: block;

    margin-bottom: 5px;

    color: #68766f;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .1em;
    text-transform: uppercase;
}

.a11y-panel-header h2 {
    margin: 0;

    color: #18231e;

    font-size: 25px;
    font-weight: 760;

    letter-spacing: -.035em;
}

.a11y-close {
    width: 34px;
    height: 34px;

    border: 1px solid #e0e6e2;
    border-radius: 8px;

    background: #fff;
    color: #526058;

    font-size: 21px;
    line-height: 1;

    cursor: pointer;
}

.a11y-panel-content {
    padding: 23px 26px 30px;
}

.a11y-group {
    padding: 0 0 23px;
    margin: 0 0 23px;

    border-bottom: 1px solid #edf1ef;
}

.a11y-group h3 {
    margin: 0 0 12px;

    color: #35423b;

    font-size: 11px;
    font-weight: 800;

    letter-spacing: .04em;
    text-transform: uppercase;
}


/* TEXT */

.a11y-segmented {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    overflow: hidden;

    border: 1px solid #dce3df;
    border-radius: 9px;
}

.a11y-segmented button {
    min-height: 40px;

    border: 0;
    border-right: 1px solid #dce3df;

    background: #fff;
    color: #1e2b24;

    font-weight: 750;

    cursor: pointer;
}

.a11y-segmented button:last-child {
    border-right: 0;
}

.a11y-segmented button:hover {
    background: #f4f7f5;
}

.a11y-value {
    margin: 8px 0 0;

    color: #89958f;

    font-size: 10px;
    text-align: right;
}


/* OPTIONS */

.a11y-options {
    display: grid;
    gap: 8px;
}

.a11y-option {
    display: grid;
    grid-template-columns: 38px 1fr;
    gap: 10px;

    width: 100%;

    padding: 10px;

    border: 1px solid #e0e6e2;
    border-radius: 9px;

    background: transparent;
    color: #1d2923;

    text-align: left;

    cursor: pointer;
}

.a11y-option:hover {
    border-color: #bfcac4;
    background: #fafcfa;
}

.a11y-option[aria-pressed="true"] {
    border-color: #171d1a;

    background: #171d1a;
    color: #fff;
}

.a11y-option-icon {
    display: grid;
    place-items: center;

    width: 36px;
    height: 36px;

    border: 1px solid currentColor;
    border-radius: 8px;

    font-size: 12px;
    font-weight: 800;

    opacity: .92;
}

.a11y-option strong,
.a11y-option small {
    display: block;
}

.a11y-option strong {
    margin-top: 1px;

    font-size: 12px;
}

.a11y-option small {
    margin-top: 3px;

    color: #87938d;

    font-size: 10px;
    line-height: 1.45;
}

.a11y-option[aria-pressed="true"] small {
    color: #c8d0cc;
}


/* READER */

.a11y-reader-controls {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 7px;
}

.a11y-reader-controls button,
.a11y-reader-speed button {
    min-height: 36px;

    border: 1px solid #dce3df;
    border-radius: 8px;

    background: #fff;
    color: #26332c;

    font-size: 10px;
    font-weight: 750;

    cursor: pointer;
}

.a11y-reader-primary {
    border-color: #18231e !important;

    background: #18231e !important;
    color: #fff !important;
}

.a11y-reader-speed {
    display: flex;
    align-items: center;
    gap: 6px;

    margin-top: 10px;
}

.a11y-reader-speed > span {
    margin-right: auto;

    color: #7f8d86;

    font-size: 10px;
}

.a11y-reader-speed button {
    min-width: 46px;
}

.a11y-reader-speed button.is-active {
    border-color: #18231e;
    background: #18231e;
    color: #fff;
}

.a11y-reset {
    width: 100%;

    min-height: 40px;

    border: 1px solid #dce3df;
    border-radius: 8px;

    background: #f8faf9;
    color: #526058;

    font-size: 10px;
    font-weight: 750;

    cursor: pointer;
}


/* =========================================================
   ACTIVE ACCESSIBILITY MODES
   ========================================================= */

html[data-a11y-scale="90"] body {
    zoom: .90;
}

html[data-a11y-scale="110"] body {
    zoom: 1.10;
}

html[data-a11y-scale="120"] body {
    zoom: 1.20;
}

html.a11y-grayscale
.site-header,
html.a11y-grayscale
.site-main,
html.a11y-grayscale
.site-footer {
    filter: grayscale(1);
}

html.a11y-links
.site-main a,
html.a11y-links
.site-header a,
html.a11y-links
.site-footer a {
    text-decoration: underline !important;

    text-decoration-thickness: 2px !important;
    text-underline-offset: 3px !important;
}

html.a11y-readable-font
body,
html.a11y-readable-font
button,
html.a11y-readable-font
input,
html.a11y-readable-font
textarea,
html.a11y-readable-font
select {
    font-family:
        Arial,
        Helvetica,
        sans-serif !important;
}

html.a11y-contrast
body {
    background: #fff !important;
    color: #000 !important;
}

html.a11y-contrast
.site-header,
html.a11y-contrast
.site-main,
html.a11y-contrast
.site-footer,
html.a11y-contrast
section,
html.a11y-contrast
article {
    border-color: #000 !important;
}

html.a11y-contrast
.site-main a {
    color: #000 !important;
    text-decoration: underline !important;
}


/* =========================================================
   PRIVACY MODAL
   ========================================================= */

.privacy-overlay {
    position: fixed;
    z-index: 900;
    inset: 0;

    display: grid;
    place-items: center;

    padding: 20px;

    background: rgba(8, 14, 11, .50);

    backdrop-filter: blur(5px);
}

.privacy-modal {
    width: min(560px, 100%);

    overflow: hidden;

    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 16px;

    background: #fff;
    color: #18231e;

    box-shadow:
        0 30px 80px rgba(8, 14, 11, .24);
}

.privacy-modal-mark {
    display: grid;
    place-items: center;

    width: 42px;
    height: 42px;

    margin: 25px 25px 0;

    border-radius: 10px;

    background: #18231e;
    color: #fff;
}

.privacy-modal-mark svg {
    width: 21px;
    height: 21px;
}

.privacy-modal-heading {
    padding: 16px 25px 20px;
}

.privacy-modal-heading > span {
    color: #79867f;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .1em;
    text-transform: uppercase;
}

.privacy-modal-heading h2 {
    margin: 4px 0 8px;

    font-size: 24px;
    font-weight: 760;

    letter-spacing: -.035em;
}

.privacy-modal-heading p {
    margin: 0;

    color: #68766f;

    font-size: 12px;
    line-height: 1.65;
}

.privacy-categories {
    border-top: 1px solid #edf1ef;
}

.privacy-category {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    min-height: 74px;

    padding: 14px 25px;

    border-bottom: 1px solid #edf1ef;
}

.privacy-category strong,
.privacy-category small {
    display: block;
}

.privacy-category strong {
    color: #26322c;

    font-size: 12px;
}

.privacy-category small {
    max-width: 350px;

    margin-top: 3px;

    color: #89958f;

    font-size: 10px;
    line-height: 1.45;
}

.privacy-required {
    color: #637169;

    font-size: 9px;
    font-weight: 750;

    white-space: nowrap;
}


/* TOGGLE */

.privacy-toggle input {
    position: absolute;

    opacity: 0;
}

.privacy-toggle > span {
    position: relative;

    display: block;

    width: 37px;
    height: 21px;

    border-radius: 999px;

    background: #cbd3cf;

    cursor: pointer;

    transition: background .15s ease;
}

.privacy-toggle > span::after {
    content: "";

    position: absolute;

    top: 3px;
    left: 3px;

    width: 15px;
    height: 15px;

    border-radius: 50%;

    background: #fff;

    box-shadow:
        0 1px 3px rgba(0, 0, 0, .16);

    transition: transform .15s ease;
}

.privacy-toggle
input:checked + span {
    background: #18231e;
}

.privacy-toggle
input:checked + span::after {
    transform: translateX(16px);
}


/* ACTIONS */

.privacy-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;

    padding: 17px 25px;

    background: #f8faf9;
}

.privacy-actions button {
    min-height: 38px;

    padding: 7px 13px;

    border-radius: 8px;

    font-size: 10px;
    font-weight: 750;

    cursor: pointer;
}

.privacy-secondary {
    border: 1px solid #d9e1dd;

    background: #fff;
    color: #526058;
}

.privacy-primary {
    border: 1px solid #18231e;

    background: #18231e;
    color: #fff;
}


/* REOPEN PRIVACY */

.privacy-settings-button {
    position: fixed;
    z-index: 490;

    left: 16px;
    bottom: 16px;

    padding: 6px 9px;

    border: 1px solid #dce3df;
    border-radius: 7px;

    background: rgba(255, 255, 255, .92);
    color: #74817a;

    font-size: 9px;

    cursor: pointer;
}


/* MOBILE */

@media (max-width: 600px) {
    .a11y-launcher span {
        display: none;
    }

    .a11y-launcher {
        width: 44px;
        height: 44px;

        padding: 0;

        justify-content: center;
    }

    .privacy-actions {
        flex-direction: column-reverse;
    }

    .privacy-actions button {
        width: 100%;
    }
}


/* =========================================================
   A11Y RIGHT EDGE TAB V2
   ========================================================= */

/*
 * Oryginalny przycisk dostępności nadal istnieje
 * i steruje oryginalnym panelem, ale wizualnie go chowamy.
 */

.a11y-original-trigger-v2 {
    position: fixed !important;

    width: 1px !important;
    height: 1px !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;

    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;

    white-space: nowrap !important;

    border: 0 !important;

    opacity: 0 !important;

    pointer-events: none !important;
}


/* =========================================================
   PRAWA ZAKŁADKA
   ========================================================= */

.a11y-edge-tab-v2 {
    position: fixed;

    z-index: 2147481000;

    top: 52%;
    right: 0;

    transform:
        translateY(-50%);

    display: flex;

    align-items: center;

    box-sizing: border-box;

    width: 54px;
    height: 62px;

    margin: 0;
    padding: 0;

    overflow: hidden;

    border:
        1px solid
        rgba(255,255,255,.15);

    border-right: 0;

    border-radius:
        15px
        0
        0
        15px;

    background:
        linear-gradient(
            180deg,
            #185440 0%,
            #103e30 100%
        );

    box-shadow:
        -8px
        9px
        28px
        rgba(13, 48, 36, .20);

    color: #fff;

    cursor: pointer;

    transition:
        width .22s ease,
        background .18s ease,
        box-shadow .18s ease;
}


.a11y-edge-tab-v2:hover,
.a11y-edge-tab-v2:focus-visible,
.a11y-edge-tab-v2[aria-expanded="true"] {
    width: 170px;

    background:
        linear-gradient(
            180deg,
            #1d6049 0%,
            #124735 100%
        );

    box-shadow:
        -10px
        12px
        34px
        rgba(13, 48, 36, .25);
}


.a11y-edge-tab-v2:focus-visible {
    outline:
        3px solid
        rgba(105, 205, 163, .42);

    outline-offset: 3px;
}


/* =========================================================
   IKONA
   ========================================================= */

.a11y-edge-tab-v2-icon {
    display: flex;

    flex: 0 0 54px;

    align-items: center;
    justify-content: center;

    width: 54px;
    height: 62px;
}


.a11y-edge-tab-v2-icon svg {
    display: block;

    width: 26px;
    height: 26px;

    color: #fff;
}


/* =========================================================
   NAPIS
   ========================================================= */

.a11y-edge-tab-v2-label {
    display: block;

    flex: 0 0 auto;

    padding-right: 18px;

    color: #fff;

    font-size: 13px;
    font-weight: 750;

    line-height: 1;

    white-space: nowrap;

    opacity: 0;

    transform:
        translateX(7px);

    transition:
        opacity .16s ease,
        transform .20s ease;
}


.a11y-edge-tab-v2:hover
.a11y-edge-tab-v2-label,

.a11y-edge-tab-v2:focus-visible
.a11y-edge-tab-v2-label,

.a11y-edge-tab-v2[aria-expanded="true"]
.a11y-edge-tab-v2-label {
    opacity: 1;

    transform:
        translateX(0);
}


/* =========================================================
   PANEL
   ========================================================= */

/*
 * Bardzo ważne:
 *
 * NIE zmieniamy position / width / transform
 * istniejącego panelu Dostępność.
 *
 * Ma działać dokładnie tak jak przed zmianami.
 */


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .a11y-edge-tab-v2 {
        top: 58%;

        width: 48px;
        height: 54px;

        border-radius:
            13px
            0
            0
            13px;
    }


    .a11y-edge-tab-v2:hover,
    .a11y-edge-tab-v2:focus-visible,
    .a11y-edge-tab-v2[aria-expanded="true"] {
        width: 48px;
    }


    .a11y-edge-tab-v2-icon {
        flex-basis: 48px;

        width: 48px;
        height: 54px;
    }


    .a11y-edge-tab-v2-icon svg {
        width: 23px;
        height: 23px;
    }


    .a11y-edge-tab-v2-label {
        display: none;
    }

}


@media (prefers-reduced-motion: reduce) {

    .a11y-edge-tab-v2,
    .a11y-edge-tab-v2-label {
        transition: none;
    }

}
