/* ======================================
   Zwiększony kontrast systemowy
   (reaguje na ustawienie systemowe
   "Zwiększ kontrast" w Windows/macOS)
   ====================================== */

@media (prefers-contrast: less) {
    body {
        background: var(--very-light-green);
        color: #595959;
    }

    .header {
        background: #a5d6a7;
        box-shadow: none;
    }

    .header::before {
        display: none;
    }

    .logo {
        color: var(--text-dark);
        text-shadow: none;
    }

    .nav a {
        color: var(--text-dark);
        border: none;
    }

    .nav a:hover, .nav a:focus, .nav a.current-page {
        background: var(--text-dark);
        color: #ffffff;
    }

    .content {
        border: none;
        box-shadow: none;
    }

    .content::before {
        display: none;
    }

    .content h1, .content h2, .content h3 {
        color: var(--text-medium);
        text-shadow: none;
        font-weight: 400;
        border-left: none;
    }

    .content p {
        color: #595959;
    }

    .content a {
        color: var(--primary-green);
        text-decoration-thickness: 1px;
        font-weight: 400;
    }

    .card,
    .info-box,
    .homeless-info-panel,
    .form-container {
        border: none;
        box-shadow: none;
    }

    .btn,
    .form-submit,
    .form-submit.form-submit-unsubscribe {
        background: #a5d6a7;
        color: var(--text-dark);
        border: none;
        box-shadow: none;
        font-weight: 400;
    }

    .btn:hover, .btn:focus,
    .form-submit:hover, .form-submit:focus,
    .form-submit.form-submit-unsubscribe:hover,
    .form-submit.form-submit-unsubscribe:focus {
        background: var(--text-dark);
        color: #ffffff;
        transform: none;
        box-shadow: none;
    }

    .form-input, .form-select {
        border: 1px solid var(--border-green);
        box-shadow: none;
        color: #595959;
    }

    .footer {
        background: #a5d6a7;
        color: var(--text-dark);
        box-shadow: none;
    }

    .footer a {
        color: var(--text-dark);
    }

    .footer::before {
        display: none;
    }

    .accessibility-btn {
        background: #b35900;
        box-shadow: none;
    }

    *:focus {
        outline: 3px solid var(--text-dark);
        outline-offset: 2px;
        box-shadow: none;
    }
}

@media (prefers-contrast: more) {
    body {
        background: #ffffff;
        color: #000000;
    }

    .header {
        background: #0d2b0f;
        color: #ffffff;
    }

    .header::before {
        display: none;
    }

    .nav a {
        color: #ffffff;
        border: 2px solid #ffffff;
    }

    .nav a:hover, .nav a:focus, .nav a.current-page {
        background: #ffffff;
        color: #0d2b0f;
        border-color: #0d2b0f;
    }

    .content {
        border-color: #000000;
        border-width: 3px;
    }

    .content h1, .content h2, .content h3, .content p {
        color: #000000;
        font-weight: 700;
    }

    .content a {
        color: #003300;
        text-decoration: underline;
        text-decoration-thickness: 3px;
        text-underline-offset: 3px;
        font-weight: 700;
    }

    .card,
    .info-box,
    .homeless-info-panel,
    .form-container {
        border-color: #000000;
        border-width: 3px;
    }

    .btn,
    .form-submit,
    .form-submit.form-submit-unsubscribe {
        background: #0d2b0f;
        color: #ffffff;
        border: 3px solid #000000;
        font-weight: 700;
    }

    .btn:hover, .btn:focus,
    .form-submit:hover, .form-submit:focus,
    .form-submit.form-submit-unsubscribe:hover,
    .form-submit.form-submit-unsubscribe:focus {
        background: #ffffff;
        color: #0d2b0f;
        border-color: #0d2b0f;
    }

    .form-input,
    .form-select {
        border: 3px solid #000000;
        color: #000000;
    }

    .footer {
        background: #0d2b0f;
        color: #ffffff;
    }

    .footer::before {
        display: none;
    }

    .footer a {
        color: #ffffff;
        text-decoration-thickness: 3px;
        font-weight: 700;
    }

    .accessibility-btn {
        background: #ff6600;
        color: #000000;
        border: 3px solid #000000;
        font-weight: 700;
    }

    *:focus {
        outline: 6px solid var(--focus-yellow);
        outline-offset: 3px;
        box-shadow: 0 0 0 3px #ffffff, 0 0 0 9px #000000;
    }
}

/* ======================================
   Tryb wymuszonych kolorów systemu
   (Windows High Contrast Mode)
   ====================================== */

