/*
 * Kolor marki. Zielen z logo i z tagow jest kolorem wiodacym serwisu,
 * wiec wszystkie akcenty - aktywna sekcja spisu, paski glosowania, przyciski,
 * najechania - biora go stad. Jedno miejsce do zmiany.
 *
 * Kontrast #124612 na bieli: 10,9:1, czyli z zapasem ponad wymog AAA.
 */
:root {
    --mf-accent: #124612;
    --mf-accent-strong: #0c330c;
    --mf-accent-soft: rgba(18, 70, 18, .08);
    --mf-accent-line: rgba(18, 70, 18, .22);
}

/*
 * Warstwa motywu WordPress.
 * Wszystko, co w Ghoscie siedzialo w atrybutach style na elementach szablonu,
 * plus poprawki, ktore Ghost sam z siebie nie potrafil.
 */

/* ------------------------------------------------------------------ *
 * Tlo strony
 *
 * W Ghoscie tlo bylo wpisane inline w <body style="background:url(...)">
 * i konczylo sie twarda krawedzia dokladnie tam, gdzie konczyl sie obrazek.
 * Obrazek ma 1936x608, a screen.css skaluje go do 100% szerokosci okna,
 * wiec jego wysokosc to zawsze 31,4% szerokosci okna (608/1936).
 * Nakladamy wiec druga warstwe: gradient tej samej wysokosci, ktory wygasza
 * obrazek w biel jeszcze zanim ten sie skonczy. Zadnego odciecia nie widac.
 * Gradient jest celowo troche wyzszy niz obrazek - nadmiar maluje biel po bieli.
 * ------------------------------------------------------------------ */
body {
    background-image:
        linear-gradient(to bottom,
            rgba(255, 255, 255, 0) 0%,
            rgba(255, 255, 255, 0) 42%,
            rgba(255, 255, 255, 0.55) 74%,
            rgba(255, 255, 255, 0.92) 90%,
            #ffffff 97%),
        url('../images/bg-mf2.webp');
    background-size: 100vw 33vw, 100% !important;
    background-repeat: no-repeat, no-repeat !important;
    background-attachment: fixed, fixed !important;
    background-position: top center, top center !important;
    background-color: #ffffff;
}

/* ------------------------------------------------------------------ *
 * Ekspozycja obrazkow na kaflach i liscie artykulow
 *
 * Ghost wstawial obrazki bez kadrowania, wiec przy roznych proporcjach
 * karty mialy rozna wysokosc, a niektore zdjecia byly sciskane.
 * Stale proporcje i kadrowanie po srodku porzadkuja siatke.
 * ------------------------------------------------------------------ */

/* Lista artykulow */
.news-box .article-image {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    background: #f2f2f2;
    aspect-ratio: 16 / 9;
    margin: 0;
}
.news-box .article-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .45s cubic-bezier(.2, .6, .2, 1);
}
.news-box .post-card-image-link {
    display: block;
    max-height: none;
    border-radius: 10px;
    overflow: hidden;
}
.news-box:hover .article-image img {
    transform: scale(1.045);
}
.news-box {
    transition: box-shadow .25s ease, transform .25s ease;
}
.news-box:hover {
    box-shadow: 0 6px 18px 0 rgba(90, 90, 90, .18);
}

/* Karty w bocznej kolumnie (Informacje prasowe) */
.content-sidebar .post-card-image-link {
    display: block;
    aspect-ratio: 16 / 9;
    max-height: none;
    background: #f2f2f2;
}
.content-sidebar .post-card-image-link img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .45s cubic-bezier(.2, .6, .2, 1);
}
.content-sidebar .post-card:hover .post-card-image-link img {
    transform: scale(1.05);
}

/* Kafle "Polecane" - czytelniejszy tytul i delikatna reakcja na najechanie */
.featured-box {
    overflow: hidden;
    transition: transform .3s ease, box-shadow .3s ease;
}
.featured-box:after {
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: 62%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .72) 100%);
    pointer-events: none;
    z-index: 1;
}
.featured-box h3 {
    position: relative;
    z-index: 2;
}
.featured-box:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 24px 0 rgba(60, 60, 60, .28);
}

/* Podobne artykuly */
.similar-image {
    overflow: hidden;
    border-radius: 10px;
    background: #f2f2f2;
    aspect-ratio: 16 / 9;
}
.similar-image a,
.similar-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s cubic-bezier(.2, .6, .2, 1);
}
.similar-post:hover .similar-image img {
    transform: scale(1.05);
}

/* Obrazek wiodacy artykulu */
.article-header .article-image {
    border-radius: 12px;
    overflow: hidden;
    background: #f2f2f2;
}
.article-header .article-image img {
    display: block;
    width: 100%;
    height: auto;
}

/* Slajder */
.slide-box img {
    object-fit: cover;
}

@media (prefers-reduced-motion: reduce) {
    .news-box .article-image img,
    .content-sidebar .post-card-image-link img,
    .similar-image img,
    .featured-box,
    .news-box {
        transition: none !important;
        transform: none !important;
    }
}

/* ------------------------------------------------------------------ *
 * Spis tresci w bocznym pasku artykulu
 * ------------------------------------------------------------------ */

.mf-toc {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 0 4px 2px rgba(181, 181, 181, .1);
    padding: 18px 16px 14px;
    margin: 10px 0 18px 10px;
    color: #3b3a3a;
    font-size: 14px;
    line-height: 1.45;
}

.mf-toc-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.mf-toc-title {
    font-family: 'bold', sans-serif;
    font-size: 15px;
    letter-spacing: .01em;
    margin: 0;
}

/* WCAG: #8b8b8b na bieli daje 3,41:1 przy 12 px. Ciemniejszy odcien wchodzi na 4,6:1. */
.mf-toc-count {
    font-size: 12px;
    color: #6b6b6b;
    white-space: nowrap;
}

/*
 * screen.css ustawia "nav ul { display:flex }" dla menu glownego, a spis tresci
 * tez jest elementem nav - bez tego pozycje ustawialy sie w rzad i znikaly.
 */
