/* Aktywny link */
.navbar-light .navbar-nav .nav-link.active {
    color: #21816d !important;
    font-weight: 600;
}

/* Hover */
.navbar-light .navbar-nav .nav-link:hover {
    color: #21816d !important;
}

/* Logo */
.navbar-brand {
    color: #21816d !important;
}

/* Fixed navbar */
.navbar-marketing {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1030;
    background-color: #21816d !important;
}

/* Navbar zielone tło - nadpisuje bg-white */
.navbar-marketing.bg-white {
    background-color: #21816d !important;
}

/* Tekst w navbarze na biały dla lepszej widoczności */
.navbar-marketing .navbar-nav .nav-link {
    color: #ffffff !important;
}

.navbar-marketing .navbar-nav .nav-link:hover {
    color: #e0f2ef !important;
}

.navbar-marketing .navbar-nav .nav-link.active {
    color: #ffffff !important;
    font-weight: 600;
}

/* Białe kolory dla linków "O projekcie" i "Kontakt" */
.navbar-marketing .navbar-nav .nav-link[href="/o-projekcie"],
.navbar-marketing .navbar-nav .nav-link[href="/kontakt"] {
    color: #ffffff !important;
}

.navbar-marketing .navbar-nav .nav-link[href="/o-projekcie"]:hover,
.navbar-marketing .navbar-nav .nav-link[href="/o-projekcie"]:focus,
.navbar-marketing .navbar-nav .nav-link[href="/kontakt"]:hover,
.navbar-marketing .navbar-nav .nav-link[href="/kontakt"]:focus {
    color: #ffffff !important;
}

.navbar-marketing .navbar-nav .nav-link[href="/o-projekcie"].active,
.navbar-marketing .navbar-nav .nav-link[href="/kontakt"].active {
    color: #ffffff !important;
    font-weight: 600;
}

.navbar-marketing .navbar-brand {
    color: #ffffff !important;
}

.navbar-marketing .navbar-brand:hover {
    color: #e0f2ef !important;
}

/* Dropdown toggle - biały kolor */
.navbar-marketing .navbar-nav .dropdown-toggle {
    color: #ffffff !important;
}

.navbar-marketing .navbar-nav .dropdown-toggle:hover {
    color: #e0f2ef !important;
}

/* Ikona hamburger - biały kolor */
.navbar-marketing .navbar-toggler [data-feather] {
    color: #ffffff !important;
    stroke: #ffffff !important;
}

.navbar-marketing .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.5) !important;
}

/* Accessibility links w navbarze - biały kolor */
.navbar-marketing .c-accessibility-link {
    color: #ffffff !important;
}

.navbar-marketing .c-accessibility-link svg {
    stroke: #ffffff !important;
    color: #ffffff !important;
}

.navbar-marketing .c-accessibility-link:hover,
.navbar-marketing .c-accessibility-link:focus {
    color: #e0f2ef !important;
}

.navbar-marketing .c-accessibility-link:hover svg,
.navbar-marketing .c-accessibility-link:focus svg {
    stroke: #e0f2ef !important;
    color: #e0f2ef !important;
}

/* Dropdown menu - dostosowanie do zielonego navbar */
.navbar-marketing .dropdown-menu {
    background-color: #ffffff !important;
    border-color: #21816d !important;
}

.navbar-marketing .dropdown-menu .dropdown-item {
    color: #21816d !important;
}

.navbar-marketing .dropdown-menu .dropdown-item:hover,
.navbar-marketing .dropdown-menu .dropdown-item:focus {
    color: #1a6b5a !important;
    background-color: #f0f7f5 !important;
}

/* High contrast mode - ciemny tekst w menu */
body.high-contrast .navbar-marketing {
    background-color: #ffffff !important;
}

body.high-contrast .navbar-marketing .navbar-nav .nav-link {
    color: #000000 !important;
}

body.high-contrast .navbar-marketing .navbar-nav .nav-link:hover,
body.high-contrast .navbar-marketing .navbar-nav .nav-link:focus {
    color: #000000 !important;
    background-color: #ffff00 !important;
}

body.high-contrast .navbar-marketing .navbar-nav .nav-link.active {
    color: #000000 !important;
    background-color: #ffff00 !important;
}

body.high-contrast .navbar-marketing .navbar-brand {
    color: #000000 !important;
}

