/* ==========================================================================
   Sprawdzianowo — sklep (shop.css)
   Koszyk, zamówienie, konto, logowanie oraz przemapowanie znaczników
   WooCommerce na język designu (.sp-*).
   Plik dopisuje TYLKO to, czego nie ma w main.css — klas bazowych nie
   redefiniujemy (.sp-btn, .sp-card, .sp-input, .sp-tabs, .sp-eyebrow…).
   Jedyny wyjątek, neutralizacja rytmu `.sp-prose` w sekcji 1, jest zamknięty
   w klasach body koszyka/zamówienia/konta i nie wychodzi poza te widoki.
   Kolejność: kontener → komunikaty → przyciski → pola → koszyk → ilość →
   podsumowanie → zamówienie → płatność → podziękowanie → konto → logowanie →
   tabele Woo → puste stany → RWD (1180 / 900 / 640).
   ========================================================================== */

/* ==========================================================================
   1. Kontener stron sklepu
   ==========================================================================
   Koszyk, zamówienie i konto to zwykłe strony WordPressa, więc renderują się
   przez page.php: nagłówek strony + kolumna .sp-prose (max-width 820px).
   Widoki sklepu mają własne nagłówki i szersze siatki, dlatego tutaj zdejmujemy
   ograniczenia szablonu strony. Zasięg jest ograniczony do klas body WooCommerce. */

.woocommerce-cart .sp-page__head,
.woocommerce-checkout .sp-page__head,
.woocommerce-account .sp-page__head{display:none}

.woocommerce-cart .sp-page__body,
.woocommerce-checkout .sp-page__body,
.woocommerce-account .sp-page__body{
	max-width:none;
	color:var(--text);
	font-size:15px;
	line-height:1.6;
}

.woocommerce-cart .sp-page__body > p,
.woocommerce-checkout .sp-page__body > p,
.woocommerce-account .sp-page__body > p{margin:0 0 16px}

.woocommerce-cart .sp-wrap.sp-section,
.woocommerce-checkout .sp-wrap.sp-section,
.woocommerce-account .sp-wrap.sp-section{padding-top:40px}

/* Shortcode WooCommerce opakowuje treść w .woocommerce — zerujemy jego marginesy. */
.sp-page__body > .woocommerce{margin:0}

/* --- Rytm kolumny artykułu (.sp-prose z main.css) ---
   page.php osadza treść w `.sp-prose`, a jego selektory potomne
   (`.sp-prose h2`, `.sp-prose ul`, `.sp-prose table`, `.sp-prose a`…) mają
   wyższą specyficzność niż klasy komponentów. Neutralizujemy je wyłącznie na
   widokach sklepu — zasięg daje prefiks z klasami body WooCommerce, tak jak
   w bloku wyżej. Prefiks siedzi w `:where()`, więc NIE podbija specyficzności:
   zostaje ona równa `.sp-prose h2` z main.css i wygrywamy samą kolejnością
   ładowania (shop.css po main.css). To celowe — reguły komponentów niżej są
   kwalifikowane elementem (`h2.sp-…`, `ul.sp-…`) i mają wygrywać z tym blokiem
   po kolejności, a nie przegrywać z podbitą specyficznością.
   Treść redakcyjna poza koszykiem/zamówieniem/kontem zachowuje pełną
   typografię `.sp-prose`. */
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose h2,
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose h3{font:inherit;letter-spacing:normal;color:inherit;margin:0;scroll-margin-top:0}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose ul,
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose ol{margin:0;padding:0;list-style:none}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose li{margin-bottom:0}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose img{border-radius:0;margin:0}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose table{margin:0;font-size:inherit}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose th,
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose td{padding:0;border-bottom:none}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose a{color:var(--accent-hi);text-decoration:none}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose a:hover{color:var(--accent);text-decoration:none}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose a.sp-btn,
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose a.sp-btn:hover{color:var(--text);text-decoration:none}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose a.sp-btn--primary,
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose a.sp-btn--primary:hover{color:var(--accent-ink)}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose a.sp-btn--ghost{color:var(--muted)}
:where(.woocommerce-cart,.woocommerce-checkout,.woocommerce-account) .sp-prose a.sp-btn--ghost:hover{color:var(--text)}

/* ==========================================================================
   2. Komunikaty WooCommerce → .sp-notice
   ==========================================================================
   Skin komunikatów (`.sp-notice`, `.woocommerce-message|info|error`,
   `.woocommerce-noreviews`, `.woocommerce-NoticeGroup`) mieszka w main.css —
   Woo drukuje je również w katalogu i na karcie produktu, gdzie ten plik się
   nie ładuje. Tutaj zostaje wyłącznie to, co odtwarza odstępy skasowane przez
   lokalną neutralizację `.sp-prose ul` z sekcji 1. */

ul.woocommerce-message,
ul.woocommerce-info,
ul.woocommerce-error{margin:0 0 20px;padding:15px 18px}

.woocommerce-NoticeGroup > ul{margin:0;padding:15px 18px}

/* Nagłówki etykiet sekcji (h2.sp-eyebrow) — pełna typografia, bo blok
   neutralizujący `.sp-prose h2` ma wyższą specyficzność niż sama .sp-eyebrow. */
h2.sp-summary__label,
h2.sp-step__label,
h2.sp-files__label{
	font-family:var(--sp-font-body);font-size:11px;font-weight:800;
	letter-spacing:.11em;line-height:1.4;
	color:var(--dim);text-transform:uppercase;
}

h2.sp-empty__title,
h2.sp-auth__panel-title{
	font-family:var(--sp-font-head);font-weight:800;letter-spacing:-.02em;
	color:var(--text);line-height:1.2;
}
h2.sp-empty__title{font-size:24px}
h2.sp-auth__panel-title{font-size:19.5px}

/* ==========================================================================
   3. Przyciski WooCommerce (te, które nie dostały klas .sp-btn)
   ========================================================================== */

.woocommerce-cart .button:not(.sp-btn),
.woocommerce-checkout .button:not(.sp-btn),
.woocommerce-account .button:not(.sp-btn),
.woocommerce-cart .wp-element-button:not(.sp-btn),
.woocommerce-checkout .wp-element-button:not(.sp-btn),
.woocommerce-account .wp-element-button:not(.sp-btn){
	display:inline-flex;align-items:center;justify-content:center;gap:9px;
	height:46px;padding:0 20px;
	border:1px solid transparent;border-radius:12px;
	background:var(--accent);color:var(--accent-ink);
	font-family:var(--sp-font-head);font-weight:800;font-size:14.5px;
	text-decoration:none;cursor:pointer;white-space:nowrap;
	transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}

.woocommerce-cart .button:not(.sp-btn):hover,
.woocommerce-checkout .button:not(.sp-btn):hover,
.woocommerce-account .button:not(.sp-btn):hover{
	background:var(--accent-hi);color:var(--accent-ink);text-decoration:none;
	transform:translateY(-1px);box-shadow:var(--sp-shadow-cta);
}

/* Warianty poboczne WooCommerce — mniej krzykliwe. */
.woocommerce-account .button.woocommerce-button--previous:not(.sp-btn),
.woocommerce-account .button.woocommerce-button--next:not(.sp-btn),
.woocommerce-cart .button[name="update_cart"]:not(.sp-btn){
	background:none;border-color:var(--line2);color:var(--text);font-weight:700;
}

/* ==========================================================================
   4. Pola formularzy WooCommerce
   ========================================================================== */

.sp-fields,
.sp-form,
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields,
.woocommerce-address-fields,
.woocommerce-EditAccountForm{color:var(--text)}

.sp-fields label,
.sp-form label:not(.sp-checkbox):not(.woocommerce-form__label-for-checkbox),
.woocommerce-address-fields label:not(.woocommerce-form__label-for-checkbox),
.woocommerce-EditAccountForm label:not(.woocommerce-form__label-for-checkbox){
	display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:7px;
}

.sp-fields .required,
.sp-form .required{color:var(--warn);text-decoration:none}
.sp-fields .optional,
.sp-form .optional{color:var(--dim);font-weight:500}

.sp-fields .input-text,
.sp-fields select,
.sp-fields textarea,
.sp-form .input-text,
.woocommerce-address-fields .input-text,
.woocommerce-address-fields select,
.woocommerce-EditAccountForm .input-text,
.checkout_coupon .input-text{
	width:100%;height:46px;
	background:var(--surface2);border:1px solid var(--line);border-radius:11px;
	padding:0 14px;font-family:var(--sp-font-body);font-size:14px;color:var(--text);
	outline:none;
	transition:border-color .2s ease,background .2s ease;
}