.mf-toc ul.mf-toc-list {
    display: block;
    flex-direction: initial;
    list-style: none;
}
.mf-toc ul.mf-toc-list li {
    display: block;
}

/* Pasek postepu czytania wewnatrz spisu */
.mf-toc-progress {
    height: 3px;
    border-radius: 3px;
    background: #ececec;
    overflow: hidden;
    margin-bottom: 12px;
}
.mf-toc-progress span {
    display: block;
    height: 100%;
    width: 0;
    background: var(--mf-accent);
    border-radius: 3px;
    transition: width .12s linear;
}

.mf-toc-list {
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
}

/* Pionowa linia prowadzaca, po niej jedzie znacznik aktywnej sekcji */
.mf-toc-list:before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 2px;
    background: #ececec;
    border-radius: 2px;
}

.mf-toc-list li {
    margin: 0 0 2px;
    padding: 0;
}

/*
 * Znacznik aktywnej sekcji lezy DOKLADNIE na linii prowadzacej.
 * Wczesniej byl to border-left z ujemnym marginesem, wiec mijal sie z linia
 * o pol piksela i przy zaokragleniu tla wygladalo to na krzywe nachodzenie.
 * Teraz linia i znacznik maja te sama pozycje (left:0) i te sama szerokosc,
 * a tlo jest zaokraglone tylko od strony tekstu.
 */
.mf-toc-list a {
    position: relative;
    display: block;
    padding: 6px 8px 6px 16px;
    border-radius: 0 8px 8px 0;
    color: #4a4a4a;
    text-decoration: none;
    transition: background .15s ease, color .15s ease;
}

.mf-toc-list a:before {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    bottom: 3px;
    width: 2px;
    border-radius: 2px;
    background: transparent;
    transition: background .15s ease;
}

.mf-toc-list a:hover {
    background: var(--mf-accent-soft);
    color: #1d1d1d;
}

.mf-toc-list .mf-toc-h3 a {
    padding-left: 24px;
    font-size: 13px;
    color: #6f6f6f;
}

.mf-toc-list li.is-active > a {
    color: var(--mf-accent);
    background: var(--mf-accent-soft);
    font-family: 'bold', sans-serif;
}

.mf-toc-list li.is-active > a:before {
    background: var(--mf-accent);
}

.mf-toc-list li.is-read > a {
    color: #9a9a9a;
}

.mf-toc-list li.is-read > a:before {
    background: #dcdcdc;
}

/* Przelacznik dla waskich ekranow */
.mf-toc-toggle {
    display: none;
    cursor: pointer;
    background: none;
    border: 0;
    padding: 4px;
    font: inherit;
    color: #6f6f6f;
    line-height: 1;
}
.mf-toc-toggle svg {
    transition: transform .2s ease;
}
.mf-toc.is-collapsed .mf-toc-toggle svg {
    transform: rotate(-90deg);
}
.mf-toc.is-collapsed .mf-toc-body {
    display: none;
}

@media (max-width: 1100px) {
    .main-container {
        flex-direction: column;
    }
    .sidebar-promo {
        width: 100%;
        position: static;
    }
    .sidebar-promo-inner {
        max-width: 100%;
    }
    .mf-toc {
        margin-left: 0;
        order: -1;
    }
    .mf-toc-toggle {
        display: block;
    }
    .mf-toc-progress {
        display: none;
    }
}

/* ------------------------------------------------------------------ *
 * Slajder na stronie glownej
 *
 * Ghost przelaczal slajdy przez display:none, wiec zmiana byla skokowa,
 * kropki nie reagowaly na klikniecie, a przewijanie nie dalo sie zatrzymac.
 * Tutaj: przenikanie, powolny najazd kadru, sterowanie strzalkami, kropkami,
 * klawiatura i gestem, pauza przy najechaniu i przy ukrytej karcie.
 * ------------------------------------------------------------------ */

.slides {
    aspect-ratio: 88 / 45;
    height: auto;
}

.slideshow-container {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 12px;
}

.slide-box {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity .7s cubic-bezier(.4, 0, .2, 1);
    pointer-events: none;
}

.slide-box.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 2;
}

.slide-box .mySlides {
    display: block !important;
    width: 100%;
    height: 100%;
    position: relative;
}

.slide-box .mySlides img {
    width: 100% !important;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.02);
    transition: transform 7s linear;
}

.slide-box.is-active .mySlides img {
    transform: scale(1.08);
}

/*
 * Tytul slajdu lezy na gradiencie, ale przy jasnym zdjeciu i tak potrafil
 * zniknac. Cien i mocniejsze przyciemnienie u dolu daja czytelnosc niezaleznie
 * od kadru.
 */
.slides:after {
    height: 55%;
}
.slide-box .text {
    text-shadow: 0 2px 10px rgba(0, 0, 0, .65), 0 1px 2px rgba(0, 0, 0, .5);
}

/* Strzalki */
.mf-slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(20, 20, 20, .55);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity .25s ease, background .2s ease, transform .2s ease;
}
.slides:hover .mf-slider-arrow,
.mf-slider-arrow:focus-visible {
    opacity: 1;
}
.mf-slider-arrow:hover {
    background: rgba(20, 20, 20, .8);
}
.mf-slider-arrow:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 2px;
}
.mf-slider-prev { left: 12px; }
.mf-slider-next { right: 12px; }

