/* Drukorz – koszyk, mini-koszyk, kasa
   Wspólne style dla elementów, które wtyczka dokłada do koszyka WooCommerce. */

/* --- Netto obok brutto ---------------------------------------------------
   !important, bo widget "Koszyk" Elementora generuje bardzo szczegółowe
   reguły na ".cart td span" (16px / 600 / czarny), które inaczej wygrywają. */
.drukorz-net,
.drukorz-vat {
    display: block;
    font-family: Inter, sans-serif;
    font-size: 12px !important;
    line-height: 16px !important;
    font-weight: 400 !important;
    color: #737373 !important;
    white-space: nowrap;
}

.drukorz-net .woocommerce-Price-amount,
.drukorz-vat .woocommerce-Price-amount,
.drukorz-net .woocommerce-Price-amount bdi,
.drukorz-vat .woocommerce-Price-amount bdi,
.drukorz-net .woocommerce-Price-currencySymbol,
.drukorz-vat .woocommerce-Price-currencySymbol {
    font-size: inherit !important;
    font-weight: 400 !important;
    color: inherit !important;
}

/* dopisek "brutto" za kwotą główną */
.drukorz-gross {
    display: inline;
    font-family: Inter, sans-serif;
    font-size: 12px !important;
    line-height: 16px !important;
    font-weight: 400 !important;
    color: #737373 !important;
    white-space: nowrap;
}

/* strona koszyka i kasa: pozycje */
.woocommerce-cart-form .product-subtotal .drukorz-net,
.woocommerce-checkout-review-order-table .product-total .drukorz-net {
    margin-top: 2px;
}

/* strona koszyka i kasa: wiersz "Łącznie" */
.cart_totals .order-total .drukorz-net--total,
.woocommerce-checkout-review-order-table .order-total .drukorz-net--total {
    margin-top: 4px;
}

/* mini-koszyk: suma to wiersz flex ("Kwota:" | liczba | "brutto").
   Etykieta zostaje po lewej, liczba i "brutto" trzymają się razem po prawej,
   netto schodzi do osobnej linii pod spodem. */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main .elementor-menu-cart__subtotal {
    flex-wrap: wrap;
    justify-content: flex-start;
}

.elementor-menu-cart__subtotal > strong {
    margin-right: auto;
}

.elementor-menu-cart__subtotal .drukorz-gross {
    margin-left: 4px;
}

.elementor-menu-cart__subtotal .drukorz-net--mini {
    flex-basis: 100%;
    text-align: right;
    margin-top: 2px;
}

.elementor-menu-cart__subtotal .drukorz-net.drukorz-net--mini .woocommerce-Price-amount {
    font-weight: 400;
}

/* --- Mini-koszyk (widget "Menu Cart", panel wysuwany z prawej) ------------
   Kolory i fonty przycisków/tytułów są w ustawieniach obu widgetów
   (desktop 42e3ad3 i telefon 52cb2c0). Tu jest układ i to, czego widget
   nie ma w ustawieniach. */

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main {
    width: 440px;
    max-width: 100vw;
    font-family: Inter, sans-serif;
}

/* nagłówek panelu */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main::before {
    content: "Twój koszyk";
    display: block;
    font: 600 20px/28px Inter, sans-serif;
    color: #171717;
    padding: 2px 0 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid #E5E5E5;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button {
    top: 20px;
    right: 20px;
    margin: 0;
    cursor: pointer;
}

