/* Meble Sosnowski – style sklepu (WooCommerce).
   Zastępują domyślne arkusze WooCommerce; kolory pochodzą ze zmiennych wariantu (main.css). */

/* ==========================================================================
   1. Elementy wspólne
   ========================================================================== */

/* „Karty” sklepu – kolory panelu, tak jak .ms-panel */
.woocommerce .cart_totals,
.woocommerce .ms-zamowienie,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon,
.woocommerce form.lost_reset_password,
.woocommerce .woocommerce-MyAccount-navigation,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce ul.order_details,
.woocommerce .woocommerce-customer-details address {
	--surface: var(--panel);
	--text: var(--panel-text);
	--heading: var(--panel-heading);
	--muted: var(--panel-muted);
	--line: var(--panel-line);
	--accent-text: var(--panel-accent-text);
	--ring: var(--panel-btn);
	--btn: var(--panel-btn);
	--on-btn: var(--panel-on-btn);
	--btn-hover: var(--panel-btn-hover);
	--on-btn-hover: var(--panel-on-btn-hover);
	--field-line: var(--panel-field-line);
	background: var(--panel);
	color: var(--text);
	border-radius: var(--radius);
}

.woocommerce-breadcrumb {
	margin: 22px 0 4px;
	color: var(--muted);
	font-size: 0.88rem;
}

.woocommerce-breadcrumb a {
	text-decoration: none;
}

.woocommerce-breadcrumb a:hover {
	text-decoration: underline;
}

.woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 20px;
	margin: 0 0 24px;
	padding: 16px 20px;
	border: 1px solid var(--line);
	border-left: 5px solid #1b8a4b;
	list-style: none;
	font-weight: 500;
}

.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus {
	outline: none;
}

.woocommerce-info {
	border-left-color: #5b6470;
}

.woocommerce-error {
	border-left-color: #d80118;
}

.woocommerce-error li {
	flex: 1 1 100%;
}

.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button {
	order: 2;
	min-height: 40px;
	margin-left: auto;
	padding-block: 0.4em;
	font-size: 0.85rem;
}

.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a:not(.button) {
	color: var(--accent-text);
}

.woocommerce-Price-amount {
	white-space: nowrap;
}

.woocommerce .price,
.woocommerce-page .price {
	color: var(--accent-text);
	font-weight: 700;
}

.woocommerce .price del,
.woocommerce-page .price del {
	color: var(--muted);
	font-weight: 400;
	font-size: 0.85em;
}

.woocommerce .price ins,
.woocommerce-page .price ins {
	text-decoration: none;
}

.woocommerce span.onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	padding: 4px 11px;
	border-radius: 999px;
	background: #d80118;
	color: #fff;
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.45;
}

html[data-wariant="czerwony"] .woocommerce span.onsale {
	background: #111;
}

.woocommerce .quantity .qty {
	width: 84px;
	text-align: center;
}

.woocommerce table.shop_table {
	width: 100%;
	margin: 0 0 24px;
	border-collapse: collapse;
	text-align: left;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 14px 12px;
	border-bottom: 1px solid var(--line);
	vertical-align: middle;
}

.woocommerce table.shop_table th {
	color: var(--muted);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.woocommerce table.shop_table td.product-name a {
	font-weight: 600;
	text-decoration: none;
}

.woocommerce table.shop_table td.product-name a:hover {
	text-decoration: underline;
}

.woocommerce table.shop_table .includes_tax,
.woocommerce table.shop_table small {
	color: var(--muted);
	font-weight: 400;
}

/* Formularze */
.woocommerce form .form-row {
	margin: 0 0 16px;
	padding: 0;
}

.woocommerce form .form-row label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.95rem;
}

.woocommerce form .form-row .woocommerce-input-wrapper {
	display: block;
}

.woocommerce form .form-row label.checkbox,
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox,
.woocommerce-form__label-for-checkbox {
	display: block;
	font-weight: 400;
}

