/* ==========================================================================
   FH ALINA - koszyk, kasa i konto (ekrany WooCommerce)

   Te trzy ekrany rysuje WooCommerce (koszyk i kasa blokami `wc-block-*`,
   konto klasycznymi formularzami), wiec nie przechodza przez nasze szablony.
   Stoja na JASNYM tle, a motyw jest ciemny - bez tego arkusza pola formularzy
   dziedziczyly ciemna palete z czasow, gdy sklep byl ciemny, i wychodzily
   czarnymi prostokatami. Przyciski brala na siebie paleta globalna
   WordPressa (`.wp-element-button`, granat #32373c) - stad zloty napis na
   granatowym tle w „Przejdź do płatności".
   ========================================================================== */

body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
    background: #f7f7f5;
}

/* ------------------------------------------------------- pas z tytulem */

/* Na ekranach sklepowych `main` idzie na calą szerokosc, a kontener 1140 px
   dostaje sama sekcja - dzieki temu pas z tytulem ciagnie sie od krawedzi do
   krawedzi bez sztuczek z `100vw` (te dokladaja poziomy suwak, gdy widac
   pasek przewijania). */
.woocommerce main.fha-tresc,
.woocommerce-page main.fha-tresc {
    width: 100%;
    margin: 0;
    padding: 0 0 var(--fha-luz);
}
.woocommerce .fha-ekran-sklepu,
.woocommerce-page .fha-ekran-sklepu {
    width: min(var(--fha-szer, 1140px), calc(100% - 48px));
    margin-inline: auto;
}

