/* Instytut Mocy × WooCommerce */

body.woocommerce,
body.woocommerce-page {
	background: #fbfaf8;
}

.im-commerce-main,
body.woocommerce-cart .im-page-main,
body.woocommerce-checkout .im-page-main,
body.woocommerce-account .im-page-main {
	padding: clamp(30px, 5vw, 68px) 0 clamp(72px, 8vw, 120px);
}

.im-commerce-container,
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce,
body.woocommerce-account .woocommerce {
	min-width: 0;
}

.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 22px;
	color: var(--im-muted);
	font-size: 0.83rem;
	font-weight: 650;
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--im-muted);
	text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--im-accent);
}

.woocommerce h1.page-title,
.woocommerce-products-header__title,
.woocommerce div.product .product_title,
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title,
.woocommerce-account .entry-title {
	font-size: clamp(2rem, 4vw, 3.8rem);
}

.woocommerce a,
.woocommerce-page a {
	text-underline-offset: 0.15em;
}

.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .wc-block-components-button,
.woocommerce-page .button,
.woocommerce-page button.button,
.woocommerce-page input.button {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 9px 18px;
	border: 1px solid var(--im-accent);
	border-radius: 999px;
	background: var(--im-accent);
	box-shadow: none;
	color: #fff;
	font-weight:700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease, border-color 150ms ease;
}

.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce .wc-block-components-button:hover,
.woocommerce-page .button:hover,
.woocommerce-page button.button:hover,
.woocommerce-page input.button:hover {
	border-color: var(--im-accent-dark);
	background: var(--im-accent-dark);
	box-shadow: 0 10px 25px color-mix(in srgb, var(--im-accent) 22%, transparent);
	color: #fff;
	transform: translateY(-1px);
}

.woocommerce .button:disabled,
.woocommerce button.button:disabled,
.woocommerce button.button.disabled,
.woocommerce input.button:disabled {
	cursor: not-allowed;
	opacity: 0.5;
	transform: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form select,
.woocommerce .select2-container .select2-selection--single,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form select,
.woocommerce-page .select2-container .select2-selection--single,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	min-height: 48px;
	padding: 11px 13px;
	border: 1px solid var(--im-border);
	border-radius: 12px;
	background: #fff;
	color: var(--im-text);
	box-shadow: inset 0 1px 2px rgb(30 19 13 / 0.03);
}

.woocommerce form .form-row textarea,
.woocommerce-page form .form-row textarea {
	min-height: 122px;
	resize: vertical;
}

.woocommerce .select2-container .select2-selection--single,
.woocommerce-page .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow,
.woocommerce-page .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 10px;
	right: 8px;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form select:focus,
.woocommerce .select2-container--focus .select2-selection--single,
.woocommerce-page form .form-row input.input-text:focus,
.woocommerce-page form .form-row textarea:focus,
.woocommerce-page form select:focus,
.wc-block-components-text-input input:focus {
	border-color: color-mix(in srgb, var(--im-accent) 70%, #fff);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--im-accent) 14%, transparent);
	outline: 0;
}

.woocommerce form .form-row label,
.woocommerce-page form .form-row label,
.wc-block-components-form .wc-block-components-text-input label {
	color: var(--im-text);
	font-weight: 680;
}

.woocommerce form .form-row .required {
	color: var(--im-danger);
}

.woocommerce .woocommerce-error,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce-page .woocommerce-error,
.woocommerce-page .woocommerce-info,
.woocommerce-page .woocommerce-message,
.wc-block-components-notice-banner {
	position: relative;
	margin: 0 0 22px;
	padding: 15px 18px 15px 48px;
	border: 1px solid var(--im-border);
	border-left: 4px solid var(--im-accent);
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
	color: var(--im-text);
}

.woocommerce .woocommerce-message,
.woocommerce-page .woocommerce-message,
.wc-block-components-notice-banner.is-success {
	border-left-color: var(--im-success);
}

.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-error,
.wc-block-components-notice-banner.is-error {
	border-left-color: var(--im-danger);
}

.woocommerce .woocommerce-error::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before {
	top: 15px;
	left: 18px;
	color: var(--im-accent);
}

.woocommerce .woocommerce-message::before {
	color: var(--im-success);
}

.woocommerce .woocommerce-error::before {
	color: var(--im-danger);
}

/* Shop archive */
.woocommerce .woocommerce-result-count {
	margin: 10px 0 26px;
	color: var(--im-muted);
	font-size: 0.9rem;
}

.woocommerce .woocommerce-ordering {
	margin: 0 0 26px;
}

.woocommerce .woocommerce-ordering select {
	min-width: 210px;
}

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
	margin: 0;
	padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
	display: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	position: relative;
	float: none;
	width: auto;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--im-border) 88%, #fff);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 8px 30px rgb(56 34 20 / 0.055);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
	border-color: color-mix(in srgb, var(--im-accent) 28%, var(--im-border));
	box-shadow: 0 18px 48px rgb(56 34 20 / 0.12);
	transform: translateY(-3px);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	text-decoration: none;
}

.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
	width: 100%;
	margin: 0;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: var(--im-surface);
	transition: transform 280ms ease;
}

.woocommerce ul.products li.product:hover a img,
.woocommerce-page ul.products li.product:hover a img {
	transform: scale(1.025);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
	padding: 17px 18px 5px;
	color: var(--im-text);
	font-size: 1.12rem;
	font-weight:700;
	line-height: 1.3;
}

.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
	display: block;
	padding: 0 18px 13px;
	color: var(--im-accent-dark);
	font-size: 1rem;
	font-weight:700;
}

.woocommerce ul.products li.product .price del,
.woocommerce-page ul.products li.product .price del {
	color: var(--im-muted);
	font-size: 0.82em;
	opacity: 0.75;
}

.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button {
	margin: 0 18px 19px;
}

.woocommerce span.onsale,
.woocommerce-page span.onsale {
	top: 13px;
	left: 13px;
	z-index: 2;
	min-width: auto;
	min-height: auto;
	padding: 7px 10px;
	border-radius: 999px;
	background: var(--im-accent);
	box-shadow: 0 7px 18px rgb(58 33 18 / 0.18);
	color: #fff;
	font-size: 0.72rem;
	font-weight:700;
	line-height: 1;
}

.woocommerce nav.woocommerce-pagination {
	margin-top: 34px;
}

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	gap: 7px;
	margin: 0;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	padding: 0;
	border: 1px solid var(--im-border);
	border-radius: 50%;
	background: #fff;
	color: var(--im-text);
	font-weight:700;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	border-color: var(--im-accent);
	background: var(--im-accent);
	color: #fff;
}

/* Single product */
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.04fr) minmax(360px, 0.96fr);
	gap: clamp(30px, 5vw, 70px);
	align-items: start;
}

.woocommerce div.product::before,
.woocommerce div.product::after {
	display: none;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	min-width: 0;
	margin: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	overflow: hidden;
	border: 1px solid var(--im-border);
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
}

.woocommerce div.product div.images img {
	width: 100%;
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 9px;
	margin-top: 10px;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	width: auto;
}

.woocommerce div.product div.images .flex-control-thumbs img {
	border: 2px solid transparent;
	border-radius: 10px;
	opacity: 0.65;
}

.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover {
	border-color: var(--im-accent);
	opacity: 1;
}

.woocommerce div.product div.summary {
	padding: clamp(20px, 3vw, 34px);
	border: 1px solid var(--im-border);
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
}