.woocommerce form .required {
	color: var(--accent-text);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce form .optional {
	color: var(--muted);
	font-weight: 400;
}

.woocommerce form .form-row.woocommerce-invalid .input-text,
.woocommerce form .form-row.woocommerce-invalid select {
	border-color: #d80118;
	box-shadow: inset 0 0 0 1px #d80118;
}

.woocommerce form .checkout-inline-error-message {
	margin: 6px 0 0;
	color: var(--accent-text);
	font-size: 0.9rem;
	font-weight: 600;
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper,
.woocommerce form.woocommerce-EditAccountForm,
.woocommerce form.register {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 16px;
}

.woocommerce-billing-fields__field-wrapper > *,
.woocommerce-shipping-fields__field-wrapper > *,
.woocommerce-address-fields__field-wrapper > *,
.woocommerce form.woocommerce-EditAccountForm > *,
.woocommerce form.register > * {
	grid-column: 1 / -1;
}

.woocommerce form .form-row-first {
	grid-column: 1;
}

.woocommerce form .form-row-last {
	grid-column: 2;
}

.woocommerce form fieldset {
	margin: 8px 0 20px;
	padding: 20px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.woocommerce form fieldset legend {
	padding: 0 8px;
	font-weight: 700;
}

.woocommerce .password-input {
	position: relative;
	display: block;
}

.woocommerce .show-password-input {
	position: absolute;
	top: 50%;
	right: 8px;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	background: var(--field-text);
	cursor: pointer;
	transform: translateY(-50%);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 20px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 20px no-repeat;
	opacity: 0.6;
}

.woocommerce .show-password-input.display-password {
	opacity: 1;
}

.woocommerce-password-strength {
	margin-top: 8px;
	padding: 6px 10px;
	border-radius: 6px;
	background: color-mix(in srgb, var(--text) 10%, transparent);
	font-size: 0.9rem;
	font-weight: 600;
}

.woocommerce-password-hint {
	display: block;
	margin-top: 6px;
	color: var(--muted);
	font-size: 0.88rem;
}

.woocommerce .clear {
	clear: both;
}

/* select2 (pola wyboru kraju / województwa) */
.select2-container .select2-selection--single {
	height: 48px;
	border: 1px solid var(--field-line);
	border-radius: var(--radius-sm);
	background: var(--field);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 2.4em 0 0.9em;
	color: var(--field-text);
	line-height: 46px;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 0;
	right: 8px;
	height: 46px;
}

.select2-dropdown {
	border-color: var(--field-line);
	background: var(--field);
	color: var(--field-text);
}

.select2-container--default .select2-search--dropdown .select2-search__field {
	min-height: 40px;
	border-color: var(--field-line);
	background: var(--field);
	color: var(--field-text);
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background: #d80118;
	color: #fff;
}

.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] {
	background: color-mix(in srgb, var(--field-text) 12%, transparent);
	color: var(--field-text);
}

/* Nakładka podczas przeliczania koszyka / zamówienia */
.woocommerce .blockUI.blockOverlay {
	background: var(--surface) !important;
	opacity: 0.65 !important;
}

.woocommerce .blockUI.blockOverlay::before,
.woocommerce a.button.loading::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 26px;
	height: 26px;
	margin: -13px 0 0 -13px;
	border: 3px solid color-mix(in srgb, currentColor 25%, transparent);
	border-top-color: currentColor;
	border-radius: 50%;
	animation: ms-spin 0.8s linear infinite;
}

@keyframes ms-spin {
	to {
		transform: rotate(360deg);
	}
}

/* ==========================================================================
   2. Lista produktów
   ========================================================================== */

.ms-shop h1.page-title {
	margin: 0.25em 0 0.6em;
}

.term-description {
	max-width: 60em;
	margin-bottom: 20px;
	color: var(--muted);
}

.ms-pills ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
}