.sp-fields .input-text::placeholder,
.sp-form .input-text::placeholder{color:var(--dim)}

.sp-fields .input-text:focus,
.sp-fields select:focus,
.sp-fields textarea:focus,
.sp-form .input-text:focus,
.woocommerce-address-fields .input-text:focus,
.woocommerce-EditAccountForm .input-text:focus,
.checkout_coupon .input-text:focus{border-color:var(--accent)}

.sp-fields textarea,
.woocommerce-address-fields textarea{height:auto;min-height:110px;padding:12px 14px;line-height:1.7;resize:vertical}

.sp-fields select,
.woocommerce-address-fields select{
	appearance:none;-webkit-appearance:none;-moz-appearance:none;
	padding-right:38px;cursor:pointer;
	background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236E7683' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat:no-repeat;background-position:right 13px center;background-size:13px 13px;
}

/* Siatka pól: dwie kolumny, pola „wide" na całą szerokość. */
.sp-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.sp-fields > .form-row,
.sp-fields > p{margin:0 0 16px;min-width:0}
.sp-fields > .form-row-wide,
.sp-fields > .form-row.notes,
.sp-fields > #billing_email_field,
.sp-fields > #billing_company_field,
.sp-fields > #billing_address_1_field,
.sp-fields > #billing_address_2_field,
.sp-fields > #billing_country_field,
.sp-fields > #shipping_address_1_field,
.sp-fields > #shipping_address_2_field,
.sp-fields > #shipping_country_field{grid-column:1 / -1}

.sp-fields .woocommerce-input-wrapper{display:block;width:100%}
.sp-fields .clear{display:none}

/* E-mail to najważniejsze pole na tej stronie — podbijamy jego wagę. */
.sp-step--billing #billing_email_field label{font-size:13.5px}
.sp-step--billing #billing_email_field .input-text{height:50px;font-size:15px}

/* select2 (kraj / region) sprowadzony do wyglądu .sp-input. */
.woocommerce-page .select2-container--default .select2-selection--single{
	height:46px;background:var(--surface2);border:1px solid var(--line);border-radius:11px;
}
.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__rendered{
	line-height:44px;padding-left:14px;color:var(--text);font-size:14px;
}
.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__arrow{height:44px;right:10px}
.woocommerce-page .select2-dropdown{
	background:var(--surface);border:1px solid var(--line);border-radius:12px;
	box-shadow:var(--sp-shadow-menu);overflow:hidden;
}
.woocommerce-page .select2-container--default .select2-results__option{color:var(--muted);font-size:13.5px}
.woocommerce-page .select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--accent);color:#fff}
.woocommerce-page .select2-search--dropdown .select2-search__field{
	background:var(--surface2);border:1px solid var(--line);border-radius:9px;color:var(--text);padding:8px 10px;
}

/* ==========================================================================
   5. Koszyk
   ========================================================================== */

.sp-cart{max-width:1180px;margin:0 auto;padding-bottom:52px}

.sp-cart__head{margin-bottom:32px}
.sp-cart__title{font-size:34px;margin:0 0 6px}
.sp-cart__lead{margin:0;max-width:640px}

.sp-cart__cols{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:28px;align-items:start}
.sp-cart__main{display:flex;flex-direction:column;gap:20px;min-width:0}
/* Kolumna boczna rozciąga się na wysokość wiersza siatki — inaczej .sp-sticky
   na podsumowaniu nie miałoby po czym „jechać". */
.sp-cart__side{min-width:0;align-self:stretch}
.sp-cart__collaterals{display:flex;flex-direction:column;gap:20px;height:100%}

.sp-cart-items{padding:8px 20px}

.sp-cart-item{
	display:flex;align-items:center;gap:16px;
	padding:18px 0;border-bottom:1px solid var(--line);
}

.sp-cart-item__media{flex:none;line-height:0}
.sp-cart-item__media a{display:block;line-height:0}

.sp-cart-item__thumb{
	width:56px;height:56px;flex:none;border-radius:10px;overflow:hidden;
	background:linear-gradient(160deg,#F4F5F2,#E4E7E2);
	color:#14181F;
	display:flex;align-items:center;justify-content:center;text-align:center;
	font-family:var(--sp-font-head);font-weight:900;font-size:12px;letter-spacing:-.01em;
}
.sp-cart-item__thumb--image{background:var(--surface2)}
.sp-cart-item__img{width:100%;height:100%;object-fit:cover}

.sp-cart-item__body{flex:1;min-width:0}
.sp-cart-item__title{
	font-family:var(--sp-font-head);font-weight:700;font-size:15.5px;line-height:1.3;
	letter-spacing:-.01em;color:var(--text);margin-bottom:5px;text-wrap:pretty;
}
.sp-cart-item__title a{color:inherit;text-decoration:none}
.sp-cart-item__title a:hover{color:var(--accent-hi);text-decoration:none}
.sp-cart-item__meta{margin:0;font-size:12.5px;line-height:1.5;color:var(--muted)}
.sp-cart-item__body .variation,
.sp-cart-item__body .wc-item-meta{margin:6px 0 0;padding:0;font-size:12px;color:var(--dim);list-style:none}
.sp-cart-item__body .variation dt,
.sp-cart-item__body .wc-item-meta strong{font-weight:700;color:var(--muted)}
.sp-cart-item__body .backorder_notification{margin:6px 0 0;font-size:12px;color:var(--warn)}

.sp-cart-item__qty{flex:none}

.sp-cart-item__price{
	flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px;
	font-family:var(--sp-font-head);font-weight:800;font-size:16px;color:var(--text);
	white-space:nowrap;
}
.sp-cart-item__unit{font-family:var(--sp-font-body);font-size:11.5px;font-weight:600;color:var(--dim)}
.sp-cart-item__total{line-height:1.2}

.sp-cart-item__remove{flex:none}
.sp-cart-item__remove .remove{
	width:32px;height:32px;border-radius:9px;
	border:1px solid var(--line);background:none;color:var(--muted);
	display:flex;align-items:center;justify-content:center;
	font-size:18px;line-height:1;text-decoration:none;cursor:pointer;
	transition:color .2s ease,border-color .2s ease;
}
.sp-cart-item__remove .remove:hover{color:var(--text);border-color:var(--line2);background:none;text-decoration:none}

.sp-cart__foot{
	display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
	padding:16px 0;
}
a.sp-cart__back{
	display:inline-flex;align-items:center;gap:8px;
	font-size:13.5px;font-weight:700;color:var(--accent-hi);text-decoration:none;
	transition:color .2s ease;
}
a.sp-cart__back:hover{color:var(--accent);text-decoration:none}
.sp-cart__count{font-size:13px;color:var(--dim)}
.sp-cart__tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}

.sp-coupon{display:flex;align-items:center;gap:8px}
.sp-coupon .sp-input{width:150px}

/* Kupony / komunikaty zastosowanych rabatów wewnątrz karty. */
.sp-cart-items .woocommerce-info,
.sp-cart-items .woocommerce-message{margin:14px 0}

/* ==========================================================================
   6. Ilość — [data-sp-qty]
   ========================================================================== */

.sp-qty{
	display:inline-flex;align-items:center;gap:2px;
	background:var(--surface2);border:1px solid var(--line);border-radius:10px;padding:3px;
}
.sp-qty__btn{
	width:28px;height:28px;flex:none;border-radius:8px;border:none;background:none;
	color:var(--muted);cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	transition:background .2s ease,color .2s ease;
}
.sp-qty__btn:hover{background:var(--raise);color:var(--text)}
.sp-qty__input{
	width:40px;height:28px;flex:none;
	border:none;background:none;outline:none;text-align:center;
	font-family:var(--sp-font-head);font-size:13.5px;font-weight:700;color:var(--text);
	appearance:textfield;-moz-appearance:textfield;
}
.sp-qty__input::-webkit-outer-spin-button,
.sp-qty__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* ==========================================================================
   7. Podsumowanie (koszyk + zamówienie)
   ========================================================================== */

.sp-summary{padding:24px;border-radius:18px}
h2.sp-summary__label{margin:0 0 18px}

/* Wiersze podsumowania zostają tabelą (wymusza ją wc_cart_totals_shipping_html,
   które renderuje gotowe <tr>), ale czytają się jak lista klucz → wartość. */