/* Kropki jako paski z odliczaniem */
.slider-dots {
    gap: 8px;
}
.slider-dots .dot {
    position: relative;
    width: 34px;
    height: 4px;
    border-radius: 4px;
    background: rgba(255, 255, 255, .45);
    border: 0;
    padding: 0;
    cursor: pointer;
    overflow: hidden;
    transition: width .3s ease, background .3s ease;
}
.slider-dots .dot:hover {
    background: rgba(255, 255, 255, .75);
}
.slider-dots .dot:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}
.slider-dots .dot.active {
    width: 62px;
    background: rgba(255, 255, 255, .35);
}
.slider-dots .dot span {
    position: absolute;
    inset: 0 auto 0 0;
    width: 0;
    background: #fff;
    border-radius: 4px;
}
.slider-dots .dot.active span {
    animation: mf-dot-fill var(--mf-slide-time, 6s) linear forwards;
}
@keyframes mf-dot-fill {
    from { width: 0; }
    to { width: 100%; }
}
.slides.is-paused .slider-dots .dot.active span {
    animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
    .slide-box { transition: none; }
    .slide-box .mySlides img,
    .slide-box.is-active .mySlides img { transition: none; transform: none; }
    .slider-dots .dot.active span { animation: none; width: 100%; }
}

/* ------------------------------------------------------------------ *
 * Tagi pod artykulem
 *
 * Byly to prostokaty z zielona obwodka i wypelnieniem tylko od gory
 * (padding-top bez padding-bottom), wiec tekst siedzial krzywo.
 * Teraz sa to rowne pigulki z czytelnym kontrastem i reakcja na najechanie.
 * ------------------------------------------------------------------ */

.author-info .main-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed #d8d8d8;
}

.mf-tags-label {
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6b6b6b;
    margin-right: 2px;
}

.post-template .main-tags a,
.page-template .main-tags a {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--mf-accent-line);
    background: var(--mf-accent-soft);
    color: var(--mf-accent);
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 12px;
    line-height: 1.3;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.post-template .main-tags a:hover,
.page-template .main-tags a:hover {
    background: var(--mf-accent);
    border-color: var(--mf-accent);
    color: #fff;
}

/*
 * Nazwisko autora bylo w kolorze #c2edff - jasny blekit na bieli, czyli okolo
 * 1,3:1. Praktycznie niewidoczne i twardy blad dostepnosci.
 */
.author-list-item a {
    color: #1d1d1d;
    font-family: 'bold', sans-serif;
    text-decoration: none;
}
.author-list-item a:hover {
    color: var(--mf-accent);
}
.author-list-item p {
    margin: 4px 0 0;
    color: #5a5a5a;
    font-size: 13px;
    line-height: 1.5;
}
.author-profile-image {
    border-radius: 50%;
    object-fit: cover;
}

/* ------------------------------------------------------------------ *
 * Podobne artykuly - zawsze trzy rowne kafle
 * ------------------------------------------------------------------ */

.similar-posts {
    margin-bottom: 2em;
}

.similar-posts-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    align-items: stretch;
}

.similar-post {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(30, 30, 30, .06), 0 6px 16px rgba(30, 30, 30, .05);
    transition: box-shadow .25s ease, transform .25s ease;
    height: 100%;
    flex-basis: auto !important;
}
.similar-post:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 10px rgba(30, 30, 30, .08), 0 14px 30px rgba(30, 30, 30, .12);
}

.similar-post .similar-image {
    border-radius: 0;
    max-height: none;
    position: relative;
}

/* Pigulka z glownym tagiem na kadrze */
.similar-post-tag {
    position: absolute;
    left: 10px;
    bottom: 10px;
    z-index: 2;
    background: rgba(20, 20, 20, .78);
    color: #fff;
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 999px;
    backdrop-filter: blur(2px);
}

.similar-post-inner {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1 1 auto;
    width: auto;
}

.similar-post-inner h3 {
    margin: 0;
    font-size: 16px;
    line-height: 1.35;
    /* Dwie linie w kazdej karcie, zeby rzad byl rowny. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.similar-post-inner h3 a {
    color: #1d1d1d;
    text-decoration: none;
}
.similar-post:hover .similar-post-inner h3 a {
    color: var(--mf-accent);
}

.similar-post-inner p {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: #5a5a5a;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.similar-post-meta {
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid #f0f0f0;
    font-size: 12px;
    color: #6b6b6b;
}

/* Oddech miedzy belka naglowka a kaflami - screen.css zerowal ten odstep. */
html body .similar-posts .headbar {
    margin-bottom: 22px;
}
html body .similar-posts .similar-posts-list {
    padding-top: 4px;
}

/* Naglowek sekcji - ten sam jezyk co reszta serwisu, tylko domkniety */
.similar-posts .headbar-inner {
    border-radius: 6px 6px 0 0;
}
.similar-posts .headbar > div:last-child a {
    font-size: 13px;
    color: #4a4a4a;
    text-decoration: none;
}
.similar-posts .headbar > div:last-child a:hover {
    color: var(--mf-accent);
    text-decoration: underline;
}

@media (max-width: 900px) {
    .similar-posts-list {
        grid-template-columns: 1fr;
    }
}

/* ------------------------------------------------------------------ *
 * Dostepnosc
 * ------------------------------------------------------------------ */

/* Widoczny fokus klawiatury wszedzie, gdzie da sie wejsc tabem. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 3px solid var(--mf-accent);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Skrot do tresci dla czytnikow ekranu i klawiatury. */
.mf-skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 999;
    padding: 10px 16px;
    background: #1d1d1d;
    color: #fff;
    border-radius: 0 0 6px 0;
}
.mf-skip-link:focus {
    left: 0;
}

.mf-visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ------------------------------------------------------------------ *
 * Glosowanie w bocznej kolumnie
 * ------------------------------------------------------------------ */

.sidebar-box.poll {
    padding: 0;
}

/* ================================================================== *
 * TYPOGRAFIA
 *
 * Motyw deklarowal dwa kroje pod nazwami "regular" i "bold", bez wag, bez
 * zapasowego stosu i bez skali. Efekt: gdy font sie nie zaladowal, przegladarka
 * podstawiala domyslna szeryfowa o innych proporcjach i uklad skakal, a bold
 * bywal dorabiany sztucznie.
 *
 * Tutaj: jedna rodzina Poppins z prawdziwymi wagami 400 i 700, zapasowy stos
 * o zblizonych proporcjach, skala plynna (clamp) i ustawienia czytelnosci
 * zgodne z WCAG - interlinia 1,5 dla tresci, dlugosc wiersza w okolicy 70 znakow,
 * odstepy miedzy akapitami wieksze niz polowa interlinii.
 * ================================================================== */