.ms-pills a {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	padding: 8px 16px;
	border: 1.5px solid var(--line);
	border-radius: 999px;
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.ms-pills a span {
	color: var(--muted);
	font-size: 0.8rem;
	font-weight: 500;
}

.ms-pills a:hover {
	border-color: var(--text);
}

.ms-pills a[aria-current="page"] {
	border-color: var(--text);
	background: var(--text);
	color: var(--surface);
}

.ms-pills a[aria-current="page"] span {
	color: inherit;
	opacity: 0.75;
}

.ms-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 20px;
	margin-bottom: 26px;
}

.ms-toolbar .woocommerce-result-count {
	margin: 0;
	color: var(--muted);
	font-size: 0.95rem;
}

.ms-toolbar .woocommerce-ordering {
	margin: 0;
}

.ms-toolbar select {
	width: auto;
	min-height: 44px;
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(24px, 3.2vw, 44px) clamp(14px, 2vw, 28px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products.columns-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.woocommerce ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link {
	display: block;
	width: 100%;
	text-decoration: none;
}

.ms-card__img {
	display: block;
	overflow: hidden;
	border-radius: var(--radius);
	background: var(--photo-bg);
	aspect-ratio: 1 / 1;
}

.ms-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.woocommerce ul.products li.product:hover .ms-card__img img {
	transform: scale(1.05);
}

.ms-card__cat {
	display: block;
	margin-top: 14px;
	color: var(--muted);
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 4px 0 6px;
	color: var(--text);
	font-size: 1.1rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
	text-wrap: pretty;
}

.woocommerce ul.products li.product .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 10px;
	font-size: 1.12rem;
}

.woocommerce ul.products li.product .price ins {
	order: -1;
}

/* Okrągły przycisk „Dodaj do koszyka” na zdjęciu */
.woocommerce ul.products li.product a.button {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8h12l1 12H5L6 8Z'/%3E%3Cpath d='M9 8V7a3 3 0 0 1 6 0v1M12 11.5v5M9.5 14h5'/%3E%3C/svg%3E") center / 24px no-repeat;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.14);
	color: transparent;
	font-size: 0;
	transition: transform 0.18s ease, opacity 0.18s ease, background-color 0.18s ease;
}

.woocommerce ul.products li.product a.button:not(.add_to_cart_button) {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}

.woocommerce ul.products li.product a.button:hover {
	background-color: #fff;
	transform: scale(1.1);
}

.woocommerce ul.products li.product a.button.loading {
	background-image: none;
	color: #111;
}

.woocommerce ul.products li.product a.button.added {
	background-color: #1b8a4b;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E");
}

@media (hover: hover) and (pointer: fine) {
	.woocommerce ul.products li.product a.button {
		opacity: 0;
		transform: translateY(6px);
	}

	.woocommerce ul.products li.product:hover a.button,
	.woocommerce ul.products li.product:focus-within a.button,
	.woocommerce ul.products li.product a.button.loading,
	.woocommerce ul.products li.product a.button.added {
		opacity: 1;
		transform: none;
	}

	.woocommerce ul.products li.product a.button:hover {
		transform: scale(1.1);
	}
}

.woocommerce ul.products li.product a.added_to_cart {
	margin-top: 8px;
	color: var(--text);
	font-size: 0.9rem;
	font-weight: 600;
}

.woocommerce nav.woocommerce-pagination {
	margin-top: clamp(36px, 5vw, 60px);
}

.woocommerce nav.woocommerce-pagination ul.page-numbers,
.nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce nav.woocommerce-pagination .page-numbers a,
.woocommerce nav.woocommerce-pagination .page-numbers span,
.nav-links .page-numbers {
	display: grid;
	place-items: center;
	min-width: 46px;
	height: 46px;
	padding: 0 10px;
	border: 1.5px solid var(--line);
	border-radius: var(--radius-sm);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce nav.woocommerce-pagination .page-numbers a:hover,
.nav-links a.page-numbers:hover {
	border-color: var(--text);
}

.woocommerce nav.woocommerce-pagination .page-numbers .current,
.nav-links .page-numbers.current {
	border-color: var(--text);
	background: var(--text);
	color: var(--surface);
}

@media (max-width: 1099px) {
	.woocommerce ul.products,
	.woocommerce ul.products.columns-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.woocommerce ul.products,
	.woocommerce ul.products.columns-3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 1rem;
	}

	.woocommerce ul.products li.product a.button {
		top: 8px;
		right: 8px;
		width: 40px;
		height: 40px;
	}

	.woocommerce span.onsale {
		top: 8px;
		left: 8px;
	}

	.ms-pills ul {
		flex-wrap: nowrap;
		margin-inline: calc(-1 * var(--gutter));
		padding-inline: var(--gutter);
		overflow-x: auto;
		scrollbar-width: none;
	}

	.ms-pills ul::-webkit-scrollbar {
		display: none;
	}
}

/* ==========================================================================
   3. Karta produktu
   ========================================================================== */

.woocommerce div.product {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	align-items: start;
	gap: clamp(28px, 4vw, 64px);
	margin-top: 18px;
}

.woocommerce div.product > * {
	grid-column: 1 / -1;
}

.woocommerce div.product > .woocommerce-product-gallery {
	grid-column: 1;
	position: relative;
}

.woocommerce div.product > .summary {
	grid-column: 2;
}

.woocommerce div.product > span.onsale {
	top: 16px;
	left: 16px;
	font-size: 0.95rem;
}

.woocommerce-product-gallery__wrapper {
	margin: 0;
	overflow: hidden;
	border-radius: 20px;
	background: var(--photo-bg);
}

.woocommerce-product-gallery .flex-viewport {
	border-radius: 20px;
}

.woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:nth-child(n + 2) {
	display: none;
}

.woocommerce-product-gallery__image a {
	display: block;
}

.woocommerce-product-gallery__image img {
	width: 100%;
}

.woocommerce-product-gallery__trigger {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 3;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E") center / 22px no-repeat;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.14);
	font-size: 0;
	text-decoration: none;
}

.woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 10px;
	margin: 12px 0 0;
	padding: 0;
	list-style: none;
}