.woocommerce div.product .product_title {
	margin: 0 0 14px;
	font-size: clamp(2rem, 3.6vw, 3.35rem);
	line-height: 1.08;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0 0 20px;
	color: var(--im-accent-dark);
	font-size: 1.55rem;
	font-weight:700;
}

.woocommerce div.product .woocommerce-product-rating {
	margin-bottom: 16px;
}

.woocommerce .star-rating,
.woocommerce p.stars a {
	color: var(--im-accent);
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 24px 0;
}

.woocommerce .quantity .qty {
	width: 74px;
	min-height: 44px;
	padding: 7px 8px;
	border: 1px solid var(--im-border);
	border-radius: 999px;
	background: #fff;
	color: var(--im-text);
}

.woocommerce div.product .product_meta {
	padding-top: 17px;
	border-top: 1px solid var(--im-border);
	color: var(--im-muted);
	font-size: 0.85rem;
}

.woocommerce div.product .product_meta > span {
	display: block;
	margin-top: 5px;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells {
	grid-column: 1 / -1;
	min-width: 0;
}

.woocommerce div.product .woocommerce-tabs {
	margin-top: 10px;
	padding: 25px;
	border: 1px solid var(--im-border);
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	overflow-x: auto;
	gap: 24px;
	margin: 0 0 22px;
	padding: 0;
	border-bottom: 1px solid var(--im-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	position: relative;
	padding: 11px 0 13px;
	color: var(--im-muted);
	font-weight:700;
	white-space: nowrap;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a::after {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	height: 2px;
	border-radius: 2px;
	background: var(--im-accent);
	content: "";
	transform: scaleX(0);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--im-accent-dark);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::after {
	transform: scaleX(1);
}

.woocommerce div.product .related,
.woocommerce div.product .upsells {
	margin-top: 34px;
}

.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
	font-size: clamp(1.6rem, 2.8vw, 2.5rem);
}

/* Cart */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
	width: min(calc(100% - 40px), var(--im-container));
	margin-inline: auto;
}

.woocommerce table.shop_table,
.woocommerce-page table.shop_table,
.wc-block-cart-items {
	width: 100%;
	border: 1px solid var(--im-border);
	border-spacing: 0;
	border-collapse: separate;
	border-radius: 18px;
	background: #fff;
	overflow: hidden;
	box-shadow: var(--im-shadow-sm);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce-page table.shop_table th,
.woocommerce-page table.shop_table td {
	padding: 15px 16px;
	border-top: 0;
	border-bottom: 1px solid var(--im-border);
	vertical-align: middle;
}

.woocommerce table.shop_table th,
.woocommerce-page table.shop_table th {
	background: var(--im-surface);
	color: var(--im-text);
	font-size: 0.78rem;
	font-weight:700;
	letter-spacing: 0.025em;
	text-transform: uppercase;
}

.woocommerce table.shop_table tr:last-child td,
.woocommerce-page table.shop_table tr:last-child td {
	border-bottom: 0;
}

.woocommerce table.cart img,
.woocommerce-page table.cart img {
	width: 76px;
	border-radius: 11px;
}

.woocommerce a.remove,
.woocommerce-page a.remove {
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	border: 1px solid color-mix(in srgb, var(--im-danger) 25%, var(--im-border));
	border-radius: 50%;
	background: #fff6f5;
	color: var(--im-danger) !important;
	font-size: 1.15rem;
	line-height: 1;
}

.woocommerce a.remove:hover,
.woocommerce-page a.remove:hover {
	background: var(--im-danger);
	color: #fff !important;
}

.woocommerce .cart-collaterals,
.woocommerce-page .cart-collaterals {
	margin-top: 28px;
}

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
	float: right;
	width: min(520px, 100%);
	padding: 24px;
	border: 1px solid var(--im-border);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
}

.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-page .cart-collaterals .cart_totals h2 {
	font-size: 1.55rem;
}

.woocommerce .coupon {
	display: flex;
	gap: 8px;
}

.woocommerce .coupon .input-text {
	min-width: 190px;
	min-height: 44px;
	padding: 9px 12px;
	border: 1px solid var(--im-border) !important;
	border-radius: 999px;
}

/* Checkout */
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 0.78fr);
	gap: 30px;
	align-items: start;
}

.woocommerce-checkout form.checkout > #customer_details {
	min-width: 0;
}

.woocommerce-checkout form.checkout > #order_review_heading,
.woocommerce-checkout form.checkout > #order_review {
	grid-column: 2;
}

.woocommerce-checkout form.checkout > #order_review_heading {
	margin: 0 0 -12px;
	padding: 0 24px;
	font-size: 1.45rem;
}

.woocommerce-checkout #customer_details > div,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-form-coupon,
.woocommerce-checkout .woocommerce-form-login {
	padding: 24px;
	border: 1px solid var(--im-border);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
}

.woocommerce-checkout #customer_details > div + div {
	margin-top: 20px;
}

.woocommerce-checkout #order_review {
	position: sticky;
	top: calc(var(--im-header-height) + 20px);
}

.woocommerce-checkout #payment {
	border-radius: 16px;
	background: var(--im-surface);
}

.woocommerce-checkout #payment ul.payment_methods {
	border-bottom-color: var(--im-border);
}

.woocommerce-checkout #payment div.payment_box {
	border-radius: 12px;
	background: #fff;
	color: var(--im-text);
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: #fff;
}

.woocommerce-checkout #place_order {
	width: 100%;
	min-height: 52px;
	font-size: 1rem;
}

/* Order received */
.woocommerce-order-received .woocommerce-order,
.woocommerce-view-order .woocommerce-order {
	padding: clamp(20px, 4vw, 36px);
	border: 1px solid var(--im-border);
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
}

.woocommerce ul.order_details {
	display: grid;
	/*
	 * WooCommerce/Eduma dodaje clearfix przez ::before/::after. W gridzie te
	 * pseudo-elementy stają się pełnoprawnymi kaflami i przesuwają pierwszą
	 * pozycję do drugiej kolumny. auto-fit układa 5 kafli podsumowania oraz
	 * 4 kafle danych bankowych w równe, pełne rzędy.
	 */
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 10px;
	margin: 22px 0;
	padding: 0;
}

.woocommerce ul.order_details::before,
.woocommerce ul.order_details::after {
	display: none !important;
	content: none !important;
}

.woocommerce ul.order_details li {
	float: none;
	min-width: 0;
	margin: 0;
	padding: 14px;
	border: 1px solid var(--im-border);
	border-right: 1px solid var(--im-border);
	border-radius: 13px;
	background: var(--im-surface);
}

.woocommerce ul.order_details li strong {
	margin-top: 4px;
	font-size: 0.95rem;
	word-break: break-word;
}

/* My Account */
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after {
	display: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: auto;
	position: sticky;
	top: calc(var(--im-header-height) + 20px);
	overflow: hidden;
	border: 1px solid var(--im-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
}

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

.woocommerce-account .woocommerce-MyAccount-navigation li {
	margin: 0;
	border-bottom: 1px solid var(--im-border);
}

.woocommerce-account .woocommerce-MyAccount-navigation li:last-child {
	border-bottom: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: flex;
	min-height: 50px;
	align-items: center;
	padding: 10px 17px;
	color: #514943;
	font-weight: 650;
	text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
	background: var(--im-surface);
	color: var(--im-text);
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
	background: var(--im-accent);
	color: #fff;
	font-weight:700;
}

.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
	min-width: 0;
	padding: 25px;
	border: 1px solid var(--im-border);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
}

