/* Este 2.0 - koszyk, kasa, potwierdzenie (grupa: zakup).
   Komponenty prototypu (.flow, .cart, .co, .line, .summary, .sumrow, .eta, .coupon,
   .addsku, .infos, .trust, .co-sec, .card, .mini, .sum-toggle, .ty) są w este.css.
   Tu: siatka koszyka (na telefonie podsumowanie zaraz po pozycjach) i znaczniki
   WooCommerce w tych układach (pole ilości, usuń, kupon, tabela zamówienia, płatności). */

/* ---------- 1. opakowanie ----------
   Koszyk, kasa i potwierdzenie renderują się jako main#main > .woocommerce (bez page.php
   i bez .entry-content), więc nie trzeba zerować typografii treści wpisu. */
.cart__main .line__name a { color: var(--ink); text-decoration: none; }
.cart__main .line__name a:hover { color: var(--t400); }

/* ---------- 2. koszyk ---------- */
.cart { grid-template-areas: "main side" "more side"; grid-template-rows: auto 1fr; }
.cart__main { grid-area: main; min-width: 0; }
.cart__side { grid-area: side; position: sticky; top: 20px; align-self: start; min-width: 0; }
.cart__more { grid-area: more; min-width: 0; }
.cart .summary { position: static; }
.cart__notice:empty { display: none; }
.cart__notice + .woocommerce-cart-form { margin-top: 14px; }
.cart__notice .notice b { font-weight: 500; }
.cart__notice .meter { margin-bottom: 0; }

.line.is-updating { opacity: .5; pointer-events: none; transition: opacity .2s; }
.line__body { min-width: 0; }
.line .thumb img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.line .variation, .line .backorder_notification { font-size: 13px; color: var(--muted); margin-top: 4px; }
.line .variation dt, .line .variation dd { display: inline; margin: 0; }
.line .variation dd p { display: inline; }
/* pole ilości WooCommerce w przełączniku: este-wp nadaje .quantity .qty ramkę 72 px, w stepperze jej nie chcemy */
.woocommerce-cart-form .stepper .qty { width: 100%; height: 100%; border: 0; border-radius: 0; background: none; padding: 0; box-shadow: none; }
.woocommerce-cart-form .stepper .qty:focus { outline: none; }
.line__total small { font-weight: 400; }
.line__total .tax_label { display: none; }
/* przycisk update_cart zostaje dla klawiatury i bez JS, ale nie zajmuje miejsca */
.cart__actions { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cart__actions:focus-within { position: static; width: auto; height: auto; clip: auto; margin-top: 12px; }

.cart__tools { align-items: center; }
.cart__empty { margin: 0; }
.addsku .qo input.field { height: 44px; }

/* podsumowanie */
.summary .sumrow .woocommerce-Price-amount { font-feature-settings: "tnum" 1; }
.summary .sumrow--total b strong { font-weight: 500; }
.summary .includes_tax, .co-review .includes_tax { display: none; }
.summary .woocommerce-remove-coupon { font-size: 13px; margin-left: 6px; color: var(--graphite); text-decoration: underline; text-underline-offset: 3px; }
.summary .coupon .field { height: 44px; }
.coupon-error-notice .woocommerce-error { margin: 0 0 14px; font-size: 14px; }
.summary .notice--warn { margin-top: 12px; font-size: 13px; }
.summary .wc-proceed-to-checkout { display: grid; gap: 8px; }
.summary .checkout-button { display: flex; width: 100%; height: 52px; font-size: 16px; margin-top: 16px; }

/* pusty koszyk */
/* wrapper to .cart-empty-page: klasę .cart-empty ma komunikat WooCommerce */
.cart-empty-page { padding-bottom: 72px; max-width: 760px; }
.cart-empty-page .page-head { margin-top: 32px; }
.cart-empty-page .wc-empty-cart-message { margin-top: 8px; }
.cart-empty-page .lead { margin-top: 6px; }
.cart-empty__acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.cart-empty__cats { margin-top: 28px; }

/* ---------- 3. kasa ---------- */
.co__main { min-width: 0; }
.co .woocommerce-notices-wrapper, .co + .woocommerce-notices-wrapper { margin-top: 0; }
.co-sec__h { font: 400 21px var(--f-display); margin: 0 0 16px; display: flex; align-items: center; gap: 12px; }
.co-sec__h .n { width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; font: 400 13px var(--f-body); display: inline-flex; align-items: center; justify-content: center; }
.co .flow .n { text-decoration: none; }

/* dane do faktury: karta z konta, „zmień" rozwija pola WooCommerce */
.co-bill > summary { list-style: none; cursor: pointer; }
.co-bill > summary::-webkit-details-marker { display: none; }
.co-bill > summary:focus-visible { outline: 2px solid var(--t400); outline-offset: 2px; }
.co-bill__data, .co-bill__line { display: block; min-width: 0; overflow-wrap: anywhere; }
.co-bill .src { display: flex; }
.co-bill__edit { flex: none; margin-top: -12px; }
.co-bill__less, .co-bill[open] .co-bill__more { display: none; }
.co-bill[open] .co-bill__less { display: inline; }
.co-bill__fields { padding-top: 18px; }
.co-bill .woocommerce-billing-fields > h3 { display: none; }
#customer_details .col-2 { margin-top: 14px; }
#customer_details .col-2:empty { display: none; }
#ship-to-different-address { font: 400 15px var(--f-body); margin: 0; }
#ship-to-different-address label { min-height: 44px; align-items: center; }
.shipping_address { padding-top: 14px; }
.woocommerce-additional-fields { margin-top: 10px; }
.woocommerce-additional-fields > h3 { font: 400 16px var(--f-display); margin: 8px 0 10px; }
.woocommerce-additional-fields textarea { min-height: 96px; }
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 12px; }
.checkout_coupon { margin: 0 0 16px; }
.checkout_coupon .form-row { margin-bottom: 8px; }