@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/Poppins-Regular.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/Poppins-Bold.woff2') format('woff2');
}

:root {
    --mf-font: 'Poppins', 'regular', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --mf-font-bold: 'Poppins', 'bold', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --mf-ink: #26292e;
    --mf-ink-soft: #55595f;
    --mf-ink-faint: #62676d;
}

/*
 * UWAGA na przyszlosc: motyw ustawia html { font-size: 62.5% }, czyli 1rem = 10 px,
 * a rozmiary skladu liczy w em od tej bazy. Rozmiary w rem wychodza wiec o 37%
 * za male, a podniesienie bazy rozwala uklad. W tym pliku uzywamy pikseli.
 * Motyw jest zbudowany na jednostkach em liczonych od tej bazy, a kafle "Polecane" i slajder maja sztywne wysokosci.
 * Podniesienie bazy rozwala uklad - tytuly wychodza poza kafle. Baza zostaje 16 px,
 * a typografia dotyka wylacznie tresci artykulu i wlasnych komponentow.
 */
html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

html body {
    font-family: var(--mf-font);
    /* Bez dorabiania pochylenia i pogrubienia z kroju regularnego. */
    font-synthesis: none;
}

/* Wlasne komponenty korzystaja z realnej wagi 700, nie z osobnego kroju. */
html body .mf-card-title,
html body .mf-toc-title,
html body .mf-poll-question,
html body .mf-poll-result-percent {
    font-family: var(--mf-font-bold);
    font-weight: 700;
    letter-spacing: -.005em;
}

html body .mf-card-title,
html body .article-title {
    /* Tytul lamie sie na rowne wiersze zamiast zostawiac sierote w ostatnim. */
    text-wrap: balance;
}

/* Tresc artykulu: interlinia i dlugosc wiersza pod WCAG. Rozmiaru NIE ruszamy. */
html body .gh-content {
    line-height: 1.65;
    max-width: 72ch;
    margin-left: auto;
    margin-right: auto;
    overflow-wrap: break-word;
    hyphens: auto;
}

html body .gh-content p {
    line-height: 1.65;
    margin-bottom: 1.1em;
    text-wrap: pretty;
}

html body .gh-content li {
    line-height: 1.6;
}

/* Metryczka pod tytulem - WCAG wymaga 4,5:1, wiec ciemniejszy szary. */
html body .byline-meta-content {
    color: var(--mf-ink-faint);
    font-variant-numeric: tabular-nums;
}

html body .mf-card-meta {
    font-variant-numeric: tabular-nums;
}

/*
 * WCAG 1.4.12: uzytkownik moze wymusic wieksze odstepy, wiec nic w tresci
 * nie moze miec sztywnej wysokosci, ktora by wtedy ucinala tekst.
 */
html body .gh-content p,
html body .gh-content li,
html body .mf-toc-list a {
    max-height: none;
}

/* ================================================================== *
 * KAFEL ARTYKULU - jeden komponent na caly serwis
 *
 * Lista aktualnosci, archiwum tagu, boczna kolumna i "Podobne artykuly"
 * korzystaja z tego samego kafla. Wczesniej kazde z tych miejsc mialo wlasny
 * markup i wlasne style, wiec ten sam wpis wygladal inaczej w kazdym z nich.
 * ================================================================== */

.mf-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    /* Rowne wiersze - inaczej kafel z krotszym tytulem robi dziure w siatce. */
    grid-auto-rows: 1fr;
    gap: 20px;
    align-items: stretch;
}

/* Sekcja "Podobne artykuly" na pelnej szerokosci - stale cztery kolumny */
.mf-card-grid--4 {
    grid-template-columns: repeat(4, 1fr);
}

/* Boczna kolumna: jedna karta na wiersz */
.content-sidebar .mf-card-grid,
.content-sidebar .post-feed {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

html body .mf-card {
    display: flex;
    flex-direction: column;
    background: var(--mf-surface);
    border: 1px solid var(--mf-hairline);
    border-radius: var(--mf-radius);
    overflow: hidden;
    box-shadow: var(--mf-shadow) !important; /* screen.css wymusza "article { box-shadow: unset !important }" */
    transition: box-shadow .25s ease, transform .25s ease;
    height: 100%;
    /*
     * screen.css ma ".post-template article { width: 70% }" - regula pisana pod
     * glowna kolumne tresci, ale trafia w kazdy <article> na stronie wpisu,
     * wiec kafle w siatce kurczyly sie do 70% komorki.
     */
    width: auto;
    flex-basis: auto !important;
    padding: 0;
    margin: 0;
    max-height: none;
    color: #3b3a3a;
}

html body .mf-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--mf-shadow-raised) !important;
}

/*
 * Kadr trzyma proporcje sam z siebie, a nie z obrazka w srodku.
 * Gdy zawartosc byla w normalnym przeplywie, kafle z obrazkiem ladowanym
 * leniwie mialy kadr o wysokosci 0 az do momentu wczytania - dzialal tylko
 * pierwszy kafel, bo jego obrazek leci priorytetowo. Bezwzgledne pozycjonowanie
 * dziecka usuwa te zaleznosc i przy okazji kasuje przeskok ukladu.
 */
.mf-card-media {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #f2f2f2;
    overflow: hidden;
    flex: 0 0 auto;
    width: 100%;
}

.mf-card-media a {
    position: absolute;
    inset: 0;
    display: block;
}

.mf-card-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .45s cubic-bezier(.2, .6, .2, 1);
}

.mf-card:hover .mf-card-media img {
    transform: scale(1.05);
}