.woocommerce-account .woocommerce-MyAccount-content > :first-child {
	margin-top: 0;
}

.woocommerce-account .woocommerce-MyAccount-content > :last-child {
	margin-bottom: 0;
}

.woocommerce-account .addresses .title h3 {
	font-size: 1.2rem;
}

/* Login/register */
.woocommerce-account:not(.logged-in) .woocommerce {
	display: block;
	max-width: 1040px;
}

.woocommerce-account #customer_login {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.woocommerce-account #customer_login::before,
.woocommerce-account #customer_login::after {
	display: none;
}

.woocommerce-account #customer_login > div {
	float: none;
	width: auto;
	padding: 25px;
	border: 1px solid var(--im-border);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--im-shadow-sm);
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password {
	margin: 0;
	padding: 0;
	border: 0;
}

/* Checkout iframe used by the shareable booking widget. */
body.im-bw-checkout-frame .im-commerce-main,
body.im-bw-checkout-frame .im-page-main {
	padding: 0;
}

body.im-bw-checkout-frame .woocommerce,
body.im-bw-checkout-frame.woocommerce-checkout .woocommerce {
	width: 100%;
}

body.im-bw-checkout-frame.woocommerce-checkout form.checkout {
	grid-template-columns: 1fr;
}

body.im-bw-checkout-frame.woocommerce-checkout form.checkout > #order_review_heading,
body.im-bw-checkout-frame.woocommerce-checkout form.checkout > #order_review {
	grid-column: 1;
}

