/* Lamoi shop catalogue and store pages: product cards (shop, category, search, related, empty cart), toolbar,
   pagination, product page, cart, checkout and account details. Loaded with shop.css; uses its --sh-* tokens. */

/* Tokens for the whole store. They were in shop.css, which loads only on WooCommerce pages, so product rows
   on the home page and other plain pages got `var(--sh-ink)` undefined: buttons without a background,
   prices in the section colour. */
:root {
	--sh-ink: var(--wp--preset--color--contrast, #14201c);
	--sh-muted: var(--wp--preset--color--muted-contrast, #4b5d57);
	--sh-line: var(--wp--preset--color--line, #e2e6e3);
	--sh-bg: var(--wp--preset--color--muted, #eef1ef);
	--sh-card: var(--wp--preset--color--surface, #fff);
	--sh-brand: var(--wp--preset--color--primary, #1f6f5c);
	--sh-on-brand: var(--wp--preset--color--primary-contrast, #fff);
	--sh-radius: var(--lamoi-radius, 14px);
}

/* ---------- Product grids: one calm card everywhere ---------- */
.wc-block-product-template:not(.is-flex-container) { gap: clamp(14px, 2vw, 24px) !important; }
@media (min-width: 1000px) {
	.woocommerce-shop .wc-block-product-template.columns-3,
	.tax-product_cat .wc-block-product-template.columns-3,
	.tax-product_brand .wc-block-product-template.columns-3,
	.search-results .wc-block-product-template.columns-3 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
@media (max-width: 781px) {
	.wc-block-product-template, .wp-block-woocommerce-related-products .wc-block-product-template { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
	.wc-block-product-template.columns-1 { grid-template-columns: minmax(0, 1fr) !important; } /* a one-product row (deal of the week) stays full width */
	.wc-block-grid.has-4-columns .wc-block-grid__products { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.wc-block-grid__product { max-width: none !important; flex: none !important; margin: 0 !important; }
}
li.wc-block-product, .wc-block-grid__product { position: relative; display: flex !important; flex-direction: column; text-align: left !important; margin: 0 !important; }
/* Pictures blend into their tile (multiply), so the tile is kept light (lightness at least .92) even on a dark
   design: on a dark tile the photo turned black. Browsers without relative colours keep the plain tile. */
li.wc-block-product .wc-block-components-product-image, .wc-block-grid__product-image { aspect-ratio: 1; margin: 0 0 12px !important; border-radius: var(--sh-radius); background: var(--sh-bg); background: oklch(from var(--sh-bg) max(l, .92) min(c, .04) h); overflow: hidden; }
li.wc-block-product .wc-block-components-product-image img, .wc-block-grid__product-image img { width: 100% !important; height: 100% !important; aspect-ratio: 1 !important; object-fit: contain !important; padding: 9%; box-sizing: border-box; mix-blend-mode: multiply; transition: transform .5s ease; }
li.wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.04); }
li.wc-block-product .wp-block-post-title, .wc-block-grid__product-title { margin: 0 0 6px !important; font-size: .95rem !important; font-weight: 500 !important; line-height: 1.35 !important; text-align: left !important; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
li.wc-block-product .wp-block-post-title a, .wc-block-grid__product-link, .wc-block-grid__product-title { color: var(--sh-ink) !important; text-decoration: none !important; }
li.wc-block-product .wp-block-post-title a:hover { color: var(--sh-brand) !important; }
li.wc-block-product .wc-block-components-product-price, .wc-block-grid__product-price { margin: 0 0 12px !important; font-size: 1.05rem !important; font-weight: 700 !important; color: var(--sh-ink) !important; text-align: left !important; }
li.wc-block-product .wc-block-components-product-button, li.wc-block-product .wp-block-button, .wc-block-grid__product-add-to-cart { margin-top: auto !important; text-align: left; }
li.wc-block-product .wp-block-button__link, li.wc-block-product .wc-block-components-product-button__button, .wc-block-grid__product-add-to-cart .wp-block-button__link {
	width: 100%; min-height: 42px; padding: 0 12px !important; font-size: .875rem !important; font-weight: 600 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
	border-radius: calc(var(--sh-radius) * .6) !important; background: var(--sh-ink) !important; color: var(--sh-card) !important; border: 0 !important;
}
li.wc-block-product .wp-block-button__link:hover, li.wc-block-product .wc-block-components-product-button__button:hover { background: var(--sh-brand) !important; }
/* Cannot be bought now: a quiet outline button, and the reason as a badge (inc/shop.php). */
li.wc-block-product.outofstock .wp-block-button__link, li.wc-block-product.outofstock .wc-block-components-product-button__button { background: transparent !important; color: var(--sh-ink) !important; box-shadow: inset 0 0 0 1px var(--sh-line); }
.lamoi-stock-badge { position: absolute; top: 10px; left: 10px; z-index: 2; padding: 3px 9px; border-radius: 999px; background: var(--sh-card); color: var(--sh-muted); font-size: .75rem; font-weight: 600; box-shadow: 0 0 0 1px var(--sh-line); }
@media (max-width: 781px) {
	li.wc-block-product .wp-block-post-title { font-size: .875rem !important; }
	li.wc-block-product .wp-block-button__link, li.wc-block-product .wc-block-components-product-button__button { min-height: 38px; font-size: .8125rem !important; }
}

/* ---------- Toolbar: breadcrumb, result count, sort ---------- */
.woocommerce-breadcrumb { margin: 20px 0 6px !important; font-size: .85rem !important; color: var(--sh-muted) !important; }
.woocommerce-breadcrumb a { color: var(--sh-muted) !important; text-decoration: none !important; }
.woocommerce-breadcrumb a:hover { color: var(--sh-ink) !important; text-decoration: underline !important; }
.woocommerce-result-count { margin: 0 !important; font-size: .875rem !important; color: var(--sh-muted) !important; align-self: center; }
.woocommerce-ordering select.orderby, .wp-block-woocommerce-catalog-sorting select {
	appearance: none; -webkit-appearance: none; min-height: 40px; padding: 0 38px 0 14px; border: 1px solid var(--sh-line); border-radius: calc(var(--sh-radius) * .6);
	background: var(--sh-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center / 16px no-repeat;
	font: inherit; font-size: .9rem; color: var(--sh-ink); cursor: pointer;
}
@media (max-width: 781px) {
	.woocommerce-result-count { max-width: 50%; font-size: .8rem !important; }
}

/* ---------- Pagination: number chips ---------- */
.wp-block-query-pagination { gap: 6px !important; margin-top: 40px !important; justify-content: center; }
.wp-block-query-pagination .page-numbers, .wp-block-query-pagination-next, .wp-block-query-pagination-previous {
	display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--sh-line); color: var(--sh-ink) !important; text-decoration: none !important; font-size: .9rem; font-weight: 500;
}
.wp-block-query-pagination .page-numbers.current { background: var(--sh-ink); border-color: var(--sh-ink); color: var(--sh-card) !important; }
.wp-block-query-pagination .page-numbers.dots { border: 0; }
.wp-block-query-pagination a:hover { border-color: var(--sh-ink); }

/* Archive and search titles: calm. */
.woocommerce-shop main h1, .tax-product_cat main h1, .tax-product_brand main h1, .search-results main h1.wp-block-query-title { font-size: clamp(1.6rem, 3vw, 2.4rem) !important; line-height: 1.15; letter-spacing: -0.02em; margin-block: 6px 18px !important; } /* margin-block only: the side margins centre the wide column like the breadcrumb and grid */
.term-description, .wp-block-term-description { color: var(--sh-muted); max-width: 70ch; }

/* ---------- Product page ---------- */
.single-product main h1.wp-block-post-title { font-size: clamp(1.5rem, 2.6vw, 2.2rem) !important; line-height: 1.2 !important; letter-spacing: -0.015em; font-weight: 700; margin-bottom: 12px !important; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.single-product .wp-block-woocommerce-product-price { font-size: 1.6rem !important; font-weight: 700; color: var(--sh-ink); }
.single-product .lamoi-short-description { color: var(--sh-ink); margin-bottom: 18px; }
.single-product .lamoi-short-description ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.single-product .lamoi-short-description li { position: relative; padding-left: 26px; }
.single-product .lamoi-short-description li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.1em; height: 1.1em; background: var(--sh-brand); -webkit-mask: var(--lamoi-i-check) center / contain no-repeat; mask: var(--lamoi-i-check) center / contain no-repeat; }
.single-product .wp-block-woocommerce-product-meta { margin-top: 18px !important; padding-top: 14px; border-top: 1px solid var(--sh-line); font-size: .875rem; color: var(--sh-muted); }
.single-product .wp-block-woocommerce-product-meta a { color: var(--sh-ink); }
.quantity input.qty { min-height: 52px; width: 76px; border: 1px solid var(--sh-line); border-radius: calc(var(--sh-radius) * .6); text-align: center; font-size: 1rem; background: var(--sh-card); }
.single-product .single_add_to_cart_button { min-height: 52px; padding: 0 28px !important; border-radius: calc(var(--sh-radius) * .6) !important; }
.flex-control-thumbs { display: grid !important; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 10px !important; }
.flex-control-thumbs li { width: auto !important; margin: 0 !important; }
.flex-control-thumbs img { opacity: 1 !important; aspect-ratio: 1; object-fit: contain; background: var(--sh-bg); background: oklch(from var(--sh-bg) max(l, .92) min(c, .04) h); border-radius: calc(var(--sh-radius) * .6); padding: 6%; box-sizing: border-box; mix-blend-mode: multiply; cursor: pointer; }
.flex-control-thumbs img.flex-active { outline: 2px solid var(--sh-ink); outline-offset: -2px; }
.woocommerce-product-gallery__image img { background: var(--sh-bg); }
.woocommerce-tabs ul.wc-tabs { display: flex !important; flex-wrap: nowrap; gap: 4px; overflow-x: auto; padding: 0 !important; margin: 0 0 22px !important; border-bottom: 1px solid var(--sh-line) !important; }
.woocommerce-tabs ul.wc-tabs::before, .woocommerce-tabs ul.wc-tabs li::before, .woocommerce-tabs ul.wc-tabs li::after { display: none !important; }
.woocommerce-tabs ul.wc-tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; border-radius: 0 !important; flex: none; }
.woocommerce-tabs ul.wc-tabs li a { display: block; padding: 12px 14px !important; color: var(--sh-muted) !important; font-weight: 600; text-decoration: none !important; border-bottom: 2px solid transparent; white-space: nowrap; }
.woocommerce-tabs ul.wc-tabs li.active a { color: var(--sh-ink) !important; border-bottom-color: var(--sh-ink); }
.woocommerce-Tabs-panel table, .woocommerce-product-attributes { width: 100%; border-collapse: collapse; border: 0 !important; font-size: .925rem; }
.woocommerce-Tabs-panel table th, .woocommerce-Tabs-panel table td, .woocommerce-product-attributes th, .woocommerce-product-attributes td { padding: 11px 12px !important; border: 0 !important; border-bottom: 1px solid var(--sh-line) !important; text-align: left !important; vertical-align: top; background: none !important; }
.woocommerce-Tabs-panel table th, .woocommerce-product-attributes th { width: 40%; font-weight: 500 !important; color: var(--sh-muted); }
.woocommerce-Tabs-panel table tr:nth-child(even) > * { background: color-mix(in srgb, var(--sh-bg) 55%, transparent) !important; }
.wp-block-woocommerce-related-products h2 { font-size: clamp(1.3rem, 2.2vw, 1.75rem) !important; margin-bottom: 18px !important; }
@media (min-width: 782px) {
	.wp-block-woocommerce-related-products .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}

/* ---------- Cart ---------- */
.wp-block-woocommerce-cart-order-summary-block { padding: 20px 22px !important; }
.wc-block-components-totals-coupon.wc-block-components-panel { border: 0 !important; box-shadow: none !important; padding: 0 !important; }
.wc-block-components-totals-wrapper { padding-left: 0 !important; padding-right: 0 !important; }
.wc-block-cart-items .wc-block-components-product-name, .wc-block-components-order-summary-item__description .wc-block-components-product-name { color: var(--sh-ink) !important; text-decoration: none !important; font-weight: 600; }
.wc-block-cart-items .wc-block-components-product-name:hover { text-decoration: underline !important; }
.wc-block-cart-item__product .wc-block-components-product-metadata__description,
.wc-block-components-order-summary-item .wc-block-components-product-metadata__description { display: none !important; }
.wc-block-components-express-payment__event-buttons > li:empty { display: none !important; }
.wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots { display: none !important; }
.wc-block-mini-cart__badge { background: var(--sh-brand) !important; color: var(--sh-on-brand) !important; font-size: .65rem !important; font-weight: 700; min-width: 18px; height: 18px; }

/* ---------- Checkout ---------- */
.wc-block-components-radio-control--highlight-checked, .wc-block-checkout__payment-method .wc-block-components-radio-control { border: 0 !important; box-shadow: none !important; padding: 0 !important; background: none !important; }
.wc-block-components-radio-control--highlight-checked::after, .wc-block-components-radio-control--highlight-checked::before { display: none !important; }
.wc-block-components-radio-control-accordion-content { padding-bottom: 14px !important; border: 0 !important; }
.wc-block-components-radio-control-accordion-content:empty { display: none !important; }
.wc-block-components-radio-control__label img { max-height: 22px; width: auto; }
@media (max-width: 781px) {
	.wc-block-checkout__main .wp-block-woocommerce-checkout-order-summary-block { margin-inline: 0 !important; padding-inline: 0 !important; border: 0 !important; }
	.wc-block-components-checkout-order-summary__title { border: 0 !important; }
}

/* ---------- Account forms and small controls ---------- */
.woocommerce form .form-row-first, .woocommerce form .form-row-last { float: none !important; width: 100% !important; }
.woocommerce form .form-row label { line-height: 1.4; }
.woocommerce input[type="checkbox"], .woocommerce input[type="radio"] { accent-color: var(--sh-brand); }
.woocommerce-form__input-checkbox { width: 18px; height: 18px; vertical-align: -3px; margin-right: 6px; }
.woocommerce form .show-password-input::before { background-image: none !important; background-color: var(--sh-muted) !important; -webkit-mask: var(--lamoi-i-eye) center / contain no-repeat; mask: var(--lamoi-i-eye) center / contain no-repeat; }
.lamoi-account-aside { max-width: 440px; padding: 28px; border-radius: var(--sh-radius); background: var(--sh-bg); }
.lamoi-account-aside h2 { font-size: 1.15rem; margin: 0 0 10px; }
.lamoi-account-aside ul { margin: 0 0 16px; padding: 0; list-style: none; display: grid; gap: 8px; }
.lamoi-account-aside li { display: flex; gap: 10px; align-items: center; }
.lamoi-account-aside .lamoi-ico { color: var(--sh-brand); }
@media (min-width: 900px) {
	body.woocommerce-account:not(.logged-in) main .woocommerce:has(.lamoi-account-aside) { display: grid !important; grid-template-columns: minmax(0, 440px) minmax(0, 440px); gap: 24px 32px; align-items: start; }
	body.woocommerce-account:not(.logged-in) main .woocommerce:has(.lamoi-account-aside) > * { grid-column: 1 / -1; }
	body.woocommerce-account:not(.logged-in) main .woocommerce:has(.lamoi-account-aside) > :is(form.login, .u-columns, .lamoi-account-aside) { grid-column: auto; grid-row: 2; }
	body.woocommerce-account:not(.logged-in) main .woocommerce:has(.lamoi-account-aside) > :is(h1, h2, .woocommerce-notices-wrapper) { grid-row: 1; }
}

/* ---------- Content links and footer logo ---------- */
.wp-block-post-content a:not(.wp-element-button):not(.wp-block-button__link) { color: var(--sh-ink); text-decoration-color: color-mix(in srgb, var(--sh-brand) 55%, transparent); text-underline-offset: 3px; }
footer .wp-block-site-logo img.custom-logo { width: auto !important; height: 3.75rem !important; }
footer .wp-block-site-logo { margin-left: 0 !important; }

/* Klarna (Kustom Checkout): the name is enough; the "Kustom" badge means nothing to shoppers. */
label[for*="payment-method-options-kco"] img { display: none !important; }

/* Card buttons fill the card; product page price and description headings at store size. */
li.wc-block-product .wp-block-button, li.wc-block-product .wc-block-components-product-button, li.wc-block-product .wp-block-woocommerce-product-button { width: 100%; align-self: stretch; display: flex; flex-direction: column; align-items: stretch; }
li.wc-block-product .wc-block-components-product-button > :is(button, a.wp-block-button__link, a.wc-block-components-product-button__button):not([hidden]), li.wc-block-product .wp-block-button > a:not([hidden]) { width: 100%; box-sizing: border-box; display: flex; align-items: center; justify-content: center; }
li.wc-block-product [hidden] { display: none !important; }
li.wc-block-product a.added_to_cart:not([hidden]) { margin-top: 8px; font-size: .8125rem; text-align: center; color: var(--sh-ink); }
.single-product .wp-block-woocommerce-product-price, .single-product .wp-block-woocommerce-product-price .wc-block-components-product-price, .single-product .summary .price { font-size: 1.6rem !important; font-weight: 700 !important; color: var(--sh-ink) !important; }
.woocommerce-Tabs-panel h2, .woocommerce-Tabs-panel h3 { font-size: clamp(1.15rem, 1.8vw, 1.35rem) !important; line-height: 1.3; margin: 28px 0 12px !important; letter-spacing: -0.01em; }

/* Cart and checkout page titles at store size. */
.woocommerce-cart main h1, .woocommerce-checkout main h1 { font-size: clamp(1.6rem, 3vw, 2.4rem) !important; line-height: 1.15; letter-spacing: -0.02em; }

/* Product rows: as many columns as the block asks for. WooCommerce's auto-fill formula assumes its own gap, so
   with ours every row lost a column and the last product sat alone on a new line. */
@media (min-width: 1024px) {
	.wc-block-product-template__responsive.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.wc-block-product-template__responsive.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.wc-block-product-template__responsive.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
	.wc-block-product-template__responsive.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
	.wc-block-product-template__responsive.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
}
@media (min-width: 782px) and (max-width: 1023px) {
	.wc-block-product-template__responsive:is(.columns-3, .columns-4, .columns-5, .columns-6) { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.wc-block-product-template__responsive.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
/* Product rows on pages (not shop listings) end on a full line at every width: with more than one line,
   the products of a last, partly filled line are hidden (n columns: the first item of the last line is
   n*k+1 and among the last n-1 items; it and the items after it go). */
@media (min-width: 1024px) {
	body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-2 > li:nth-child(2n+1):nth-last-child(-n+1):not(:nth-child(-n+2)), body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-2 > li:nth-child(2n+1):nth-last-child(-n+1):not(:nth-child(-n+2)) ~ li { display: none !important; }
	body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-3 > li:nth-child(3n+1):nth-last-child(-n+2):not(:nth-child(-n+3)), body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-3 > li:nth-child(3n+1):nth-last-child(-n+2):not(:nth-child(-n+3)) ~ li { display: none !important; }
	body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-4 > li:nth-child(4n+1):nth-last-child(-n+3):not(:nth-child(-n+4)), body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-4 > li:nth-child(4n+1):nth-last-child(-n+3):not(:nth-child(-n+4)) ~ li { display: none !important; }
	body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-5 > li:nth-child(5n+1):nth-last-child(-n+4):not(:nth-child(-n+5)), body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-5 > li:nth-child(5n+1):nth-last-child(-n+4):not(:nth-child(-n+5)) ~ li { display: none !important; }
	body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-6 > li:nth-child(6n+1):nth-last-child(-n+5):not(:nth-child(-n+6)), body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-6 > li:nth-child(6n+1):nth-last-child(-n+5):not(:nth-child(-n+6)) ~ li { display: none !important; }
}
@media (min-width: 782px) and (max-width: 1023px) {
	body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive:is(.columns-3, .columns-4, .columns-5, .columns-6) > li:nth-child(3n+1):nth-last-child(-n+2):not(:nth-child(-n+3)), body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive:is(.columns-3, .columns-4, .columns-5, .columns-6) > li:nth-child(3n+1):nth-last-child(-n+2):not(:nth-child(-n+3)) ~ li { display: none !important; }
	body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-2 > li:nth-child(2n+1):nth-last-child(-n+1):not(:nth-child(-n+2)), body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template__responsive.columns-2 > li:nth-child(2n+1):nth-last-child(-n+1):not(:nth-child(-n+2)) ~ li { display: none !important; }
}
@media (max-width: 781px) {
	body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template > li:nth-child(2n+1):nth-last-child(-n+1):not(:nth-child(-n+2)), body:not(.woocommerce-shop):not(.tax-product_cat):not(.tax-product_brand):not(.search-results) .wc-block-product-template > li:nth-child(2n+1):nth-last-child(-n+1):not(:nth-child(-n+2)) ~ li { display: none !important; }
}

/* Classic product lists (ul.products: related, upsells and cross-sells of shortcode pages, [products]): a grid
   like the block rows instead of WooCommerce's floats, and on product and cart pages full lines only (a
   last, partly filled line is hidden, as in the block rows above; a shop look carousel keeps every product). */
.woocommerce ul.products, ul.products.columns-2, ul.products.columns-3, ul.products.columns-4, ul.products.columns-5, ul.products.columns-6 { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); margin: 0 0 24px !important; padding: 0 !important; list-style: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products > li.product { width: auto !important; margin: 0 !important; float: none !important; }
@media (min-width: 1024px) {
	ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	body:not(.lafu-sl-product-rows-carousel):not(.lafu-sl-cross-sells-carousel) :is(.related, .upsells, .cross-sells) ul.products:is(.columns-4, :not([class*="columns-"])) > li:nth-child(4n+1):nth-last-child(-n+3):not(:nth-child(-n+4)), body:not(.lafu-sl-product-rows-carousel):not(.lafu-sl-cross-sells-carousel) :is(.related, .upsells, .cross-sells) ul.products:is(.columns-4, :not([class*="columns-"])) > li:nth-child(4n+1):nth-last-child(-n+3):not(:nth-child(-n+4)) ~ li { display: none !important; }
	body:not(.lafu-sl-product-rows-carousel):not(.lafu-sl-cross-sells-carousel) :is(.related, .upsells, .cross-sells) ul.products.columns-3 > li:nth-child(3n+1):nth-last-child(-n+2):not(:nth-child(-n+3)), body:not(.lafu-sl-product-rows-carousel):not(.lafu-sl-cross-sells-carousel) :is(.related, .upsells, .cross-sells) ul.products.columns-3 > li:nth-child(3n+1):nth-last-child(-n+2):not(:nth-child(-n+3)) ~ li { display: none !important; }
	body:not(.lafu-sl-product-rows-carousel):not(.lafu-sl-cross-sells-carousel) :is(.related, .upsells, .cross-sells) ul.products.columns-5 > li:nth-child(5n+1):nth-last-child(-n+4):not(:nth-child(-n+5)), body:not(.lafu-sl-product-rows-carousel):not(.lafu-sl-cross-sells-carousel) :is(.related, .upsells, .cross-sells) ul.products.columns-5 > li:nth-child(5n+1):nth-last-child(-n+4):not(:nth-child(-n+5)) ~ li { display: none !important; }
}
@media (min-width: 782px) and (max-width: 1023px) {
	.woocommerce ul.products:not(.columns-2) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body:not(.lafu-sl-product-rows-carousel):not(.lafu-sl-cross-sells-carousel) :is(.related, .upsells, .cross-sells) ul.products:not(.columns-2) > li:nth-child(3n+1):nth-last-child(-n+2):not(:nth-child(-n+3)), body:not(.lafu-sl-product-rows-carousel):not(.lafu-sl-cross-sells-carousel) :is(.related, .upsells, .cross-sells) ul.products:not(.columns-2) > li:nth-child(3n+1):nth-last-child(-n+2):not(:nth-child(-n+3)) ~ li { display: none !important; }
}
@media (max-width: 781px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px; }
	body:not(.lafu-sl-product-rows-carousel):not(.lafu-sl-cross-sells-carousel) :is(.related, .upsells, .cross-sells) ul.products > li:nth-child(2n+1):last-child:not(:first-child) { display: none !important; }
}

/* Category tiles with pictures: every tile the same width; a long name ("aktiivisuusrannekkeet") wraps and
   hyphenates instead of widening its tile and the picture above it. */
.wc-block-product-categories-list--has-images > li { min-width: 0; }
.wc-block-product-categories-list--has-images .wc-block-product-categories-list-item__name { overflow-wrap: anywhere; hyphens: auto; -webkit-hyphens: auto; }