.mf-card-tag {
    position: absolute;
    left: 10px;
    bottom: 10px;
    z-index: 2;
    background: rgba(20, 20, 20, .8);
    color: #fff;
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 999px;
    max-width: calc(100% - 20px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mf-card-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px 16px;
    flex: 1 1 auto;
}

.mf-card-title {
    margin: 0;
    font-family: 'bold', sans-serif;
    font-size: 16px;
    line-height: 1.35;
    letter-spacing: -.005em;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.mf-card-title a {
    color: #1d1d1d;
    text-decoration: none;
}

.mf-card:hover .mf-card-title a {
    color: var(--mf-accent);
}

.mf-card-excerpt {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: #55595f;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.mf-card-meta {
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px solid #f0f0f0;
    font-size: 12px;
    color: #62676d;
    font-variant-numeric: tabular-nums;
}

.mf-card--compact .mf-card-body {
    padding: 12px 14px 14px;
}
.mf-card--compact .mf-card-title {
    font-size: 15px;
    -webkit-line-clamp: 3;
}

/* ------------------------------------------------------------------ *
 * Wariant listy - boczna kolumna ("Informacje prasowe")
 *
 * To inna sekcja niz siatka kafli i musi wygladac inaczej. Pelna karta
 * z kadrem, obwodka i cieniem lezala tu w bialym pudelku sekcji, czyli
 * biala karta na bialej karcie, a w 288 px robilo sie po prostu ciasno.
 * Zamiast tego zwykla lista: mala miniatura z lewej, tytul i data z prawej,
 * pozycje rozdzielone wlosowa linia.
 * ------------------------------------------------------------------ */

html body .mf-card--list {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    width: 100%;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none !important;
    padding: 14px 0;
    margin: 0;
    height: auto;
}

html body .mf-card--list:hover {
    transform: none;
    box-shadow: none !important;
}

html body .mf-card--list + .mf-card--list {
    border-top: 1px solid #ececec;
}

.mf-card--list .mf-card-thumb {
    display: block;
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    overflow: hidden;
    background: #f2f2f2;
}

.mf-card--list .mf-card-thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s cubic-bezier(.2, .6, .2, 1);
}

.mf-card--list:hover .mf-card-thumb img {
    transform: scale(1.06);
}

.mf-card--list .mf-card-body {
    padding: 0;
    gap: 4px;
    justify-content: flex-start;
}

.mf-card--list .mf-card-title {
    font-size: 14px;
    line-height: 1.35;
    -webkit-line-clamp: 3;
}

.mf-card--list .mf-card-meta {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
    font-size: 11px;
}

/* Pudelko sekcji w bocznej kolumnie: tekst do lewej, nie na srodek. */
html body .content-sidebar .sidebar-box {
    align-items: stretch;
    padding: 16px 16px 6px;
}
html body .content-sidebar .sidebar-box > h2 {
    margin: 0 0 6px;
    font-size: 16px;
    text-align: left;
}
html body .content-sidebar .post-feed {
    display: block;
    width: 100%;
}

.mf-empty {
    padding: 24px;
    color: #55595f;
}

@media (max-width: 1000px) {
    .mf-card-grid--4 {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 620px) {
    .mf-card-grid,
    .mf-card-grid--4 {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    html body .mf-card,
    .mf-card-media img {
        transition: none;
        transform: none;
    }
}

/* ================================================================== *
 * JEDEN JEZYK POWIERZCHNI
 *
 * Przed ujednoliceniem kontenery mialy cztery rozne promienie (6, 7, 10, 12 px),
 * dwa rozne cienie i czesc z nich nie miala ani obwodki, ani cienia - przez co
 * jedne karty "unosily sie" nad tlem, a inne wtapialy sie w nie.
 *
 * Zamiast mocnych cieni: wlosowa obwodka, ktora rysuje krawedz karty, plus
 * bardzo miekki cien, ktory tylko odrywa ja od tla. Uniesienie zostaje wylacznie
 * tam, gdzie da sie kliknac - wtedy cien niesie informacje, a nie ozdobe.
 *
 * Selektory sa poprzedzone "body" tylko po to, zeby wygrac z regulami motywu
 * bez uzywania !important.
 * ================================================================== */

:root {
    --mf-surface: #ffffff;
    --mf-radius: 12px;
    --mf-radius-sm: 8px;
    --mf-hairline: rgba(23, 23, 23, .07);
    --mf-hairline-dark: rgba(255, 255, 255, .14);
    --mf-shadow: 0 1px 2px rgba(23, 23, 23, .04), 0 6px 18px rgba(23, 23, 23, .05);
    --mf-shadow-raised: 0 2px 6px rgba(23, 23, 23, .07), 0 14px 32px rgba(23, 23, 23, .10);
}

/* Powierzchnie jasne */
html body .article,
html body .news-box,
html body .sidebar-box,
html body .mf-toc,
html body .mf-poll,
html body .similar-post,
html body .content-box {
    background: var(--mf-surface);
    border: 1px solid var(--mf-hairline);
    border-radius: var(--mf-radius);
    box-shadow: var(--mf-shadow);
}

/* Uniesienie tylko tam, gdzie karta jest klikalna */
html body .news-box:hover,
html body .similar-post:hover,
html body .featured-box:hover {
    box-shadow: var(--mf-shadow-raised);
}

html body .mf-toc:hover,
html body .mf-poll:hover,
html body .article:hover,
html body .sidebar-box:hover {
    box-shadow: var(--mf-shadow);
}

/* Powierzchnie ciemne i obrazkowe - ta sama geometria, obwodka rozjasniona */
html body .featured-box,
html body .slides {
    border: 1px solid var(--mf-hairline-dark);
    border-radius: var(--mf-radius);
    box-shadow: var(--mf-shadow);
    overflow: hidden;
}

/* Ghost rysowal na kaflu druga, wewnetrzna ramke. Przy wlosowej obwodce
   to juz tylko szum, wiec ja wygaszamy. */
html body .featured-box:before {
    display: none;
}

/* Elementy wpuszczone w krawedz karty musza miec ten sam promien od gory */
html body .similar-post .similar-image,
html body .news-box .post-card-image-link,
html body .content-sidebar .post-card-image-link {
    border-radius: var(--mf-radius-sm);
}
html body .similar-post .similar-image {
    border-radius: calc(var(--mf-radius) - 1px) calc(var(--mf-radius) - 1px) 0 0;
}

/* Naglowek sekcji i plakietki - ten sam promien co karty */
html body .headbar-inner {
    border-radius: var(--mf-radius) var(--mf-radius) 0 0;
}
html body .ip-bar {
    border-radius: 0 0 var(--mf-radius-sm) 0;
}
html body .article-header .article-image,
html body .slide-box .mySlides img {
    border-radius: var(--mf-radius-sm);
}
html body .slide-box .mySlides img {
    border-radius: 0;
}

/* Wewnetrzne odstepy karty artykulu - bez tego tresc dotyka obwodki */
html body .article {
    padding: 0 20px 24px;
}
html body .main-container article {
    padding-right: 20px;
}

@media (prefers-reduced-motion: reduce) {
    html body .news-box,
    html body .similar-post,
    html body .featured-box {
        transition: none;
    }
}

/*
 * Karta artykulu to element <article>, a screen.css wymusza na nim
 * "box-shadow: unset !important". To jedyne miejsce, gdzie musimy odpowiedziec
 * tym samym - inaczej glowna kolumna tresci jako jedyna nie ma cienia.
 */
html body article.article {
    box-shadow: var(--mf-shadow) !important;
}

/* ------------------------------------------------------------------ *
 * Paginacja
 *
 * screen.css daje cien karty na ".pagi div:first-child", ale ten element ma
 * zerowa wysokosc - efekt to smuga cienia na calej szerokosci tuz nad stopka,
 * bez zadnego widocznego pudelka. Cien zdejmujemy z pustego kontenera
 * i przenosimy na sama paginacje, ktora staje sie normalna karta.
 * ------------------------------------------------------------------ */

html body .pagi {
    margin: 6px auto 28px;
}

html body .pagi > div:first-child {
    box-shadow: none;
    background: none;
    border: 0;
    padding: 0;
    width: 100%;
}

html body .pagi .pagination {
    position: static;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    padding: 14px 18px;
    background: var(--mf-surface);
    border: 1px solid var(--mf-hairline);
    border-radius: var(--mf-radius);
    box-shadow: var(--mf-shadow);
    font-size: 14px;
}

html body .pagi .page-number {
    color: var(--mf-ink-faint);
    font-size: 13px;
}

html body .pagi .pagination a {
    color: var(--mf-accent);
    text-decoration: none;
    font-family: var(--mf-font-bold);
    font-weight: 700;
    font-size: 14px;
    padding: 6px 12px;
    border-radius: 8px;
    transition: background .15s ease;
}

html body .pagi .pagination a:hover {
    background: var(--mf-accent-soft);
}

/* Gdy jest tylko jeden kierunek, licznik zostaje na srodku. */
html body .pagi .pagination .newer-posts { order: 1; }
html body .pagi .pagination .page-number { order: 2; margin: 0 auto; }
html body .pagi .pagination .older-posts { order: 3; }

/* ------------------------------------------------------------------ *
 * Bez kafla w kaflu
 *
 * Pudelko sekcji w bocznej kolumnie samo jest juz karta. Komponent, ktory
 * do niego wchodzi, nie moze przynosic drugiego tla, obwodki i cienia -
 * wychodzi z tego biala ramka w bialej ramce. Chrome nalezy do pudelka
 * sekcji, zawartosc jest plaska.
 * ------------------------------------------------------------------ */

html body .sidebar-box .mf-poll,
html body .content-box .mf-poll {
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none !important;
    padding: 0;
}

html body .sidebar-box.poll {
    padding: 18px 16px 16px;
    align-items: stretch;
}

/* "Nasze serie": pozycje to linki, a nie osobne karty. */
html body .content-box .insider-box {
    display: block;
    border: 0;
    background: var(--mf-accent-soft);
    border-radius: 10px;
    padding: 12px 14px;
    margin: 0 0 8px;
    color: var(--mf-accent);
    text-decoration: none;
    text-align: left;
    line-height: 1.4;
    box-shadow: none;
    transition: background .15s ease, color .15s ease;
}

html body .content-box .insider-box:hover {
    background: var(--mf-accent);
    color: #fff;
}

html body .content-box {
    align-items: stretch;
    padding: 18px 16px 10px;
}

html body .content-box h3 {
    margin: 0 0 12px;
    text-align: left;
    font-size: 16px;
}

/* ================================================================== *
 * NAGLOWEK I MENU
 *
 * Geometria zostaje taka jak byla (wysokosc 96 px, te same odstepy),
 * zmienia sie zachowanie i jezyk wizualny: naglowek zostaje na wierzchu
 * przy przewijaniu, aktywna pozycja ma podkreslenie w kolorze marki,
 * a najechanie daje delikatne zielone tlo zamiast szarej plamy.
 * ================================================================== */

/*
 * screen.css ma regule ".post-template header, .post-template footer { margin-top: 20px }"
 * pisana pod naglowek artykulu, ale trafia w KAZDY <header> na stronie wpisu,
 * czyli tez w naglowek serwisu. Przy naglowku przyklejonym te 20 px odsuwa go
 * od krawedzi okna i miedzy nim a gora ekranu robi sie dziura.
 * Naglowek serwisu ma wygladac tak samo na kazdym typie strony.
 */
html body #site-header {
    margin-top: 0;
    padding: 15px 25px;
    width: 100%;
    box-sizing: border-box;
    text-align: initial;
}

@media (min-width: 768px) {
    html body #site-header {
        position: sticky;
        top: 0;
        z-index: 500;
        background: rgba(255, 255, 255, .88);
        -webkit-backdrop-filter: saturate(1.6) blur(12px);
        backdrop-filter: saturate(1.6) blur(12px);
        border-bottom: 1px solid transparent;
        transition: box-shadow .2s ease, border-color .2s ease, background .2s ease;
    }
    html body #site-header.is-stuck {
        border-bottom-color: var(--mf-hairline);
        box-shadow: 0 6px 20px rgba(23, 23, 23, .07);
    }
}