body.im-bw-checkout-frame.woocommerce-checkout #order_review {
	position: static;
}

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

	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
		gap: 28px;
	}

	.woocommerce-checkout form.checkout {
		grid-template-columns: minmax(0, 1fr) minmax(330px, 0.72fr);
		gap: 20px;
	}

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

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

	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.checkout > #order_review {
		grid-column: 1;
	}

	.woocommerce-checkout #order_review,
	.woocommerce-account .woocommerce-MyAccount-navigation {
		position: static;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: flex;
		overflow-x: auto;
		scrollbar-width: thin;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation li {
		flex: 0 0 auto;
		border-right: 1px solid var(--im-border);
		border-bottom: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation a {
		white-space: nowrap;
	}
}

@media (max-width: 700px) {
	.woocommerce-cart .woocommerce,
	.woocommerce-checkout .woocommerce,
	.woocommerce-account .woocommerce {
		width: min(calc(100% - 24px), var(--im-container));
	}

	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.woocommerce .woocommerce-result-count,
	.woocommerce .woocommerce-ordering {
		float: none;
	}

	.woocommerce .woocommerce-ordering select {
		width: 100%;
	}

	.woocommerce div.product div.summary,
	.woocommerce div.product .woocommerce-tabs,
	.woocommerce-checkout #customer_details > div,
	.woocommerce-checkout #order_review,
	.woocommerce-account .woocommerce-MyAccount-content,
	.woocommerce-account #customer_login > div {
		padding: 18px;
		border-radius: 17px;
	}

	.woocommerce-account #customer_login {
		grid-template-columns: 1fr;
	}

	.woocommerce table.shop_table_responsive,
	.woocommerce-page table.shop_table_responsive {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.woocommerce table.shop_table_responsive tr,
	.woocommerce-page table.shop_table_responsive tr {
		display: table-row;
	}

	.woocommerce table.shop_table_responsive tr td,
	.woocommerce-page table.shop_table_responsive tr td {
		display: table-cell;
		min-width: 120px;
		text-align: left !important;
	}

	.woocommerce table.shop_table_responsive tr td::before,
	.woocommerce-page table.shop_table_responsive tr td::before {
		display: none;
	}

	.woocommerce .cart-collaterals .cart_totals,
	.woocommerce-page .cart-collaterals .cart_totals {
		float: none;
		padding: 18px;
	}

	.woocommerce .coupon {
		align-items: stretch;
		flex-direction: column;
	}

	.woocommerce .coupon .input-text,
	.woocommerce .coupon .button {
		width: 100% !important;
	}

	.woocommerce ul.order_details {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.woocommerce div.product form.cart {
		align-items: stretch;
		flex-direction: column;
	}

	.woocommerce .quantity .qty,
	.woocommerce div.product form.cart .button {
		width: 100%;
	}

	.woocommerce div.product .woocommerce-tabs ul.tabs {
		gap: 18px;
	}
}

/* --------------------------------------------------------------------------
 * Thim Elementor Kit: karuzela „Powiązane produkty / Zobacz także”
 *
 * Widget renderuje pojedyncze produkty jako <div class="product swiper-slide">.
 * Ogólne reguły dla głównego produktu WooCommerce nie mogą traktować tych
 * slajdów jak dwukolumnowego widoku pojedynczego produktu.
 * -------------------------------------------------------------------------- */
.elementor-widget-thim-ekits-product-related,
.thim-ekit-single-product__related {
	position: relative;
	width: 100%;
	min-width: 0;
}

.thim-ekit-single-product__related .thim-ekits-product__related {
	position: relative;
	width: 100%;
	min-width: 0;
	overflow: hidden;
}

.thim-ekit-single-product__related .swiper-wrapper {
	display: flex;
	align-items: stretch;
	box-sizing: content-box;
	width: 100%;
	height: auto;
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	float: none;
	width: auto;
	min-width: 0;
	height: auto;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--im-border) 88%, #fff);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 8px 30px rgb(56 34 20 / 0.055);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product::before,
.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product::after {
	display: none;
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product:hover {
	border-color: color-mix(in srgb, var(--im-accent) 28%, var(--im-border));
	box-shadow: 0 18px 48px rgb(56 34 20 / 0.12);
	transform: translateY(-3px);
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product > a.woocommerce-LoopProduct-link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	color: inherit;
	text-decoration: none;
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: var(--im-surface);
	transition: transform 280ms ease;
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product:hover img {
	transform: scale(1.025);
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product .woocommerce-loop-product__title {
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 17px 18px 5px;
	color: var(--im-text);
	font-size: 1.08rem;
	font-weight:700;
	line-height: 1.32;
	text-align: left;
	white-space: normal;
	word-break: normal;
	overflow-wrap: anywhere;
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product p.price,
.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product span.price {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0 18px 13px;
	color: var(--im-accent-dark);
	font-size: 1rem;
	font-weight:700;
	line-height: 1.4;
	text-align: left;
	white-space: normal;
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product .star-rating {
	margin: 4px 18px 10px;
}

.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product > .button,
.woocommerce .thim-ekit-single-product__related .thim-ekits-product__related__item.product > a.button {
	align-self: flex-start;
	margin: 0 18px 19px;
}

/* Bazowy fallback, gdy Swiper jeszcze nie zdążył nadać szerokości inline. */
.thim-ekit-single-product__related .swiper-wrapper > .swiper-slide {
	flex: 0 0 auto;
	width: calc((100% - 72px) / 4);
	min-width: 0;
}

/* Nawigacja ma pozycjonować się względem sekcji, nie względem całej strony. */
.thim-ekit-single-product__related .thim-slider-nav {
	position: absolute;
	top: 50%;
	z-index: 8;
	display: grid;
	width: 46px;
	height: 46px;
	place-items: center;
	margin: 0;
	border: 1px solid color-mix(in srgb, var(--im-border) 86%, #fff);
	border-radius: 50%;
	background: rgb(255 255 255 / 0.96);
	box-shadow: 0 8px 24px rgb(56 34 20 / 0.11);
	color: var(--im-text);
	cursor: pointer;
	transform: translateY(-50%);
	transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.thim-ekit-single-product__related .thim-slider-nav:hover {
	background: #fff;
	box-shadow: 0 12px 30px rgb(56 34 20 / 0.16);
	transform: translateY(-50%) scale(1.04);
}

.thim-ekit-single-product__related .thim-slider-nav-prev {
	left: -23px;
}

.thim-ekit-single-product__related .thim-slider-nav-next {
	right: -23px;
}

.thim-ekit-single-product__related .thim-slider-nav svg,
.thim-ekit-single-product__related .thim-slider-nav i {
	width: 18px;
	height: 18px;
	font-size: 18px;
}

@media (max-width: 1100px) {
	.thim-ekit-single-product__related .swiper-wrapper > .swiper-slide {
		width: calc((100% - 48px) / 3);
	}
}

@media (max-width: 767px) {
	.thim-ekit-single-product__related .swiper-wrapper > .swiper-slide {
		width: calc((100% - 18px) / 2);
	}

	.thim-ekit-single-product__related .thim-slider-nav {
		width: 40px;
		height: 40px;
	}

	.thim-ekit-single-product__related .thim-slider-nav-prev {
		left: 8px;
	}

	.thim-ekit-single-product__related .thim-slider-nav-next {
		right: 8px;
	}
}

@media (max-width: 480px) {
	.thim-ekit-single-product__related .swiper-wrapper > .swiper-slide {
		width: 100%;
	}
}

/* --------------------------------------------------------------------------
 * 1.5.8 — pojedynczy produkt w „Zobacz także” i pojedyncza obrysówka kart
 * -------------------------------------------------------------------------- */

/*
 * Archiwum sklepu w Thim Elementor Kit ma własną kartę `.inner-item-product`.
 * Zewnętrzne <li class="product"> pełni wyłącznie rolę komórki siatki, więc nie
 * może dostawać drugiej ramki, tła ani cienia z ogólnych stylów WooCommerce.
 */
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product,
body .thim-ekits-archive-product ul.products > li.product {
	overflow: visible;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	transform: none;
}

body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product:hover,
body .thim-ekits-archive-product ul.products > li.product:hover {
	border-color: transparent;
	background: transparent;
	box-shadow: none;
	transform: none;
}

/*
 * Analogicznie w karuzeli produktów powiązanych: gdy widget renderuje własny
 * wewnętrzny szablon karty, zewnętrzny slajd nie tworzy drugiej obrysówki.
 * Klasa JS jest fallbackiem dla parserów CSS, a :has() działa natychmiast.
 */
.woocommerce .thim-ekit-single-product__related .product.im-product-has-inner-card,
.woocommerce .thim-ekit-single-product__related .product:has(.inner-item-product),
.woocommerce .thim-ekit-single-product__related .product:has(.elementor-element) {
	overflow: visible;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	transform: none;
}

.woocommerce .thim-ekit-single-product__related .product.im-product-has-inner-card:hover,
.woocommerce .thim-ekit-single-product__related .product:has(.inner-item-product):hover,
.woocommerce .thim-ekit-single-product__related .product:has(.elementor-element):hover {
	border-color: transparent;
	background: transparent;
	box-shadow: none;
	transform: none;
}

/*
 * Jeden produkt nie może zostać rozciągnięty przez Swipera do pełnej szerokości
 * sekcji. Otrzymuje rozmiar zwykłej karty i jest centrowany. Nawigacja oraz
 * paginacja nie mają sensu przy jednym elemencie.
 */
.thim-ekit-single-product__related.im-related-single .thim-ekits-product__related {
	overflow: visible;
}

.thim-ekit-single-product__related.im-related-single .swiper-wrapper,
.thim-ekit-single-product__related.im-related-single .thim-ekits-product__related__inner {
	display: flex;
	justify-content: center;
	width: 100%;
	transform: none !important;
}

.thim-ekit-single-product__related.im-related-single .thim-ekits-product__related__item,
.thim-ekit-single-product__related.im-related-single .swiper-wrapper > .swiper-slide {
	flex: 0 0 min(100%, 320px) !important;
	width: min(100%, 320px) !important;
	max-width: 320px;
	height: auto !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.thim-ekit-single-product__related.im-related-single .thim-slider-nav,
.thim-ekit-single-product__related.im-related-single .thim-slider-pagination {
	display: none !important;
}

/* Bez JS nowoczesna przeglądarka nadal poprawnie obsłuży pojedynczy slajd. */
.thim-ekit-single-product__related:has(.swiper-wrapper > .swiper-slide:only-child) .swiper-wrapper {
	justify-content: center;
	transform: none !important;
}

.thim-ekit-single-product__related:has(.swiper-wrapper > .swiper-slide:only-child) .swiper-slide:only-child {
	flex: 0 0 min(100%, 320px) !important;
	width: min(100%, 320px) !important;
	max-width: 320px;
	height: auto !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.thim-ekit-single-product__related:has(.swiper-wrapper > .swiper-slide:only-child) .thim-slider-nav,
.thim-ekit-single-product__related:has(.swiper-wrapper > .swiper-slide:only-child) .thim-slider-pagination {
	display: none !important;
}

@media (max-width: 480px) {
	.thim-ekit-single-product__related.im-related-single .thim-ekits-product__related__item,
	.thim-ekit-single-product__related.im-related-single .swiper-wrapper > .swiper-slide,
	.thim-ekit-single-product__related:has(.swiper-wrapper > .swiper-slide:only-child) .swiper-slide:only-child {
		flex-basis: min(100%, 360px) !important;
		width: min(100%, 360px) !important;
		max-width: 360px;
	}
}

/* --------------------------------------------------------------------------
 * 1.5.9 — równa wysokość kafli produktowych
 * -------------------------------------------------------------------------- */

/*
 * Siatka sklepu rozciąga każdy element do pełnej wysokości wiersza. Dzięki
 * `grid-auto-rows: 1fr` wszystkie wiersze archiwum otrzymują spójną wysokość,
 * a różna długość nazwy lub ceny nie powoduje „schodków” między kaflami.
 */
.woocommerce ul.products,
.woocommerce-page ul.products,
body .thim-ekits-archive-product .thim-ekits-product ul.products {
	align-items: stretch;
	grid-auto-rows: 1fr;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product {
	display: flex;
	align-self: stretch;
	flex-direction: column;
	height: 100%;
	box-sizing: border-box;
}

/* Klasyczna karta WooCommerce bez wewnętrznego szablonu Thim. */
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product > a.woocommerce-LoopProduct-link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
}

.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link .price,
.woocommerce-page ul.products li.product > a.woocommerce-LoopProduct-link .price {
	margin-top: auto;
}

/*
 * Karta archiwum Thim Elementor Kit. Zewnętrzne <li> nadal pozostaje bez
 * obrysówki, natomiast `.inner-item-product` wypełnia całą wysokość komórki.
 */
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product > .inner-item-product,
body .thim-ekits-archive-product ul.products > li.product > .inner-item-product {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	height: 100%;
	box-sizing: border-box;
}

body .thim-ekits-archive-product .inner-item-product > .product-image {
	flex: 0 0 auto;
}

body .thim-ekits-archive-product .inner-item-product > .wrapper-content-item {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
}

body .thim-ekits-archive-product .inner-item-product > .wrapper-content-item .price {
	margin-top: auto;
}

/* Ta sama geometria w karuzeli „Zobacz także”. */
.woocommerce .thim-ekit-single-product__related .swiper-wrapper > .swiper-slide {
	height: auto;
}

.woocommerce .thim-ekit-single-product__related .inner-item-product {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	height: 100%;
	box-sizing: border-box;
}

.woocommerce .thim-ekit-single-product__related .inner-item-product > .wrapper-content-item {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	min-width: 0;
}

.woocommerce .thim-ekit-single-product__related .inner-item-product > .wrapper-content-item .price {
	margin-top: auto;
}


/* --------------------------------------------------------------------------
 * 1.5.10 — faktycznie równe wysokości kart archiwum produktów
 * -------------------------------------------------------------------------- */

/*
 * Thim Elementor Kit występuje w dwóch wariantach klas wrappera
 * (`thim-ekit-archive-product` i `thim-ekits-archive-product`). Poniższe
 * selektory obejmują oba warianty oraz zewnętrzny wrapper widgetu Elementora.
 */
body .elementor-widget-thim-ekits-archive-product ul.products,
body .thim-ekit-archive-product.thim-ekits-product ul.products,
body .thim-ekits-archive-product .thim-ekits-product ul.products {
	display: grid !important;
	align-items: stretch !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product {
	display: flex !important;
	align-self: stretch !important;
	flex-direction: column !important;
	box-sizing: border-box !important;
	height: 100% !important;
	min-height: 100% !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product > .inner-item-product,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product > .inner-item-product,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product > .inner-item-product {
	display: flex !important;
	flex: 1 1 auto !important;
	flex-direction: column !important;
	box-sizing: border-box !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 100% !important;
}

body .elementor-widget-thim-ekits-archive-product .inner-item-product > .wrapper-content-item,
body .thim-ekit-archive-product.thim-ekits-product .inner-item-product > .wrapper-content-item,
body .thim-ekits-archive-product .inner-item-product > .wrapper-content-item {
	display: flex !important;
	flex: 1 1 auto !important;
	flex-direction: column !important;
	box-sizing: border-box !important;
	width: 100% !important;
}

body .elementor-widget-thim-ekits-archive-product .inner-item-product > .wrapper-content-item .price,
body .thim-ekit-archive-product.thim-ekits-product .inner-item-product > .wrapper-content-item .price,
body .thim-ekits-archive-product .inner-item-product > .wrapper-content-item .price {
	margin-top: auto !important;
}

/*
 * JS ustawia tę zmienną na najwyższą kartę całego widocznego listingu.
 * Dzięki temu wysokości są identyczne także wtedy, gdy zewnętrzny CSS
 * Elementora nadpisze standardowe rozciąganie elementów siatki.
 */
@media (min-width: 701px) {
	body .elementor-widget-thim-ekits-archive-product ul.products > li.product > .inner-item-product,
	body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product > .inner-item-product,
	body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product > .inner-item-product {
		min-height: var(--im-product-card-equal-height, 100%) !important;
	}
}

/* --------------------------------------------------------------------------
 * 1.5.11 — obrys i równa wysokość na właściwym divie karty Elementora
 * -------------------------------------------------------------------------- */

/*
 * W aktualnym loopie Thim Elementor Kit zewnętrzne `li.product` jest tylko
 * komórką siatki. Właściwa karta to bezpośredni div:
 * `[data-elementor-type="wp-post"]`. Obrys na li pozostawiał pusty fragment
 * pod krótszą zawartością, dlatego cała geometria wizualna trafia na ten div.
 */
body .elementor-widget-thim-ekits-archive-product ul.products > li.product,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product {
	overflow: visible !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	transform: none !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product:hover,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product:hover,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product:hover {
	border-color: transparent !important;
	background: transparent !important;
	box-shadow: none !important;
	transform: none !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product > [data-elementor-type="wp-post"],
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"],
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"] {
	display: flex !important;
	flex: 1 1 auto !important;
	flex-direction: column !important;
	box-sizing: border-box !important;
	width: 100% !important;
	height: 100% !important;
	min-height: var(--im-product-card-equal-height, 100%) !important;
	overflow: hidden !important;
	border: 1px solid color-mix(in srgb, var(--im-border) 88%, #fff) !important;
	border-radius: 20px !important;
	background: #fff !important;
	box-shadow: 0 8px 30px rgb(56 34 20 / 0.055) !important;
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product:hover > [data-elementor-type="wp-post"],
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product:hover > [data-elementor-type="wp-post"],
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product:hover > [data-elementor-type="wp-post"] {
	border-color: color-mix(in srgb, var(--im-accent) 28%, var(--im-border)) !important;
	box-shadow: 0 18px 48px rgb(56 34 20 / 0.12) !important;
	transform: translateY(-3px) !important;
}

/* Cena domyka kartę od dołu także przy krótszych nazwach produktów. */
body .elementor-widget-thim-ekits-archive-product ul.products > li.product > [data-elementor-type="wp-post"] > [data-widget_type^="thim-loop-product-price"],
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"] > [data-widget_type^="thim-loop-product-price"],
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"] > [data-widget_type^="thim-loop-product-price"] {
	margin-top: auto !important;
}

@media (max-width: 700px) {
	body .elementor-widget-thim-ekits-archive-product ul.products > li.product > [data-elementor-type="wp-post"],
	body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"],
	body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"] {
		height: auto !important;
		min-height: 0 !important;
	}
}

/* --------------------------------------------------------------------------
 * 1.5.12 — pojedynczy obrys kart archiwum produktów
 * -------------------------------------------------------------------------- */

/*
 * W szablonie loopa Elementora pierwszy wewnętrzny kontener `.e-con`
 * zachowuje obrys zapisany w samym szablonie. Od 1.5.11 właściwy obrys
 * generuje już zewnętrzny div `[data-elementor-type="wp-post"]`, dlatego
 * stary border trzeba wyzerować — bez ruszania paddingu i układu treści.
 */
body .elementor-widget-thim-ekits-archive-product ul.products > li.product > [data-elementor-type="wp-post"] > .e-con:first-child,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"] > .e-con:first-child,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"] > .e-con:first-child {
	--border-top-width: 0px !important;
	--border-right-width: 0px !important;
	--border-bottom-width: 0px !important;
	--border-left-width: 0px !important;
	border-width: 0 !important;
	border-style: none !important;
	border-color: transparent !important;
}



/* --------------------------------------------------------------------------
 * 1.5.14 — wyłączenie drugiego zoomu Elementora na samym obrazie
 * -------------------------------------------------------------------------- */

/*
 * Animacja `elementor-animation-grow` bywa przypisana nie do samego obrazka,
 * lecz do jego klikalnego wrappera. Wtedy hover kafla skaluje zdjęcie subtelnie,
 * a wejście kursorem bezpośrednio na grafikę skaluje jeszcze wrapper do 1.1.
 * Zerujemy wyłącznie animację Elementora wewnątrz kart produktów. Subtelny zoom
 * zdjęcia sterowany przez hover całego kafla pozostaje poniżej bez zmian.
 */
body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-animation-grow,
body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-animation-grow:hover,
body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-animation-grow:focus,
body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-animation-grow:active,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-animation-grow,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-animation-grow:hover,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-animation-grow:focus,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-animation-grow:active,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-animation-grow,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-animation-grow:hover,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-animation-grow:focus,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-animation-grow:active,
body .woocommerce .thim-ekit-single-product__related .product .elementor-animation-grow,
body .woocommerce .thim-ekit-single-product__related .product .elementor-animation-grow:hover,
body .woocommerce .thim-ekit-single-product__related .product .elementor-animation-grow:focus,
body .woocommerce .thim-ekit-single-product__related .product .elementor-animation-grow:active {
	transform: none !important;
}

/* --------------------------------------------------------------------------
 * 1.5.13 — jeden, płynny zoom zdjęcia produktu
 * -------------------------------------------------------------------------- */

/*
 * Szablon karty Elementora może mieć własną animację `elementor-animation-grow`.
 * Nakładała się ona na subtelny zoom całego kafla i po wejściu kursorem bezpośrednio
 * na zdjęcie powodowała drugi, gwałtowny skok. W obrębie kart produktowych każdy
 * stan hover kończy teraz na tej samej skali 1.025.
 */
body .elementor-widget-thim-ekits-archive-product ul.products > li.product:hover img,
body .elementor-widget-thim-ekits-archive-product ul.products > li.product img:hover,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product:hover img,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product img:hover,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product:hover img,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product img:hover,
body .woocommerce ul.products > li.product:hover img.elementor-animation-grow,
body .woocommerce ul.products > li.product img.elementor-animation-grow:hover,
body .woocommerce-page ul.products > li.product:hover img.elementor-animation-grow,
body .woocommerce-page ul.products > li.product img.elementor-animation-grow:hover,
body .woocommerce .thim-ekit-single-product__related .product:hover img,
body .woocommerce .thim-ekit-single-product__related .product img:hover {
	transform: scale(1.025) !important;
}

/* Elementor potrafi ustawić inną krzywą animacji tylko na samym obrazie. */
body .elementor-widget-thim-ekits-archive-product ul.products > li.product img,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product img,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product img,
body .woocommerce .thim-ekit-single-product__related .product img {
	transition: transform 280ms ease !important;
}

/* --------------------------------------------------------------------------
 * 1.5.15 — pionowe miniatury galerii obok zdjęcia produktu
 * -------------------------------------------------------------------------- */

/*
 * Widget obrazu produktu Thim Elementor Kit używa flex-wrap: wrap. Po
 * zwężeniu kolumny produktu szyna miniatur spadała pod główne zdjęcie,
 * zachowując przy tym wysokość całej galerii. Wymuszamy jeden rząd:
 * główne zdjęcie + stabilna, pionowa szyna miniatur po prawej stronie.
 */
body.single-product .thim-ekit-single-product__image .woocommerce-product-gallery.ekits-product-slides__vertical,
body.single-product .elementor-widget-thim-ekits-single-product-image .woocommerce-product-gallery.ekits-product-slides__vertical,
body.single-product .elementor-widget-thim-ekits-product-image .woocommerce-product-gallery.ekits-product-slides__vertical {
	--ekits-thumbnail-vertical-width: clamp(82px, 7.5vw, 108px);
	display: flex !important;
	flex-flow: row nowrap !important;
	align-items: stretch !important;
	column-gap: clamp(10px, 1.3vw, 16px) !important;
	width: 100% !important;
	min-width: 0 !important;
}

body.single-product .thim-ekit-single-product__image .ekits-product-slides__vertical .ekits-product-slides__wrapper,
body.single-product .elementor-widget-thim-ekits-single-product-image .ekits-product-slides__vertical .ekits-product-slides__wrapper,
body.single-product .elementor-widget-thim-ekits-product-image .ekits-product-slides__vertical .ekits-product-slides__wrapper {
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	order: 1;
}

body.single-product .thim-ekit-single-product__image .ekits-product-slides__vertical .ekits-product-thumbnails__wrapper,
body.single-product .elementor-widget-thim-ekits-single-product-image .ekits-product-slides__vertical .ekits-product-thumbnails__wrapper,
body.single-product .elementor-widget-thim-ekits-product-image .ekits-product-slides__vertical .ekits-product-thumbnails__wrapper {
	flex: 0 0 var(--ekits-thumbnail-vertical-width) !important;
	width: var(--ekits-thumbnail-vertical-width) !important;
	min-width: var(--ekits-thumbnail-vertical-width) !important;
	max-width: var(--ekits-thumbnail-vertical-width) !important;
	margin: 0 !important;
	order: 2;
	align-self: stretch !important;
	overflow: hidden !important;
}

body.single-product .thim-ekit-single-product__image .ekits-product-slides__vertical .ekits-product-thumbnails__wrapper .slides,
body.single-product .elementor-widget-thim-ekits-single-product-image .ekits-product-slides__vertical .ekits-product-thumbnails__wrapper .slides,
body.single-product .elementor-widget-thim-ekits-product-image .ekits-product-slides__vertical .ekits-product-thumbnails__wrapper .slides {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	row-gap: 10px !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.single-product .thim-ekit-single-product__image .ekits-product-slides__vertical .product-image-thumbnail,
body.single-product .elementor-widget-thim-ekits-single-product-image .ekits-product-slides__vertical .product-image-thumbnail,
body.single-product .elementor-widget-thim-ekits-product-image .ekits-product-slides__vertical .product-image-thumbnail {
	float: none !important;
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
}

body.single-product .thim-ekit-single-product__image .ekits-product-slides__vertical .product-image-thumbnail img,
body.single-product .elementor-widget-thim-ekits-single-product-image .ekits-product-slides__vertical .product-image-thumbnail img,
body.single-product .elementor-widget-thim-ekits-product-image .ekits-product-slides__vertical .product-image-thumbnail img {
	display: block !important;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1 !important;
	object-fit: contain !important;
	border: 1px solid transparent !important;
	border-radius: 14px !important;
	background: #fff !important;
	opacity: 0.72;
	transition: border-color 180ms ease, opacity 180ms ease, box-shadow 180ms ease !important;
}

body.single-product .thim-ekit-single-product__image .ekits-product-slides__vertical .product-image-thumbnail.flex-active-slide img,
body.single-product .thim-ekit-single-product__image .ekits-product-slides__vertical .product-image-thumbnail:hover img,
body.single-product .elementor-widget-thim-ekits-single-product-image .ekits-product-slides__vertical .product-image-thumbnail.flex-active-slide img,
body.single-product .elementor-widget-thim-ekits-single-product-image .ekits-product-slides__vertical .product-image-thumbnail:hover img,
body.single-product .elementor-widget-thim-ekits-product-image .ekits-product-slides__vertical .product-image-thumbnail.flex-active-slide img,
body.single-product .elementor-widget-thim-ekits-product-image .ekits-product-slides__vertical .product-image-thumbnail:hover img {
	border-color: var(--im-accent) !important;
	box-shadow: 0 8px 22px rgb(56 34 20 / 0.10) !important;
	opacity: 1;
}

/* Na węższych ekranach zachowujemy miniatury obok zdjęcia, ale zwężamy szynę. */
@media (max-width: 900px) and (min-width: 701px) {
	body.single-product .thim-ekit-single-product__image .woocommerce-product-gallery.ekits-product-slides__vertical,
	body.single-product .elementor-widget-thim-ekits-single-product-image .woocommerce-product-gallery.ekits-product-slides__vertical,
	body.single-product .elementor-widget-thim-ekits-product-image .woocommerce-product-gallery.ekits-product-slides__vertical {
		--ekits-thumbnail-vertical-width: 76px;
		column-gap: 9px !important;
	}
}

/* Telefon: szyna nadal zostaje obok zdjęcia, lecz zajmuje mniej miejsca. */
@media (max-width: 700px) {
	body.single-product .thim-ekit-single-product__image .woocommerce-product-gallery.ekits-product-slides__vertical,
	body.single-product .elementor-widget-thim-ekits-single-product-image .woocommerce-product-gallery.ekits-product-slides__vertical,
	body.single-product .elementor-widget-thim-ekits-product-image .woocommerce-product-gallery.ekits-product-slides__vertical {
		--ekits-thumbnail-vertical-width: 64px;
		column-gap: 8px !important;
	}

	body.single-product .thim-ekit-single-product__image .ekits-product-slides__vertical .ekits-product-thumbnails__wrapper .slides,
	body.single-product .elementor-widget-thim-ekits-single-product-image .ekits-product-slides__vertical .ekits-product-thumbnails__wrapper .slides,
	body.single-product .elementor-widget-thim-ekits-product-image .ekits-product-slides__vertical .ekits-product-thumbnails__wrapper .slides {
		row-gap: 7px !important;
	}

	body.single-product .thim-ekit-single-product__image .ekits-product-slides__vertical .product-image-thumbnail img,
	body.single-product .elementor-widget-thim-ekits-single-product-image .ekits-product-slides__vertical .product-image-thumbnail img,
	body.single-product .elementor-widget-thim-ekits-product-image .ekits-product-slides__vertical .product-image-thumbnail img {
		border-radius: 10px !important;
	}
}


/* --------------------------------------------------------------------------
 * 1.5.16 — symetryczny pionowy zestaw akcji na zdjęciu produktu
 * -------------------------------------------------------------------------- */

/*
 * Quick view, lista życzeń i koszyk są osobnymi widgetami Elementora, więc
 * każdy dziedziczył inną szerokość, padding i pozycję. W obrębie archiwum oraz
 * produktów powiązanych nadajemy im wspólną geometrię 46 × 46 px i tę samą
 * oś po prawej stronie zdjęcia. Kolory z szablonu pozostają zachowane.
 */
body .elementor-widget-thim-ekits-archive-product ul.products > li.product > [data-elementor-type="wp-post"],
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"],
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product > [data-elementor-type="wp-post"],
body .woocommerce .thim-ekit-single-product__related .product > [data-elementor-type="wp-post"] {
	position: relative !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button),
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button),
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button),
body .woocommerce .thim-ekit-single-product__related .product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) {
	--im-product-action-size: 46px;
	box-sizing: border-box !important;
	width: var(--im-product-action-size) !important;
	min-width: var(--im-product-action-size) !important;
	max-width: var(--im-product-action-size) !important;
	height: var(--im-product-action-size) !important;
	min-height: var(--im-product-action-size) !important;
	max-height: var(--im-product-action-size) !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Jeżeli widgety są pozycjonowane absolutnie, wszystkie dostają tę samą oś. */
body .elementor-widget-thim-ekits-archive-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button),
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button),
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button),
body .woocommerce .thim-ekit-single-product__related .product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) {
	inset-inline-end: 12px !important;
	inset-inline-start: auto !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-widget-wcbt-quickview,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-widget-wcbt-quickview,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-widget-wcbt-quickview,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-wcbt-quickview {
	top: 12px !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-widget-wcbt-wishlist,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-widget-wcbt-wishlist,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-widget-wcbt-wishlist,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-wcbt-wishlist {
	top: 66px !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-widget-thim-loop-product-button,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-widget-thim-loop-product-button,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-widget-thim-loop-product-button,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button {
	top: 120px !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-widget-wcbt-compare,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-widget-wcbt-compare,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-widget-wcbt-compare,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-wcbt-compare {
	top: 174px !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) > .elementor-widget-container,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) > .elementor-widget-container,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) > .elementor-widget-container,
body .woocommerce .thim-ekit-single-product__related .product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) > .elementor-widget-container {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: 46px !important;
	height: 46px !important;
	margin: 0 !important;
	padding: 0 !important;
}

body .woocommerce ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare),
body .woocommerce-page ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare),
body .woocommerce .thim-ekit-single-product__related .product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare),
body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: 46px !important;
	height: 46px !important;
	min-width: 46px !important;
	min-height: 46px !important;
	max-width: 46px !important;
	max-height: 46px !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 50% !important;
	font-size: 0 !important;
	line-height: 1 !important;
	text-align: center !important;
	box-shadow: 0 8px 20px rgb(56 34 20 / 0.10) !important;
	transform: none !important;
}

body .woocommerce ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare) > svg,
body .woocommerce-page ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare) > svg,
body .woocommerce .thim-ekit-single-product__related .product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare) > svg,
body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button > svg,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button > svg,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button > svg {
	position: static !important;
	display: block !important;
	flex: 0 0 21px !important;
	width: 21px !important;
	height: 21px !important;
	margin: 0 !important;
	transform: none !important;
}

body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button > i,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button > i,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button > i {
	display: block !important;
	width: 21px !important;
	height: 21px !important;
	margin: 0 !important;
	font-size: 21px !important;
	line-height: 21px !important;
}

/* Tooltipy wychodzą w lewo od pionowej kolumny, bez przesuwania samych kół. */
body .woocommerce ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare) > .tooltip,
body .woocommerce-page ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare) > .tooltip,
body .woocommerce .thim-ekit-single-product__related .product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare) > .tooltip,
body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button .tooltip,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button .tooltip,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button .tooltip {
	top: 50% !important;
	right: calc(100% + 10px) !important;
	bottom: auto !important;
	left: auto !important;
	transform: translateY(-50%) !important;
	white-space: nowrap !important;
}