.woocommerce-product-gallery .flex-control-thumbs img {
	width: 100%;
	border: 2px solid transparent;
	border-radius: 10px;
	background: var(--photo-bg);
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.woocommerce-product-gallery .flex-control-thumbs img:hover {
	border-color: var(--line);
}

.woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	border-color: var(--heading);
}

.woocommerce div.product .summary .ms-eyebrow {
	margin-bottom: 0.6em;
}

.woocommerce div.product .product_title {
	margin-bottom: 0.35em;
	font-size: clamp(1.8rem, 3.2vw, 2.7rem);
}

.woocommerce div.product .summary p.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 14px;
	margin: 0 0 0.8em;
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
	line-height: 1.2;
}

.woocommerce div.product .summary p.price ins {
	order: -1;
}

.woocommerce div.product .summary p.price del {
	font-size: 0.65em;
}

.woocommerce-product-details__short-description {
	margin-bottom: 1.4em;
}

.ms-wymiary {
	margin-bottom: 1.6em;
}

.ms-wymiary__tytul {
	margin: 0 0 4px;
	color: var(--muted);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.woocommerce table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: 9px 0;
	border-bottom: 1px solid var(--line);
	text-align: left;
	font-weight: 400;
}

.woocommerce table.shop_attributes th {
	width: 50%;
	padding-right: 16px;
	color: var(--muted);
}

.woocommerce table.shop_attributes td {
	font-weight: 600;
}

.woocommerce table.shop_attributes td p {
	margin: 0;
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 1.4em;
}

.woocommerce div.product form.cart .quantity .qty {
	height: 56px;
	font-weight: 600;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1;
	min-height: 56px;
	font-size: 1rem;
}

.woocommerce div.product .stock {
	margin-bottom: 1em;
	font-weight: 600;
}

.ms-info {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 1.2em 0 0;
	border-top: 1px solid var(--line);
	list-style: none;
	font-size: 0.98rem;
}

.ms-info li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.ms-info .ms-icon {
	width: 22px;
	height: 22px;
	margin-top: 2px;
	color: var(--accent-text);
}