table.sp-summary__rows{display:block;width:100%;border-collapse:collapse;margin:0}
.sp-summary__rows tbody{display:block;width:100%}
.sp-summary__rows tr{
	display:flex;align-items:center;justify-content:space-between;gap:14px;
	padding:0 0 10px;font-size:14px;
}
.sp-summary__rows th,
.sp-summary__rows td{display:block;padding:0;border:none;background:none;text-align:left}
.sp-summary__rows th{font-weight:500;color:var(--muted)}
.sp-summary__rows td{flex:none;font-weight:600;color:var(--text);text-align:right;white-space:nowrap}
.sp-summary__val--good,
.sp-summary__rows td.sp-summary__val--good{color:var(--good)}

.sp-summary__rows tr.shipping{align-items:flex-start;padding-bottom:16px}
.sp-summary__rows tr.shipping td{white-space:normal}
.sp-summary__rows ul#shipping_method{list-style:none;margin:0;padding:0;text-align:right;font-size:13.5px}
.sp-summary__rows ul#shipping_method li{margin-bottom:6px}
.sp-summary__rows .woocommerce-shipping-destination{margin:8px 0 0;font-size:12.5px;color:var(--dim)}
.sp-summary__rows .shipping-calculator-button{font-size:12.5px}
.sp-summary__rows .shipping-calculator-form{margin-top:10px;text-align:left}

.sp-summary__rows tr.order-total{
	align-items:baseline;margin-top:6px;padding:16px 0 20px;border-top:1px solid var(--line);
}
.sp-summary__rows tr.order-total th{font-size:14px;font-weight:700;color:var(--text)}
.sp-summary__rows tr.order-total td{
	font-family:var(--sp-font-head);font-weight:900;font-size:26px;
	letter-spacing:-.02em;color:var(--text);
}
.sp-summary__rows tr.order-total td small{
	display:block;font-family:var(--sp-font-body);font-size:11.5px;font-weight:600;
	color:var(--dim);letter-spacing:0;
}

.sp-summary__cta{margin:0}
.sp-summary__cta .checkout-button{width:100%}

ul.sp-summary__perks{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
.sp-summary__perk{
	display:flex;align-items:flex-start;gap:8px;
	font-size:12.5px;line-height:1.5;color:var(--muted);
}
.sp-summary__perk svg{flex:none;margin-top:2px;color:var(--good)}

/* Sprzedaż krzyżowa w kolumnie koszyka. */
.sp-cart__collaterals .cross-sells{margin:0}
.sp-cart__collaterals .cross-sells > h2{
	margin:0 0 14px;font-family:var(--sp-font-head);font-weight:800;font-size:17px;color:var(--text);
}
.sp-cart__collaterals .cross-sells ul.products{
	list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:14px;
}

/* ==========================================================================
   8. Zamówienie (checkout) — kroki i płatność
   ========================================================================== */

.sp-checkout{max-width:1180px;margin:0 auto;padding-bottom:52px}
.sp-checkout__head{margin-bottom:32px}
.sp-checkout__title{font-size:34px;margin:0 0 6px}
.sp-checkout__lead{margin:0;max-width:640px}

.sp-checkout__cols{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:28px;align-items:start}
.sp-checkout__main{display:flex;flex-direction:column;gap:20px;min-width:0}
.sp-checkout__side{min-width:0;align-self:stretch}
.sp-checkout__customer{display:flex;flex-direction:column;gap:20px}
.sp-checkout__billing,
.sp-checkout__shipping{display:flex;flex-direction:column;gap:20px}
/* Produkty wirtualne = brak pól wysyłki. Pusta kolumna nie może zjadać odstępu. */
.sp-checkout__shipping:empty,
.sp-checkout__shipping:not(:has(*)){display:none}

.sp-step{padding:24px}
h2.sp-step__label{margin:0 0 16px}
.sp-step__hint{margin:-8px 0 18px;font-size:12.5px;line-height:1.6;color:var(--muted)}
.sp-step h3{
	margin:0 0 16px;font-family:var(--sp-font-head);font-weight:800;font-size:17px;
	letter-spacing:-.02em;color:var(--text);
}

/* Zgoda na konto — pudełko z designu. */
.sp-account-fields{margin-top:-4px}
.sp-createaccount{margin:0}
.sp-createaccount__label{
	display:flex;align-items:flex-start;gap:10px;
	padding:14px;border-radius:11px;background:var(--surface2);
	cursor:pointer;
}
.sp-createaccount__input{
	appearance:none;-webkit-appearance:none;
	width:18px;height:18px;flex:none;margin:1px 0 0;
	border:1px solid var(--line2);border-radius:5px;background:var(--surface);
	cursor:pointer;transition:background .2s ease,border-color .2s ease;
}
.sp-createaccount__input:checked{
	background:var(--accent);border-color:var(--accent);
	background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E");
	background-repeat:no-repeat;background-position:center;background-size:12px 12px;
}
.sp-createaccount__text{display:block}
.sp-createaccount__title{display:block;font-size:13.5px;font-weight:600;color:var(--text);margin-bottom:3px}
.sp-createaccount__desc{display:block;font-size:12.5px;line-height:1.55;color:var(--muted)}

/* Metody płatności */
.sp-payment-box{margin:0}
ul.sp-payments{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:10px}

.sp-payment{
	display:flex;align-items:center;flex-wrap:wrap;gap:12px;
	padding:15px 16px;border-radius:12px;
	background:var(--surface2);border:1px solid var(--line);color:var(--text);
	list-style:none;
	transition:background .2s ease,border-color .2s ease;
}
.sp-payment:hover{border-color:var(--line2)}
.sp-payment:has(.sp-payment__radio:checked){background:var(--accent-soft);border-color:var(--accent-line)}

.sp-payment__radio{
	appearance:none;-webkit-appearance:none;
	position:relative;width:17px;height:17px;flex:none;margin:0;
	border:1px solid var(--line2);border-radius:50%;background:none;cursor:pointer;
	transition:border-color .2s ease;
}
.sp-payment__radio:checked{border-color:var(--accent-line)}
.sp-payment__radio:checked::after{
	content:"";position:absolute;inset:3px;border-radius:50%;background:var(--accent);
}

.sp-payment__label{
	flex:1;min-width:0;display:flex;align-items:center;gap:10px;
	margin:0;cursor:pointer;
}
.sp-payment__title{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--text)}
.sp-payment__note{flex:none;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--dim)}
.sp-payment__note img{max-height:22px;width:auto;display:inline-block}

.sp-payment__box{
	flex:1 0 100%;margin:2px 0 0;padding:12px 0 0;
	border-top:1px solid var(--line);
	font-size:12.5px;line-height:1.65;color:var(--muted);
}
.sp-payment__box p{margin:0 0 8px}
.sp-payment__box p:last-child{margin-bottom:0}
.sp-payment__box .input-text,
.sp-payment__box input[type="text"],
.sp-payment__box input[type="tel"]{
	width:100%;height:44px;margin-top:6px;
	background:var(--surface);border:1px solid var(--line);border-radius:10px;
	padding:0 12px;font-size:14px;color:var(--text);outline:none;
}

.sp-payments__empty{list-style:none}
.sp-payments__empty .woocommerce-info{margin:0}

.sp-place-order{margin:0}
.sp-place-order .woocommerce-terms-and-conditions-wrapper{margin-bottom:16px}
.sp-place-order .woocommerce-privacy-policy-text p,
.sp-place-order .woocommerce-terms-and-conditions-wrapper p{margin:0 0 10px;font-size:12.5px;line-height:1.65;color:var(--muted)}
.sp-place-order .woocommerce-form__label-for-checkbox{
	display:flex;align-items:flex-start;gap:10px;font-size:12.5px;line-height:1.55;color:var(--muted);
}
.sp-place-order #place_order{margin-top:4px}

/* Formularze „mam kupon" / „zaloguj się" nad zamówieniem.
   WooCommerce drukuje je jako rodzeństwo `form.checkout`, czyli POZA
   `.sp-checkout` — bez tego ograniczenia rozjeżdżały się na pełną szerokość
   `.sp-wrap`, podczas gdy reszta checkoutu trzyma się 1180 px. */
.woocommerce-form-coupon-toggle,
.woocommerce-form-login-toggle{max-width:1180px;margin:0 auto 16px}

/* Same formularze wymagają kwalifikacji `form.`: `.woocommerce form.checkout_coupon`
   z woocommerce.css (0,2,1) narzuca `margin:2em 0`, więc goła klasa (0,1,0)
   przegrywała i `margin-inline:auto` nie działało — formularz stał o 91 px
   w lewo względem paska „Masz kupon?" nad nim. */