body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button:hover .tooltip,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button:hover .tooltip,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button:hover .tooltip {
	transform: translateY(-50%) !important;
}

@media (max-width: 700px) {
	/* Na urządzeniach dotykowych przyciski pozostają równe, ale minimalnie mniejsze. */
	body .woocommerce ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare),
	body .woocommerce-page ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare),
	body .woocommerce .thim-ekit-single-product__related .product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare),
	body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button,
	body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button,
	body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button {
		width: 42px !important;
		height: 42px !important;
		min-width: 42px !important;
		min-height: 42px !important;
		max-width: 42px !important;
		max-height: 42px !important;
	}
}

/* --------------------------------------------------------------------------
 * 1.5.17 — zwarty i odporny zestaw akcji produktu
 * -------------------------------------------------------------------------- */

/*
 * W 1.5.16 geometrycznie wyrównaliśmy osobne widgety, lecz tooltip koszyka
 * potrafił zasłonić sam przycisk, a ikonka zależna od fontu znikała po
 * włączeniu ikon SVG Elementora. Ustalamy jeden kompaktowy rytm 40 + 6 px,
 * wymuszamy widoczność całego koła i rysujemy niezależną ikonę koszyka.
 */
body .woocommerce ul.products > li.product,
body .woocommerce-page ul.products > li.product,
body .woocommerce .thim-ekit-single-product__related .product {
	--im-product-action-size: 40px;
	--im-product-action-gap: 6px;
	--im-product-action-top: 10px;
	--im-product-action-right: 10px;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button),
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button),
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button),
body .woocommerce .thim-ekit-single-product__related .product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) {
	width: var(--im-product-action-size) !important;
	min-width: var(--im-product-action-size) !important;
	max-width: var(--im-product-action-size) !important;
	height: var(--im-product-action-size) !important;
	min-height: var(--im-product-action-size) !important;
	max-height: var(--im-product-action-size) !important;
	inset-inline-end: var(--im-product-action-right) !important;
	inset-inline-start: auto !important;
	overflow: visible !important;
	z-index: 8 !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-widget-wcbt-quickview,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-widget-wcbt-quickview,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-widget-wcbt-quickview,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-wcbt-quickview {
	top: var(--im-product-action-top) !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-widget-wcbt-wishlist,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-widget-wcbt-wishlist,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-widget-wcbt-wishlist,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-wcbt-wishlist {
	top: calc(var(--im-product-action-top) + var(--im-product-action-size) + var(--im-product-action-gap)) !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-widget-thim-loop-product-button,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-widget-thim-loop-product-button,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-widget-thim-loop-product-button,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button {
	top: calc(var(--im-product-action-top) + var(--im-product-action-size) + var(--im-product-action-gap) + var(--im-product-action-size) + var(--im-product-action-gap)) !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-widget-wcbt-compare,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-widget-wcbt-compare,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-widget-wcbt-compare,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-wcbt-compare {
	top: calc(var(--im-product-action-top) + var(--im-product-action-size) + var(--im-product-action-gap) + var(--im-product-action-size) + var(--im-product-action-gap) + var(--im-product-action-size) + var(--im-product-action-gap)) !important;
}

body .elementor-widget-thim-ekits-archive-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) > .elementor-widget-container,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) > .elementor-widget-container,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) > .elementor-widget-container,
body .woocommerce .thim-ekit-single-product__related .product :is(.elementor-widget-wcbt-quickview, .elementor-widget-wcbt-wishlist, .elementor-widget-wcbt-compare, .elementor-widget-thim-loop-product-button) > .elementor-widget-container {
	width: var(--im-product-action-size) !important;
	height: var(--im-product-action-size) !important;
	overflow: visible !important;
}

body .woocommerce ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare),
body .woocommerce-page ul.products > li.product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare),
body .woocommerce .thim-ekit-single-product__related .product :is(.wcbt-product-quick-view, .wcbt-product-wishlist, .wcbt-product-compare),
body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button {
	position: relative !important;
	width: var(--im-product-action-size) !important;
	height: var(--im-product-action-size) !important;
	min-width: var(--im-product-action-size) !important;
	min-height: var(--im-product-action-size) !important;
	max-width: var(--im-product-action-size) !important;
	max-height: var(--im-product-action-size) !important;
	border-radius: 50% !important;
	overflow: visible !important;
	z-index: 2 !important;
}