.woocommerce div.product .woocommerce-tabs {
	margin-top: clamp(8px, 2vw, 24px);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 28px;
	margin: 0 0 24px;
	padding: 0;
	border-bottom: 1px solid var(--line);
	list-style: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	margin-bottom: -1px;
	padding: 14px 0;
	border-bottom: 2px solid transparent;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--accent-text);
}

html[data-wariant="czerwony"] .woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: #111;
}

.woocommerce div.product .woocommerce-tabs .panel {
	max-width: 52em;
}

.woocommerce div.product .related,
.woocommerce div.product .upsells {
	margin-top: clamp(16px, 3vw, 40px);
	padding-top: clamp(32px, 5vw, 64px);
	border-top: 1px solid var(--line);
}

.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
	margin-bottom: clamp(20px, 3vw, 34px);
}

@media (max-width: 860px) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce div.product > .woocommerce-product-gallery,
	.woocommerce div.product > .summary {
		grid-column: 1;
	}
}

/* ==========================================================================
   4. Koszyk
   ========================================================================== */

.woocommerce-cart .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
	align-items: start;
	gap: 24px clamp(24px, 4vw, 56px);
}

.woocommerce-cart .entry-content > .woocommerce > * {
	grid-column: 1 / -1;
}

.woocommerce-cart .entry-content > .woocommerce > .woocommerce-cart-form {
	grid-column: 1;
}

.woocommerce-cart .entry-content > .woocommerce > .cart-collaterals {
	grid-column: 2;
}

.woocommerce table.cart td.product-remove {
	width: 36px;
	padding-inline: 0;
}

.woocommerce table.cart a.remove {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	color: var(--muted);
	font-size: 1.5rem;
	line-height: 1;
	text-decoration: none;
}

.woocommerce table.cart a.remove:hover {
	background: #d80118;
	color: #fff;
}

.woocommerce table.cart td.product-thumbnail {
	width: 104px;
}

.woocommerce table.cart td.product-thumbnail img {
	width: 88px;
	border-radius: 10px;
	background: var(--photo-bg);
}

.woocommerce table.cart td.product-subtotal {
	font-weight: 700;
}

.woocommerce table.cart td.actions {
	padding: 18px 0 0;
	border-bottom: 0;
}

.woocommerce table.cart td.actions {
	text-align: right;
}

.woocommerce table.cart td.actions::after {
	content: "";
	display: block;
	clear: both;
}

.woocommerce table.cart td.actions .coupon {
	float: left;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.woocommerce table.cart td.actions .coupon .input-text {
	width: 180px;
}

.woocommerce .cart_totals {
	padding: clamp(20px, 2.5vw, 30px);
}

.woocommerce .cart_totals h2 {
	margin-bottom: 0.6em;
	font-size: 1.4rem;
}

.woocommerce .cart_totals table.shop_table th {
	width: 38%;
	padding-left: 0;
}

.woocommerce .cart_totals table.shop_table td {
	padding-right: 0;
	text-align: right;
}

.woocommerce .cart_totals .order-total td,
.woocommerce .ms-zamowienie .order-total td {
	font-size: 1.3rem;
}

.woocommerce .cart_totals .order-total small,
.woocommerce .ms-zamowienie .order-total small {
	display: block;
	font-size: 0.8rem;
}

.woocommerce ul#shipping_method,
.woocommerce ul.woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul#shipping_method label {
	display: inline;
	font-weight: 600;
}