.woocommerce form.checkout_coupon,
.woocommerce form.woocommerce-form-login,
.woocommerce-page form.checkout_coupon,
.woocommerce-page form.woocommerce-form-login{
	max-width:1180px;margin:0 auto 20px;padding:16px 18px;
	background:var(--surface);border:1px solid var(--line);border-radius:14px;
}

/* Pole i przycisk w jednym rzędzie. woocommerce-layout.css daje wierszom
   `float` i `width:47%` (0,2,1) — stąd wyższa kwalifikacja poniżej. */
.sp-coupon-form__row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}

.woocommerce form.checkout_coupon .form-row,
.woocommerce-page form.checkout_coupon .form-row{
	float:none;width:auto;min-width:0;margin:0;padding:0;
}
/* Kod kuponu to kilkanaście znaków — pole ma być poręczne, a nie rozciągnięte
   na całą kartę (koszyk trzyma ten sam język: `.sp-coupon .sp-input`). */
.woocommerce form.checkout_coupon .form-row-first,
.woocommerce-page form.checkout_coupon .form-row-first{flex:1 1 240px;max-width:400px}
.woocommerce form.checkout_coupon .form-row-last,
.woocommerce-page form.checkout_coupon .form-row-last{flex:0 0 auto}
.woocommerce form.checkout_coupon .clear,
.woocommerce-page form.checkout_coupon .clear{display:none}

/* Kod kuponu wpisuje się wersalikami — pole ma to odzwierciedlać. */
.woocommerce form.checkout_coupon .input-text,
.woocommerce-page form.checkout_coupon .input-text{
	text-transform:uppercase;letter-spacing:.04em;
}
.woocommerce form.checkout_coupon .input-text::placeholder,
.woocommerce-page form.checkout_coupon .input-text::placeholder{
	text-transform:none;letter-spacing:normal;
}

/* „Masz kupon?" dostaje bilecik zamiast ogólnego „i" — ikona bazowa i sposób
   jej wpięcia siedzą w main.css, tutaj podmieniamy sam rysunek. */
.woocommerce-form-coupon-toggle .woocommerce-info{
	--sp-notice-icon:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9.6V7.2A2.2 2.2 0 0 1 5.2 5h13.6A2.2 2.2 0 0 1 21 7.2v2.4a2.4 2.4 0 0 0 0 4.8v2.4a2.2 2.2 0 0 1-2.2 2.2H5.2A2.2 2.2 0 0 1 3 16.8v-2.4a2.4 2.4 0 0 0 0-4.8Z'/%3E%3Cpath d='M14.6 5.4v1.8M14.6 11.1v1.8M14.6 16.8v1.8'/%3E%3C/svg%3E");
}

/* Etykieta i link mają stać w jednej linii, a nie rozjeżdżać się `gap`-em
   komunikatu na całą szerokość karty. */
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info{
	align-items:center;gap:8px;
	font-size:13.5px;color:var(--muted);
}
.woocommerce-form-coupon-toggle .woocommerce-info::before,
.woocommerce-form-login-toggle .woocommerce-info::before{margin-top:0}
.woocommerce-form-coupon-toggle .showcoupon,
.woocommerce-form-login-toggle .showlogin{
	color:var(--accent-hi);font-weight:600;text-decoration:none;
}
.woocommerce-form-coupon-toggle .showcoupon:hover,
.woocommerce-form-login-toggle .showlogin:hover{color:var(--accent);text-decoration:underline}

/* ==========================================================================
   9. Przegląd zamówienia (.sp-review)
   ========================================================================== */

.sp-checkout__summary .woocommerce-checkout-review-order{margin:0}

table.sp-review{display:block;width:100%;border-collapse:collapse;margin:0}
.sp-review thead{display:none}
.sp-review tbody,
.sp-review tfoot{display:block;width:100%}
.sp-review tr{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.sp-review th,
.sp-review td{display:block;padding:0;border:none;text-align:left;background:none}

.sp-review tbody tr{padding:12px 0;border-bottom:1px solid var(--line)}
.sp-review tbody tr:first-child{padding-top:0}
.sp-review__title{font-size:13.5px;font-weight:600;line-height:1.4;color:var(--text)}
strong.sp-review__qty{font-family:var(--sp-font-body);font-size:12.5px;font-weight:700;color:var(--dim)}
.sp-review__meta{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:var(--dim)}
.sp-review .product-total{flex:none;font-size:13.5px;font-weight:700;color:var(--text);white-space:nowrap}

.sp-review tfoot tr{align-items:center;padding:9px 0;font-size:14px}
.sp-review tfoot th{font-weight:500;color:var(--muted)}
.sp-review tfoot td{flex:none;font-weight:600;color:var(--text);text-align:right;white-space:nowrap}
.sp-review tfoot tr.cart-subtotal{padding-top:16px}
.sp-review tfoot tr.order-total{
	align-items:baseline;margin-top:8px;padding-top:16px;border-top:1px solid var(--line);
}
.sp-review tfoot tr.order-total th{font-size:14px;font-weight:700;color:var(--text)}
.sp-review tfoot tr.order-total td{
	font-family:var(--sp-font-head);font-weight:900;font-size:26px;
	letter-spacing:-.02em;color:var(--text);
}
.sp-review tfoot tr.order-total td small{display:block;font-family:var(--sp-font-body);font-size:11.5px;font-weight:600;color:var(--dim);letter-spacing:0}
.sp-review tfoot .sp-summary__val--good{color:var(--good)}
.sp-review tfoot ul#shipping_method{list-style:none;margin:0;padding:0;text-align:right}
.sp-review tfoot ul#shipping_method li{margin-bottom:6px}

/* ==========================================================================
   10. Podziękowanie
   ========================================================================== */

.sp-thankyou{max-width:900px;margin:0 auto;padding-bottom:52px}

.sp-thankyou__hero{padding:34px 32px;text-align:center;margin-bottom:20px}
.sp-thankyou__icon{
	display:inline-flex;align-items:center;justify-content:center;
	width:60px;height:60px;margin-bottom:18px;border-radius:18px;
	background:var(--accent-soft);color:var(--good);
}
.sp-thankyou__icon--warn{color:var(--warn)}
.sp-thankyou__title{margin:0 0 12px}
.sp-thankyou__hero .woocommerce-notice{
	display:block;margin:0 auto 14px;padding:0;max-width:620px;
	background:none;border:none;border-radius:0;
	font-size:15px;line-height:1.7;color:var(--muted);text-align:center;
}
.sp-thankyou__mail{
	display:inline-flex;align-items:flex-start;gap:10px;
	max-width:640px;margin:6px auto 0;padding:13px 16px;text-align:left;
	background:var(--surface2);border-radius:12px;
	font-size:13px;line-height:1.6;color:var(--muted);
}
.sp-thankyou__mail svg{flex:none;margin-top:2px;color:var(--accent-hi)}
.sp-thankyou__mail strong{color:var(--text)}
.sp-thankyou__actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:18px 0 0}

ul.sp-order-overview{
	list-style:none;margin:0 0 20px;padding:0;
	display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;
}
.sp-order-overview__item{
	display:flex;flex-direction:column;gap:6px;
	padding:16px 18px;
	background:var(--surface);border:1px solid var(--line);border-radius:14px;
	list-style:none;
}
.sp-order-overview__item .sp-eyebrow{margin:0}
.sp-order-overview__item strong{
	font-family:var(--sp-font-head);font-weight:800;font-size:16px;
	letter-spacing:-.01em;color:var(--text);
}

.sp-files{padding:24px}
h2.sp-files__label{margin:0 0 16px}
.sp-files__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.sp-files__item{
	display:flex;align-items:center;gap:12px;flex-wrap:wrap;
	padding:13px 15px;border-radius:12px;
	background:var(--surface2);border:1px solid var(--line);
	list-style:none;
}
.sp-files__icon{
	width:34px;height:34px;flex:none;border-radius:10px;
	background:var(--accent-soft);color:var(--accent-hi);
	display:flex;align-items:center;justify-content:center;
}
.sp-files__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.sp-files__title{font-size:13.5px;font-weight:700;color:var(--text);word-break:break-word}
.sp-files__meta{font-size:12px;color:var(--dim)}
.sp-files__action{flex:none}
.sp-files__note{margin:16px 0 0;font-size:12.5px;line-height:1.6;color:var(--dim)}