/* Menu zwija sie na waskich ekranach - tam naglowek zostaje w przeplywie. */
.mf-header-sentinel {
    height: 1px;
    margin-bottom: -1px;
}

html body #site-header nav ul.nav a {
    position: relative;
    border-radius: 10px;
    letter-spacing: .03em;
    transition: color .15s ease, background .15s ease;
}

/* Podkreslenie wjezdza od lewej, bez zmiany wysokosci naglowka. */
html body #site-header nav ul.nav a:after {
    content: '';
    position: absolute;
    left: 13px;
    right: 13px;
    bottom: 12px;
    height: 2px;
    border-radius: 2px;
    background: var(--mf-accent);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .22s cubic-bezier(.2, .6, .2, 1);
}

html body #site-header nav ul.nav a:hover,
html body #site-header nav ul.nav a:focus-visible {
    background: var(--mf-accent-soft);
    color: var(--mf-accent);
}

html body #site-header nav ul.nav a:hover:after,
html body #site-header nav ul.nav li.nav-current > a:after {
    transform: scaleX(1);
}

html body #site-header nav ul.nav li.nav-current > a {
    color: var(--mf-accent);
}

/* Wyszukiwarka w menu: ikona plus etykieta */
html body .mf-nav-search a {
    display: flex;
    align-items: center;
    gap: 7px;
}
html body .mf-nav-search svg {
    flex: 0 0 auto;
}
html body .mf-nav-search a:after {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    html body #site-header nav ul.nav a:after {
        transition: none;
    }
}