.woocommerce .woocommerce-shipping-destination,
.woocommerce .woocommerce-shipping-calculator {
	margin: 6px 0 0;
	color: var(--muted);
	font-size: 0.9rem;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button {
	width: 100%;
	min-height: 56px;
	font-size: 1rem;
}

.woocommerce .cart-empty,
.woocommerce .wc-empty-cart-message {
	margin-bottom: 20px;
}

.woocommerce .return-to-shop {
	margin: 0;
}

.woocommerce .cross-sells {
	margin-bottom: 32px;
}

@media (max-width: 960px) {
	.woocommerce-cart .entry-content > .woocommerce {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-cart .entry-content > .woocommerce > .cart-collaterals {
		grid-column: 1;
	}
}

@media (max-width: 700px) {
	.woocommerce table.cart thead {
		display: none;
	}

	.woocommerce table.cart tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 88px minmax(0, 1fr) auto;
		align-items: center;
		gap: 6px 14px;
		padding: 16px 0;
		border-bottom: 1px solid var(--line);
	}

	.woocommerce table.cart tr.cart_item td {
		width: auto;
		padding: 0;
		border: 0;
	}

	.woocommerce table.cart td.product-thumbnail {
		grid-row: 1 / span 3;
	}

	.woocommerce table.cart tr.cart_item td.product-name {
		grid-column: 2 / 4;
		padding-right: 40px;
	}

	.woocommerce table.cart td.product-price {
		grid-column: 2 / 4;
		color: var(--muted);
		font-size: 0.92rem;
	}

	.woocommerce table.cart td.product-quantity {
		grid-column: 2;
	}

	.woocommerce table.cart td.product-subtotal {
		grid-column: 3;
		text-align: right;
	}

	.woocommerce table.cart td.product-remove {
		position: absolute;
		top: 10px;
		right: 0;
	}

	.woocommerce table.cart .quantity .qty {
		width: 72px;
		min-height: 42px;
	}

	.woocommerce table.cart tr:last-child,
	.woocommerce table.cart td.actions {
		display: block;
	}

	.woocommerce table.cart td.actions .coupon {
		float: none;
		margin-bottom: 10px;
	}

	.woocommerce table.cart td.actions .coupon .input-text {
		flex: 1;
		width: auto;
	}

	.woocommerce table.cart td.actions > .button {
		width: 100%;
	}
}

/* ==========================================================================
   5. Zamówienie
   ========================================================================== */

.woocommerce form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	align-items: start;
	gap: 24px clamp(24px, 4vw, 56px);
}

.woocommerce form.checkout > * {
	grid-column: 1 / -1;
}

.woocommerce form.checkout > #customer_details {
	grid-column: 1;
}

.woocommerce form.checkout > .ms-zamowienie {
	grid-column: 2;
	position: sticky;
	top: 110px;
	padding: clamp(20px, 2.5vw, 30px);
}

.woocommerce form.checkout h3,
.woocommerce .ms-zamowienie h3 {
	margin-bottom: 0.8em;
	font-size: 1.35rem;
}

.woocommerce #customer_details .col-2 {
	margin-top: 12px;
}

.woocommerce #ship-to-different-address {
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0;
}

.woocommerce #ship-to-different-address label {
	font-weight: 600;
}

.woocommerce .ms-zamowienie table.shop_table th,
.woocommerce .ms-zamowienie table.shop_table td {
	padding-inline: 0;
}

.woocommerce .ms-zamowienie table.shop_table td:last-child,
.woocommerce .ms-zamowienie table.shop_table th:last-child {
	padding-left: 12px;
	text-align: right;
}

.woocommerce .ms-zamowienie table.shop_table tbody td {
	font-size: 0.98rem;
}

.woocommerce .ms-zamowienie table.shop_table tfoot th {
	color: var(--text);
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

.woocommerce #payment ul.payment_methods {
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
}

.woocommerce #payment ul.payment_methods li {
	padding: 14px 0;
	border-bottom: 1px solid var(--line);
}

.woocommerce #payment ul.payment_methods li label {
	display: inline;
	font-weight: 600;
}

.woocommerce #payment ul.payment_methods li img {
	display: inline-block;
	max-height: 24px;
	margin-left: 8px;
	vertical-align: middle;
}

.woocommerce #payment div.payment_box {
	margin-top: 10px;
	padding: 12px 14px;
	border-radius: var(--radius-sm);
	background: color-mix(in srgb, var(--text) 7%, transparent);
	font-size: 0.94rem;
}

.woocommerce #payment div.payment_box p:last-child {
	margin: 0;
}

.woocommerce .woocommerce-privacy-policy-text {
	color: var(--muted);
	font-size: 0.9rem;
}