/* Natywne sekcje pod hookiem woocommerce_thankyou. */
.sp-thankyou .woocommerce-order-details,
.sp-thankyou .woocommerce-customer-details,
.sp-thankyou .woocommerce-order-downloads{
	margin:20px 0 0;padding:24px;
	background:var(--surface);border:1px solid var(--line);border-radius:16px;
}
.sp-thankyou .woocommerce-order-details__title,
.sp-thankyou .woocommerce-customer-details h2,
.sp-thankyou .woocommerce-column__title,
.sp-thankyou .woocommerce-order-downloads__title{
	margin:0 0 16px;font-family:var(--sp-font-head);font-weight:800;font-size:17px;
	letter-spacing:-.02em;color:var(--text);
}
.sp-thankyou address{
	font-style:normal;font-size:13.5px;line-height:1.75;color:var(--muted);
}
.sp-thankyou .woocommerce-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.sp-thankyou .woocommerce-columns .col-1,
.sp-thankyou .woocommerce-columns .col-2{min-width:0}

/* ==========================================================================
   11. Konto
   ========================================================================== */

.sp-account{
	display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;align-items:start;
	padding-bottom:52px;
}

.sp-account__aside{padding:14px;position:sticky;top:calc(var(--sp-header-h,70px) + 20px);align-self:start}

.sp-account__user{display:flex;align-items:center;gap:12px;padding:10px 12px 18px}
.sp-account__avatar{
	width:38px;height:38px;flex:none;border-radius:11px;
	background:var(--accent-soft);color:var(--accent-hi);
	display:flex;align-items:center;justify-content:center;
	font-family:var(--sp-font-head);font-weight:900;font-size:15px;
}
.sp-account__ident{min-width:0;display:flex;flex-direction:column;gap:2px}
.sp-account__name{font-size:14px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-account__email{font-size:12px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.sp-account__nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.sp-account__nav li{list-style:none}
a.sp-account__link{
	display:flex;align-items:center;gap:10px;
	padding:11px 12px;border-radius:10px;
	font-size:14px;font-weight:600;color:var(--text);text-decoration:none;
	transition:background .2s ease,color .2s ease;
}
a.sp-account__link:hover{background:var(--surface2);color:var(--text);text-decoration:none}
.sp-account__link-label{flex:1;min-width:0}
.sp-account__link-count{flex:none;font-size:12px;font-weight:700;color:var(--dim)}
.sp-account__nav li.is-active > .sp-account__link{background:var(--accent-soft);color:var(--accent-hi)}
.sp-account__nav li.is-active .sp-account__link-count{color:var(--accent-hi);opacity:.8}

.sp-account__body{min-width:0}
.sp-account__head{margin-bottom:26px}
.sp-account__title{margin:0 0 6px}
.sp-account__lead{margin:0;max-width:640px}

/* Pulpit */
.sp-dashboard{display:flex;flex-direction:column;gap:16px}
.sp-dashboard__tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
a.sp-dashboard__tile{
	display:flex;flex-direction:column;gap:6px;
	padding:18px 20px;text-decoration:none;color:var(--text);
}
a.sp-dashboard__tile:hover{text-decoration:none;color:var(--text)}
.sp-dashboard__icon{
	width:32px;height:32px;margin-bottom:4px;border-radius:10px;
	background:var(--accent-soft);color:var(--accent-hi);
	display:flex;align-items:center;justify-content:center;
}
.sp-dashboard__value{font-family:var(--sp-font-head);font-weight:900;font-size:28px;letter-spacing:-.03em;line-height:1}
.sp-dashboard__label{font-size:12.5px;color:var(--muted)}

.sp-dashboard__intro{padding:22px 24px}
.sp-dashboard__hello{margin:0 0 10px;font-size:14.5px;color:var(--text)}
.sp-dashboard__desc{margin:0 0 18px;font-size:13.5px;line-height:1.7;color:var(--muted)}
.sp-dashboard__actions{display:flex;gap:10px;flex-wrap:wrap;margin:0}

/* Pobrania */
.sp-downloads{overflow:hidden;padding:0}
.sp-downloads__head{
	display:grid;grid-template-columns:minmax(0,1fr) 130px 130px 210px;gap:16px;
	padding:14px 22px;border-bottom:1px solid var(--line);
}
.sp-downloads__head .sp-eyebrow{margin:0;font-size:11px;letter-spacing:.1em}
.sp-downloads__row{
	display:grid;grid-template-columns:minmax(0,1fr) 130px 130px 210px;gap:16px;
	align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);
}
.sp-downloads__row:last-child{border-bottom:none}
.sp-downloads__cell{min-width:0;font-size:13px;color:var(--muted)}
.sp-downloads__cell a{color:var(--muted);text-decoration:none;transition:color .2s ease}
.sp-downloads__cell a:hover{color:var(--text);text-decoration:none}
.sp-downloads__cell--main{display:flex;flex-direction:column;gap:4px}
.sp-downloads__title{font-size:14.5px;font-weight:700;line-height:1.35;color:var(--text);text-wrap:pretty}
.sp-downloads__title a{color:var(--text)}
.sp-downloads__title a:hover{color:var(--accent-hi)}
.sp-downloads__meta{font-size:12.5px;color:var(--muted)}
.sp-downloads__file{font-size:12px;color:var(--dim)}
.sp-downloads__actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.sp-downloads__actions .sp-btn{height:36px}
.sp-downloads__resend{margin:0;display:inline-flex}

/* Statusy zamówień */
.sp-status{
	display:inline-flex;align-items:center;gap:7px;
	padding:5px 10px;border-radius:8px;
	background:var(--surface2);border:1px solid var(--line);
	font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap;
}
.sp-status--completed{background:rgba(52,201,123,.12);border-color:rgba(52,201,123,.3);color:var(--good)}
.sp-status--processing,
.sp-status--on-hold{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-hi)}
.sp-status--failed,
.sp-status--cancelled,
.sp-status--refunded{background:rgba(228,112,58,.12);border-color:rgba(228,112,58,.32);color:var(--warn)}