.fha-pas-tytulu {
    background: var(--fha-czarny, #090909);
    padding: 34px 0;
    margin-bottom: 8px;
}
.fha-pas-tytulu h1 {
    width: min(var(--fha-szer, 1140px), calc(100% - 48px));
    margin: 0 auto;
    color: var(--fha-zloty, #e4b85f);
    font-family: 'Gotu', Georgia, serif;
    font-size: clamp(28px, 3.2vw, 40px);
    line-height: 1.25;
}

/* ------------------------------------------------------------ typografia */

.woocommerce main.fha-tresc h2,
.woocommerce main.fha-tresc h3,
.woocommerce-page main.fha-tresc h2,
.woocommerce-page main.fha-tresc h3 { color: #1a1a1a; }

/* --------------------------------------------------------------- karty */

.wc-block-cart-items,
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-checkout__form,
.woocommerce-MyAccount-content,
.woocommerce-form-login,
.woocommerce-form-register {
    background: #fff;
    border: 1px solid #e4dfd4;
    border-radius: 12px;
}
.wc-block-cart-items,
.wp-block-woocommerce-checkout-order-summary-block { padding: 8px 20px; }
.wc-block-cart-items th { border-bottom: 1px solid #e4dfd4; }

/* --------------------------------------------------------------- pola */

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select__select,
.wc-block-components-combobox input,
.wc-block-components-quantity-selector input {
    background: #fff !important;
    color: #1a1a1a !important;
    border-color: #d9d3c8 !important;
}
.wc-block-components-text-input label,
.wc-block-components-checkbox__label,
.wc-block-components-form label,
.wc-block-components-select__label { color: #4a4640 !important; }

/* Licznik sztuk: pudelko z jasnym tlem, minusy i plusy widoczne. */
.wc-block-components-quantity-selector {
    background: #fff;
    border: 1px solid #d9d3c8 !important;
    border-radius: 8px;
}
.wc-block-components-quantity-selector__button {
    color: #1a1a1a !important;
    opacity: 1 !important;
    font-size: 18px;
}
.wc-block-components-quantity-selector__button:hover { background: #f1ece2 !important; }

/* --------------------------------------------------------- przyciski */

/* Paleta globalna WordPressa maluje kazdy `.wp-element-button` na granat.
   Na tych ekranach przyciski maja byc zlote z ciemnym napisem, jak na
   reszcie serwisu. */
.woocommerce main.fha-tresc .wp-element-button,
.woocommerce-page main.fha-tresc .wp-element-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
    background-color: #e4b85f !important;
    color: #0b0b0b !important;
    border: 1px solid #e4b85f !important;
    border-radius: 10px !important;
    font-family: 'Public Sans', system-ui, sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 14px 24px !important;
    transition: background .25s, border-color .25s;
}
.woocommerce main.fha-tresc .wp-element-button:hover,
.woocommerce-page main.fha-tresc .wp-element-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
    background-color: #c9a050 !important;
    border-color: #c9a050 !important;
}

/* Przyciski drugoplanowe (m.in. „Pobierz dane z GUS" z wtyczki GUS) - obrys,
   ciemny napis. Wersja nieaktywna ma byc czytelna, a nie bledzic bielą na bieli. */
.woocommerce main.fha-tresc button.wp-element-button[disabled],
.woocommerce-page main.fha-tresc button.wp-element-button[disabled],
.wc-block-components-button:disabled,
button.gus-download-button,
button[class*="gus"] {
    background-color: #efece5 !important;
    color: #6b665d !important;
    border: 1px solid #d9d3c8 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: not-allowed;
}
/* 09.09.2026: przycisk „Pobierz dane z GUS" ma byc czarny z bialymi literami,
   a nie na obrys (i tym bardziej nie fioletowy gradient z wtyczki). */
button[class*="gus"]:not([disabled]),
button.woogus-fetch-button:not([disabled]) {
    background-color: #1a1a1a !important;
    background-image: none !important;
    color: #ffffff !important;
    border: 1px solid #1a1a1a !important;
    cursor: pointer;
}
button[class*="gus"]:not([disabled]):hover,
button.woogus-fetch-button:not([disabled]):hover {
    background-color: #000000 !important;
    color: #ffffff !important;
}

/* Odnosniki tekstowe na jasnym tle - zloty #e4b85f daje tu kontrast 1,9. */
.woocommerce main.fha-tresc a:not(.wp-element-button):not(.fha-przycisk):not(.button),
.woocommerce-page main.fha-tresc a:not(.wp-element-button):not(.fha-przycisk):not(.button) {
    color: #8a6a1f;
}

/* ------------------------------------------------------------ podsumowanie */

.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value,
.wc-block-components-product-name,
.wc-block-components-product-price { color: #1a1a1a; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: #1a1a1a; }
.wc-block-components-product-metadata { color: #5a554d; }

/* Miniatura produktu konfiguratora bywa pusta - zaslepka ma byc dyskretna. */
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
    border-radius: 8px;
    background: #efece5;
}

@media (max-width: 600px) {
    .fha-pas-tytulu { padding: 24px 0; }
    .fha-pas-tytulu h1 { width: calc(100% - 32px); }
    .woocommerce .fha-ekran-sklepu,
    .woocommerce-page .fha-ekran-sklepu { width: calc(100% - 32px); }
}

/* ==========================================================================
   POZOSTALE EKRANY WOOCOMMERCE - 08.09.2026

   Koszyk i kasa rysuja sie blokami, ale konto, potwierdzenie zamowienia,
   adresy, dane konta i przypomnienie hasla to stary, klasyczny WooCommerce.
   Bez tego arkusza wygladaja jak domyslna wtyczka wpuszczona na ciemny motyw.
   ========================================================================== */

/* ------------------------------------------------------------ powiadomienia */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
    background: #fff !important;
    border: 1px solid #e4dfd4 !important;
    border-left: 3px solid var(--fha-zloty, #e4b85f) !important;
    border-radius: 10px !important;
    color: #1a1a1a !important;
    padding: 16px 20px !important;
    margin: 0 0 26px !important;
    list-style: none;
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
}
.woocommerce-error { border-left-color: #a2402c !important; }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none !important; }
.woocommerce-message .button,
.woocommerce-info .button { margin-left: auto; }

/* ------------------------------------------------------------------ konto */

.woocommerce-account .woocommerce {
    display: grid;
    gap: 36px;
    grid-template-columns: minmax(0, 250px) minmax(0, 1fr);
    align-items: start;
}
/* Ekran logowania i rejestracji ma wlasny uklad - tam siatka przeszkadza. */
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }

.woocommerce-MyAccount-navigation {
    background: var(--fha-czarny, #090909) !important;
    border: 0 !important;
    border-radius: 12px !important;
    padding: 12px !important;
}
.woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; }
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 13px 16px;
    border-radius: 8px;
    color: #e9e4d8 !important;
    text-decoration: none;
    font-size: 14px;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.woocommerce-MyAccount-navigation li a:hover { background: rgba(255,255,255,.06); color: #fff !important; }
.woocommerce-MyAccount-navigation li.is-active a {
    background: var(--fha-zloty, #e4b85f);
    color: #0b0b0b !important;
}

.woocommerce-MyAccount-content {
    padding: 30px 32px !important;
}
.woocommerce-MyAccount-content > p:first-child { margin-top: 0; }

/* --------------------------------------------------- tabele (zamowienia, WZ) */

.woocommerce table.shop_table,
.woocommerce-table {
    width: 100%;
    border-collapse: collapse !important;
    border: 1px solid #e4dfd4 !important;
    border-radius: 12px !important;
    overflow: hidden;
    background: #fff !important;
}
.woocommerce table.shop_table th,
.woocommerce-table th {
    background: #f4f1ea;
    color: #4a4640;
    font-family: 'Public Sans', system-ui, sans-serif;
    font-weight: 500;
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-align: left;
    padding: 14px 18px;
    border-bottom: 1px solid #e4dfd4;
}
.woocommerce table.shop_table td,
.woocommerce-table td {
    padding: 16px 18px;
    border-bottom: 1px solid #efece5;
    color: #1a1a1a;
    vertical-align: top;
}
.woocommerce table.shop_table tr:last-child td { border-bottom: 0; }
.woocommerce table.shop_table tfoot th { background: #fff; border-top: 1px solid #e4dfd4; }

/* --------------------------------------------- potwierdzenie zamowienia */

.woocommerce-order .woocommerce-thankyou-order-received {
    font-family: 'Gotu', Georgia, serif;
    font-size: clamp(24px, 3vw, 32px);
    line-height: 1.25;
    color: #1a1a1a;
    margin: 0 0 26px;
}
ul.woocommerce-order-overview {
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    margin: 0 0 34px;
    padding: 0;
    list-style: none;
    background: #e4dfd4;
    border: 1px solid #e4dfd4;
    border-radius: 12px;
    overflow: hidden;
}
ul.woocommerce-order-overview li {
    background: #fff;
    padding: 18px 20px;
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6b665d;
    border: 0 !important;
}
ul.woocommerce-order-overview li strong {
    display: block;
    margin-top: 6px;
    font-family: 'Gotu', Georgia, serif;
    font-size: 19px;
    letter-spacing: 0;
    text-transform: none;
    color: #1a1a1a;
}

.woocommerce-customer-details address {
    padding: 20px 22px;
    border: 1px solid #e4dfd4;
    border-radius: 12px;
    background: #fff;
    font-style: normal;
    line-height: 1.8;
}

/* ------------------------------------------------------------- adresy */

.woocommerce-Addresses {
    display: grid;
    gap: 26px;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.woocommerce-Address {
    border: 1px solid #e4dfd4;
    border-radius: 12px;
    background: #fff;
    padding: 22px 24px;
    width: auto !important;
    float: none !important;
}
.woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.woocommerce-Address-title h2, .woocommerce-Address-title h3 { margin: 0 0 12px; font-size: 20px; }

/* ------------------------------------------------------- pola klasyczne */

.woocommerce form .form-row { margin-bottom: 18px; }
.woocommerce form .form-row label {
    display: block;
    margin-bottom: 6px;
    color: #4a4640;
    font-size: 13px;
    letter-spacing: .04em;
}
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { color: #1a1a1a; line-height: 42px; }
.woocommerce .select2-dropdown { border-color: #d9d3c8; }

/* Przyciski klasycznego WooCommerce - ten sam ksztalt co reszta serwisu. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    background: var(--fha-zloty, #e4b85f) !important;
    color: #0b0b0b !important;
    border: 1px solid var(--fha-zloty, #e4b85f) !important;
    border-radius: 10px !important;
    padding: 12px 24px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background: #c9a050 !important;
    border-color: #c9a050 !important;
}
/* „Zobacz" przy zamowieniu i „Edytuj" przy adresie to akcje drugoplanowe. */
.woocommerce .woocommerce-orders-table__cell-order-actions a.button,
.woocommerce-Address-title a.edit {
    background: transparent !important;
    color: #1a1a1a !important;
    border-color: #1a1a1a !important;
    font-size: 13px !important;
    padding: 8px 16px !important;
}
.woocommerce .woocommerce-orders-table__cell-order-actions a.button:hover,
.woocommerce-Address-title a.edit:hover { background: #1a1a1a !important; color: #fff !important; }

.woocommerce-pagination ul { display: flex; gap: 8px; list-style: none; padding: 0; border: 0 !important; }
.woocommerce-pagination li { border: 0 !important; }
.woocommerce-pagination a, .woocommerce-pagination span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 42px; height: 42px; padding: 0 12px;
    border: 1px solid #d9d3c8; border-radius: 8px;
    color: #1a1a1a; text-decoration: none;
}
.woocommerce-pagination .current { background: var(--fha-zloty, #e4b85f); border-color: var(--fha-zloty, #e4b85f); }

@media (max-width: 860px) {
    .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 24px; }
    .woocommerce-MyAccount-navigation li a { padding: 12px 14px; }
}

/* =============================================================================
   AUDYT SCIEZKI ZAKUPOWEJ - 09.09.2026

   Ekrany, ktorych nikt wczesniej nie ogladal: potwierdzenie zamowienia i karta
   zamowienia na koncie. Obie strony szly w domyslnym WooCommerce - bezowe pasy,
   szara tabela i przycisk zwrotu jako najmocniejszy element na ekranie.
   ============================================================================= */

/* --- potwierdzenie zamowienia ---------------------------------------------- */

.woocommerce-order .woocommerce-thankyou-order-received {
    font-family: 'Gotu', Georgia, serif;
    font-size: 28px;
    line-height: 1.3;
    color: #1a1a1a;
    margin: 0 0 8px;
    padding: 0;
    background: none;
    border: 0;
}
.woocommerce-order .woocommerce-thankyou-order-received::before { display: none !important; }

/* Pasek z numerem, data i kwota - byl bezowy w pasy, z pustymi polami po bokach. */
.woocommerce-order .woocommerce-order-overview {
    /* `auto-fit` robilo szesc kolumn na cztery pozycje - dwa puste bezowe pola
       na koncach paska. Flex bierze tylko tyle miejsca, ile jest pozycji. */
    display: flex !important;
    flex-wrap: wrap;
    gap: 1px;
    margin: 22px 0 30px !important;
    padding: 0 !important;
    list-style: none !important;
    background: #e4dfd4;
    border: 1px solid #e4dfd4;
    border-radius: 12px;
    overflow: hidden;
}
.woocommerce-order .woocommerce-order-overview li {
    flex: 1 1 170px;
    background: #fff;
    margin: 0 !important;
    padding: 16px 18px !important;
    border: 0 !important;
    float: none !important;
    width: auto !important;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #6b6560;
}
.woocommerce-order .woocommerce-order-overview li strong {
    display: block;
    margin-top: 6px;
    font-family: 'Gotu', Georgia, serif;
    font-size: 17px;
    letter-spacing: 0;
    text-transform: none;
    color: #1a1a1a;
}

.woocommerce-order .woocommerce-order-details__title,
.woocommerce-order .woocommerce-column__title,
.woocommerce-order h2 {
    font-family: 'Gotu', Georgia, serif;
    font-size: 22px;
    color: #1a1a1a;
    text-align: left;
    margin: 28px 0 14px;
}

.woocommerce-order .woocommerce-table--order-details,
.woocommerce-view-order .woocommerce-table--order-details {
    border: 1px solid #e4dfd4;
    border-radius: 12px;
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
}
.woocommerce-table--order-details th {
    background: #faf7f1;
    color: #5c574f !important;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    text-align: left;
    padding: 14px 18px;
}
.woocommerce-table--order-details td { padding: 14px 18px; border-top: 1px solid #efece5; }
.woocommerce-table--order-details tfoot th { text-transform: uppercase; }
.woocommerce-table--order-details .wc-item-meta { margin: 8px 0 0; padding: 0; list-style: none; }
.woocommerce-table--order-details .wc-item-meta li { margin: 0 0 3px; font-size: 14px; color: #4a4640; }
.woocommerce-table--order-details .wc-item-meta li p { display: inline; margin: 0; }

/* Miniatura zamawianego zdjecia (51-nazwy-i-miniatury.php) w tabeli pozycji. */
.woocommerce-table--order-details td.woocommerce-table__product-name img { margin-right: 12px; vertical-align: middle; }

/* WooCommerce trzyma adresy na starych kolumnach `col2-set` (float + width 48%),
   przez co po naszej siatce wychodzily paski po 130 px i naglowki lamaly sie
   po dwa slowa. Kolumny ustawiamy sami. */
.woocommerce-customer-details .woocommerce-columns,
.woocommerce-customer-details .col2-set {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
}
/* Clearfix WooCommerce (`::before` z `display:table`) w siatce staje sie
   pelnoprawnym elementem i zabieral pierwsza kolumne - adresy uciekaly w prawo. */
.woocommerce-customer-details .woocommerce-columns::before,
.woocommerce-customer-details .woocommerce-columns::after,
.woocommerce-customer-details .col2-set::before,
.woocommerce-customer-details .col2-set::after { display: none !important; }
@media (max-width: 720px) {
    .woocommerce-customer-details .woocommerce-columns,
    .woocommerce-customer-details .col2-set { grid-template-columns: 1fr !important; }
}
.woocommerce-customer-details .woocommerce-column,
.woocommerce-customer-details .col-1,
.woocommerce-customer-details .col-2 {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    padding: 0 !important;
}
.woocommerce-customer-details .woocommerce-column__title { margin-top: 0; }
.woocommerce-customer-details address {
    border: 1px solid #e4dfd4;
    border-radius: 12px;
    padding: 18px;
    font-style: normal;
    line-height: 1.7;
}

/* --- zwroty Furgonetki -------------------------------------------------------
   Przycisk „Zleć zwrot" stal na potwierdzeniu jako najmocniejszy zloty element,
   od razu po zlozeniu zamowienia. Fotoceramika jest robiona na zamowienie ze
   zdjecia klienta, wiec zwrot i tak nie wchodzi w gre (art. 38 pkt 3 ustawy
   o prawach konsumenta). Do przywrocenia wystarczy skasowac ten blok. */
.furgonetka_return,
.order-actions--heading,
tr.woocommerce-table__order-actions,
.woocommerce-table--order-details tfoot tr:has(.furgonetka_return) { display: none !important; }

/* --- kasa: pole NIP z wtyczki GUS -------------------------------------------
   Wtyczka dokladala do blokowej kasy DRUGIE pole „Numer NIP" wraz z przyciskiem
   „Pobierz dane z GUS" - pod przyciskiem „Kupuję i płacę", poza formularzem.
   Wlasciwe pole (`shipping-woogus-gus_nip_value`) stoi na swoim miejscu wyzej. */
fieldset.eu-vat-extra-css { display: none !important; }

/* --- karta zamowienia na koncie --------------------------------------------- */
.woocommerce-view-order .woocommerce-order-details__title { margin-top: 0; }
.woocommerce-view-order .woocommerce-customer-details h2 { font-size: 18px; }

/* --- licznik sztuk w koszyku -------------------------------------------------
   Blokowy koszyk wypisuje pola w kolejnosci input -> minus -> plus i uklada je
   pozycjonowaniem. Nasze wczesniejsze tlo i ramka na kontenerze to pozycjonowanie
   zniosly, wiec wychodzilo „- [1] +" sklejone z koszem na smieci - wygladalo jak
   zepsuty formularz. Ustawiamy wlasny uklad flex i kolejnosc pol. */
.wc-block-cart-item__quantity {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 10px;
}
.wc-block-components-quantity-selector {
    display: flex !important;
    align-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
    overflow: hidden;
}
.wc-block-components-quantity-selector__input {
    order: 2;
    width: 46px !important;
    min-width: 46px !important;
    padding: 0 !important;
    text-align: center !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}
.wc-block-components-quantity-selector__button {
    position: static !important;
    order: 1;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    font-size: 17px !important;
    line-height: 1 !important;
    color: #2b2721 !important;
    opacity: 1 !important;
}
.wc-block-components-quantity-selector__button--plus { order: 3; }
.wc-block-components-quantity-selector__button:disabled { color: #b3aca1 !important; }

.wc-block-cart-item__remove-link {
    margin: 0 !important;
    padding: 6px !important;
    color: #8a827a !important;
    border-radius: 8px;
    text-decoration: none !important;
}
.wc-block-cart-item__remove-link:hover { color: #a33 !important; background: #faf3f3; }
.wc-block-cart-item__remove-link svg { width: 20px; height: 20px; fill: currentColor; }

/* Miniatura zdjecia przy nazwie pozycji (51-nazwy-i-miniatury.php). */
.fha-pozycja-z-foto { display: inline-flex; align-items: center; gap: 12px; vertical-align: middle; }
.fha-pozycja-foto {
    width: 56px; height: 56px; flex: none;
    object-fit: cover; border-radius: 8px; border: 1px solid #e4dfd4;
}

/* Na telefonie tabela koszyka rozpychala sie do 419 px przy ekranie 390 -
   zawartosc uciekala poza lewa krawedz. Wymuszamy szerokosc kontenera i
   pozwalamy wierszowi z licznikiem sie zawijac. */
@media (max-width: 520px) {
    .wc-block-cart-items,
    table.wc-block-cart-items {
        width: 100% !important;
        max-width: 100% !important;
        table-layout: fixed !important;
    }
    .wc-block-cart-item__quantity { flex-wrap: wrap; gap: 10px; }
    .wc-block-cart-items__row .wc-block-cart-item__image { width: 72px !important; }
    .wc-block-cart-items__row .wc-block-cart-item__image img { width: 56px !important; height: 56px !important; }
}

/* Blok koszyka/kasy jest `alignwide` i dostaje ujemne marginesy boczne (-80 px).
   Na desktopie miesci sie w kontenerze, ale na telefonie wypychal cala tresc
   poza lewa krawedz ekranu - miniatura i kwoty byly ucięte. */
@media (max-width: 782px) {
    .wp-block-woocommerce-cart.alignwide,
    .wp-block-woocommerce-checkout.alignwide,
    .wp-block-woocommerce-cart,
    .wp-block-woocommerce-checkout {
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: 100% !important;
    }
    /* Kwoty dochodzily do samej krawedzi ekranu. */
    .wc-block-components-totals-item,
    .wc-block-cart-items__row { padding-right: 6px; }
    .wc-block-cart-item__total { padding-right: 4px; }
}

/* --- przycisk „Pobierz dane z GUS" -------------------------------------------
   Wtyczka maluje go fioletowym gradientem (#667eea → #764ba2) z cieniem
   w tym samym kolorze - jedyny taki element w calym serwisie. Czarny
   z bialymi literami, bez gradientu i bez podskakiwania przy najechaniu. */
button.woogus-fetch-button,
a.open_gus {
    background: #1a1a1a !important;
    background-image: none !important;
    color: #ffffff !important;
    border: 1px solid #1a1a1a !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    font-weight: 500 !important;
    letter-spacing: .02em;
}
button.woogus-fetch-button:hover:not(:disabled),
a.open_gus:hover {
    background: #000000 !important;
    background-image: none !important;
    color: #ffffff !important;
    box-shadow: none !important;
    transform: none !important;
}
button.woogus-fetch-button:active:not(:disabled),
a.open_gus:active { transform: none !important; box-shadow: none !important; }
button.woogus-fetch-button:focus,
a.open_gus:focus {
    outline: 2px solid #9a7524 !important;
    outline-offset: 2px !important;
}
button.woogus-fetch-button:disabled {
    background: #ded9cd !important;
    background-image: none !important;
    color: #5c574f !important;
    border-color: #ded9cd !important;
    opacity: 1 !important;
}

/* --- etykiety pol w kasie ----------------------------------------------------
   Blokowa kasa podnosi etykiete do gory pola, gdy jest w nim tresc, i robi na to
   miejsce paddingiem `24px 9px 8px`. Nasz `style.css` narzuca wszystkim polom
   w kasie `padding: 12px 16px !important`, wiec etykieta ladowala NA wpisanej
   wartosci („Numer NIP" na numerze, „Kraj / region" na „Polska"). */
body.woocommerce-checkout .wc-block-components-text-input input[type],
body.woocommerce-checkout .wc-block-components-combobox input[type],
body.woocommerce-checkout .wc-block-components-address-form input[type],
body.woocommerce-cart .wc-block-components-text-input input[type] {
    padding: 24px 14px 8px !important;
    height: auto !important;
}
body.woocommerce-checkout .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-select__select,
body.woocommerce-checkout .wc-block-components-address-form select {
    padding: 24px 14px 8px !important;
    height: auto !important;
}
.wc-block-components-form .wc-block-components-select__label { top: 6px !important; }

/* --- iOS: pola kasy nie moga miec mniej niz 16 px ----------------------------
   Safari na iPhonie sam przybliza strone, gdy klikniesz w pole o mniejszym
   stopniu pisma - po tapnieciu w „Adres e-mail" cala kasa uciekala w bok
   i klient widzial polowe formularza. 16 px wylacza to przybliżanie. */
@media (max-width: 782px) {
    body.woocommerce-checkout .wc-block-components-text-input input[type],
    body.woocommerce-checkout .wc-block-components-combobox input[type],
    body.woocommerce-checkout .wc-block-components-address-form input[type],
    body.woocommerce-checkout .wc-block-components-textarea,
    body.woocommerce-checkout .wc-block-components-select select,
    body.woocommerce-checkout .wc-block-components-select__select,
    body.woocommerce-cart .wc-block-components-text-input input[type],
    body.woocommerce-account input[type="text"],
    body.woocommerce-account input[type="email"],
    body.woocommerce-account input[type="password"],
    body.woocommerce-account input[type="tel"] {
        font-size: 16px !important;
    }

    /* Formularz kasy szedl od krawedzi do krawedzi - dokladamy oddech po bokach. */
    body.woocommerce-checkout .wc-block-checkout__form,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
}

/* ==========================================================================
   KASA I KOSZYK: oddech wewnątrz kart (11.09.2026)

   Zgłoszenie Geni: „wszystko jest w zewnętrznej delikatnej ramce, a w środku
   są kolejne ramki i formularze; między zewnętrzną a wewnętrzną ramką nie ma
   żadnych paddingów".

   Dwie przyczyny:

   1. `.wc-block-checkout__form` dostawał wyżej tło, ramkę i zaokrąglenie, ale
      NIGDY paddingu - miały go tylko `.wc-block-cart-items` i podsumowanie.
      Na telefonie dokładaliśmy 14 px w media query, na komputerze nie było nic,
      więc pola, nagłówki kroków i podpisy w rodzaju „Składasz zamówienie jako
      gość" leżały wprost na linii ramki.

   2. W podsumowaniu ramkę dostawał też każdy `.wc-block-components-totals-wrapper`,
      a WooCommerce zawija je dodatkowo we własne bloki. Wychodziły pudełka
      w pudełkach, stykające się krawędziami. Sumy mają być zwykłymi wierszami
      w jednej karcie, rozdzielonymi cienką linią - nie osobnymi ramkami.
   ========================================================================== */

/* --- kolumna z formularzem ------------------------------------------------ */
body.woocommerce-checkout .wc-block-checkout__form {
    padding: 28px !important;
}

/* Pierwszy nagłówek kroku ma już oddech od ramki dzięki paddingowi karty,
   ale kolejne sekcje potrzebują wyraźniejszego rozdzielenia niż domyślne 24 px. */
body.woocommerce-checkout .wc-block-checkout__form > * + * {
    margin-top: 32px;
}

/* --- podsumowanie zamówienia --------------------------------------------- */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
    padding: 24px !important;
}

/* WooCommerce dokłada własne 16 px po bokach listy produktów - razem z paddingiem
   karty dawało to podwójne wcięcie i wąską kolumnę na opis konfiguracji. */
body.woocommerce-checkout .wc-block-components-order-summary,
body.woocommerce-cart .wc-block-components-order-summary {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Wiersze sum bez własnych ramek - zostaje sama linia rozdzielająca. */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content .wc-block-components-totals-wrapper,
body.woocommerce-cart .wc-block-components-sidebar .wc-block-components-totals-wrapper {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    border-top: 1px solid #e4dfd4 !important;
    padding: 16px 0 !important;
    margin: 0 !important;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content .wc-block-components-totals-wrapper:first-child,
body.woocommerce-cart .wc-block-components-sidebar .wc-block-components-totals-wrapper:first-child {
    border-top: 0 !important;
    padding-top: 0 !important;
}

/* Bloki, w które WooCommerce zawija sumy, nie mogą dokładać własnych odstępów.
   Uwaga: selektor musi siedzieć WEWNĄTRZ karty, bo `[class*="checkout-order-summary-"]`
   pasuje też do samej karty i skasowałby jej padding (tak było przy pierwszym podejściu:
   wiersze sum wróciły na krawędź). */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > [class*="checkout-order-summary-"][class*="-block"] {
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
}

/* Puste bloki (np. rabat, gdy nie ma kuponu) zostawiały pustą ramkę z odstępem.
   Warunek „brak totals-item" łapał też blok z listą produktów - patrz sekcja
   „linie i odstępy" na końcu pliku. Chowamy wyłącznie bloki naprawdę puste. */
body.woocommerce-checkout .wc-block-components-totals-wrapper:not(:has(*)) {
    display: none !important;
}

/* --- koszyk --------------------------------------------------------------- */
body.woocommerce-cart .wc-block-cart-items {
    padding: 8px 24px 24px !important;
}

/* ==========================================================================
   Telefon: te same karty, mniejsze wcięcia. 18 px zostawia palcowi miejsce
   na krawędzi ekranu, a pola nie robią się przez to węższe niż trzeba.
   ========================================================================== */
@media (max-width: 782px) {
    body.woocommerce-checkout .wc-block-checkout__form,
    body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block {
        padding: 18px !important;
    }
    body.woocommerce-cart .wc-block-cart-items {
        padding: 6px 16px 16px !important;
    }
    body.woocommerce-checkout .wc-block-checkout__form > * + * {
        margin-top: 26px;
    }
}


/* --- telefon: zwinięte podsumowanie -----------------------------------------
   Na wąskim ekranie WooCommerce zamienia podsumowanie w rozwijany panel. Linie
   rozdzielające wiersze sum dotyczą wyłącznie rozwiniętej listy
   (`...order-summary__content`), więc nad tytułem panelu i pod nim nie wisi już
   kreska znikąd. Same linie panelu rysuje WooCommerce. */

/* Telefon: zwinięte podsumowanie ma własną ramkę u góry i u dołu, odziedziczoną
   po WooCommerce. Wewnątrz naszej karty wyglądała jak dwie kreski znikąd nad
   tytułem i pod nim - kartę rysuje już obramowanie panelu. Linie MIĘDZY wierszami
   sum zostają, bo siedzą głębiej, w rozwiniętej liście. */
@media (max-width: 782px) {
    body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block > * {
        border-top: 0 !important;
        border-bottom: 0 !important;
    }
}

/* ==========================================================================
   PODSUMOWANIE ZAMÓWIENIA: linie i odstępy (11.09.2026, druga tura)

   Zgłoszenie Geni: „te linie mi się jeszcze nie podobają, to powinno być
   symetrycznie, mieć równe paddingi".

   Trzy przyczyny:

   1. WooCommerce wcina wiersze sum o 16 px po bokach (`totals-item`), a linie
      rozdzielające rysuje na wrapperach, czyli na pełnej szerokości wnętrza
      karty. Tekst i kreska nie stały na wspólnej osi - kreska wystawała
      po 16 px z każdej strony.
   2. Odstępy nad i pod kreskami były różne: 32 px nad linią „Łącznie"
      (padding bloku sum) kontra 16 px pod nią, a wiersz „Kwota" przyklejał się
      do linii nad sobą (1 px).
   3. Przy okazji: reguła chowająca puste bloki (rabat, opłata) łapała też blok
      z listą produktów, bo on nie zawiera `totals-item`. W kasie nie było
      widać, co się kupuje. Teraz chowamy tylko bloki naprawdę puste
      (`:not(:has(*))`).
   ========================================================================== */

/* Wiersze sum na tej samej osi co linie i tytuł karty. */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content .wc-block-components-totals-item,
body.woocommerce-cart .wc-block-components-sidebar .wc-block-components-totals-item {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
    margin-left: 0 !important;
}

/* Blok zbiorczy sum nie dokłada już własnej linii ani dolnego odstępu -
   rytm 16 px trzymają same wrappery wierszy. */
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block {
    padding: 0 !important;
    border-top: 0 !important;
}

/* Każdy wiersz: 16 px nad i pod, kreska na górze. */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content .wc-block-components-totals-wrapper,
body.woocommerce-cart .wc-block-components-sidebar .wc-block-components-totals-wrapper {
    padding: 16px 0 !important;
}

/* Pierwszy wiersz po tytule - bez kreski nad sobą. */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > .wc-block-components-totals-wrapper:first-child,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-totals-block:first-child > .wc-block-components-totals-wrapper:first-child {
    border-top: 0 !important;
    padding-top: 0 !important;
}
/* ...ale gdy lista produktów jest nad sumami, pierwszy wiersz sum kreskę ma. */
body.woocommerce-checkout .wc-block-components-checkout-order-summary__content > :not(:first-child) > .wc-block-components-totals-wrapper:first-child {
    border-top: 1px solid #e4dfd4 !important;
    padding-top: 16px !important;
}

/* Koszyk: kolumna z sumami nie jest kartą (ramkę ma tylko lista produktów obok),
   więc pierwszy wiersz nie dostaje już paddingu 24 px - wcinał samą „Kwotę"
   względem „Wysyłki", „Łącznie" i linii. */