.woocommerce .woocommerce-terms-and-conditions-wrapper a,
.woocommerce .woocommerce-privacy-policy-text a {
	color: var(--accent-text);
}

.woocommerce .woocommerce-terms-and-conditions {
	max-height: 220px;
	margin-bottom: 16px;
	padding: 16px;
	overflow: auto;
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	font-size: 0.9rem;
}

.woocommerce #payment #place_order {
	width: 100%;
	min-height: 58px;
	font-size: 1.05rem;
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon,
.woocommerce form.lost_reset_password {
	max-width: 560px;
	margin: 0 0 28px;
	padding: clamp(20px, 3vw, 32px);
}

.woocommerce form.checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px;
}

.woocommerce form.checkout_coupon > p:first-child {
	flex: 1 1 100%;
	margin: 0;
}

.woocommerce form.checkout_coupon .form-row {
	flex: 1;
	margin: 0;
}

.woocommerce form.checkout_coupon .form-row-last {
	flex: none;
}

.woocommerce form.login .woocommerce-form-login__rememberme {
	display: block;
	margin-bottom: 14px;
}

.woocommerce .lost_password {
	margin: 0;
	font-size: 0.92rem;
}

@media (max-width: 960px) {
	.woocommerce form.checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce form.checkout > .ms-zamowienie {
		grid-column: 1;
		position: static;
	}
}

@media (max-width: 520px) {
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-address-fields__field-wrapper,
	.woocommerce form.woocommerce-EditAccountForm,
	.woocommerce form.register {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last {
		grid-column: 1;
	}
}

/* ==========================================================================
   6. Podziękowanie za zamówienie i Moje konto
   ========================================================================== */

.woocommerce .woocommerce-thankyou-order-received {
	font-size: 1.2rem;
	font-weight: 600;
}

.woocommerce ul.order_details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 18px 28px;
	margin: 0 0 32px;
	padding: clamp(18px, 2.5vw, 28px);
	list-style: none;
}

.woocommerce ul.order_details li {
	margin: 0;
	color: var(--muted);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.woocommerce ul.order_details li strong {
	display: block;
	margin-top: 4px;
	color: var(--text);
	font-size: 1.05rem;
	letter-spacing: 0;
	text-transform: none;
	overflow-wrap: anywhere;
}

.woocommerce .woocommerce-order h2,
.woocommerce .woocommerce-MyAccount-content h2,
.woocommerce .woocommerce-MyAccount-content h3 {
	margin-top: 1.4em;
	font-size: 1.4rem;
}

.woocommerce .woocommerce-customer-details address {
	padding: 20px 24px;
	font-style: normal;
	line-height: 1.7;
}

.woocommerce .woocommerce-customer-details .col2-set {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
}

.woocommerce-account .entry-content > .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	align-items: start;
	gap: 24px clamp(24px, 4vw, 56px);
}

.woocommerce-account .entry-content > .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.woocommerce .woocommerce-MyAccount-navigation {
	padding: 12px;
}

.woocommerce .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce .woocommerce-MyAccount-navigation li {
	margin: 0;
}

.woocommerce .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 11px 14px;
	border-radius: var(--radius-sm);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce .woocommerce-MyAccount-navigation a:hover {
	background: color-mix(in srgb, var(--text) 8%, transparent);
}

.woocommerce .woocommerce-MyAccount-navigation .is-active a {
	background: var(--text);
	color: var(--surface);
}

.woocommerce .woocommerce-MyAccount-content a:not(.button) {
	color: var(--accent-text);
}

.woocommerce #customer_login {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px 40px;
}

.woocommerce #customer_login h2,
.woocommerce-account .entry-content > .woocommerce > h2 {
	font-size: 1.5rem;
}

.woocommerce .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
}

.woocommerce .woocommerce-Address-title h2,
.woocommerce .woocommerce-Address-title h3 {
	margin: 0 0 0.4em;
}

.woocommerce .woocommerce-Address address {
	font-style: normal;
}