/* ------------------------------------------------------------------ *
 * Nakladka wyszukiwania
 * ------------------------------------------------------------------ */

/*
 * UWAGA: "display: flex" unieważnia atrybut hidden (regula UA to [hidden]{display:none}
 * o niskiej specyficznosci). Bez ponizszej reguly zamknieta nakladka byla
 * przezroczysta, ale rozciagnieta na cale okno - i przechwytywala KAZDE
 * klikniecie na stronie. Regula [hidden] musi zostac.
 */
.mf-search[hidden] {
    display: none !important;
    pointer-events: none;
}

.mf-search {
    position: fixed;
    inset: 0;
    z-index: 900;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 12vh 20px 20px;
}

.mf-search-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 22, 20, .45);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity .18s ease;
}

.mf-search-panel {
    position: relative;
    width: 100%;
    max-width: 620px;
    background: var(--mf-surface);
    border: 1px solid var(--mf-hairline);
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(20, 22, 20, .28);
    padding: 18px 18px 14px;
    opacity: 0;
    transform: translateY(-10px) scale(.985);
    transition: opacity .18s ease, transform .18s cubic-bezier(.2, .6, .2, 1);
}

.mf-search.is-open .mf-search-backdrop { opacity: 1; }
.mf-search.is-open .mf-search-panel { opacity: 1; transform: none; }

.mf-search form {
    display: flex;
    align-items: center;
    gap: 10px;
}

.mf-search-icon {
    flex: 0 0 auto;
    color: var(--mf-accent);
}

.mf-search input[type="search"] {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    outline: none;
    font: inherit;
    font-size: 17px;
    padding: 10px 4px;
    background: none;
    color: var(--mf-ink);
}

.mf-search input[type="search"]::placeholder {
    color: #8d9298;
}

.mf-search-submit {
    flex: 0 0 auto;
    border: 0;
    border-radius: 10px;
    background: var(--mf-accent);
    color: #fff;
    font: inherit;
    font-family: var(--mf-font-bold);
    font-weight: 700;
    font-size: 14px;
    padding: 10px 16px;
    cursor: pointer;
    transition: background .15s ease;
}
.mf-search-submit:hover { background: var(--mf-accent-strong); }

.mf-search-close {
    flex: 0 0 auto;
    border: 0;
    background: none;
    color: #6b6b6b;
    cursor: pointer;
    padding: 8px;
    border-radius: 8px;
    line-height: 0;
}
.mf-search-close:hover { background: #f0f0f0; color: var(--mf-ink); }

.mf-search-hint {
    margin: 10px 2px 0;
    font-size: 12px;
    color: var(--mf-ink-faint);
}
.mf-search-hint kbd {
    font: inherit;
    background: #f2f3f4;
    border: 1px solid #e2e4e6;
    border-radius: 5px;
    padding: 1px 6px;
}

/* Tlo nie przewija sie, gdy nakladka jest otwarta. */
html.mf-search-open body { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
    .mf-search-panel, .mf-search-backdrop { transition: none; }
}

/* ------------------------------------------------------------------ *
 * Stopka: linki do dokumentow formalnych
 *
 * screen.css daje ".powered" uklad "space-between" pod dwoje dzieci.
 * Trzecie dziecko wchodzi w srodek, a przy waskim ekranie caly pasek
 * zawija sie zamiast sciskac napisy do nieczytelnosci.
 * ------------------------------------------------------------------ */

html body .powered {
    flex-wrap: wrap;
    gap: 12px 24px;
    align-items: center;
}

html body .mf-footer-docs {
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
}

html body .mf-footer-docs a {
    color: var(--mf-ink-faint);
    text-decoration: none;
    font-size: 12px;
    border-bottom: 1px solid transparent;
    transition: color .15s ease, border-color .15s ease;
}

html body .mf-footer-docs a:hover,
html body .mf-footer-docs a:focus-visible {
    color: var(--mf-accent);
    border-bottom-color: currentColor;
}

/* ------------------------------------------------------------------ *
 * Dokumenty prawne (regulamin, polityka prywatnosci)
 *
 * Kreator oddaje dokument jako tabele w obcej kolorystyce (granat, czarne
 * ramki, Arial). Tresc zostaje co do slowa, ale warstwa wizualna jest nasza:
 * te same karty, ta sama zielen, ta sama typografia co reszta serwisu.
 *
 * Uklad sekcji: pudelko sekcji ma naglowek z ikona, zawartosc lezy plasko -
 * zadnej karty w karcie.
 * ------------------------------------------------------------------ */

html body .mf-doc {
    font-family: var(--mf-font);
    color: var(--mf-ink);
    font-size: 16px;
    line-height: 1.7;
    /*
     * Bez bocznej kolumny artykul ma 1200 px, a wiersz tekstu tej dlugosci
     * czyta sie zle. Dokument dostaje wiec wlasna miare i stoi na srodku -
     * tabele i tak maja o 30% wiecej miejsca niz przed zdjeciem sidebara.
     */
    max-width: 980px;
    margin: 0 auto;
}

/* Naglowek dokumentu */
html body .mf-doc-head {
    text-align: center;
    padding: 0 0 28px;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--mf-hairline);
}