/* Pozostałe formularze konta */
.woocommerce-MyAccount-content .woocommerce-EditAccountForm,
.woocommerce-MyAccount-content .woocommerce-address-fields,
.woocommerce-MyAccount-content .woocommerce-MyAccount-paymentMethods{
	padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:16px;
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm fieldset{
	margin:24px 0 0;padding:20px 0 0;border:none;border-top:1px solid var(--line);
}
.woocommerce-MyAccount-content .woocommerce-EditAccountForm legend{
	padding:0;margin:0 0 14px;font-family:var(--sp-font-head);font-weight:800;font-size:16px;color:var(--text);
}
.woocommerce-MyAccount-content .woocommerce-Addresses{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;
}
.woocommerce-MyAccount-content .woocommerce-Address{
	padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-radius:16px;
}
.woocommerce-MyAccount-content .woocommerce-Address-title{
	display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;
}
.woocommerce-MyAccount-content .woocommerce-Address-title h2,
.woocommerce-MyAccount-content .woocommerce-Address-title h3{
	margin:0;font-family:var(--sp-font-head);font-weight:800;font-size:16px;color:var(--text);
}
.woocommerce-MyAccount-content address{font-style:normal;font-size:13.5px;line-height:1.75;color:var(--muted)}

.sp-woo-pagination{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:24px}

/* ==========================================================================
   12. Logowanie i rejestracja
   ========================================================================== */

.sp-auth{
	display:grid;grid-template-columns:minmax(0,1fr) 460px;gap:60px;align-items:center;
	min-height:62vh;padding:26px 0 60px;
}

.sp-auth__intro{min-width:0}
.sp-auth__title{margin:0 0 18px}
.sp-auth__lead{margin:0 0 30px;max-width:520px;font-size:15.5px}

.sp-auth__perks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.sp-auth__perk{display:flex;align-items:center;gap:12px;list-style:none}
.sp-auth__check{
	width:30px;height:30px;flex:none;border-radius:9px;
	background:var(--accent-soft);color:var(--accent-hi);
	display:flex;align-items:center;justify-content:center;
	font-weight:800;font-size:13px;
}
.sp-auth__perk-label{font-size:14.5px;font-weight:600;color:var(--text);text-wrap:pretty}

.sp-auth__card{padding:30px;border-radius:20px;min-width:0}
.sp-auth__tabs{margin-bottom:26px}
.sp-auth__panel{min-width:0}
.sp-auth__panel + .sp-auth__panel{margin-top:26px;padding-top:26px;border-top:1px solid var(--line)}
h2.sp-auth__panel-title{margin:0 0 18px}

/* Z JS-em rządzi przełącznik: nieaktywny panel znika, nagłówki paneli są zbędne.
   Bez JS (brak klasy sp-js) widoczne są oba formularze z własnymi nagłówkami. */
.sp-js [data-sp-tabs] .sp-auth__panel:not(.is-active){display:none}
.sp-js [data-sp-tabs] .sp-auth__panel-title{display:none}
.sp-js [data-sp-tabs] .sp-auth__panel + .sp-auth__panel{margin-top:0;padding-top:0;border-top:none}

.sp-form .form-row{margin:0 0 16px}
.sp-form__row{
	display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
	margin-bottom:18px;
}
.sp-form__submit{margin:0}
.sp-auth__lost{font-size:13px;font-weight:600}
.sp-auth__hint,
.sp-auth__terms{margin:0 0 16px;font-size:12.5px;line-height:1.55;color:var(--muted)}
.sp-auth__guest{margin:18px 0 0;text-align:center;font-size:13px;color:var(--muted)}

/* ==========================================================================
   13. Tabele WooCommerce (zamówienia, szczegóły)
   ========================================================================== */

.sp-table-card{overflow:hidden;padding:0}

table.sp-table,
.sp-thankyou .shop_table,
.woocommerce-MyAccount-content .shop_table{
	width:100%;border-collapse:collapse;font-size:13.5px;color:var(--muted);
}
.sp-table th,
.sp-table td,
.sp-thankyou .shop_table th,
.sp-thankyou .shop_table td,
.woocommerce-MyAccount-content .shop_table th,
.woocommerce-MyAccount-content .shop_table td{
	padding:14px 22px;text-align:left;vertical-align:middle;border:none;
}
.sp-table thead th,
.sp-thankyou .shop_table thead th,
.woocommerce-MyAccount-content .shop_table thead th{
	border-bottom:1px solid var(--line);
	font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--dim);text-transform:uppercase;
}
.sp-table thead th .sp-eyebrow{margin:0}
.sp-table tbody tr,
.sp-thankyou .shop_table tbody tr,
.woocommerce-MyAccount-content .shop_table tbody tr{border-bottom:1px solid var(--line)}
.sp-table tbody tr:last-child,
.sp-thankyou .shop_table tbody tr:last-child{border-bottom:none}
.sp-table tbody th,
.sp-thankyou .shop_table tbody th{font-weight:600;color:var(--text)}
.sp-table a:not(.sp-btn),
.sp-thankyou .shop_table a:not(.sp-btn){color:var(--text);text-decoration:none;font-weight:600}
.sp-table a:not(.sp-btn):hover,
.sp-thankyou .shop_table a:not(.sp-btn):hover{color:var(--accent-hi);text-decoration:none}
.sp-table .woocommerce-orders-table__cell-order-actions{text-align:right;white-space:nowrap}
.sp-table .woocommerce-orders-table__cell-order-actions .sp-btn{margin-left:8px}
.sp-thankyou .shop_table tfoot th{font-weight:600;color:var(--muted)}
.sp-thankyou .shop_table tfoot td{font-weight:700;color:var(--text)}
.sp-thankyou .shop_table tfoot tr:last-child td{
	font-family:var(--sp-font-head);font-weight:900;font-size:20px;letter-spacing:-.02em;
}
.sp-thankyou .shop_table .product-name a{font-weight:700}
.sp-thankyou .shop_table .wc-item-meta{list-style:none;margin:6px 0 0;padding:0;font-size:12px;color:var(--dim)}
.sp-thankyou .shop_table td.download-file .button{height:36px;padding:0 14px;font-size:13px;border-radius:10px}
/* Tabele siedzą już w karcie z paddingiem — komórki nie dokładają go po bokach. */
.sp-thankyou .woocommerce-order-details .shop_table th,
.sp-thankyou .woocommerce-order-details .shop_table td,
.sp-thankyou .woocommerce-order-downloads .shop_table th,
.sp-thankyou .woocommerce-order-downloads .shop_table td{padding-left:0;padding-right:0}

/* ==========================================================================
   14. Puste stany
   ========================================================================== */

.sp-empty{padding:44px 32px;text-align:center}
.sp-empty__icon{
	display:inline-flex;align-items:center;justify-content:center;
	width:56px;height:56px;margin-bottom:16px;border-radius:16px;
	background:var(--accent-soft);color:var(--accent-hi);
}
h2.sp-empty__title{margin:0 0 10px}
.sp-empty__lead{margin:0 auto 22px;max-width:460px}
.sp-empty__message{margin:0 0 4px}
.sp-empty__message .woocommerce-info,
.sp-empty__message .woocommerce-error,
.sp-empty__message .cart-empty{
	display:block;margin:0;padding:0;
	background:none;border:none;border-radius:0;
	font-size:14px;color:var(--muted);text-align:center;
}
.sp-empty__actions{margin:0;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ==========================================================================
   15. Responsywność — 1180px / 900px / 640px
   ========================================================================== */

@media (max-width:1180px){
	.sp-cart__cols,
	.sp-checkout__cols{grid-template-columns:minmax(0,1fr);gap:20px}

	.sp-cart,
	.sp-checkout{max-width:none}
	.woocommerce-form-coupon-toggle,
	.woocommerce-form-login-toggle{max-width:none}
	.woocommerce form.checkout_coupon,
	.woocommerce form.woocommerce-form-login,
	.woocommerce-page form.checkout_coupon,
	.woocommerce-page form.woocommerce-form-login{max-width:none}

	.sp-account{grid-template-columns:220px minmax(0,1fr);gap:22px}
	.sp-account__aside{position:static;top:auto}

	.sp-auth{grid-template-columns:minmax(0,1fr) 420px;gap:40px;min-height:0}

	.sp-downloads__head,
	.sp-downloads__row{grid-template-columns:minmax(0,1fr) 110px 110px 200px;gap:12px;padding-left:18px;padding-right:18px}

	.sp-cart__title,
	.sp-checkout__title{font-size:32px}
}

@media (max-width:900px){
	.sp-account{grid-template-columns:minmax(0,1fr);gap:18px}
	.sp-account__aside{padding:12px}
	.sp-account__nav{flex-direction:row;flex-wrap:wrap;gap:6px}
	.sp-account__nav li{flex:none}
	a.sp-account__link{padding:9px 13px;border-radius:999px;border:1px solid var(--line);font-size:13px}
	.sp-account__nav li.is-active > .sp-account__link{border-color:var(--accent-line)}

	.sp-auth{grid-template-columns:minmax(0,1fr);gap:34px;padding:8px 0 44px}
	.sp-auth__card{padding:24px}
	.sp-auth__lead{max-width:none}

	.sp-fields{grid-template-columns:1fr}
	.sp-fields > .form-row{grid-column:1 / -1}

	.sp-thankyou .woocommerce-columns{grid-template-columns:1fr;gap:18px}

	.sp-downloads__head{display:none}
	.sp-downloads__row{
		grid-template-columns:minmax(0,1fr);gap:10px;padding:18px;
	}
	.sp-downloads__cell--order::before,
	.sp-downloads__cell--date::before{
		content:attr(data-title) " · ";
		font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--dim);text-transform:uppercase;
	}
	.sp-downloads__cell--order,
	.sp-downloads__cell--date{display:inline-flex;align-items:center;gap:4px}
	.sp-downloads__actions{justify-content:flex-start;margin-top:4px}

	table.sp-table,
	.woocommerce-MyAccount-content .shop_table{font-size:13px}
	.sp-table th,
	.sp-table td,
	.woocommerce-MyAccount-content .shop_table th,
	.woocommerce-MyAccount-content .shop_table td{padding:12px 16px}

	.sp-thankyou__hero{padding:28px 22px}
	ul.sp-order-overview{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
}

@media (max-width:640px){
	.sp-cart__title,
	.sp-checkout__title{font-size:28px}
	.sp-cart__head,
	.sp-checkout__head{margin-bottom:24px}

	.sp-cart-items{padding:4px 16px}
	.sp-cart-item{
		flex-wrap:wrap;gap:12px;padding:16px 0;
	}
	.sp-cart-item__body{flex:1 1 auto;order:2}
	.sp-cart-item__media{order:1}
	.sp-cart-item__remove{order:3;margin-left:auto}
	.sp-cart-item__qty{order:4}
	.sp-cart-item__price{order:5;margin-left:auto;align-items:flex-end}

	.sp-cart__foot{flex-direction:column;align-items:stretch;gap:12px}
	.sp-cart__tools{margin-left:0;justify-content:space-between}
	.sp-coupon{flex:1}
	.sp-coupon .sp-input{width:100%;min-width:0}

	.sp-summary,
	.sp-step,
	.sp-files{padding:20px}

	.sp-summary__rows tr.order-total td,
	.sp-review tfoot tr.order-total td{font-size:23px}

	.sp-payment{padding:13px 14px;gap:10px}
	.sp-payment__title{font-size:13.5px}

	.sp-thankyou__actions .sp-btn,
	.sp-empty__actions .sp-btn{width:100%}

	.sp-files__item{align-items:flex-start}
	.sp-files__action{width:100%;justify-content:center;margin-top:4px}

	.sp-downloads__actions{flex-direction:column;align-items:stretch}
	.sp-downloads__actions .sp-btn,
	.sp-downloads__resend{width:100%}
	.sp-downloads__resend .sp-btn{width:100%}

	.sp-empty{padding:34px 20px}

	.sp-table .woocommerce-orders-table__cell-order-actions{text-align:left;white-space:normal}
	.sp-table .woocommerce-orders-table__cell-order-actions .sp-btn{margin:4px 8px 0 0}
}

/* ==========================================================================
   14. Nadpisania specyficzności WooCommerce
   woocommerce.css ładuje się PRZED arkuszami motywu, ale jego selektory
   `.woocommerce a.button.alt` (0,3,1) i `.woocommerce .cart-collaterals
   .cart_totals` (0,3,0) biją klasy motywu (0,1,0 / 0,2,0). Poniższe reguły
   mają wyższą specyficzność i przywracają wygląd projektu.
   ========================================================================== */

/* 14.1 Przyciski, które DOSTAŁY klasę .sp-btn.
   Bez tego „Przejdź do płatności" i „Złóż zamówienie" renderują się
   w firmowym fiolecie WooCommerce (#7f54b3) z promieniem 3px. */
.woocommerce a.button.sp-btn,
.woocommerce button.button.sp-btn,
.woocommerce input.button.sp-btn,
.woocommerce a.button.alt.sp-btn,
.woocommerce button.button.alt.sp-btn,
.woocommerce input.button.alt.sp-btn,
.woocommerce #respond input#submit.sp-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:9px;
	height:46px;padding:0 20px;
	border:1px solid transparent;border-radius:12px;
	background:var(--surface2);color:var(--text);
	font-family:var(--sp-font-head);font-weight:800;font-size:14.5px;line-height:1;
	text-shadow:none;text-decoration:none;white-space:nowrap;
}