@media (max-width: 860px) {
	.woocommerce-account .entry-content > .woocommerce:has(.woocommerce-MyAccount-navigation) {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Tabele zamówień na telefonach */
@media (max-width: 700px) {
	.woocommerce table.shop_table_responsive:not(.cart) thead {
		display: none;
	}

	.woocommerce table.shop_table_responsive:not(.cart) tr {
		display: block;
		padding: 10px 0;
		border-bottom: 1px solid var(--line);
	}

	.woocommerce table.shop_table_responsive:not(.cart) td,
	.woocommerce table.shop_table_responsive:not(.cart) th {
		display: flex;
		justify-content: space-between;
		gap: 16px;
		width: auto;
		padding: 6px 0;
		border: 0;
		text-align: right;
	}

	.woocommerce table.shop_table_responsive:not(.cart) td::before {
		content: attr(data-title);
		color: var(--muted);
		font-weight: 600;
		text-align: left;
	}

	.woocommerce table.shop_table_responsive:not(.cart),
	.woocommerce table.shop_table_responsive:not(.cart) tbody {
		display: block;
		width: 100%;
	}

	.woocommerce table.shop_table_responsive:not(.cart) td {
		flex-wrap: wrap;
		min-width: 0;
	}

	.woocommerce table.shop_table_responsive:not(.cart) td > * {
		min-width: 0;
	}

	/* Wysyłka: etykieta nad treścią, bo treści bywa kilka linii */
	.woocommerce .cart_totals table.shop_table_responsive tr.shipping td {
		display: block;
		text-align: left;
	}

	.woocommerce .cart_totals table.shop_table_responsive tr.shipping td::before {
		display: block;
		margin-bottom: 4px;
	}

	.woocommerce .cart_totals .order-total td strong {
		margin-left: auto;
	}

	.woocommerce .cart_totals .order-total td small {
		flex-basis: 100%;
		text-align: right;
	}

	.woocommerce .cart_totals table.shop_table_responsive th {
		display: none;
	}
}

.woocommerce-product-gallery__image a {
	cursor: zoom-in;
}

/* ==========================================================================
   7. Poprawki czytelności i informacja o wersji testowej
   ========================================================================== */

/* „Wysłać na inny adres?” to etykieta pola, nie nagłówek – kolor zwykłego tekstu */
.woocommerce #ship-to-different-address,
.woocommerce #ship-to-different-address label {
	color: var(--text);
}

/* Na czerwonym tle wyszarzony przycisk prawie znikał */
html[data-wariant="czerwony"] .woocommerce button.button:disabled,
html[data-wariant="czerwony"] .woocommerce button.button.disabled {
	opacity: 0.75;
}

.woocommerce form .form-row input[type="checkbox"],
.woocommerce form .form-row input[type="radio"],
.woocommerce #payment input[type="radio"] {
	width: 1.3em;
	height: 1.3em;
}

/* Pasek „wersja testowa” (WooCommerce → Informacja o sklepie) */
.woocommerce-store-notice,
p.demo_store {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 60;
	margin: 0;
	padding: 12px var(--gutter);
	background: #111;
	color: #fff;
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.25);
}

.woocommerce-store-notice a,
p.demo_store a {
	margin-left: 10px;
	color: #fff;
	font-weight: 700;
	text-decoration: underline;
	white-space: nowrap;
}

/* Pasek na dole nie może zasłaniać końca stopki */
body.woocommerce-demo-store .ms-footer {
	padding-bottom: 76px;
}

.woocommerce .cart_totals h2 {
	margin-top: 0;
}

/* Otwarte menu mobilne: pasek „wersja testowa” nie zasłania jego dolnej części (przełącznik koloru) */
html.ms-nav-open .woocommerce-store-notice {
	display: none !important;
}

.woocommerce-store-notice a.woocommerce-store-notice__dismiss-link {
	display: inline-block;
	margin: -8px 0 -8px 4px;
	padding: 8px 10px;
}

.woocommerce #ship-to-different-address input[type="checkbox"] {
	width: 1.3em;
	height: 1.3em;
}