@media (forced-colors: active) {
    body {
        background-color: Canvas;
        color: CanvasText;
    }

    /* Pełnoekranowe menu mobilne — bez tej reguły przeglądarka sama
       decyduje, jak potraktować gradientowe tło, co może dawać
       nieprzewidywalny (np. niebieski) wygląd całego ekranu po otwarciu. */
    .nav {
        background-color: Canvas;
        background-image: none;
        forced-color-adjust: none;
    }

    .nav a {
        color: CanvasText;
        background-color: Canvas;
        border-color: CanvasText;
        forced-color-adjust: none;
    }

    .nav a:hover,
    .nav a:focus {
        background-color: Highlight;
        color: HighlightText;
        outline: 3px solid Highlight;
        outline-offset: 2px;
        box-shadow: none;
        border-color: HighlightText;
        forced-color-adjust: none;
    }

    /* Ta sama specyficzność co reguła w style.css (klasa + selektor
       atrybutu), więc musi być dopasowana identycznie, żeby wygrać —
       samo źródło CSS ładowane później nie wystarczy przy wyższej
       specyficzności konkurencyjnej reguły. */
    .nav a.current-page,
    .nav a[aria-current="page"] {
        background-color: Highlight;
        color: HighlightText;
        border-color: HighlightText;
        forced-color-adjust: none;
    }

    /* Przycisk hamburgera — jego "trzy kreski" to ::before/::after
       rysowane kolorem white + box-shadow. Bez jawnego wyjątku tryb
       wymuszonych kolorów usuwa te warstwy i ikona znika całkowicie. */
    .menu-toggle {
        background-color: ButtonFace;
        border: 2px solid ButtonText;
        forced-color-adjust: none;
    }

    .menu-toggle::before {
        background-color: ButtonText;
        box-shadow:
            0 -6px 0 ButtonText,
            0 6px 0 ButtonText;
        forced-color-adjust: none;
    }

    .menu-toggle.menu-open::before {
        box-shadow: 0 0 0 ButtonText;
    }

    .menu-toggle.menu-open::after {
        background-color: ButtonText;
        forced-color-adjust: none;
    }

    .menu-toggle:focus {
        outline: 3px solid Highlight;
        outline-offset: 2px;
        box-shadow: 0 0 0 1px Canvas, 0 0 0 5px Highlight;
    }

    /* Przycisk "Zamknij menu" (.nav-close-btn) jest tworzony dynamicznie
       w script.js z color:inherit i background:none — bez jawnego
       wyjątku jego kolory zależą od domyślnej, nieprzewidywalnej
       obsługi przycisków przez przeglądarkę w tym trybie. */
    .nav .nav-close-item {
        border-top-color: CanvasText;
    }

    .nav .nav-close-btn {
        color: CanvasText;
        background-color: Canvas;
        opacity: 1;
        forced-color-adjust: none;
    }

    .nav .nav-close-btn:hover,
    .nav .nav-close-btn:focus {
        background-color: Highlight;
        color: HighlightText;
        outline: 2px solid CanvasText;
        forced-color-adjust: none;
    }

    .content a {
        color: LinkText;
        text-decoration: underline;
        text-decoration-thickness: 3px;
        text-underline-offset: 3px;
        font-weight: 700;
    }

    .card,
    .info-box,
    .homeless-info-panel,
    .form-container {
        border: 3px solid CanvasText;
        background-color: Canvas;
        color: CanvasText;
    }

    .btn,
    .form-submit,
    .form-submit.form-submit-unsubscribe {
        background: ButtonFace;
        color: ButtonText;
        border: 3px solid ButtonText;
        box-shadow: none;
        font-weight: 700;
        forced-color-adjust: none;
    }

    .btn:hover, .btn:focus,
    .form-submit:hover, .form-submit:focus,
    .form-submit.form-submit-unsubscribe:hover,
    .form-submit.form-submit-unsubscribe:focus {
        background: ButtonText;
        color: ButtonFace;
        outline: 3px solid Highlight;
        outline-offset: 2px;
        box-shadow: none;
        border-color: ButtonText;
        transform: none;
        forced-color-adjust: none;
    }

    .form-input,
    .form-select,
    .form-textarea,
    .form-checkbox {
        background-color: Canvas;
        color: CanvasText;
        border: 3px solid CanvasText;
    }

    .form-input::placeholder,
    .form-select::placeholder,
    .form-textarea::placeholder {
        color: GrayText;
    }

    .accessibility-btn {
        background: ButtonFace;
        color: ButtonText;
        border: 3px solid ButtonText;
        font-weight: 700;
        forced-color-adjust: none;
    }

    .accessibility-btn:focus {
        outline: 3px solid Highlight;
        outline-offset: 3px;
        box-shadow: none;
        forced-color-adjust: none;
    }

    *:focus {
        outline: 3px solid Highlight;
        outline-offset: 3px;
        box-shadow: 0 0 0 1px Canvas, 0 0 0 5px Highlight;
    }

    ::selection {
        background-color: Highlight;
        color: HighlightText;
    }
}