body.high-contrast .navbar-marketing .navbar-brand:hover {
    color: #000000 !important;
}

body.high-contrast .navbar-marketing .navbar-nav .dropdown-toggle {
    color: #000000 !important;
}

body.high-contrast .navbar-marketing .navbar-nav .dropdown-toggle:hover {
    color: #000000 !important;
    background-color: #ffff00 !important;
}

body.high-contrast .navbar-marketing .navbar-toggler [data-feather] {
    color: #000000 !important;
    stroke: #000000 !important;
}

body.high-contrast .navbar-marketing .navbar-toggler {
    border-color: #000000 !important;
}

body.high-contrast .navbar-marketing .c-accessibility-link {
    color: #000000 !important;
}

body.high-contrast .navbar-marketing .c-accessibility-link svg {
    stroke: #000000 !important;
    color: #000000 !important;
}

body.high-contrast .navbar-marketing .c-accessibility-link:hover,
body.high-contrast .navbar-marketing .c-accessibility-link:focus {
    color: #000000 !important;
    background-color: #ffff00 !important;
}

body.high-contrast .navbar-marketing .c-accessibility-link:hover svg,
body.high-contrast .navbar-marketing .c-accessibility-link:focus svg {
    stroke: #000000 !important;
    color: #000000 !important;
}

body.high-contrast .navbar-marketing .navbar-collapse {
    background: #ffffff !important;
}

/* Lower navbar brand element */
.navbar-brand {
    margin-top: 0.5rem;
}

@media (max-width: 991.98px) {
    .navbar-brand {
        margin-top: 0.25rem;
    }
}

/* Add padding to body to account for fixed navbar */
body {
    padding-top: 80px;
}

/* Add padding to page header to account for fixed navbar */
.page-header-ui {
    padding-top: 170px;
}

.page-header-ui-content {
    padding-top: 2rem;
}

@media (max-width: 991.98px) {
    body {
        padding-top: 70px;
    }
    
    .page-header-ui {
        padding-top: 30px;
    }
    
    .page-header-ui-content {
        padding-top: 1.5rem;
    }
    
    /* Ensure mobile menu doesn't overlap content */
    .navbar-collapse {
        position: relative !important;
        z-index: 1029;
        background: #21816d !important;
        margin-top: 1rem;
        padding: 1rem 0;
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        width: 100% !important;
        clear: both;
    }
    
    .navbar-collapse.show {
        margin-top: 1rem;
        display: block !important;
    }
    
    /* Ensure navbar container wraps properly on mobile */
    .navbar-marketing .d-flex.flex-column.flex-lg-row {
        flex-wrap: wrap;
    }
    
    /* Ensure menu takes full width on mobile when open */
    @media (max-width: 991.98px) {
        .navbar-collapse {
            order: 3;
            width: 100%;
            margin-left: 0;
            margin-right: 0;
        }
    }
    
    /* Ensure navbar doesn't overlap when menu is open */
    .navbar-marketing {
        position: fixed !important;
    }
    
    /* Ikona hamburger na mobile - biały kolor i wyśrodkowanie */
    .navbar-marketing .navbar-toggler [data-feather],
    .navbar-marketing .navbar-toggler svg.feather-menu,
    .navbar-marketing .navbar-toggler .feather-menu {
        color: #ffffff !important;
        stroke: #ffffff !important;
        display: block;
        margin: 0 auto;
    }
    
    .navbar-marketing .navbar-toggler svg.feather-menu,
    .navbar-marketing .navbar-toggler .feather-menu {
        fill: none !important;
    }
    
    /* Cały przycisk hamburger - obniżenie i wyśrodkowanie */
    .navbar-marketing .navbar-toggler {
        border-color: rgba(255, 255, 255, 0.5) !important;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        top: 4px;
    }
}

/* Ensure navbar collapse is inline on desktop */
@media (min-width: 992px) {
    .navbar-collapse {
        display: flex !important;
        flex-basis: auto;
    }
}

/* WCAG 2.1 AA: Links must have non-color indicators */
footer a,
.footer a {
    text-decoration: underline;
    text-underline-offset: 2px;
    color: white !important;
}

footer a:hover,
footer a:focus,
.footer a:hover,
.footer a:focus {
    text-decoration-thickness: 2px;
    color: white !important;
}