/* Ikonka koszyka niezależna od Font Awesome, Eicons i ustawienia inline SVG. */
body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button::before,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button::before,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button::before {
	content: "" !important;
	display: block !important;
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	width: 20px !important;
	height: 20px !important;
	margin: 0 !important;
	background-color: currentColor !important;
	-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.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l2.35 10.1a2 2 0 0 0 1.95 1.55h7.9a2 2 0 0 0 1.95-1.55L21 6H6'/%3E%3Ccircle cx='10' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E") center / contain no-repeat !important;
	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.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l2.35 10.1a2 2 0 0 0 1.95 1.55h7.9a2 2 0 0 0 1.95-1.55L21 6H6'/%3E%3Ccircle cx='10' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E") center / contain no-repeat !important;
	transform: translate(-50%, -50%) !important;
	pointer-events: none !important;
}

/* Ukrywamy przypadkowo załadowaną ikonę fontową/SVG, bo ikonę daje ::before. */
body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button > :is(i, svg),
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button > :is(i, svg),
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button > :is(i, svg) {
	display: none !important;
}

/* Tooltip nie może zasłaniać koła ani być stale widoczny. */
body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button > .tooltip,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button > .tooltip,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button > .tooltip {
	position: absolute !important;
	top: 50% !important;
	right: calc(100% + 8px) !important;
	bottom: auto !important;
	left: auto !important;
	display: block !important;
	width: max-content !important;
	max-width: min(210px, 65vw) !important;
	margin: 0 !important;
	padding: 7px 10px !important;
	border-radius: 8px !important;
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
	transform: translate(4px, -50%) !important;
	transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease !important;
	z-index: 1 !important;
	white-space: nowrap !important;
}

