/* ============================================================
   KOMUNIKATY WOOCOMMERCE - jeden styl w calym sklepie (2026-09-28)
   Ladowane przez mu-plugins/bm-komunikaty.php na kazdej stronie.

   zielony   = sukces      (.woocommerce-message: "dodano do koszyka", "koszyk zaktualizowany")
   czerwony  = blad        (.woocommerce-error: walidacja kasy, brak wariantu, bledy konta)
   granatowy = informacja  (.woocommerce-info)

   WYJATEK: pusty koszyk ('.woocommerce-info.cart-empty') to nie komunikat, tylko
   stan strony - ma wlasny projekt w koszyk.css (wysrodkowany szeryfowy napis
   na bialej karcie, bez ikony). Dlatego wszedzie ':not(.cart-empty)'.

   SELEKTOR 'body:not(#bmx-k)' celowo ma wage identyfikatora. Starsze
   reguly komunikatow siedza w produkt.css ('.bmx-pdp ...'), koszyk.css
   ('body.woocommerce-cart ...'), w arkuszu WooCommerce i w Oxygenie -
   ten plik ma je wygrac niezaleznie od kolejnosci ladowania, bez !important.
   ============================================================ */

body:not(#bmx-k) .woocommerce-message,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty),
body:not(#bmx-k) .woocommerce-error {
    --bmk: var(--navy, #0B2240);
    --bmk-bg: #F2F5F9;
    --bmk-line: #D9E0EA;
    --bmk-ikona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='4.2' r='1.2' fill='white'/%3E%3Cpath d='M8 7.2v5.3' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
    position: relative;
    box-sizing: border-box;
    width: 100%;
    margin: 0 0 22px;
    padding: 15px 20px 15px 56px;
    border: 1px solid var(--bmk-line);
    border-left: 3px solid var(--bmk); /* 3 px - jak ramki-podpowiedzi w serwisie (produkt.css, sklep.css, konto) */
    border-radius: var(--r-s, 12px);
    background: var(--bmk-bg);
    box-shadow: none;
    list-style: none;
    font-family: var(--sans, "Inter", sans-serif);
    font-size: .92rem;
    font-weight: 500;
    line-height: 1.5;
    color: var(--navy, #0B2240);
    text-align: left;
}

body:not(#bmx-k) .woocommerce-message {
    --bmk: #1E7A4B;
    --bmk-bg: #EEF7F1;
    --bmk-line: #CDE6D6;
    --bmk-ikona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.6 8.4l2.9 2.9 5.9-6.4' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

body:not(#bmx-k) .woocommerce-error {
    --bmk: var(--red, #DB0632);
    --bmk-bg: #FDF1F3;
    --bmk-line: #F5CAD3;
    --bmk-ikona: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 3.6v5.6' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='12.2' r='1.25' fill='white'/%3E%3C/svg%3E");
}

/* Ikona w kolku - zastepuje glif z czcionki WooCommerce. */
body:not(#bmx-k) .woocommerce-message::before,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty)::before,
body:not(#bmx-k) .woocommerce-error::before {
    content: "";
    display: block;
    position: absolute;
    top: 14px;
    left: 18px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--bmk) var(--bmk-ikona) center / 15px 15px no-repeat;
    font-family: inherit;
    line-height: 1;
}

/* Sukces i informacja: tekst + przyciski w jednym rzedzie, przyciski do prawej. */
body:not(#bmx-k) .woocommerce-message,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}

body:not(#bmx-k) .woocommerce-message::after,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty)::after { content: none; }

/* Bledy: lista, kazdy blad w osobnej linii, tekst w kolorze tresci
   (wczesniej czesc byla w kolorze odnosnika). */
body:not(#bmx-k) .woocommerce-error li {
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--navy, #0B2240);
}
body:not(#bmx-k) .woocommerce-error li + li { margin-top: 5px; }
body:not(#bmx-k) .woocommerce-error strong { font-weight: 600; color: inherit; }

/* W kasie kazdy blad jest odnosnikiem do swojego pola ('li > a[href="#pole"]').
   Podkreslenie calej listy wygladalo jak sciana linkow - pokazujemy je dopiero
   po najechaniu / przy fokusie. */
body:not(#bmx-k) .woocommerce-error li > a:not(.button) { text-decoration: none; }
body:not(#bmx-k) .woocommerce-error li > a:not(.button):hover,
body:not(#bmx-k) .woocommerce-error li > a:not(.button):focus-visible { text-decoration: underline; }

body:not(#bmx-k) .woocommerce-message a:not(.button),
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) a:not(.button),
body:not(#bmx-k) .woocommerce-error a:not(.button) {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Przyciski w banerze ("Zobacz koszyk" / "Kontynuuj zakupy"). */
body:not(#bmx-k) .woocommerce-message .button,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button {
    float: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 10px 18px;
    border: 1px solid var(--red, #DB0632);
    border-radius: 999px;
    background: var(--red, #DB0632);   /* primary: czerwone tlo, granatowy pedzel (design.md, Przyciski) */
    font-family: var(--sans, "Inter", sans-serif);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
    text-decoration: none;
    color: #fff;
    white-space: nowrap;

    /* PEDZEL - ten sam mechanizm co w pedzel.css ('.bmx-pedzel'); przyciskow
       WooCommerce nie da sie oznaczyc ta klasa (HTML generuje WC), wiec
       podpinamy je tu na tych samych tokenach. ZASADA (design.md, Przyciski):
       primary = czerwone tlo + granatowy pedzel, secondary = bez tla + granatowy pedzel.
       2026-09-28: poprawione - "Zobacz koszyk" byl granatowy z czerwonym pedzlem. */
    --bmx-farba: var(--navy, #0B2240);
    --bmx-tlo: var(--red, #DB0632);
    --bmx-tekst: #fff;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: color .3s var(--bmx-ease, ease) var(--bmx-zwloka-wyj, .45s),
                border-color .45s var(--bmx-ease, ease);
}

body:not(#bmx-k) .woocommerce-message .button::after,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        repeating-linear-gradient(112deg, rgba(255, 255, 255, .022) 0 2px, rgba(255, 255, 255, 0) 2px 11px),
        var(--bmx-farba);
    /* Zapasowa maska wpisana tu na wypadek strony bez pedzel.css - bez maski
       warstwa farby zakrylaby przycisk juz w spoczynku. */
    -webkit-mask-image: var(--bmx-brush, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 40' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 0 H170 Q184 4 168 8 Q186 13 170 17 Q188 21 169 25 Q185 29 167 33 Q182 36 172 40 H0 Z'/%3E%3Cellipse fill='white' cx='191' cy='6' rx='4.2' ry='2.4'/%3E%3Cellipse fill='white' cx='195' cy='19' rx='2.8' ry='1.7'/%3E%3Cellipse fill='white' cx='190' cy='31' rx='3.4' ry='2.1'/%3E%3Cellipse fill='white' cx='197.5' cy='26' rx='1.6' ry='1.1'/%3E%3Cellipse fill='white' cx='196' cy='11' rx='1.4' ry='1'/%3E%3C/svg%3E"));
            mask-image: var(--bmx-brush, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 40' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 0 H170 Q184 4 168 8 Q186 13 170 17 Q188 21 169 25 Q185 29 167 33 Q182 36 172 40 H0 Z'/%3E%3Cellipse fill='white' cx='191' cy='6' rx='4.2' ry='2.4'/%3E%3Cellipse fill='white' cx='195' cy='19' rx='2.8' ry='1.7'/%3E%3Cellipse fill='white' cx='190' cy='31' rx='3.4' ry='2.1'/%3E%3Cellipse fill='white' cx='197.5' cy='26' rx='1.6' ry='1.1'/%3E%3Cellipse fill='white' cx='196' cy='11' rx='1.4' ry='1'/%3E%3C/svg%3E"));
    -webkit-mask-size: 300% 100%;
            mask-size: 300% 100%;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: 100% center;
            mask-position: 100% center;
    transition: -webkit-mask-position 1.05s var(--bmx-walek, ease),
                        mask-position 1.05s var(--bmx-walek, ease);
}

body:not(#bmx-k) .woocommerce-message .button:hover::after,
body:not(#bmx-k) .woocommerce-message .button:focus-visible::after,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button:hover::after,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button:focus-visible::after {
    -webkit-mask-position: 0% center;
            mask-position: 0% center;
}
body:not(#bmx-k) .woocommerce-message .button:first-of-type,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button:first-of-type { margin-left: auto; }

body:not(#bmx-k) .woocommerce-message .button + .button,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button + .button {
    --bmx-farba: var(--navy, #0B2240);
    --bmx-tlo: transparent;
    border-color: rgba(11, 34, 64, .35);   /* secondary: bez tla, granatowy pedzel */
    background: transparent;
    color: var(--navy, #0B2240);
}

/* Wejscie: tlo zostaje spoczynkowe (pod farba), ramka w kolorze farby,
   napis bieleje po zwloce - jak w pedzel.css. */
body:not(#bmx-k) .woocommerce-message .button:hover,
body:not(#bmx-k) .woocommerce-message .button:focus-visible,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button:hover,
body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button:focus-visible {
    background-color: var(--bmx-tlo);
    border-color: var(--bmx-farba);
    color: var(--bmx-tekst);
    transition: color .3s var(--bmx-ease, ease) var(--bmx-zwloka-wej, .3s),
                border-color .45s var(--bmx-ease, ease);
}

@media (max-width: 640px) {
    body:not(#bmx-k) .woocommerce-message,
    body:not(#bmx-k) .woocommerce-info:not(.cart-empty),
    body:not(#bmx-k) .woocommerce-error { padding: 14px 16px 14px 52px; font-size: .88rem; }
    body:not(#bmx-k) .woocommerce-message::before,
    body:not(#bmx-k) .woocommerce-info:not(.cart-empty)::before,
    body:not(#bmx-k) .woocommerce-error::before { left: 15px; top: 13px; }
    body:not(#bmx-k) .woocommerce-message .button:first-of-type,
    body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button:first-of-type { margin-left: 0; }
    body:not(#bmx-k) .woocommerce-message .button,
    body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button { flex: 1 1 auto; }
}

@media (prefers-reduced-motion: reduce) {
    body:not(#bmx-k) .woocommerce-message .button::after,
    body:not(#bmx-k) .woocommerce-info:not(.cart-empty) .button::after { transition: none; }
}


/* ============================================================
   PUSTY KOSZYK - przycisk "Wroc do sklepu" (2026-09-28)
   Jedyna akcja na tym ekranie, a wygladala jak blady obrys (ramka 13%
   krycia, bez pedzla). Dostaje wzorzec PRZYCISKU GLOWNEGO koszyka -
   jak "Przejdz do platnosci" (koszyk.css): czerwona pigulka, granatowy
   pedzel, uniesienie o 2 px. Pedzel na tokenach z pedzel.css.
   ============================================================ */
body:not(#bmx-k).woocommerce-cart .return-to-shop a.button {
    --bmx-farba: var(--navy, #0B2240);
    --bmx-tlo: var(--red, #DB0632);
    --bmx-tekst: #fff;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    margin: 6px auto 0;
    padding: 16px 34px;
    border: 1px solid var(--red, #DB0632);
    border-radius: 999px;
    background: var(--red, #DB0632);
    font-family: var(--sans, "Inter", sans-serif);
    font-size: .735rem;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase;
    text-decoration: none;
    color: #fff;
    transition: color .3s var(--bmx-ease, ease) var(--bmx-zwloka-wyj, .45s),
                border-color .45s var(--bmx-ease, ease),
                transform .45s var(--bmx-ease, ease);
}

body:not(#bmx-k).woocommerce-cart .return-to-shop a.button::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        repeating-linear-gradient(112deg, rgba(255, 255, 255, .022) 0 2px, rgba(255, 255, 255, 0) 2px 11px),
        var(--bmx-farba);
    -webkit-mask-image: var(--bmx-brush, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 40' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 0 H170 Q184 4 168 8 Q186 13 170 17 Q188 21 169 25 Q185 29 167 33 Q182 36 172 40 H0 Z'/%3E%3Cellipse fill='white' cx='191' cy='6' rx='4.2' ry='2.4'/%3E%3Cellipse fill='white' cx='195' cy='19' rx='2.8' ry='1.7'/%3E%3Cellipse fill='white' cx='190' cy='31' rx='3.4' ry='2.1'/%3E%3Cellipse fill='white' cx='197.5' cy='26' rx='1.6' ry='1.1'/%3E%3Cellipse fill='white' cx='196' cy='11' rx='1.4' ry='1'/%3E%3C/svg%3E"));
            mask-image: var(--bmx-brush, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 40' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0 0 H170 Q184 4 168 8 Q186 13 170 17 Q188 21 169 25 Q185 29 167 33 Q182 36 172 40 H0 Z'/%3E%3Cellipse fill='white' cx='191' cy='6' rx='4.2' ry='2.4'/%3E%3Cellipse fill='white' cx='195' cy='19' rx='2.8' ry='1.7'/%3E%3Cellipse fill='white' cx='190' cy='31' rx='3.4' ry='2.1'/%3E%3Cellipse fill='white' cx='197.5' cy='26' rx='1.6' ry='1.1'/%3E%3Cellipse fill='white' cx='196' cy='11' rx='1.4' ry='1'/%3E%3C/svg%3E"));
    -webkit-mask-size: 300% 100%;
            mask-size: 300% 100%;
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: 100% center;
            mask-position: 100% center;
    transition: -webkit-mask-position 1.05s var(--bmx-walek, ease),
                        mask-position 1.05s var(--bmx-walek, ease);
}

body:not(#bmx-k).woocommerce-cart .return-to-shop a.button:hover,
body:not(#bmx-k).woocommerce-cart .return-to-shop a.button:focus-visible {
    background-color: var(--bmx-tlo);
    border-color: var(--bmx-farba);
    color: var(--bmx-tekst);
    transform: translateY(-2px);
    transition: color .3s var(--bmx-ease, ease) var(--bmx-zwloka-wej, .3s),
                border-color .45s var(--bmx-ease, ease),
                transform .45s var(--bmx-ease, ease);
}

body:not(#bmx-k).woocommerce-cart .return-to-shop a.button:hover::after,
body:not(#bmx-k).woocommerce-cart .return-to-shop a.button:focus-visible::after {
    -webkit-mask-position: 0% center;
            mask-position: 0% center;
}

@media (prefers-reduced-motion: reduce) {
    body:not(#bmx-k).woocommerce-cart .return-to-shop a.button,
    body:not(#bmx-k).woocommerce-cart .return-to-shop a.button::after { transition: none; }
}

/* Napis "Twoj koszyk aktualnie jest pusty" - projekt z koszyk.css (sekcja G)
   to sam wysrodkowany szeryfowy napis. Ogolna regula komunikatow koszyka
   (koszyk.css, sekcja 7: czerwona gorna krawedz + tlo) i ramka WooCommerce
   robily z niego pigulke z czerwonym paskiem (usterka zastana, sprzed 2026-09-28). */
body:not(#bmx-k).woocommerce-cart .woocommerce-info.cart-empty {
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    padding: 0;
}