html body .mf-doc-kicker {
    margin: 0 0 4px;
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--mf-accent);
}

html body .mf-doc-title {
    font-family: var(--mf-font-bold);
    font-size: 26px;
    line-height: 1.25;
    margin: 0 0 10px;
    color: var(--mf-ink);
}

html body .mf-doc-date {
    margin: 0;
    font-size: 13px;
    color: var(--mf-ink-faint);
}

/* Sekcja */
html body .mf-doc-sec {
    background: var(--mf-surface);
    border: 1px solid var(--mf-hairline);
    border-radius: var(--mf-radius);
    box-shadow: var(--mf-shadow);
    margin: 0 0 20px;
    overflow: hidden;
}

html body .mf-doc-sec-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 16px 22px;
    background: var(--mf-accent-soft);
    border-bottom: 1px solid var(--mf-accent-line);
    font-family: var(--mf-font-bold);
    font-size: 16px;
    line-height: 1.3;
    color: var(--mf-accent-strong);
    text-transform: none;
}

html body .mf-doc-ico {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--mf-accent);
}

html body .mf-doc-ico svg {
    width: 22px;
    height: 22px;
    display: block;
}

html body .mf-doc-sec-body {
    padding: 6px 22px 20px;
}

html body .mf-doc-sec-body p,
html body .mf-doc-sec-body li {
    font-size: 15px;
    line-height: 1.7;
}

html body .mf-doc-sec-body > p:first-child {
    margin-top: 14px;
}

html body .mf-doc-sec-body h4 {
    font-family: var(--mf-font-bold);
    font-size: 15px;
    margin: 26px 0 10px;
    color: var(--mf-ink);
}

html body .mf-doc-sec-body ul {
    padding-left: 20px;
}

html body .mf-doc-sec-body a {
    color: var(--mf-accent);
    text-decoration: underline;
    text-underline-offset: 2px;
}

html body .mf-doc-note {
    font-size: 13px;
    color: var(--mf-ink-faint);
    margin-top: 8px;
}

/* Tabele wewnatrz dokumentu */
html body .mf-doc-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--mf-hairline);
    border-radius: var(--mf-radius-sm);
    overflow: hidden;
    margin: 0 0 6px;
    font-size: 14px;
    line-height: 1.6;
}

html body .mf-doc-table th {
    background: var(--mf-accent-soft);
    color: var(--mf-accent-strong);
    font-family: var(--mf-font-bold);
    font-weight: 700;
    text-align: left;
    padding: 9px 14px;
    border-bottom: 1px solid var(--mf-hairline);
}

html body .mf-doc-table td {
    background: var(--mf-surface);
    padding: 11px 14px;
    vertical-align: top;
    border-bottom: 1px solid var(--mf-hairline);
}

html body .mf-doc-table--2 td {
    width: 50%;
}

html body .mf-doc-table--2 td + td {
    border-left: 1px solid var(--mf-hairline);
}

html body .mf-doc-table--dane td + td {
    border-left: 1px solid var(--mf-hairline);
}

html body .mf-doc-table--dane th + th {
    border-left: 1px solid var(--mf-hairline);
}

html body .mf-doc-table tr:last-child td,
html body .mf-doc-table tr:last-child th {
    border-bottom: 0;
}

/* Stopka dokumentu z numerem licencji */
html body .mf-doc-foot {
    margin-top: 26px;
    padding-top: 18px;
    border-top: 1px solid var(--mf-hairline);
    text-align: center;
}

html body .mf-doc-foot p {
    margin: 0;
    font-size: 12px;
    line-height: 1.7;
    color: var(--mf-ink-faint);
}

html body .mf-doc-foot a {
    color: inherit;
}

/*
 * Strona dokumentu: bez bocznej kolumny, bez metryki autora i bez
 * "Podobnych artykulow" - to dokument, nie wpis. Tresc bierze cala szerokosc.
 */
html body .main-container.mf-doc-page {
    display: block;
}

html body .mf-doc-page .article {
    width: 100%;
    max-width: 100%;
}

html body .mf-doc-page .gh-content {
    max-width: 100%;
}

/*
 * screen.css robi z <article> kolumnowy flex, wiec artykul bierze szerokosc
 * z najszerszego dziecka. Tabela o sztywnych kolumnach rozpychala przez to
 * caly uklad poza ekran telefonu, a strona i tak nie przewijala sie w poziomie.
 */
html body article.article {
    max-width: 100%;
}

html body .gh-content {
    overflow-x: auto;
}

@media (max-width: 767px) {
    html body .mf-doc-sec-head {
        padding: 14px 16px;
        font-size: 15px;
    }

    html body .mf-doc-sec-body {
        padding: 4px 16px 16px;
    }

    html body .mf-doc-title {
        font-size: 21px;
    }

    /* Dwukolumnowe warianty odpowiedzi staja jeden pod drugim. */
    html body .mf-doc-table--2,
    html body .mf-doc-table--2 tbody,
    html body .mf-doc-table--2 tr,
    html body .mf-doc-table--2 td,
    html body .mf-doc-table--2 th {
        display: block;
        width: auto;
    }

    html body .mf-doc-table--2 td + td {
        border-left: 0;
    }

    /* Tabela danych zostaje tabela, ale dostaje wlasny pasek przewijania. */
    html body .mf-doc-table--dane {
        display: block;
        overflow-x: auto;
    }
}