body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button:hover > .tooltip,
body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button:focus-visible > .tooltip,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button:hover > .tooltip,
body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button:focus-visible > .tooltip,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button:hover > .tooltip,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button:focus-visible > .tooltip {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translate(0, -50%) !important;
}

@media (max-width: 700px) {
	body .woocommerce ul.products > li.product,
	body .woocommerce-page ul.products > li.product,
	body .woocommerce .thim-ekit-single-product__related .product {
		--im-product-action-size: 38px;
		--im-product-action-gap: 5px;
		--im-product-action-top: 8px;
		--im-product-action-right: 8px;
	}

	/* Na ekranach dotykowych tooltip jest zbędny i nie może zasłaniać zdjęcia. */
	body .woocommerce ul.products > li.product .elementor-widget-thim-loop-product-button a.button > .tooltip,
	body .woocommerce-page ul.products > li.product .elementor-widget-thim-loop-product-button a.button > .tooltip,
	body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-thim-loop-product-button a.button > .tooltip {
		display: none !important;
	}
}


/* --------------------------------------------------------------------------
 * 1.5.18 — na kaflach zostaje wyłącznie lista życzeń
 * -------------------------------------------------------------------------- */

/*
 * PHP usuwa widgety podczas renderowania. Poniższa warstwa jest celowym
 * zabezpieczeniem dla HTML z cache Elementora/LiteSpeed i wariantów klasycznych
 * Woo Booster Toolkit. Nie dotyka formularza koszyka na stronie produktu.
 */