/* Panel ma wysokość okna. Przewija się tylko lista produktów; nagłówek,
   suma, przyciski i linia zaufania zawsze zostają w widoku. */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main::before,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main::after {
    flex: none;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main .widget_shopping_cart_content {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__products {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    gap: 10px;
    overflow-y: auto;
}

.elementor-menu-cart__products::-webkit-scrollbar { width: 6px; }
.elementor-menu-cart__products::-webkit-scrollbar-track { background: #F5F5F5; border-radius: 999px; }
.elementor-menu-cart__products::-webkit-scrollbar-thumb { background: #D4D4D4; border-radius: 999px; }

/* karta produktu: miniatura + nazwa w jednym wierszu, parametry i cena pod spodem na całą szerokość */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product {
    position: relative;
    display: grid;
    grid-template-columns: 56px 1fr;
    grid-template-areas:
        "img    name"
        "params params"
        "price  price";
    column-gap: 12px;
    row-gap: 8px;
    align-items: start;
    padding: 14px;
    border: 1px solid #E5E5E5;
    border-radius: 12px;
    background: #FFFFFF;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-image {
    grid-area: img;
    width: 56px;
    height: 56px;
    border-radius: 8px;
    overflow: hidden;
    background: #F5F5F5;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* nazwa i parametry stają się bezpośrednimi elementami siatki */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name {
    display: contents;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name > a {
    grid-area: name;
    align-self: center;
    padding-right: 28px; /* miejsce na przycisk usuwania */
    color: #171717;
    text-decoration: none;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name dl.variation {
    grid-area: params;
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 12px;
    row-gap: 2px;
    margin: 0;
    padding: 10px 12px;
    border-radius: 8px;
    background: #F5F5F5;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name dl.variation dt,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name dl.variation dd,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name dl.variation dd p,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name dl.variation dd a {
    display: block;
    margin: 0;
    font: 400 12px/16px Inter, sans-serif;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name dl.variation dt {
    color: #737373;
    font-weight: 400;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name dl.variation dd {
    color: #232323;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name dl.variation dd a {
    display: inline;
    color: #232323;
    text-decoration: underline;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-price {
    grid-area: price;
    text-align: right;
    font: 600 14px/20px Inter, sans-serif;
    color: #171717;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-price .product-quantity {
    font-weight: 400;
    color: #737373;
}

/* usuwanie: szare kółko z "x" w rogu karty */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 22px;
    height: 22px;
    border: 1px solid #D4D4D4;
    border-radius: 50%;
    background: #FFFFFF;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove:hover {
    border-color: #171717;
}

/* suma: "Kwota:" po lewej, liczba z "brutto" po prawej, netto w linii pod spodem */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main .elementor-menu-cart__subtotal {
    display: flex;
    align-items: baseline;
    margin-top: 16px;
    padding: 16px 0;
    border-top: 1px solid #E5E5E5;
    border-bottom: 1px solid #E5E5E5;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__subtotal .woocommerce-Price-amount {
    font-size: 18px;
    font-weight: 700;
}

/* przyciski: czarny "Przejdź do kasy" na górze, biały "Zobacz koszyk" pod nim */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__footer-buttons {
    display: flex;
    flex-direction: column-reverse;
    gap: 10px;
    margin-top: 16px;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__footer-buttons .elementor-button {
    width: 100%;
    padding: 14px 20px;
    line-height: 24px;
}

/* linia zaufania pod przyciskami (treść do zmiany tutaj) */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main::after {
    content: "Odbiór osobisty w Katowicach (ul. Stawowa 8, ul. Pokoju 3) · Darmowa dostawa od 300 zł brutto";
    display: block;
    margin-top: 14px;
    font: 400 12px/18px Inter, sans-serif;
    color: #737373;
    text-align: center;
}

/* zalogowany administrator: pasek WordPressa zasłania górę panelu */
.admin-bar .elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main {
    padding-top: 52px;
}
.admin-bar .elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button {
    top: 52px;
}

/* pusty koszyk */
.elementor-widget-woocommerce-menu-cart .woocommerce-mini-cart__empty-message {
    padding: 24px 0;
    font: 400 16px/24px Inter, sans-serif;
    color: #737373;
    text-align: center;
}

@media (max-width: 767px) {
    .elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main {
        width: 100vw;
    }
    .elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button {
        top: 16px;
        right: 16px;
    }
}

/* --- Strona koszyka (widget Elementora "Koszyk", strona 10) ----------------
   Wariant A: karty pozycji po lewej, przyklejone podsumowanie po prawej.
   Fonty i kolory tekstów są w ustawieniach widgetu; tu jest układ.
   Selektory zawierają ".woocommerce", bo tak buduje swoje reguły widget
   Elementora i inaczej jego CSS wygrywa. Zmienne CSS (--links-normal-color
   itd.) to te, których używa sam widget. */

.elementor-widget-woocommerce-cart {
    --links-normal-color: #171717;
    --links-hover-color: #232323;
    --product-link-normal-color: #171717;
    --product-link-hover-color: #232323;
    --sections-border-type: none;
    --sections-padding: 0;
}

.elementor-widget-woocommerce-cart .woocommerce .e-cart__container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 460px;
    gap: 32px;
    align-items: start;
}

.elementor-widget-woocommerce-cart .woocommerce .e-cart-section {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

/* ---- lista pozycji: tabela WooCommerce rysowana jako karty ---- */
.elementor-widget-woocommerce-cart .woocommerce table.cart,
.elementor-widget-woocommerce-cart .woocommerce table.cart tbody {
    display: block;
    width: 100%;
    margin: 0;
    border: 0;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart thead,
.elementor-widget-woocommerce-cart .woocommerce table.cart tbody tr:not(.cart_item),
.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td.product-price,
.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td::before {
    display: none;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart tbody {
    display: grid;
    gap: 12px;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item {
    position: relative;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    grid-template-areas:
        "img name   sub"
        "img params sub"
        "img qty    sub";
    column-gap: 16px;
    row-gap: 8px;
    align-items: start;
    padding: 16px;
    border: 1px solid #E5E5E5;
    border-radius: 12px;
    background: #FFFFFF;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td.product-thumbnail {
    grid-area: img;
    display: block;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail a,
.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail img {
    display: block;
    width: 72px;
    height: 72px;
    margin: 0;
    border-radius: 8px;
    object-fit: cover;
    background: #F5F5F5;
}

/* nazwa i parametry jako osobne elementy siatki */
.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td.product-name {
    display: contents;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name > a {
    grid-area: name;
    align-self: center;
    padding-right: 8px;
    text-align: left;
    font: 600 16px/24px Inter, sans-serif;
    color: #171717;
    text-decoration: none;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name dl.variation {
    grid-area: params;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 2px;
    margin: 0;
    padding: 10px 12px;
    border-radius: 8px;
    background: #F5F5F5;
    text-align: left;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart dl.variation dt,
.elementor-widget-woocommerce-cart .woocommerce table.cart dl.variation dd,
.elementor-widget-woocommerce-cart .woocommerce table.cart dl.variation dd p {
    display: block;
    float: none;
    clear: none;
    margin: 0;
    padding: 0;
    border: 0;
    font: 400 12px/16px Inter, sans-serif;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart dl.variation dt { color: #737373; }
.elementor-widget-woocommerce-cart .woocommerce table.cart dl.variation dd { color: #232323; }
.elementor-widget-woocommerce-cart .woocommerce table.cart dl.variation dd a { color: #232323; text-decoration: underline; }

/* ilość */
.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td.product-quantity {
    grid-area: qty;
    display: flex;
    align-items: center;
    gap: 12px;
    font: 400 14px/20px Inter, sans-serif;
    color: #232323;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td.product-quantity::before {
    content: "Ilość";
    display: inline;
    float: none;
    font: 400 12px/16px Inter, sans-serif;
    color: #737373;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-quantity .quantity input.qty {
    width: 64px;
    padding: 6px 8px;
    border: 1px solid #D4D4D4;
    border-radius: 8px;
    font: 400 14px/20px Inter, sans-serif;
    text-align: center;
}

/* kwota pozycji (brutto + netto z wtyczki) */
.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td.product-subtotal {
    grid-area: sub;
    min-width: 120px;
    padding-right: 34px;
    text-align: right;
    font: 700 18px/24px Inter, sans-serif;
    color: #171717;
}

/* usuwanie: szare kółko w rogu karty */
.elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td.product-remove {
    position: absolute;
    top: 14px;
    right: 14px;
    width: auto;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove a.remove {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin: 0;
    border: 1px solid #D4D4D4;
    border-radius: 50%;
    background: #FFFFFF;
    color: #737373;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;
    text-decoration: none;
}

.elementor-widget-woocommerce-cart .woocommerce table.cart td.product-remove a.remove:hover {
    border-color: #171717;
    color: #171717;
    background: #FFFFFF;
}

/* kupon pod listą */
.elementor-widget-woocommerce-cart .woocommerce .coupon.e-cart-section {
    margin-top: 16px;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon .coupon-col {
    display: flex;
    gap: 8px;
    align-items: center;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
    flex: 1;
    padding: 10px 12px;
    border: 1px solid #D4D4D4;
    border-radius: 8px;
    font: 400 14px/20px Inter, sans-serif;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon button[name="apply_coupon"] {
    padding: 10px 16px;
    border: 1px solid #171717;
    border-radius: 8px;
    background: #FFFFFF;
    color: #171717;
    font: 600 14px/20px Inter, sans-serif;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon button[name="apply_coupon"]:hover {
    background: #171717;
    color: #FFFFFF;
}

/* ---- podsumowanie ----
   Widget renderuje tę tabelę "responsywnie": nagłówki wierszy (th) są
   ukryte, a etykieta wiersza to td::before z data-title. Układamy to tak:
   etykieta po lewej (absolutnie), wartość po prawej. */
.elementor-widget-woocommerce-cart .woocommerce .e-cart-totals {
    padding: 20px;
    border: 1px solid #E5E5E5;
    border-radius: 12px;
    background: #FFFFFF;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
    margin: 0 0 8px;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tbody,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr {
    display: block;
    width: 100%;
    margin: 0;
    border: 0;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr {
    padding: 10px 0;
    border-bottom: 1px solid #E5E5E5;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table th {
    display: none;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr td {
    display: block;
    position: relative;
    width: 100%;
    padding: 0 0 0 45%;
    border: 0;
    background: transparent;
    text-align: right;
    font: 600 14px/20px Inter, sans-serif;
    color: #171717;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr td::before {
    content: attr(data-title);
    position: absolute;
    left: 0;
    top: 0;
    float: none;
    font: 400 14px/20px Inter, sans-serif;
    color: #232323;
}

/* dostawa: etykieta nad listą metod, metody jako kafelki */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.woocommerce-shipping-totals td {
    padding: 0;
    text-align: left;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.woocommerce-shipping-totals td::before {
    position: static;
    display: block;
    margin-bottom: 8px;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals ul#shipping_method {
    display: grid;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals ul#shipping_method li {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #E5E5E5;
    border-radius: 8px;
    text-indent: 0;
    font: 400 14px/20px Inter, sans-serif;
    color: #232323;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals ul#shipping_method li:has(input:checked) {
    border-color: #171717;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals ul#shipping_method li input {
    float: none;
    margin: 0;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals ul#shipping_method li label {
    flex: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 12px;
    row-gap: 4px;
    align-items: baseline;
    margin: 0;
    font-weight: 400;
}

.drukorz-ship-price {
    font-weight: 600;
    white-space: nowrap;
}

/* poza koszykiem (kasa) etykieta jest zwykłym tekstem: odstęp przed ceną, dopisek w nowej linii */
.drukorz-ship-name + .drukorz-ship-price {
    margin-left: 8px;
}


/* "Wysyłka do: ..." nie wnosi nic przed podaniem adresu w kasie */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals .woocommerce-shipping-destination,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals .shipping-calculator-button {
    display: none;
}

/* wiersz "Łącznie" - bez linii nad nim: oddziela go pasek darmowej dostawy */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.order-total {
    margin-top: 4px;
    padding: 14px 0 16px;
    border-top: 0;
    border-bottom: 0;
}

/* nad wierszem "Łącznie" nie ma też cienkiej linii */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr:has(+ tr.order-total) {
    border-bottom: 0;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals tr.order-total td::before {
    font-weight: 600;
    color: #171717;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals tr.order-total td > strong .woocommerce-Price-amount {
    font-size: 22px;
    line-height: 28px;
    font-weight: 700;
}

.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
    margin: 0;
    padding: 0;
}

.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button {
    display: block;
    width: 100%;
    margin: 0;
    padding: 14px 20px;
    border-radius: 8px;
    background: #171717;
    color: #FFFFFF;
    font: 600 16px/24px Inter, sans-serif;
    text-align: center;
    text-decoration: none;
}

.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button:hover {
    background: #232323;
    color: #FFFFFF;
}

@media (max-width: 1024px) {
    .elementor-widget-woocommerce-cart .woocommerce .e-cart__container {
        grid-template-columns: 1fr;
    }
    .elementor-widget-woocommerce-cart .woocommerce .e-sticky-right-column {
        position: static !important;
    }
}

@media (max-width: 767px) {
    .elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item {
        grid-template-columns: 56px minmax(0, 1fr);
        grid-template-areas:
            "img    name"
            "params params"
            "qty    sub";
        padding: 14px;
    }
    /* WooCommerce ukrywa miniatury na małych ekranach; tu są potrzebne */
    .elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td.product-thumbnail {
        display: block !important;
    }
    .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail a,
    .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-thumbnail img {
        width: 56px;
        height: 56px;
    }
    .elementor-widget-woocommerce-cart .woocommerce table.cart td.product-name > a {
        padding-right: 28px;
    }
    .elementor-widget-woocommerce-cart .woocommerce table.cart tr.cart_item td.product-subtotal {
        min-width: 0;
        padding-right: 0;
        align-self: end;
    }
    .elementor-widget-woocommerce-cart .woocommerce .e-cart-totals {
        padding: 16px;
    }
}

/* ---- dodatki z wtyczki na stronie koszyka ---- */

/* pasek darmowej dostawy (wiersz tabeli podsumowania) */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.drukorz-free-shipping-bar td {
    padding: 4px 0 2px !important;   /* WooCommerce (smallscreen.css) wymusza tu !important */
    text-align: left !important;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr.drukorz-free-shipping-bar td::before {
    display: none;
}

.drukorz-free-shipping-bar__text {
    display: block;
    margin-bottom: 8px;
    font: 400 12px/16px Inter, sans-serif;
    color: #737373;
}

.drukorz-free-shipping-bar__text strong,
.drukorz-free-shipping-bar__text .woocommerce-Price-amount {
    font-weight: 600;
    color: #171717;
}

.drukorz-free-shipping-bar__track {
    display: block;
    height: 6px;
    border-radius: 999px;
    background: #E5E5E5;
    overflow: hidden;
}

.drukorz-free-shipping-bar__fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: #171717;
    transition: width .3s ease;
}

/* linia "3 × cena" przy ilości > 1 */
.drukorz-qty-line {
    margin-top: 2px;
}

/* lista zaufania pod przyciskiem kasy */
.drukorz-cart-trust {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
    display: grid;
    gap: 6px;
}

.drukorz-cart-trust li {
    position: relative;
    padding-left: 18px;
    font: 400 12px/16px Inter, sans-serif;
    color: #737373;
}

.drukorz-cart-trust li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: #171717;
    font-weight: 600;
}

/* "Kontynuuj zakupy" pod listą pozycji */
.drukorz-continue-shopping {
    margin: 12px 0 0;
    font: 400 14px/20px Inter, sans-serif;
}

.drukorz-continue-shopping a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px;
    border: 1px solid #D4D4D4;
    border-radius: 8px;
    background: #FFFFFF;
    color: #171717;
    font: 600 14px/20px Inter, sans-serif;
    text-decoration: none;
}

.drukorz-continue-shopping a:hover {
    border-color: #171717;
}

/* telefon: przyklejony pasek z sumą i przyciskiem kasy */
.drukorz-cart-sticky {
    display: none;
}

@media (max-width: 767px) {
    .drukorz-cart-sticky {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 90;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        padding: 10px 16px;
        background: #FFFFFF;
        border-top: 1px solid #E5E5E5;
        box-shadow: 0 -8px 24px rgba(0, 0, 0, .06);
    }
    .drukorz-cart-sticky__total strong {
        display: block;
        font: 700 18px/24px Inter, sans-serif;
        color: #171717;
    }
    .drukorz-cart-sticky__button {
        flex: none;
        padding: 12px 20px;
        border-radius: 8px;
        background: #171717;
        color: #FFFFFF !important;   /* motyw koloruje linki na czarno z !important */
        font: 600 15px/24px Inter, sans-serif;
        text-decoration: none;
    }
    /* ikona CookieYes nie może zasłaniać paska */
    body.woocommerce-cart .cky-btn-revisit-wrapper {
        bottom: 80px !important;
    }
    /* miejsce na pasek, żeby nie zasłaniał stopki */
    .elementor-widget-woocommerce-cart .woocommerce .e-cart__container {
        padding-bottom: 72px;
    }
}

/* ---- komunikaty WooCommerce (usunięto pozycję, pusty koszyk, błędy) ----
   Domyślnie zielony/niebieski pasek z ikoną; tu wersja czarno-biała. */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error,
.elementor-widget-woocommerce-cart .woocommerce .cart-empty.woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
    margin: 0 0 16px;
    padding: 14px 16px;
    border: 0;
    border-radius: 8px;
    background: #F5F5F5;
    font: 400 14px/20px Inter, sans-serif;
    color: #232323;
}

.woocommerce .woocommerce-error {
    background: #FBEAE8;
}

/* WooCommerce po dodaniu produktu/błędzie programowo ustawia fokus na ten komunikat
   (dostępność - czytniki ekranu), co w części przeglądarek rysuje domyślną czarną
   ramkę fokusu. Komunikat nie jest elementem do klikania, więc ramkę zdejmujemy. */
.woocommerce-notices-wrapper .woocommerce-message:focus,
.woocommerce-notices-wrapper .woocommerce-info:focus,
.woocommerce-notices-wrapper .woocommerce-error:focus,
.woocommerce-notices-wrapper:focus,
.woocommerce .woocommerce-message:focus,
.woocommerce .woocommerce-info:focus,
.woocommerce .woocommerce-error:focus {
    outline: none;
    box-shadow: none;
}

.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before {
    display: none;
}

.woocommerce .woocommerce-message a,
.woocommerce .woocommerce-info a,
.woocommerce .woocommerce-error a {
    color: #171717;
    text-decoration: underline;
}

.woocommerce .return-to-shop .button {
    display: inline-block;
    padding: 12px 20px;
    border-radius: 8px;
    background: #171717;
    color: #FFFFFF;
    font: 600 15px/24px Inter, sans-serif;
    text-decoration: none;
}

/* --- Strona kasy (widget Elementora "Checkout", strona 11) -----------------
   Od 1200 px trzy kolumny w kolejności czytania:
   1 Dane zamawiającego | 2 Twoje zamówienie (z dostawą) | 3 Płatność i przycisk.
   1025-1199 px: dwie kolumny (dane | zamówienie + płatność), poniżej: jedna.
   Fonty w ustawieniach widgetu, tu układ. */

.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 460px;
    gap: 32px;
    align-items: start;
}

/* sekcje jako karty: widget rysuje je sam (col-1, col-2, podsumowanie, kupon,
   płatność) i bierze wartości z tych zmiennych CSS */
.elementor-widget-woocommerce-checkout-page {
    --sections-border-type: solid;
    --sections-border-color: #E5E5E5;
    --sections-border-radius: 12px;
    --sections-background-color: #FFFFFF;
    --sections-padding: 20px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .col2-set .col-1,
.elementor-widget-woocommerce-checkout-page .woocommerce .col2-set .col-2,
.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
.elementor-widget-woocommerce-checkout-page .woocommerce #payment {
    float: none;
    width: 100%;
    margin: 0 0 16px;
    box-shadow: none;
}

/* nagłówki sekcji z numerem kroku */
.elementor-widget-woocommerce-checkout-page .woocommerce h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-billing-fields h3::before,
.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review h3::before,
.elementor-widget-woocommerce-checkout-page .woocommerce #payment::before {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #171717;
    color: #FFFFFF;
    font: 600 13px/1 Inter, sans-serif;
    flex: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-billing-fields h3::before {
    content: "1";
}

.elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review h3::before {
    content: "2";
}

/* płatność nie ma w WooCommerce nagłówka - dorabiamy go */
.elementor-widget-woocommerce-checkout-page .woocommerce #payment::before {
    content: "3";
}

.elementor-widget-woocommerce-checkout-page .woocommerce #payment {
    --sections-padding: 62px 20px 20px;
    position: relative;
}

.elementor-widget-woocommerce-checkout-page .woocommerce #payment::before {
    position: absolute;
    left: 20px;
    top: 20px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce #payment::after {
    content: "Płatność";
    position: absolute;
    left: 56px;
    top: 20px;
    font: 600 18px/26px Inter, sans-serif;
    color: #171717;
}

/* nad przyciskiem kasy: płatność BLIK-iem i szybkim przelewem jeszcze niedostępna */
.elementor-widget-woocommerce-checkout-page .woocommerce .drukorz-payment-soon {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: 8px;
    background: #F5F5F5;
    font: 500 14px/20px Inter, sans-serif;
    color: #171717;
}

/* pola formularza: siatka 2 kolumn, równa wysokość, zaokrąglenia 8 */
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-billing-fields__field-wrapper,
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-shipping-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 12px;
    row-gap: 12px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row-wide,
.elementor-widget-woocommerce-checkout-page .woocommerce .form-row.notes {
    grid-column: 1 / -1;
}

/* WooCommerce daje polom "first/last" 47% szerokości; w naszej siatce mają wypełnić komórkę */
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-billing-fields__field-wrapper .form-row,
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-shipping-fields__field-wrapper .form-row {
    float: none;
    width: 100% !important;
}

/* miasto + kod pocztowy oraz telefon + e-mail: po dwa w rzędzie */
.elementor-widget-woocommerce-checkout-page .woocommerce #billing_city_field,
.elementor-widget-woocommerce-checkout-page .woocommerce #billing_postcode_field,
.elementor-widget-woocommerce-checkout-page .woocommerce #billing_phone_field,
.elementor-widget-woocommerce-checkout-page .woocommerce #billing_email_field,
.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_city_field,
.elementor-widget-woocommerce-checkout-page .woocommerce #shipping_postcode_field {
    grid-column: auto;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row label {
    display: block;
    margin: 0 0 4px;
    font: 400 12px/16px Inter, sans-serif;
    color: #737373;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row label .required {
    color: #171717;
    text-decoration: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row .input-text,
.elementor-widget-woocommerce-checkout-page .woocommerce .form-row select,
.elementor-widget-woocommerce-checkout-page .woocommerce .form-row .select2-container .select2-selection--single {
    box-sizing: border-box;
    width: 100%;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #D4D4D4;
    border-radius: 8px;
    background: #FFFFFF;
    font: 400 14px/38px Inter, sans-serif;
    color: #232323;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row .select2-container .select2-selection--single .select2-selection__rendered {
    height: 38px;
    line-height: 38px;
    padding: 0 24px 0 0;
    color: #232323;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row .select2-container .select2-selection--single .select2-selection__arrow {
    height: 38px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row textarea.input-text {
    height: auto;
    min-height: 72px;
    padding: 10px 12px;
    line-height: 20px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row .input-text:focus,
.elementor-widget-woocommerce-checkout-page .woocommerce .form-row select:focus {
    border-color: #171717;
    outline: none;
}

/* "Osoba prywatna" / "Firma" na górze danych zamawiającego (CheckoutBuyer).
   Nazwa firmy i NIP widoczne tylko przy "Firma". Przeglądarka bez :has() pokaże je zawsze. */
.elementor-widget-woocommerce-checkout-page .woocommerce .drukorz-buyer-type {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .drukorz-buyer-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 28px;
}

/* #customer_details: etykiety pól widget kasy Elementora styluje selektorem z #id (szare 12 px) */
.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .drukorz-buyer-type label.drukorz-buyer-option {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font: 400 14px/20px Inter, sans-serif;
    color: #171717;
    cursor: pointer;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .drukorz-buyer-option input {
    -webkit-appearance: none;
    appearance: none;
    flex: none;
    box-sizing: border-box;
    width: 18px;
    height: 18px;
    margin: 0;
    border: 1px solid #D4D4D4;
    border-radius: 50%;
    background: #FFFFFF;
    cursor: pointer;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .drukorz-buyer-option input:checked {
    border: 5px solid #171717;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .drukorz-buyer-option input:focus-visible {
    outline: 2px solid #171717;
    outline-offset: 2px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-billing-fields__field-wrapper:not(:has(input[name="billing_customer_type"][value="company"]:checked)) .drukorz-company-only {
    display: none;
}

/* "Wyślij na inny adres": nagłówek jako zwykły checkbox */
.elementor-widget-woocommerce-checkout-page .woocommerce #ship-to-different-address {
    float: none !important;   /* WooCommerce ustawia float:left selektorem z #id; przez to karta pod napisem go dotykała */
    margin: 0;
    font: 400 14px/20px Inter, sans-serif;
}

.elementor-widget-woocommerce-checkout-page .woocommerce #ship-to-different-address label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-shipping-fields {
    margin: 0 0 16px;
    padding: 0;
}

/* widget ma własny margines karty adresu wysyłki; nasz musi go przebić */
.elementor-widget-woocommerce-checkout-page .woocommerce #customer_details .woocommerce-shipping-fields .shipping_address {
    margin: 16px 0 0 !important;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-additional-fields h3 {
    display: none;
}

/* ---- Twoje zamówienie ---- */
/* Tabela rysowana jako bloki (jak w koszyku): pozycje to siatka 2 kolumn,
   sumy to wiersze flex. Dzieki temu lista metod dostawy zajmuje cala szerokosc. */
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table,
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tbody {
    display: block;
    width: 100%;
    margin: 0;
    border: 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tbody tr.cart_item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 12px;
    width: 100%;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tbody tr.cart_item td {
    display: block;
    width: auto;
    padding-right: 0;
}

/* widget ogranicza nazwę do 150 px regułą o większej sile - tu jeszcze mocniejsza */
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item td.product-name {
    max-width: none;
    padding-right: 0;
}

/* sumy poza układem tabeli (jak w koszyku): każdy wiersz to flex, dostawa w kolumnie */
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot {
    display: block;
    width: 100%;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot th,
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot td {
    display: block;
    width: auto;
    flex: 0 1 auto;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot th {
    flex: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table thead {
    display: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table th,
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table td {
    padding: 10px 0;
    border: 0;
    background: transparent;
    vertical-align: top;
    font: 400 14px/20px Inter, sans-serif;
    color: #232323;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table td {
    text-align: right;
}

/* pozycja: nazwa + ilość, parametry drobnym drukiem */
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table td.product-name {
    text-align: left;
    font-weight: 600;
    color: #171717;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table .product-quantity {
    font-weight: 400;
    color: #737373;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table dl.variation {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    column-gap: 10px;
    row-gap: 1px;
    margin: 6px 0 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table dl.variation dt,
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table dl.variation dd,
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table dl.variation dd p {
    display: block;
    float: none;
    margin: 0;
    padding: 0;
    border: 0;
    font: 400 12px/16px Inter, sans-serif;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table dl.variation dt { color: #737373; }
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table dl.variation dd { color: #232323; }

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table td.product-total {
    font-weight: 600;
    color: #171717;
    white-space: nowrap;
}

/* sumy */
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot th {
    text-align: left;
    font-weight: 400;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot td {
    font-weight: 600;
    color: #171717;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tr.order-total th,
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tr.order-total td {
    padding: 14px 0 4px;
}

/* linie: dolna pod pozycją i pod każdym wierszem sum, gruba nad "Do zapłaty" */
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tbody tr.cart_item,
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr {
    border-bottom: 1px solid #E5E5E5;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr.order-total {
    margin-top: 8px;
    border-top: 2px solid #171717;
    border-bottom: 0;
}

/* nad grubą linią "Do zapłaty" nie ma drugiej, cienkiej: wiersz dostawy nie ma dolnej linii */
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr.drukorz-ship-summary:not(.is-open),
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals {
    border-bottom: 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tr.order-total th {
    font-weight: 600;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tr.order-total td > strong .woocommerce-Price-amount {
    font-size: 22px;
    line-height: 28px;
    font-weight: 700;
}

/* dostawa: wybrana w koszyku = jedna linia z "Zmień"; lista metod ukryta do kliknięcia */
.elementor-widget-woocommerce-checkout-page .woocommerce tr.drukorz-ship-summary td {
    font-weight: 400;
}


.elementor-widget-woocommerce-checkout-page .woocommerce a.drukorz-ship-change {
    margin-left: 8px;
    color: #171717;
    text-decoration: underline;
    white-space: nowrap;
}

.elementor-widget-woocommerce-checkout-page .woocommerce tr.drukorz-ship-summary:not(.is-open) + tr.woocommerce-shipping-totals {
    display: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce tr.drukorz-ship-summary.is-open + tr.woocommerce-shipping-totals th {
    display: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce tr.drukorz-ship-summary.is-open + tr.woocommerce-shipping-totals td {
    padding-top: 0;
}

/* kafelki metod dostawy (jak w koszyku): etykieta nad listą, lista na całą szerokość */
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals {
    flex-direction: column;
    gap: 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals th,
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals td {
    flex: 1 1 100%;
    width: 100% !important;
    min-width: 100%;
    text-align: left;
}

.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals ul#shipping_method,
.elementor-widget-woocommerce-checkout-page .woocommerce table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals ul#shipping_method li {
    width: 100% !important;
    min-width: 100%;
}

.elementor-widget-woocommerce-checkout-page .woocommerce tr.woocommerce-shipping-totals th {
    padding-bottom: 8px;
    border-bottom: 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul#shipping_method {
    display: grid;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul#shipping_method li {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #E5E5E5;
    border-radius: 8px;
    text-indent: 0;
    font: 400 14px/20px Inter, sans-serif;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul#shipping_method li:has(input:checked) {
    border-color: #171717;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul#shipping_method li input {
    float: none;
    margin: 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul#shipping_method li label {
    flex: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 12px;
    row-gap: 4px;
    align-items: baseline;
    margin: 0;
    font-weight: 400;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul#shipping_method li label .drukorz-ship-price {
    margin-left: 0;
}

/* "Wybierz punkt odbioru" (wtyczka InPost): żółty InPostu, czarny napis w jednej linii.
   Wtyczka daje biały napis 19 px z cieniem (!important) i tło z ustawienia "Kolor przycisku mapy". */
.elementor-widget-woocommerce-checkout-page .woocommerce #easypack_show_geowidget.easypack_show_geowidget {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: none;
    margin: 0 0 20px auto;
    padding: 12px 24px;
    border: 0 !important;
    border-radius: 8px;
    box-shadow: none !important;
    background: #FCC905 !important;
    color: #171717;
    font: 600 16px/24px Inter, sans-serif !important;
    white-space: nowrap;
}

/* kupon: tylko link, pole po kliknięciu */
.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box {
    padding: 14px 20px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-coupon-nudge {
    margin: 0;
    font: 400 14px/20px Inter, sans-serif;
    color: #232323;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .e-woocommerce-coupon-nudge a {
    color: #171717;
    text-decoration: underline;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-anchor {
    margin-top: 12px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-anchor-description {
    display: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid {
    display: flex;
    gap: 8px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .input-text {
    flex: 1;
    height: 44px;
    padding: 0 12px;
    border: 1px solid #D4D4D4;
    border-radius: 8px;
    font: 400 14px/42px Inter, sans-serif;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .coupon-container-grid .button {
    height: 44px;
    padding: 0 16px;
    border: 1px solid #171717;
    border-radius: 8px;
    background: #FFFFFF;
    color: #171717;
    font: 600 14px/42px Inter, sans-serif;
}

/* ---- płatność ---- */
.elementor-widget-woocommerce-checkout-page .woocommerce ul.wc_payment_methods {
    display: grid;
    gap: 8px;
    margin: 0 0 16px;
    padding: 0;
    border: 0;
    list-style: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul.wc_payment_methods li.wc_payment_method {
    margin: 0;
    padding: 12px 14px;
    border: 1px solid #E5E5E5;
    border-radius: 8px;
    font: 400 14px/20px Inter, sans-serif;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul.wc_payment_methods li.wc_payment_method:has(input:checked) {
    border-color: #171717;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul.wc_payment_methods li.wc_payment_method > label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-weight: 500;
    color: #171717;
    cursor: pointer;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul.wc_payment_methods li.wc_payment_method input.input-radio {
    margin: 0 4px 0 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul.wc_payment_methods li.wc_payment_method .payment_box {
    margin: 10px 0 0;
    padding: 10px 12px;
    border-radius: 8px;
    background: #F5F5F5;
    font: 400 13px/18px Inter, sans-serif;
    color: #737373;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul.wc_payment_methods li.wc_payment_method .payment_box::before {
    display: none;
}

.elementor-widget-woocommerce-checkout-page .woocommerce ul.wc_payment_methods li.wc_payment_method .payment_box p {
    margin: 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text p {
    margin: 0 0 10px;
    font: 400 12px/16px Inter, sans-serif;
    color: #737373;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-privacy-policy-text a,
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-terms-and-conditions-wrapper a {
    color: #171717;
    text-decoration: underline;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .form-row.validate-required.woocommerce-validated,
.elementor-widget-woocommerce-checkout-page .woocommerce p.form-row.validate-required {
    margin: 0 0 14px;
}

/* Pola wyboru w kasie (zgoda na regulamin, "Wyślij na inny adres"): kwadracik w stylu strony,
   czarny z białym ptaszkiem, zamiast domyślnego z przeglądarki. */
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-terms-and-conditions-wrapper .checkbox input[type="checkbox"],
.elementor-widget-woocommerce-checkout-page .woocommerce #ship-to-different-address input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    flex: none;
    box-sizing: border-box;
    width: 18px;
    height: 18px;
    margin: 0;
    border: 1px solid #D4D4D4;
    border-radius: 4px;
    background: #FFFFFF no-repeat center / 12px 12px;
    cursor: pointer;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-terms-and-conditions-wrapper .checkbox input[type="checkbox"]:checked,
.elementor-widget-woocommerce-checkout-page .woocommerce #ship-to-different-address input[type="checkbox"]:checked {
    border-color: #171717;
    background-color: #171717;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-terms-and-conditions-wrapper .checkbox input[type="checkbox"]:focus-visible,
.elementor-widget-woocommerce-checkout-page .woocommerce #ship-to-different-address input[type="checkbox"]:focus-visible {
    outline: 2px solid #171717;
    outline-offset: 2px;
}

/* Zgoda na regulamin: gwiazdka zaraz za tekstem. Kwadracik pozycjonowany absolutnie,
   bo przy flexie gwiazdka uciekała do prawej krawędzi. */
.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-terms-and-conditions-wrapper .checkbox {
    position: relative;
    display: block;
    padding-left: 28px;
    font: 400 13px/18px Inter, sans-serif;
    color: #232323;
    cursor: pointer;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-terms-and-conditions-wrapper .checkbox input[type="checkbox"] {
    position: absolute;
    top: 0;
    left: 0;
}

.elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-terms-and-conditions {
    max-height: 240px;
    overflow: auto;
    margin: 0 0 12px;
    padding: 12px;
    border: 1px solid #E5E5E5;
    border-radius: 8px;
    font-size: 12px;
    line-height: 16px;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order {
    display: block;
    width: 100%;
    margin: 0;
    padding: 14px 20px !important;
    border: 0;
    border-radius: 8px !important;
    background: #171717 !important;
    color: #FFFFFF !important;
    font: 600 16px/24px Inter, sans-serif;
    text-align: center;
    cursor: pointer;
}

.elementor-widget-woocommerce-checkout-page .woocommerce-checkout #payment #place_order:hover {
    background: #232323 !important;
}

@media (min-width: 1200px) {
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__container {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 0.9fr);
        grid-template-areas:
            "dane zamowienie platnosc"
            "dane kupon      platnosc";
        grid-template-rows: auto 1fr;
        gap: 16px 24px;
    }

    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__column-start {
        grid-area: dane;
    }

    /* prawa kolumna widgetu przestaje być kolumną: jej trzy bloki stają się polami siatki */
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__column-end,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__column-inner {
        display: contents;
    }

    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review {
        grid-area: zamowienie;
    }

    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box {
        grid-area: kupon;
    }

    /* płatność i przycisk "jadą" z przewijaniem, więc przycisk jest zawsze pod ręką */
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review-2 {
        grid-area: platnosc;
        position: sticky;
        top: 80px;   /* pod przyklejonym nagłówkiem strony (64 px) */
        align-self: start;
    }

    .admin-bar .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review-2 {
        top: 112px;
    }

    /* odstępy między blokami robi siatka (gap), nie marginesy */
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__order_review,
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-coupon-box,
    .elementor-widget-woocommerce-checkout-page .woocommerce #payment {
        margin-bottom: 0;
    }
}

@media (max-width: 1024px) {
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-checkout__container {
        grid-template-columns: 1fr;
    }
    .elementor-widget-woocommerce-checkout-page .woocommerce .e-sticky-right-column {
        position: static !important;
    }
}

@media (max-width: 767px) {
    .elementor-widget-woocommerce-checkout-page {
        --sections-padding: 16px;
    }
    .elementor-widget-woocommerce-checkout-page .woocommerce #payment { --sections-padding: 58px 16px 16px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #payment::before { left: 16px; top: 16px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce #payment::after { left: 52px; top: 16px; }
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-billing-fields__field-wrapper,
    .elementor-widget-woocommerce-checkout-page .woocommerce .woocommerce-shipping-fields__field-wrapper {
        grid-template-columns: 1fr;
    }
}

/* --- Termin całego zamówienia (koszyk, kasa) ---------------------------------
   Gdy produkty mają różne terminy: WooCommerce::render_cart_delivery_note
   i render_checkout_delivery_note. */
.drukorz-delivery-note {
    margin: 12px 0 0;
    font: 400 13px/18px Inter, sans-serif;
    color: #525252;
}

.woocommerce-checkout-review-order-table .drukorz-delivery-note-row td {
    display: block;
    width: 100% !important;
    padding: 0 0 8px !important;
    border: 0 !important;
    text-align: left !important; /* WooCommerce wyrównuje komórki stopki tabeli do prawej */
}

/* kasa, pod dostawą: "Paczkę wyślemy w środę 28.10. Złóż i opłać zamówienie dziś do 15:00…" */
.woocommerce-checkout-review-order-table .drukorz-delivery-when-row td {
    display: block;
    width: 100% !important;
    padding: 4px 0 16px !important;
    border: 0 !important;
    text-align: left !important;
}

.drukorz-delivery-when {
    margin: 0;
    font: 400 13px/18px Inter, sans-serif;
    color: #525252;
}