/* Wszystkie teksty w stopce na biało */
footer,
.footer {
    color: white !important;
}

footer *,
.footer * {
    color: white !important;
}

footer .footer-brand,
.footer .footer-brand {
    color: white !important;
}

footer .text-uppercase-expanded,
.footer .text-uppercase-expanded {
    color: white !important;
}

footer .small,
.footer .small {
    color: white !important;
}

/* Email links and policy links */
a[href^="mailto:"] {
    text-decoration: underline;
    text-underline-offset: 2px;
}

a[href^="mailto:"]:hover,
a[href^="mailto:"]:focus {
    text-decoration-thickness: 2px;
}

/* Override text-decoration-none for accessibility */
a.text-decoration-none {
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

a.text-decoration-none:hover,
a.text-decoration-none:focus {
    text-decoration-thickness: 2px;
}

/* Links in content sections */
section a,
.card-body a,
p a,
li a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

section a:hover,
section a:focus,
.card-body a:hover,
.card-body a:focus,
p a:hover,
p a:focus,
li a:hover,
li a:focus {
    text-decoration-thickness: 2px;
}

/* WCAG 2.2 AAA: Fix contrast for links on white/light backgrounds - ensure 7:1 contrast ratio */
/* Links in content sections (polityka-prywatnosci, regulamin, etc.) on white background */
section.bg-light a:not(.text-primary):not(.text-white),
.card-body a:not(.text-primary):not(.text-white),
.card a:not(.text-primary):not(.text-white),
.bg-light p a:not(.text-primary):not(.text-white),
.bg-light li a:not(.text-primary):not(.text-white),
p a:not(.text-primary):not(.text-white):not(footer a):not(.footer a),
li a:not(.text-primary):not(.text-white):not(footer a):not(.footer a) {
    color: #003d9e !important; /* Darker blue for 7:1 contrast on white background */
}

section.bg-light a:not(.text-primary):not(.text-white):hover,
section.bg-light a:not(.text-primary):not(.text-white):focus,
.card-body a:not(.text-primary):not(.text-white):hover,
.card-body a:not(.text-primary):not(.text-white):focus,
.card a:not(.text-primary):not(.text-white):hover,
.card a:not(.text-primary):not(.text-white):focus,
.bg-light p a:not(.text-primary):not(.text-white):hover,
.bg-light p a:not(.text-primary):not(.text-white):focus,
.bg-light li a:not(.text-primary):not(.text-white):hover,
.bg-light li a:not(.text-primary):not(.text-white):focus,
p a:not(.text-primary):not(.text-white):not(footer a):not(.footer a):hover,
p a:not(.text-primary):not(.text-white):not(footer a):not(.footer a):focus,
li a:not(.text-primary):not(.text-white):not(footer a):not(.footer a):hover,
li a:not(.text-primary):not(.text-white):not(footer a):not(.footer a):focus {
    color: #003080 !important; /* Even darker for hover state */
}

/* WCAG 2.2 AAA: Fix contrast for email link - ensure 7:1 contrast ratio */
#email-kontakt.text-primary {
    color: #004d2e !important; /* Darker green for 7:1 contrast on light background */
}

#email-kontakt.text-primary:hover,
#email-kontakt.text-primary:focus {
    color: #003d24 !important; /* Even darker for hover state */
}

/* Poprawa kontrastu dla page-header-ui-text - WCAG AAA */
/* WCAG AAA wymaga: 7:1 dla normalnego tekstu lub 4.5:1 dla większego tekstu (18pt+) lub bold (14pt+) */
/* Zwiększamy rozmiar i grubość czcionki, aby osiągnąć wymagany kontrast */
.page-header-ui-dark .page-header-ui-text {
    font-size: 1.75rem !important; /* ~21pt - większy tekst dla lepszego kontrastu */
    font-weight: 500 !important; /* Średnia grubość dla lepszej widoczności */
    line-height: 1.6;
}

@media (max-width: 768px) {
    .page-header-ui-dark .page-header-ui-text {
        font-size: 1.5rem !important; /* ~18pt na mobile - nadal kwalifikuje się jako większy tekst */
        font-weight: 500 !important;
    }
}