body .woocommerce ul.products > li.product :is(
	.elementor-widget-wcbt-quickview,
	.elementor-widget-wcbt-compare,
	.elementor-widget-thim-loop-product-button,
	.wcbt-product-quick-view,
	.wcbt-product-compare,
	a.add_to_cart_button
),
body .woocommerce-page ul.products > li.product :is(
	.elementor-widget-wcbt-quickview,
	.elementor-widget-wcbt-compare,
	.elementor-widget-thim-loop-product-button,
	.wcbt-product-quick-view,
	.wcbt-product-compare,
	a.add_to_cart_button
),
body .woocommerce .thim-ekit-single-product__related .product :is(
	.elementor-widget-wcbt-quickview,
	.elementor-widget-wcbt-compare,
	.elementor-widget-thim-loop-product-button,
	.wcbt-product-quick-view,
	.wcbt-product-compare,
	a.add_to_cart_button
) {
	display: none !important;
}

/* Serce zajmuje pierwszy i jedyny slot — bez pustego miejsca po szybkim podglądzie. */
body .elementor-widget-thim-ekits-archive-product ul.products > li.product .elementor-widget-wcbt-wishlist,
body .thim-ekit-archive-product.thim-ekits-product ul.products > li.product .elementor-widget-wcbt-wishlist,
body .thim-ekits-archive-product .thim-ekits-product ul.products > li.product .elementor-widget-wcbt-wishlist,
body .woocommerce .thim-ekit-single-product__related .product .elementor-widget-wcbt-wishlist {
	top: var(--im-product-action-top) !important;
}

/* Popup szybkiego podglądu nie powinien nigdy mignąć z wersji z cache. */
#wcbt-quick-view-popup,
.wcbt-quick-view-popup,
.wcbt-quickview-popup {
	display: none !important;
}

/* --------------------------------------------------------------------------
 * 1.5.20 — definitywne usunięcie martwego szybkiego podglądu
 * -------------------------------------------------------------------------- */
body:not(.elementor-editor-active) .elementor-widget-wcbt-quickview,
body:not(.elementor-editor-active) [data-widget_type^="wcbt-quickview"],
body:not(.elementor-editor-active) [data-widget_type*="quick-view"],
body:not(.elementor-editor-active) .wcbt-product-quick-view {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}