/* tabela zamówienia jako bloki: najpierw karty dostawy, potem sumy */
.co-review, .co-review > tbody, .co-review > tfoot, .co-review tr, .co-review th, .co-review td { display: block; }
/* este-wp nadaje komórkom .shop_table dolną linię i odstępy (tabela szczegółów zamówienia); tu komórki są wierszami sum */
.woocommerce table.shop_table.co-review th, .woocommerce table.shop_table.co-review td { border: 0; padding: 0; text-align: left; font-weight: 400; }
.co-review > thead, .co-review tr.cart_item { display: none; }
.co-review .woocommerce-shipping-totals > th { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.co-review .woocommerce-shipping-totals > td > p, .co-review .woocommerce-shipping-totals > td:not(:has(ul)) { background: #faf1e4; color: #6b4a14; border-radius: var(--r-btn); padding: 14px 16px; font-size: 14px; }
.co-review .woocommerce-shipping-totals > td > p { margin-top: 8px; }
.co-review #shipping_method li label { flex-wrap: wrap; }
.co-review > tfoot { margin-top: 18px; }
.co-review > tfoot > tr { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 7px 0; font-size: 15px; color: var(--graphite); }
.woocommerce table.shop_table.co-review > tfoot > tr > td { color: var(--ink); text-align: right; font-feature-settings: "tnum" 1; }
.co-review .order-total { border-top: 1px solid var(--line-strong); margin-top: 8px; padding-top: 16px !important; }
.co-review .order-total td strong { font: 500 22px var(--f-display); }
.co-review .order-total th small { display: block; font-size: 13px; color: var(--muted); }
.co-review .woocommerce-remove-coupon { font-size: 13px; margin-left: 6px; }
/* sumy są w bocznym podsumowaniu (odświeżanym fragmentem), tu tylko na telefonie */
@media (min-width: 761px) {
	.co:not(.co--static) .co-review > tfoot > :is(.cart-subtotal, .cart-discount, .co-review__shipsum, .fee, .tax-rate, .tax-total, .order-total) { display: none; }
}
/* bez inc/cart-2.php boczne sumy nie odświeżają się: zostają tylko pozycje */
.co--static .este-co-sum > .sumrow { display: none; }

/* płatność */
.co-sec__h { border-top: 1px solid var(--line); padding-top: 26px; margin-top: 26px !important; }
#payment { background: none; }
#payment .wc_payment_method > label { width: calc(100% - 36px); }
#payment .payment_box { font-size: 14px; }
#payment .place-order { margin-top: 18px; }

/* podsumowanie boczne i zwijane */
.co .summary--desk { top: 20px; }
.este-co-sum .mini li > div:nth-child(2) { min-width: 0; line-height: 1.4; }
.este-co-sum .mini .thumb img { width: 100%; height: 100%; object-fit: contain; }
.este-co-sum .mini .num { white-space: nowrap; font-feature-settings: "tnum" 1; }
.sum-toggle > summary > span { display: inline-flex; gap: 6px; }
.sum-toggle .acc__body { color: var(--ink); }

/* ---------- 4. potwierdzenie ---------- */
.wrap.ty { padding-left: var(--gutter); padding-right: var(--gutter); }
.ty__mark--warn { background: #fbeceb; color: #7c261f; }
.ty .lead.woocommerce-notice { max-width: none; }
.ty__box .sumrow b { text-align: right; overflow-wrap: anywhere; }
.ty__box .sumrow--total small { font-size: 13px; }
.ty__acts .btn { display: flex; }
.ty__next a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.ty__pay { margin-top: 24px; border: 1px solid var(--line); border-radius: var(--r); padding: 20px 22px; font-size: 15px; color: var(--graphite); }
.ty__pay > * + * { margin-top: 12px; }
.ty .ty__pay :is(h2, h3) { font: 400 18px var(--f-display); margin: 0 0 10px; color: var(--ink); }
.ty__pay .wc-bacs-bank-details-account-name { font: 500 15px var(--f-body) !important; margin-top: 14px !important; }
.ty__pay ul.bacs_details, .ty__pay ul.order_details { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ty__pay ul.bacs_details li { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ty__pay ul.bacs_details strong { font-weight: 500; color: var(--ink); font-feature-settings: "tnum" 1; user-select: all; }

/* ---------- 5. telefon ---------- */
@media (max-width: 760px) {
	.cart { grid-template-areas: "main" "side" "more"; grid-template-rows: auto; }
	.cart__side { position: static; }
	.summary .checkout-button { display: none; }
	.cart__tools { flex-direction: column; align-items: flex-start; gap: 0; }
	.addsku .qo input.field { height: var(--tap); }
	.co-bill__edit { margin-top: -10px; }
	/* „Zamawiam i płacę" jest w pasku akcji; #place_order zostaje w DOM dla bramek i klawiatury */
	.woocommerce-checkout #place_order { position: absolute !important; width: 1px; height: 1px; min-height: 0; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); border: 0; }
	.cart-empty-page .page-head { margin-top: 20px; }
	.cart-empty__acts .btn { flex: 1 1 100%; }
	.ty__pay { padding: 16px; }
}

/* ---------- zadanie 02 (audyt 2026-09-20): koszyk i kasa nie szersze niż ekran ----------
   Nazwy pozycji (także bez spacji) łamią się w swojej kolumnie; kwoty zostają w całości. */
.line__name, .line__name a, .line__body .variation { min-width: 0; overflow-wrap: anywhere; }
.line__total { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 400px) {
	.flow li { white-space: normal; }
}
/* Kasa blokowa (strona „Zamówienie" na produkcji ma blok woocommerce/checkout, szablony checkout/*.php nie są używane). */
.wc-block-components-sidebar-layout, .wc-block-checkout__main, .wc-block-checkout__sidebar,
.wc-block-components-order-summary, .wc-block-components-order-summary__content, .wc-block-components-order-summary-item,
.wc-block-components-order-summary-item__description, .wc-block-components-totals-wrapper, .wc-block-components-totals-item { min-width: 0; max-width: 100%; box-sizing: border-box; }
.wc-block-components-order-summary-item__description, .wc-block-components-product-name, .wc-block-components-product-metadata,
.wc-block-components-totals-item__label, .wc-block-components-totals-item__description, .wc-block-components-shipping-rates-control .wc-block-components-radio-control__label,
.wc-block-components-radio-control__label, .wc-block-components-radio-control__description { overflow-wrap: anywhere; }
/* Lista pozycji podsumowania ma w WooCommerce display:table i rośnie do treści (nazwa + kwota nowrap = 374 px na 320 px).
   Blok zamiast tabeli: kolumna opisu się zwęża, miniatura i kwota trzymają stałą szerokość. */
.wc-block-components-order-summary__content { display: block; width: 100%; }
.wc-block-components-order-summary-item { display: flex; width: 100%; align-items: flex-start; }
.wc-block-components-order-summary-item__image { flex: 0 0 48px; width: 48px; }
.wc-block-components-order-summary-item__description { flex: 1 1 auto; min-width: 0; }
.wc-block-components-order-summary-item__total-price { flex: 0 0 auto; max-width: 45%; }
.wc-block-components-product-badge { white-space: normal; }

/* ---------- zadanie 03/04 (audyt 2026-09-20) ---------- */
/* Termin wysyłki w podsumowaniu koszyka: opis pod tytułem, stany na zamówienie/mieszany bez daty. */
.eta .eta__note { display: block; font-size: 13px; color: var(--muted); margin-top: 4px; font-weight: 400; line-height: 1.4; }
.eta--backorder, .eta--mixed { border-color: var(--line-strong); }
/* Dane do faktury nad kasą blokową (inc/checkout-blocks.php). */
.co-invoice { border: 1px solid var(--line); border-radius: var(--r); padding: 18px 20px; margin: 0 0 24px; background: var(--paper); }
.co-invoice__h { font: 500 17px/1.3 var(--f-display); margin: 0 0 6px; }
.co-invoice__lead { margin: 0 0 8px; font-size: 14px; color: var(--graphite); }
.co-invoice__data { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.co-invoice__line { display: block; min-width: 0; overflow-wrap: break-word; font-size: 15px; }
.co-invoice__note { margin: 10px 0 0; font-size: 13px; color: var(--muted); line-height: 1.5; }
.co-invoice__edit { display: inline-block; margin-top: 4px; color: var(--t400); text-decoration: underline; text-underline-offset: 3px; min-height: 44px; line-height: 44px; }
@media (max-width: 760px) { .co-invoice { padding: 16px; margin-bottom: 18px; } }

/* ---------- audyt 26.09.2026 (P-06, A-21): kasa blokowa ---------- */
.co-wrap .wp-block-woocommerce-checkout { margin-top: 8px; }
/* Miniatura w podsumowaniu: znaczek ilości wystaje poza obrazek - overflow: hidden ucinał go do czarnego trójkąta. */
.wc-block-components-order-summary-item__image { position: relative; overflow: visible; }
.wc-block-components-order-summary-item__image img { width: 48px; height: 48px; object-fit: contain; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); }
.wc-block-components-order-summary-item__quantity { position: absolute; z-index: 1; top: -8px; right: -8px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--ink); color: #fff; font-size: 12px; line-height: 20px; text-align: center; box-sizing: border-box; }
/* Zaznaczone radio (dostawa, płatność) bez kropki wyglądało na niewybrane: WooCommerce koloruje ją dla
   Twenty Twenty-One zmienną --form--color-text, której nie ma (style rodzica są wyłączone). Ta sama specyficzność, późniejszy arkusz. */
.theme-twentytwentyone .wc-block-components-radio-control .wc-block-components-radio-control__input:checked { border-color: var(--t400); }
.theme-twentytwentyone .wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before { background: var(--t400); border-radius: 50%; }
.wc-block-components-radio-control__input:focus-visible { outline: 2px solid var(--t400); outline-offset: 2px; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 1px var(--t400); }
/* „Kupuję i płacę” to główna akcja strony - wygląd .btn--primary. */
.wc-block-components-checkout-place-order-button { min-height: 52px; background: var(--t400); border: 1px solid var(--t400); border-radius: var(--r-btn); color: #fff; font-size: 16px; font-weight: 500; }
.wc-block-components-checkout-place-order-button:hover:not(:disabled) { background: var(--t500); border-color: var(--t500); color: #fff; }
.wc-block-components-checkout-place-order-button:focus-visible { outline: 2px solid var(--t500); outline-offset: 2px; }
/* „Dane do faktury”: font ma tylko wagi 300/400, pogrubienie 700 było syntetyczne (zniekształcone litery). */
.co-invoice b, .co-invoice strong { font-family: var(--f-display); font-weight: 500; }

/* ---------- układ A kasy blokowej (audyt UX kasy 28.09.2026) ----------
   inc/checkout-blocks.php (karta faktury, termin wysyłki, pole PO, klasa .este-co-b2b)
   + assets/js/checkout-a.js (netto/VAT, „Do zapłaty”, pasek na telefonie). */

/* Dane z konta są kompletne: bez pola e-mail i bez drugiego adresu „rozliczeniowego” - fakturę opisuje karta. */
.este-co-b2b .wc-block-checkout__contact-fields,
.este-co-b2b .wc-block-checkout__billing-fields,
.este-co-b2b .wc-block-checkout__use-address-for-billing { display: none; }

/* Karta „Faktura VAT” jako pierwsza sekcja lewej kolumny. */
.co-invoice__top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.co-invoice__top .co-invoice__edit { margin-top: 0; min-height: 44px; line-height: 44px; font-size: 14px; }
.co-invoice__data .co-invoice__note { margin: 4px 0 0; }
.co-invoice.is-in-main { margin: 0 0 28px; }

/* Jedna metoda dostawy: bez pozornego wyboru (radio), z terminem wysyłki jako znacznikiem. */
.wc-block-checkout__shipping-option .wc-block-components-radio-control:has(> .wc-block-components-radio-control__option:only-child) .wc-block-components-radio-control__input { display: none; }
.wc-block-checkout__shipping-option .wc-block-components-radio-control:has(> .wc-block-components-radio-control__option:only-child) .wc-block-components-radio-control__option { padding-left: 16px; }
.wc-block-checkout__shipping-option .wc-block-components-radio-control__description { display: block; width: fit-content; margin-top: 6px; padding: 2px 8px; border-radius: 6px; background: var(--t100); color: var(--t500); font-size: 13px; line-height: 1.5; }

/* Podsumowanie: jedna cena na pozycję, bez opisu produktu, nazwa w dwóch liniach, bez pustego pola kuponów. */
.wc-block-components-order-summary-item .wc-block-cart-item__prices,
.wc-block-components-order-summary-item .wc-block-components-product-metadata__description,
.wp-block-woocommerce-checkout-order-summary-coupon-form-block { display: none; }
.wc-block-components-order-summary-item .wc-block-components-product-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 761px) {
	.wc-block-checkout__sidebar { position: sticky; top: 24px; align-self: flex-start; }
}

/* Netto / VAT / rabat w podsumowaniu (slot ExperimentalOrderMeta). */
.co-meta, .wc-block-components-totals-wrapper .wc-block-components-order-meta .co-meta { display: grid; gap: 6px; padding: 0 16px 16px; border: 0; font-size: 14px; color: var(--graphite); }
.co-meta__row { display: flex; justify-content: space-between; gap: 12px; }
.co-meta__val { font-variant-numeric: tabular-nums; white-space: nowrap; }
.co-meta__note { margin: 4px 0 0; font-size: 13px; color: var(--muted); }

/* „Do zapłaty” tuż nad przyciskiem, kontakt pod nim. */
.co-pay { margin: 8px 0 12px; padding-top: 16px; border-top: 1px solid var(--line); }
.co-pay__row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.co-pay__label { font: 500 17px/1.3 var(--f-display); color: var(--ink); }
.co-pay__total { font: 500 22px/1.2 var(--f-display); color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.co-help { margin: 12px 0 0; font-size: 13px; color: var(--muted); text-align: center; }

/* Telefon: przypięty pasek z kwotą i przyciskiem (znika, gdy właściwy przycisk jest na ekranie). */
.co-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--paper); border-top: 1px solid var(--line-strong); }
.co-sticky[hidden] { display: none; }
.co-sticky__sum { display: grid; line-height: 1.2; }
.co-sticky__label { font-size: 12px; color: var(--muted); }
.co-sticky__total { font: 500 18px/1.2 var(--f-display); color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.co-sticky__btn { min-height: 48px; padding: 0 20px; border: 1px solid var(--t400); border-radius: var(--r-btn); background: var(--t400); color: #fff; font: 500 15px var(--f-body); cursor: pointer; }
.co-sticky__btn:focus-visible { outline: 2px solid var(--t500); outline-offset: 2px; }
body.has-co-sticky { padding-bottom: 72px; }

/* ---------- kasa blokowa w typografii i kolorach koszyka (28.09.2026) ----------
   Blok WooCommerce ma własną skalę (Monolith 18 px, wagi 500, szare ramki). Tu te same wartości co koszyk
   i prototyp kasy w este.css: .summary / .sumrow (podsumowanie), .co-sec h2 (nagłówki sekcji), .card (karty),
   .line__name (nazwa produktu). Tylko tokeny z :root. */
.co-wrap .wp-block-woocommerce-checkout { font: 400 15px/1.6 var(--f-body); color: var(--graphite); }

/* nagłówki sekcji jak .co-sec h2 */
.co-wrap .wc-block-components-checkout-step__title,
.co-wrap .wc-block-checkout__form .wc-block-components-title,
.co-wrap .co-invoice__h { font: 400 21px/1.3 var(--f-display); color: var(--ink); letter-spacing: 0; }
.co-wrap .wc-block-components-checkout-step__description { font-size: 14px; color: var(--muted); }

/* tekst treści 15 px, wagi 400 */
.co-wrap .wc-block-components-address-card,
.co-wrap .wc-block-components-radio-control__label,
.co-wrap .wc-block-components-radio-control__secondary-label,
.co-wrap .wc-block-components-checkbox__label,
.co-wrap .wc-block-components-radio-control-accordion-content,
.co-wrap .wc-block-components-radio-control__option .wc-block-components-radio-control__description-group { font-size: 15px; line-height: 1.6; font-weight: 400; }
.co-wrap .wc-block-components-radio-control__label,
.co-wrap .wc-block-components-address-card address > span:first-child { color: var(--ink); }
.co-wrap .wc-block-components-radio-control__secondary-label { color: var(--ink); font-feature-settings: "tnum" 1; }
.co-wrap .wc-block-components-address-card,
.co-wrap .wc-block-components-radio-control-accordion-content { color: var(--graphite); }

/* karty wyboru i adresu jak .card */
.co-wrap .wc-block-components-address-card,
.co-wrap .wc-block-components-radio-control__option,
.co-wrap .wc-block-components-radio-control-accordion-option,
.co-wrap .co-invoice { border: 1px solid var(--line-strong); border-radius: var(--r-btn); box-shadow: none; }
.co-wrap .wc-block-components-radio-control--highlight-checked { border: 0; box-shadow: none; }
.co-wrap .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option--checked-option-highlighted,
.co-wrap .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted { border-color: var(--t400); border-radius: var(--r-btn); box-shadow: inset 0 0 0 1px var(--t400); }
.co-wrap .wc-block-components-radio-control--highlight-checked::after { display: none; }
.co-wrap .co-invoice b { font: 400 16px/1.35 var(--f-display); color: var(--ink); }

/* linki akcji jak w koszyku („dodaj”, „usuń”) */
.co-wrap .wc-block-components-address-card__edit,
.co-wrap .co-invoice__edit { font-size: 15px; color: var(--t400); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }

/* pola: etykiety wyciszone, tekst 16 px (bez powiększania na iOS) */
.co-wrap .wc-block-components-text-input label,
.co-wrap .wc-block-components-textarea::placeholder { color: var(--muted); }

/* drobny druk (zgoda) jak dopisek pod koszykiem */
.co-wrap .wc-block-checkout__terms,
.co-wrap .wc-block-checkout__terms .wc-block-components-checkbox__label { font-size: 13px; line-height: 1.5; color: var(--muted); }
.co-wrap .wc-block-checkout__terms a { color: var(--graphite); text-decoration: underline; text-underline-offset: 3px; }

/* podsumowanie jak .summary w koszyku: perłowe tło, bez ramki */
.co-wrap .wp-block-woocommerce-checkout-order-summary-block { background: var(--pearl); border: 0; border-radius: var(--r); padding: 8px; font-size: 15px; line-height: 1.6; }
.co-wrap .wc-block-components-checkout-order-summary__title { font: 400 20px var(--f-display); color: var(--ink); }
.co-wrap .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-wrapper { border-top-color: var(--line-strong); }
.co-wrap .wc-block-components-order-summary-item .wc-block-components-product-name { font: 400 15px/1.35 var(--f-display); color: var(--ink); }
.co-wrap .wc-block-components-order-summary-item__total-price { font-size: 15px; color: var(--ink); font-feature-settings: "tnum" 1; }
.co-wrap .wc-block-components-order-summary-item__image img { background: var(--paper); border-color: var(--line-strong); }
.co-wrap .wc-block-components-totals-item__label { font-size: 15px; font-weight: 400; color: var(--graphite); }
.co-wrap .wc-block-components-totals-item__value { font-size: 15px; font-weight: 400; color: var(--ink); font-feature-settings: "tnum" 1; }
/* „Łącznie” jak .sumrow--total */
.co-wrap .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font: 400 15px var(--f-body); color: var(--graphite); }
.co-wrap .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font: 500 26px var(--f-display); color: var(--ink); }
.co-wrap .wc-block-components-totals-footer-item-tax { font-size: 13px; font-weight: 400; color: var(--muted); }
.co-wrap .co-meta, .co-wrap .wc-block-components-totals-wrapper .wc-block-components-order-meta .co-meta { font-size: 15px; }
.co-wrap .co-meta__val { color: var(--ink); }

/* „Do zapłaty” przy przycisku jak w koszyku */
.co-wrap .co-pay__label { font: 400 15px var(--f-body); color: var(--graphite); }
.co-wrap .co-pay__total { font: 500 26px var(--f-display); }
.co-sticky__total { font: 500 20px/1.2 var(--f-display); }

/* przycisk jak „Przejdź do płatności” (.summary .btn--go) */
.co-wrap .wc-block-components-checkout-place-order-button { font: 400 16px var(--f-body); }
/* znaczek ilości i dopisek o dostępności jak w koszyku (.line: 13 px, wyciszony, bez tła) */
.co-wrap .wc-block-components-order-summary-item__quantity { background: var(--ink); color: #fff; border: 0; box-shadow: none; }
.co-wrap .wc-block-components-order-summary-item .wc-block-components-product-badge { display: block; width: auto; margin: 4px 0 0; padding: 0; border: 0; border-radius: 0; background: none; font-size: 13px; line-height: 1.4; font-weight: 400; color: var(--muted); text-transform: none; }

/* ---------- kasa klasyczna, układ C+B (inc/checkout-classic.php, woocommerce/checkout/form-checkout.php) ----------
   Kroki Faktura › Dostawa › Płatność jako karty jak .card; zwinięty krok = jedna linia podsumowania i „zmień”.
   C („Sprawdź i zamów”): faktura i dostawa zwinięte, płatność otwarta. B: krok po kroku z „Dalej”. */
.co__head { grid-column: 1 / -1; display: grid; gap: 4px; margin: 4px 0 8px; }
.co__head .co__title { margin: 0; font: 400 28px/1.2 var(--f-display); color: var(--ink); }
.co__head .meta { margin: 0; font-size: 14px; color: var(--muted); }
.cstep-set { display: grid; gap: 12px; }
.cstep { border: 1px solid var(--line-strong); border-radius: var(--r-btn); background: var(--paper); }
.cstep.is-open { border-color: var(--ink); }
.cstep__h { display: flex; align-items: center; gap: 14px; padding: 16px 18px; min-height: 64px; }
.cstep__n { flex: none; width: 26px; height: 26px; border-radius: 50%; display: inline-grid; place-items: center; font: 400 13px var(--f-body); border: 1px solid var(--line-strong); color: var(--muted); }
.cstep.is-open .cstep__n { background: var(--ink); border-color: var(--ink); color: #fff; }
.cstep.is-done .cstep__n { background: var(--t400); border-color: var(--t400); color: #fff; }
.cstep__t { flex: 1; min-width: 0; display: grid; gap: 2px; }
.cstep__t h2 { margin: 0; font: 400 19px/1.3 var(--f-display); color: var(--ink); }
.cstep__sum { margin: 0; font-size: 14px; color: var(--graphite); overflow-wrap: anywhere; }
.cstep__sum:empty, .cstep.is-open .cstep__sum, .cstep.is-next .cstep__sum { display: none; }
.cstep__edit { flex: none; min-height: 44px; font-size: 15px; color: var(--t400); text-decoration: underline; text-underline-offset: 4px; background: none; border: 0; cursor: pointer; }
.cstep.is-open .cstep__edit, .cstep.is-next .cstep__edit { display: none; }
.cstep__b { display: none; padding: 0 18px 20px 58px; }
.cstep.is-open .cstep__b { display: block; }
.cstep.is-next .cstep__h { color: var(--muted); }
.cstep.is-next .cstep__t h2 { color: var(--muted); }
.cstep__sub { margin: 20px 0 10px; font: 400 16px var(--f-display); color: var(--ink); }
.cstep__next { margin-top: 18px; min-height: 48px; }
.co--review .cstep[data-cstep="platnosc"] .cstep__next { display: none; }
.co-bill-card { margin-bottom: 10px; }
.co-bill > summary.linkbtn { display: inline-flex; min-height: 44px; align-items: center; color: var(--t400); text-decoration: underline; text-underline-offset: 4px; }
.cstep .co-po { margin: 0 0 16px; }
.cstep .co-po .description { display: block; margin-top: 4px; font-size: 13px; color: var(--muted); }
.co-eta { display: block; width: fit-content; margin-top: 4px; padding: 2px 8px; border-radius: 6px; background: var(--t100); color: var(--t500); font-size: 13px; line-height: 1.5; }
.co-switch { margin: 14px 0 0; font-size: 14px; }
/* płatność: przycisk i kwota jak w podsumowaniu koszyka */
.cstep #payment .place-order { display: grid; gap: 10px; }
/* tylko komputer: na telefonie #place_order jest ukryty wizualnie (przycisk w pasku akcji), a szerokość 100% przy
   position: absolute poszerzała stronę do ~425 px i telefon pomniejszał całą kasę */
@media (min-width: 761px) {
	.cstep #place_order { width: 100%; min-height: 52px; font-size: 16px; }
}
.cstep .co-pay { margin: 8px 0 0; padding-top: 14px; border-top: 1px solid var(--line-strong); }
.cstep .co-pay__label { font: 400 15px var(--f-body); color: var(--graphite); }
.cstep .co-pay__total { font: 500 26px var(--f-display); color: var(--ink); }
@media (max-width: 760px) {
	.cstep__h { padding: 14px; gap: 12px; }
	.cstep__b { padding: 0 14px 18px; }
	.co__head .co__title { font-size: 24px; }
}
/* dane osobowe i regulamin nad przyciskiem - drobnym drukiem, bez pola wyboru */
.cstep .woocommerce-privacy-policy-text p,
.cstep .co-terms { margin: 0 0 8px; font-size: 13px; line-height: 1.5; color: var(--muted); }
.cstep .woocommerce-privacy-policy-text a,
.cstep .co-terms a { color: var(--t400); text-decoration: underline; text-underline-offset: 3px; }

/* „Uzupełnij zabieg” pod pozycjami koszyka (woocommerce/cart/este-xs.php, wtyczka Este Sprzedaż).
   Lista .rel z parts/product.css, tu tylko układ sekcji i mniejsza miniatura. */
.xs { margin-top: 28px; }
.xs .h3 { margin: 0; }
.xs__lead { margin: 10px 0 10px; font-size: 14px; }
.xs__lead .link { margin-left: 4px; }
.xs .rel li { grid-template-columns: 56px minmax(0, 1fr) auto; }
.xs .rel .thumb { width: 56px; height: 56px; }
.xs .rel + .xs__lead { margin-top: 18px; }
.xs__ship { margin: 12px 0 0; color: var(--t500); }