/* Zapobieganie layout jumping podczas ładowania obrazów */
/* Ustawienie aspect-ratio dla obrazów w kartach postów */
.card-img-top {
    aspect-ratio: 16 / 9;
    width: 100%;
    height: auto;
    object-fit: cover;
    display: block;
}

/* Dla responsywnych layoutów - obrazy będą skalować się proporcjonalnie */
img.card-img-top {
    max-width: 100%;
    height: auto;
}

/* Ustawienie minimalnej wysokości dla kontenera obrazu, aby zapobiec layout jumping */
.post-preview .card-img-top {
    min-height: 200px;
    background-color: #f8f9fa;
}

@media (min-width: 768px) {
    .post-preview .card-img-top {
        min-height: 240px;
    }
}

@media (min-width: 1200px) {
    .post-preview .card-img-top {
        min-height: 200px;
    }
}

/* WCAG AAA - zwiększenie rozmiaru czcionki dla przycisku "Zobacz wszystkie szlaki" */
/* Dla większego tekstu (18pt+) wymagany kontrast to 4.5:1 (WCAG AAA) */
/* Obecny kontrast 4.75:1 jest wystarczający dla tekstu ≥18pt */
.btn-szlaki-primary {
    font-size: 1.5rem !important; /* ~22.5pt - większy tekst dla lepszego kontrastu WCAG AAA */
    font-weight: 500 !important; /* Średnia grubość dla lepszej widoczności */
    padding: 0.875rem 1.75rem !important; /* Zwiększone padding dla lepszej czytelności */
    line-height: 1.5 !important;
}

@media (max-width: 768px) {
    .btn-szlaki-primary {
        font-size: 1.375rem !important; /* ~20.6pt na mobile - nadal większy tekst */
        padding: 0.75rem 1.5rem !important;
    }
}

/* WCAG AAA - poprawa kontrastu dla tekstu "Brak postów w tej kategorii" */
/* Zwiększenie rozmiaru czcionki do ≥18pt dla lepszego kontrastu WCAG AAA */
/* Kontrast 4.61:1 wymaga tekstu ≥18pt (WCAG AAA wymaga 4.5:1 dla większego tekstu) */
/* Zmiana koloru na czarny dla lepszego kontrastu */
.section .text-muted,
.bg-light .text-muted,
section .text-muted,
section.bg-light .text-muted,
.text-center .text-muted,
section.bg-light .text-center .text-muted,
section.bg-light.py-10 .text-muted {
    font-size: 1.25rem !important; /* ~18.75pt - większy tekst dla lepszego kontrastu WCAG AAA */
    font-weight: 400 !important;
    line-height: 1.6 !important;
    color: #000000 !important; /* Czarny kolor dla maksymalnego kontrastu */
}

@media (max-width: 768px) {
    .section .text-muted,
    .bg-light .text-muted,
    section .text-muted,
    section.bg-light .text-muted,
    .text-center .text-muted,
    section.bg-light .text-center .text-muted,
    section.bg-light.py-10 .text-muted {
        font-size: 1.125rem !important; /* ~16.9pt na mobile - nadal większy tekst */
    }
}

/* WCAG AAA - poprawa kontrastu dla tekstu z klasą "lead text-muted" */
/* Kontrast 5.00:1 wymaga tekstu ≥18pt (WCAG AAA wymaga 4.5:1 dla większego tekstu) */
/* Nadpisuje style z styles.css (.lead { font-size: 1.1rem; }) */
/* Zmiana koloru na czarny dla lepszego kontrastu */
.lead.text-muted,
p.lead.text-muted,
section .lead.text-muted,
.bg-light .lead.text-muted,
.container .lead.text-muted,
.container.px-5 .lead.text-muted {
    font-size: 1.25rem !important; /* ~18.75pt - większy tekst dla lepszego kontrastu WCAG AAA */
    font-weight: 400 !important;
    line-height: 1.6 !important;
    color: #000000 !important; /* Czarny kolor dla maksymalnego kontrastu */
}

@media (max-width: 768px) {
    .lead.text-muted,
    p.lead.text-muted,
    section .lead.text-muted,
    .bg-light .lead.text-muted,
    .container .lead.text-muted,
    .container.px-5 .lead.text-muted {
        font-size: 1.125rem !important; /* ~16.9pt na mobile - nadal większy tekst */
    }
}