.woocommerce a.button.sp-btn--primary,
.woocommerce button.button.sp-btn--primary,
.woocommerce input.button.sp-btn--primary,
.woocommerce a.button.alt.sp-btn--primary,
.woocommerce button.button.alt.sp-btn--primary,
.woocommerce input.button.alt.sp-btn--primary,
.woocommerce #respond input#submit.sp-btn--primary{
	background:var(--accent);color:var(--accent-ink);border-color:transparent;
}

.woocommerce a.button.sp-btn--primary:hover,
.woocommerce button.button.sp-btn--primary:hover,
.woocommerce input.button.sp-btn--primary:hover,
.woocommerce a.button.alt.sp-btn--primary:hover,
.woocommerce button.button.alt.sp-btn--primary:hover,
.woocommerce input.button.alt.sp-btn--primary:hover,
.woocommerce #respond input#submit.sp-btn--primary:hover{
	background:var(--accent-hi);color:var(--accent-ink);
}

.woocommerce a.button.sp-btn--outline,
.woocommerce button.button.sp-btn--outline,
.woocommerce input.button.sp-btn--outline{
	background:transparent;border-color:var(--line2);color:var(--text);
}

.woocommerce a.button.sp-btn--lg,
.woocommerce button.button.sp-btn--lg,
.woocommerce input.button.sp-btn--lg{ height:50px;font-size:15.5px; }

.woocommerce a.button.sp-btn--sm,
.woocommerce button.button.sp-btn--sm,
.woocommerce input.button.sp-btn--sm{ height:38px;padding:0 14px;font-size:13px; }

.woocommerce a.button.sp-btn--block,
.woocommerce button.button.sp-btn--block,
.woocommerce input.button.sp-btn--block{ width:100%; }

/* 14.2 Podsumowanie koszyka.
   `.woocommerce .cart-collaterals .cart_totals{float:right;width:48%}`
   ściskało naszą sticky kartę do 48% szerokości kolumny (182px z 380px),
   przez co etykiety i kwoty nachodziły na siebie. */
.woocommerce .cart-collaterals .cart_totals.sp-summary,
.woocommerce-page .cart-collaterals .cart_totals.sp-summary{
	float:none;width:100%;
}

.woocommerce .cart-collaterals.sp-cart__collaterals,
.woocommerce-page .cart-collaterals.sp-cart__collaterals{
	float:none;width:100%;
}

/* 14.3 Ta sama pułapka po stronie zamówienia i konta. */
.woocommerce .woocommerce-checkout-review-order.sp-summary,
.woocommerce-page .woocommerce-checkout-review-order.sp-summary{
	float:none;width:100%;
}

.woocommerce form.checkout .col2-set.sp-checkout__cols,
.woocommerce form.checkout .col2-set.sp-checkout__cols > .col-1,
.woocommerce form.checkout .col2-set.sp-checkout__cols > .col-2,
.woocommerce .woocommerce-MyAccount-navigation.sp-account__nav,
.woocommerce .woocommerce-MyAccount-content.sp-account__body{
	float:none;width:100%;
}

/* 14.4 Tabele podsumowania (koszyk, zamówienie, konto).
   `.woocommerce table.shop_table td` (0,2,1) narzuca padding 9px/12px i jasne
   obramowanie #e9e6ed, które na ciemnym tle wyglądało jak przypadkowe kreski
   nad sumą. Reguły motywu (.sp-summary__rows th) mają tylko 0,1,1 i przegrywały. */
.woocommerce table.shop_table.sp-summary__rows,
.woocommerce-page table.shop_table.sp-summary__rows{
	border:0;margin:0;
}

.woocommerce table.shop_table.sp-summary__rows th,
.woocommerce table.shop_table.sp-summary__rows td,
.woocommerce-page table.shop_table.sp-summary__rows th,
.woocommerce-page table.shop_table.sp-summary__rows td{
	padding:0;border:0;background:none;
}

.woocommerce table.shop_table.sp-summary__rows tr,
.woocommerce-page table.shop_table.sp-summary__rows tr{
	border:0;
}

.woocommerce table.shop_table.sp-summary__rows tr.order-total,
.woocommerce-page table.shop_table.sp-summary__rows tr.order-total{
	border-top:1px solid var(--line);
}

/* Etykieta ma rosnąć, kwota trzymać się prawej — inaczej „Dostawa (e-mail)"
   łamie się na dwie linie mimo wolnego miejsca w karcie. */
.woocommerce table.shop_table.sp-summary__rows th,
.woocommerce-page table.shop_table.sp-summary__rows th{
	flex:1 1 auto;text-align:left;
}

.woocommerce table.shop_table.sp-summary__rows td,
.woocommerce-page table.shop_table.sp-summary__rows td{
	flex:0 0 auto;text-align:right;
}

/* Ta sama pułapka w tabeli pozycji zamówienia na checkoucie, tylko dotkliwsza:
   `.woocommerce table.shop_table tbody th, tfoot td, tfoot th` (0,2,2) maluje
   `border-top` na KAŻDEJ komórce i wymusza `font-weight:700`. Komórki są
   elementami flexa o różnej szerokości (etykieta rośnie, kwota nie), więc
   zamiast jednej linii wiersza widać dwie krótkie, nierówne kreski urwane
   w połowie karty. Zerujemy komórki — separatory zostają tam, gdzie mają być,
   czyli na `tr` (sekcja 9). */
.woocommerce table.shop_table.sp-review,
.woocommerce-page table.shop_table.sp-review{
	border:0;margin:0;
}

.woocommerce table.shop_table.sp-review th,
.woocommerce table.shop_table.sp-review td,
.woocommerce-page table.shop_table.sp-review th,
.woocommerce-page table.shop_table.sp-review td{
	padding:0;border:0;background:none;
}

/* Wagi z sekcji 9 mają 0,1,1–0,1,2 i przegrywały z `font-weight:700` Woo —
   powtarzamy je tutaj ze specyficznością, która wygrywa. */
.woocommerce table.shop_table.sp-review tfoot th,
.woocommerce-page table.shop_table.sp-review tfoot th{font-weight:500}

.woocommerce table.shop_table.sp-review tfoot td,
.woocommerce-page table.shop_table.sp-review tfoot td{font-weight:600}

