/* py.gthst.net — nadpisania na wierzchu Unify (theme.min.css).
   Motywu nie ruszamy: przy aktualizacji szablonu podmieniasz theme.min.css,
   a wszystkie zmiany projektu zostają tutaj.

   Zmienne Bootstrapa 5 / Unify, które warto nadpisać w pierwszej kolejności:
   --bs-primary, --bs-body-color, --bs-body-font-family, --bs-border-radius.
   Pełna lista tokenów: dist/documentation/customization.html w katalogu motywu. */

:root {
    /* --bs-primary: #0f62fe; */
}

.skip-link {
    z-index: 1080;
}

/* Logo w nagłówku — Unify skaluje je klasą navbar-brand-logo. */
.navbar-brand-logo {
    max-height: 2.5rem;
    width: auto;
}

/* --- komponenty wspólne ze szkieletem ------------------------------------- */
/* Motyw ładuje tylko ten plik (nie css/style.css), więc baner cookie, mapa
   i mapa strony potrzebują tu własnych reguł. Nazwy klas są te same, żeby
   components/*.html działały niezależnie od motywu. */

/* Bootstrap zna btn-outline-primary, komponenty używają neutralnego
   btn-outline — alias, zamiast rozgałęziać szablony na motywy. */
.btn-outline {
    border: 1px solid var(--bs-primary);
    color: var(--bs-primary);
    background: transparent;
}
.btn-outline:hover { background: var(--bs-primary); color: #fff; }

.cookie-banner {
    position: fixed;
    inset: auto 0 0 0;
    z-index: 1050;
    background: var(--bs-dark, #1a1a1a);
    color: #fff;
    padding: 1rem 0;
    box-shadow: 0 -4px 20px rgb(0 0 0 / 0.2);
}
.cookie-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
/* Unify nadaje <p> własny kolor z --bs-body-color, więc samo dziedziczenie
   po .cookie-banner nie zadziała — tekst wychodzi ciemny na ciemnym tle. */
.cookie-text { flex: 1; min-width: 260px; margin: 0; font-size: 0.9rem; color: #fff; }
.cookie-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.cookie-actions .btn-outline { border-color: #fff; color: #fff; }
.cookie-actions .btn-outline:hover { background: #fff; color: var(--bs-dark, #1a1a1a); }
.cookie-link { color: #ccc; text-decoration: underline; font-size: 0.9rem; }

@media (max-width: 600px) {
    .cookie-inner { flex-direction: column; align-items: stretch; }
    .cookie-actions { justify-content: flex-end; }
}

/* position + z-index zamykają warstwy Leafletu (kafle 200 … kontrolki 1000)
   we własnym kontekście nakładania — inaczej mapa przebija przyklejony
   navbar Unify. */
.site-map-box {
    position: relative;
    z-index: 0;
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: var(--bs-border-radius, 0.5rem);
    overflow: hidden;
}
.site-map-box iframe { display: block; width: 100%; height: 320px; border: 0; }
.map-canvas { height: 320px; background: var(--bs-light, #f4f5f7); }
.map-consent {
    display: grid;
    place-items: center;
    gap: 0.75rem;
    height: 320px;
    padding: 1rem;
    text-align: center;
    background: var(--bs-light, #f4f5f7);
}
.map-consent p { margin: 0; }
.map-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--bs-border-color, #e5e7eb);
}
.map-links { display: flex; flex-wrap: wrap; gap: 0.5rem; }
@media (max-width: 480px) {
    .map-actions { flex-direction: column; align-items: flex-start; }
}

.sitemap-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 2rem;
    align-items: start;
}
.sitemap-group h2 {
    font-size: 1.25rem;
    padding-bottom: 0.35rem;
    border-bottom: 2px solid var(--bs-primary);
}
.sitemap-list { list-style: none; padding: 0; margin: 0; }
.sitemap-list li { padding: 0.55rem 0; border-bottom: 1px solid var(--bs-border-color, #e5e7eb); }
.sitemap-list li:last-child { border-bottom: 0; }
.sitemap-list span { display: block; font-size: 0.9rem; color: var(--bs-secondary-color, #6b7280); }
.sitemap-sub { padding-left: 1rem; border-left: 2px solid var(--bs-border-color, #e5e7eb); }
.sitemap-note { margin-top: 0.75rem; font-size: 0.9rem; }