.woocommerce table.shop_table.sp-review tfoot tr.order-total th,
.woocommerce-page table.shop_table.sp-review tfoot tr.order-total th{font-weight:700}

.woocommerce table.shop_table.sp-review tfoot tr.order-total td,
.woocommerce-page table.shop_table.sp-review tfoot tr.order-total td{font-weight:900}

.woocommerce table.shop_table.sp-review tbody th,
.woocommerce-page table.shop_table.sp-review tbody th{font-weight:600}

/* 14.5 Pola formularzy WooCommerce.
   woocommerce.css używa selektorów 3-klasowych
   (`.woocommerce form .form-row .input-text` = 0,3,0), które biją reguły
   motywu `.sp-fields .input-text` (0,1,1) — mimo że shop.css ładuje się
   później. Bez tego wszystkie pola checkoutu renderują się jako białe
   inputy z czarnym tekstem, a `.form-row-first/-last` (float:left/right,
   width:47%) rozbijają siatkę `.sp-fields`.
   Poniżej te same deklaracje co wyżej, ale ze specyficznością 0,3,1+. */
.woocommerce form .sp-fields .input-text,
.woocommerce form .sp-fields select,
.woocommerce form .sp-fields textarea,
.woocommerce-page form .sp-fields .input-text,
.woocommerce-page form .sp-fields select,
.woocommerce-page form .sp-fields textarea,
.woocommerce form .woocommerce-address-fields .input-text,
.woocommerce form .woocommerce-address-fields select,
.woocommerce form .woocommerce-EditAccountForm .input-text,
.woocommerce form.checkout_coupon .form-row .input-text{
	width:100%;height:46px;
	background:var(--surface2);border:1px solid var(--line);border-radius:11px;
	padding:0 14px;font-family:var(--sp-font-body);font-size:14px;color:var(--text);
	line-height:normal;box-shadow:none;outline:none;
}

.woocommerce form .sp-fields .input-text:focus,
.woocommerce form .sp-fields select:focus,
.woocommerce form .sp-fields textarea:focus,
.woocommerce-page form .sp-fields .input-text:focus,
.woocommerce form .woocommerce-address-fields .input-text:focus,
.woocommerce form .woocommerce-EditAccountForm .input-text:focus{
	border-color:var(--accent);background:var(--surface2);
}

.woocommerce form .sp-fields .input-text::placeholder,
.woocommerce-page form .sp-fields .input-text::placeholder{color:var(--dim)}

.woocommerce form .sp-fields textarea,
.woocommerce-page form .sp-fields textarea,
.woocommerce form .woocommerce-address-fields textarea{
	height:auto;min-height:110px;padding:12px 14px;line-height:1.7;resize:vertical;
}

.woocommerce form .sp-fields select,
.woocommerce-page form .sp-fields select,
.woocommerce form .woocommerce-address-fields select{
	appearance:none;-webkit-appearance:none;-moz-appearance:none;
	padding-right:38px;cursor:pointer;
	background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%236E7683' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat:no-repeat;background-position:right 13px center;background-size:13px 13px;
}

/* Siatka `.sp-fields` zamiast floatów WooCommerce. */
.woocommerce form .sp-fields > .form-row,
.woocommerce form .sp-fields > .form-row.form-row-first,
.woocommerce form .sp-fields > .form-row.form-row-last,
.woocommerce form .sp-fields > .form-row.form-row-wide,
.woocommerce-page form .sp-fields > .form-row,
.woocommerce-page form .sp-fields > .form-row.form-row-first,
.woocommerce-page form .sp-fields > .form-row.form-row-last,
.woocommerce-page form .sp-fields > .form-row.form-row-wide{
	float:none;width:auto;padding:0;margin:0 0 16px;min-width:0;
}

.woocommerce form .sp-fields > .form-row.form-row-wide,
.woocommerce-page form .sp-fields > .form-row.form-row-wide{grid-column:1 / -1}

/* 14.6 Kolumny checkoutu.
   `.woocommerce .col2-set .col-1` (0,3,0) ma float:left i width:48%.
   Przy produktach wirtualnych kolumny wysyłki nie ma, więc karta danych
   kupującego zajmowała połowę dostępnej szerokości i wyglądała na ściśniętą. */
.woocommerce form.checkout .col2-set.sp-checkout__customer > .col-1,
.woocommerce form.checkout .col2-set.sp-checkout__customer > .col-2,
.woocommerce-page form.checkout .col2-set.sp-checkout__customer > .col-1,
.woocommerce-page form.checkout .col2-set.sp-checkout__customer > .col-2{
	float:none;width:auto;flex:1 1 auto;min-width:0;
}

/* Konto: natywne kolumny też są na floatach. */
.woocommerce .woocommerce-MyAccount-navigation.sp-account__aside,
.woocommerce .woocommerce-MyAccount-content.sp-account__body,
.woocommerce-page .woocommerce-MyAccount-navigation.sp-account__aside,
.woocommerce-page .woocommerce-MyAccount-content.sp-account__body{
	float:none;width:auto;
}

/* 14.7 Sieć bezpieczeństwa dla pól poza `.sp-fields`.
   Część pól checkoutu (uwagi do zamówienia, pola dokładane przez wtyczki)
   renderuje się w innych wrapperach niż `.sp-fields`, więc zamiast gonić
   kolejne kontenery obejmujemy cały formularz zamówienia i logowania. */
.woocommerce form.checkout .form-row .input-text,
.woocommerce form.checkout .form-row select,
.woocommerce form.checkout .form-row textarea,
.woocommerce form.woocommerce-form-login .form-row .input-text,
.woocommerce form.woocommerce-form-register .form-row .input-text,
.woocommerce form.lost_reset_password .form-row .input-text{
	width:100%;height:46px;
	background:var(--surface2);border:1px solid var(--line);border-radius:11px;
	padding:0 14px;font-family:var(--sp-font-body);font-size:14px;color:var(--text);
	line-height:normal;box-shadow:none;outline:none;
}

/* `textarea` uwag do zamówienia nosi klasę `input-text`, więc reguła wyżej
   (`… .form-row .input-text` = 0,4,1) biła wariant dla textarea (0,3,2) i
   narzucała mu `padding:0 14px` — placeholder lądował przyklejony do górnej
   krawędzi. Kwalifikacja klasą podnosi ten blok do 0,4,2. */
.woocommerce form.checkout .form-row textarea,
.woocommerce form.checkout .form-row textarea.input-text,
.woocommerce form.woocommerce-form-login .form-row textarea.input-text{
	height:auto;min-height:110px;padding:13px 14px;line-height:1.7;resize:vertical;
}

.woocommerce form.checkout .form-row .input-text:focus,
.woocommerce form.checkout .form-row select:focus,
.woocommerce form.checkout .form-row textarea:focus,
.woocommerce form.woocommerce-form-login .form-row .input-text:focus,
.woocommerce form.woocommerce-form-register .form-row .input-text:focus{
	border-color:var(--accent);
}

.woocommerce form.checkout .form-row .input-text::placeholder,
.woocommerce form.checkout .form-row textarea::placeholder{color:var(--dim)}

/* 14.8 Opis metody płatności.
   `.woocommerce-checkout #payment div.payment_box` ma w selektorze ID (1,2,1),
   więc bije `.sp-payment__box` (0,1,0) i maluje ramkę na jasny #dcd7e2
   z szarym tekstem — nieczytelnie na ciemnym tle. */
.woocommerce-checkout #payment div.payment_box.sp-payment__box,
.woocommerce-cart #payment div.payment_box.sp-payment__box,
#add_payment_method #payment div.payment_box.sp-payment__box{
	background:transparent;color:var(--muted);
	margin:2px 0 0;padding:12px 0 0;
	border-top:1px solid var(--line);border-radius:0;
	font-size:12.5px;line-height:1.65;
}

/* WooCommerce rysuje nad ramką biały „dzióbek" — na ciemnym tle to biała plama. */
.woocommerce-checkout #payment div.payment_box.sp-payment__box::before,
.woocommerce-cart #payment div.payment_box.sp-payment__box::before,
#add_payment_method #payment div.payment_box.sp-payment__box::before{
	display:none;
}

/* Lista metod płatności i jej tło. */
.woocommerce-checkout #payment,
.woocommerce-cart #payment,
#add_payment_method #payment{background:transparent;border-radius:0}

.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-cart #payment ul.payment_methods{
	padding:0;border:0;
}

.woocommerce-checkout #payment div.form-row,
.woocommerce-cart #payment div.form-row{padding:0}
