/*
 * Modality shop. Handle `modality-shop`. WooCommerce's own stylesheets are off (Shop\Module),
 * so every classic WooCommerce component is styled here; block cart and checkout keep their
 * own stylesheet and only take colours and radius.
 */

:root {
	--mty-shop-button-hover: var(--mty-button-bg-hover, color-mix(in srgb, var(--mty-button-bg, var(--mty-color-primary)) 82%, #000));
	--mty-shop-star: var(--mty-color-accent);
}

/* Frame. Layout's .mty-area sets the columns; .mty-shop-layout only scopes the theme's own views. */
.mty-shop-layout .page-title {
	margin-block-end: var(--mty-space-m);
}

.mty-area__content > .mty-crumbs,
.woocommerce-breadcrumb {
	margin-block-end: var(--mty-space-m);
	color: var(--mty-color-muted);
	font-family: var(--mty-font-accent);
	font-size: .85rem;
}

.woocommerce-breadcrumb a {
	color: inherit;
}

.term-description,
.page-description {
	max-width: var(--mty-container-narrow);
	margin-block-end: var(--mty-space-m);
	color: var(--mty-color-muted);
}

.mty-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--mty-space-xs) var(--mty-space-m);
	margin-block-end: var(--mty-space-m);
	padding-block-end: var(--mty-space-s);
	border-block-end: 1px solid var(--mty-color-line);
}

.mty-shop-toolbar:empty {
	display: none;
}

.woocommerce-result-count {
	margin: 0;
	color: var(--mty-color-muted);
	font-family: var(--mty-font-accent);
	font-size: .875rem;
}

.woocommerce-ordering {
	margin: 0;
}

.woocommerce-ordering select {
	width: auto;
	max-width: 100%;
	font-size: .875rem;
}

/* Cart, checkout and account need more room than the reading column these pages would get. */
.woocommerce-cart .mty-container--narrow,
.woocommerce-checkout .mty-container--narrow,
.woocommerce-account .mty-container--narrow {
	max-width: calc(var(--mty-container) + 2 * var(--mty-gutter-safe));
}

/* Core's text link underline reaches these through .entry-content; they aren't text links. */
.entry-content .woocommerce a.button,
.entry-content .woocommerce a.remove,
.entry-content .woocommerce .product-name a,
.entry-content .woocommerce-MyAccount-navigation a,
.entry-content a.added_to_cart {
	text-decoration: none !important;
}

/* Buttons. Same look as core's, for the classes WooCommerce prints. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-page a.button,
.woocommerce-page button.button,
.woocommerce-page input.button,
.mty-cart-drawer a.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	min-height: 44px;
	padding: .65em 1.4em;
	border: 1px solid var(--mty-button-bg, var(--mty-color-primary));
	border-radius: var(--mty-button-radius, var(--mty-radius));
	background-color: var(--mty-button-bg, var(--mty-color-primary));
	color: var(--mty-button-text, #fff);
	font-family: var(--mty-font-accent);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--mty-transition), border-color var(--mty-transition), color var(--mty-transition);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce-page a.button:hover,
.woocommerce-page button.button:hover,
.woocommerce-page input.button:hover,
.mty-cart-drawer a.button:hover,
.woocommerce #respond input#submit:hover {
	border-color: var(--mty-shop-button-hover);
	background-color: var(--mty-shop-button-hover);
	color: var(--mty-button-text-hover, var(--mty-button-text, #fff));
}

.woocommerce .button:disabled,
.woocommerce .button.disabled,
.woocommerce .button[disabled],
.woocommerce-page .button:disabled,
.woocommerce-page .button.disabled,
.woocommerce-page .button[disabled] {
	border-color: var(--mty-button-bg, var(--mty-color-primary));
	background-color: var(--mty-button-bg, var(--mty-color-primary));
	color: var(--mty-button-text, #fff);
	opacity: .5;
	cursor: not-allowed;
}

.woocommerce .button.loading {
	opacity: .65;
	pointer-events: none;
}

.woocommerce .button.loading::after {
	content: "";
	width: 1em;
	height: 1em;
	border: 2px solid currentColor;
	border-inline-end-color: transparent;
	border-radius: 50%;
	animation: mty-shop-spin .7s linear infinite;
}

.woocommerce .button.added::after {
	content: "\2713";
}

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

/* WooCommerce's "View cart" after an AJAX add */
.added_to_cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	font-family: var(--mty-font-accent);
	font-size: .9375rem;
	font-weight: 500;
}

/* Price and stars */
.woocommerce .price,
.woocommerce .amount,
.woocommerce-page .amount,
.mty-cart-drawer .amount {
	color: var(--mty-color-heading);
}

.woocommerce .price {
	font-family: var(--mty-font-accent);
	font-weight: 500;
}

.woocommerce .price del,
.woocommerce .price del .amount {
	color: var(--mty-color-muted);
	font-weight: 400;
}

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

.star-rating {
	position: relative;
	display: block;
	overflow: hidden;
	width: 5.3em;
	height: 1.1em;
	color: var(--mty-color-line);
	font-family: Arial, sans-serif;
	font-size: .9rem;
	line-height: 1.1;
	letter-spacing: .06em;
}

.star-rating::before {
	content: "\2605\2605\2605\2605\2605";
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
}

.star-rating span {
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	overflow: hidden;
	height: 100%;
	padding-block-start: 1.5em;
}

.star-rating span::before {
	content: "\2605\2605\2605\2605\2605";
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	color: var(--mty-shop-star);
}

p.stars {
	margin-block: 0 var(--mty-space-s);
	font-family: Arial, sans-serif;
}

p.stars span {
	display: inline-flex;
}

p.stars a {
	position: relative;
	display: inline-block;
	width: 44px;
	height: 44px;
	overflow: hidden;
	color: var(--mty-shop-star);
	text-decoration: none;
	text-indent: -999em;
}

p.stars a::before {
	content: "\2606";
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	font-size: 1.5rem;
	line-height: 1;
	text-indent: 0;
}

p.stars:hover a::before,
p.stars.selected a::before {
	content: "\2605";
}

p.stars:hover a:hover ~ a::before,
p.stars.selected a.active ~ a::before {
	content: "\2606";
}

p.stars:hover a::before {
	content: "\2605";
}

/* Catalog grid */
ul.products {
	--mty-shop-cols: 3;
	display: grid;
	grid-template-columns: repeat(var(--mty-shop-cols), minmax(0, 1fr));
	gap: 40px 24px;
	margin: 0 0 var(--mty-space-l);
	padding: 0;
	list-style: none;
}

ul.products.columns-1 { --mty-shop-cols: 1; }
ul.products.columns-2 { --mty-shop-cols: 2; }
ul.products.columns-3 { --mty-shop-cols: 3; }
ul.products.columns-4 { --mty-shop-cols: 4; }
ul.products.columns-5 { --mty-shop-cols: 5; }
ul.products.columns-6 { --mty-shop-cols: 6; }

@media (max-width: 1024px) {
	ul.products.columns-4,
	ul.products.columns-5,
	ul.products.columns-6 {
		--mty-shop-cols: 3;
	}
}

@media (max-width: 767px) {
	ul.products[class*="columns-"] {
		--mty-shop-cols: 2;
		gap: 32px 16px;
	}

	.mty-shop-phone-cols--1 ul.products[class*="columns-"] {
		--mty-shop-cols: 1;
	}
}

ul.products > li.product,
ul.products > li.product-category {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	padding: 0;
}

/* Product card */
.mty-card__media {
	position: relative;
	margin-block-end: .9rem;
	overflow: hidden;
	border-radius: var(--mty-radius);
	background: var(--mty-color-surface);
}

.mty-card__image {
	position: relative;
	display: block;
}

.mty-card__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
}

.mty-card__image .mty-card__second {
	display: none;
}

@media (hover: hover) and (pointer: fine) {
	.mty-card__image .mty-card__second {
		position: absolute;
		inset: 0;
		display: block;
		height: 100%;
		opacity: 0;
		transition: opacity .35s ease;
	}

	li.product:hover .mty-card__second,
	li.product:focus-within .mty-card__second {
		opacity: 1;
	}
}

ul.products h2.woocommerce-loop-product__title,
ul.products h2.woocommerce-loop-category__title {
	margin-block: 0 .35rem;
	font-family: var(--mty-font-heading);
	font-size: 1.15rem;
	font-weight: var(--mty-weight-heading);
	line-height: 1.25;
}

.woocommerce-loop-product__title a {
	color: var(--mty-color-heading);
	text-decoration: none;
}

.woocommerce-loop-product__title a:hover {
	color: var(--mty-color-link-hover, var(--mty-color-accent));
}

li.product .star-rating {
	margin-block-end: .35rem;
}

li.product .price {
	display: block;
	margin-block-end: .9rem;
	font-size: .9375rem;
}

/* Buttons line up along the row's bottom */
.mty-card__action {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .25rem .9rem;
	margin-block-start: auto;
}

.mty-card__action a.button {
	font-size: .9375rem;
}

/* Hover card: button along the bottom of the image */
.mty-card__media > .mty-card__action {
	position: absolute;
	inset-block-end: 0;
	inset-inline: 0;
	gap: .4rem;
	margin: 0;
	padding: .6rem;
}

.mty-card__media > .mty-card__action .button {
	flex: 1 1 100%;
}

.mty-card__media > .mty-card__action .added_to_cart {
	flex: 1 1 100%;
	border-radius: var(--mty-button-radius, var(--mty-radius));
	background: var(--mty-color-bg);
	color: var(--mty-color-heading);
}

@media (hover: hover) and (pointer: fine) {
	.mty-card__media > .mty-card__action {
		opacity: 0;
		transform: translateY(6px);
		transition: opacity var(--mty-transition), transform var(--mty-transition);
	}

	li.product:hover .mty-card__action,
	li.product:focus-within .mty-card__action,
	.mty-card__media > .mty-card__action:has(.added_to_cart),
	.mty-card__media > .mty-card__action:has(.loading) {
		opacity: 1;
		transform: none;
	}
}

/* Category tiles */
li.product-category a {
	color: var(--mty-color-heading);
	text-decoration: none;
}

li.product-category img {
	display: block;
	width: 100%;
	height: auto;
	margin-block-end: .9rem;
	border-radius: var(--mty-radius);
}

.woocommerce-loop-category__title .count {
	background: none;
	color: var(--mty-color-muted);
	font-family: var(--mty-font-accent);
	font-size: .8em;
	font-weight: 400;
}

/* Badges */
.mty-badges {
	position: absolute;
	z-index: 3;
	inset-block-start: .6rem;
	inset-inline-start: .6rem;
	display: flex;
	flex-wrap: wrap;
	gap: .3rem;
	max-width: calc(100% - 1.2rem);
	pointer-events: none;
}

.mty-badge {
	display: inline-block;
	padding: .2em .65em;
	border: 1px solid transparent;
	border-radius: calc(var(--mty-radius) * .66);
	font-family: var(--mty-font-accent);
	font-size: .75rem;
	font-weight: 600;
	line-height: 1.5;
}

.mty-badge--sale {
	background: var(--mty-color-primary);
	color: #fff;
}

.mty-badge--new {
	border-color: var(--mty-color-heading);
	background: #fff;
	color: var(--mty-color-heading);
}

.mty-badge--soldout {
	background: #1b1c1a;
	color: #fff;
}

/* A sale flash a plugin prints outside the group stays readable */
.onsale:not(.mty-badge) {
	display: inline-block;
	padding: .2em .65em;
	background: var(--mty-color-primary);
	color: #fff;
	font-size: .75rem;
}

/* Pagination */
.woocommerce-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding-inline: .5rem;
	border: 1px solid var(--mty-color-line);
	border-radius: var(--mty-radius);
	font-family: var(--mty-font-accent);
	font-size: .9375rem;
	text-decoration: none;
}

.woocommerce-pagination .page-numbers .current {
	border-color: var(--mty-color-primary);
	background: var(--mty-color-primary);
	color: #fff;
}

/* Product page */
.mty-shop-layout div.product {
	position: relative;
}

.mty-product__media {
	position: relative;
	min-width: 0;
	margin-block-end: var(--mty-space-m);
}

@media (min-width: 768px) {
	.mty-shop-layout div.product {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		column-gap: 4%;
		align-items: start;
	}

	.mty-shop-layout div.product > * {
		grid-column: 1 / -1;
		min-width: 0;
	}

	.mty-shop-layout div.product > .mty-product__media {
		grid-column: 1;
		margin-block-end: 0;
	}

	.mty-shop-layout div.product > .summary {
		grid-column: 2;
	}

	/* Clears the sticky header: site.js keeps --mty-sticky-offset current as it hides, returns or shrinks.
	   --mty-shop-pinned only holds without script. */
	.mty-sticky-summary .mty-shop-layout div.product > .summary:not(.mty-summary--tall) {
		position: sticky;
		inset-block-start: calc(var(--mty-sticky-offset, var(--mty-shop-pinned, 0px)) + 24px);
	}

	.mty-sticky-summary.admin-bar {
		--mty-shop-pinned: 32px;
	}

	.mty-sticky-summary.mty-shop-sticky-header {
		--mty-shop-pinned: var(--mty-header-height, 84px);
	}

	.mty-sticky-summary.mty-shop-sticky-header.admin-bar {
		--mty-shop-pinned: calc(var(--mty-header-height, 84px) + 32px);
	}
}

.woocommerce-product-gallery {
	position: relative;
	margin: 0;
}

.woocommerce-product-gallery__wrapper {
	margin: 0;
}

.woocommerce-product-gallery__image img,
.woocommerce-product-gallery img.wp-post-image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--mty-radius);
}

.woocommerce-product-gallery .flex-viewport {
	overflow: hidden;
	border-radius: var(--mty-radius);
}

.woocommerce-product-gallery__trigger {
	position: absolute;
	z-index: 4;
	inset-block-start: .6rem;
	inset-inline-end: .6rem;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--mty-color-line);
	border-radius: var(--mty-radius-pill);
	background: var(--mty-color-bg);
	font-size: 1rem;
	text-decoration: none;
}

.flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
}

.flex-control-thumbs li {
	min-width: 0;
}

.flex-control-thumbs img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid transparent;
	border-radius: calc(var(--mty-radius) * .66);
	opacity: .65;
	cursor: pointer;
	transition: opacity var(--mty-transition);
}

.flex-control-thumbs img:hover,
.flex-control-thumbs img.flex-active {
	border-color: var(--mty-color-line);
	opacity: 1;
}

@media (min-width: 768px) {
	.mty-gallery--thumbs-left .woocommerce-product-gallery:has(.flex-control-thumbs) {
		padding-inline-start: 100px;
	}

	.mty-gallery--thumbs-left .flex-control-thumbs {
		position: absolute;
		inset-block: 0;
		inset-inline-start: 0;
		display: flex;
		flex-direction: column;
		gap: 8px;
		width: 88px;
		margin: 0;
		overflow-y: auto;
		scrollbar-width: thin;
	}

	.mty-gallery--thumbs-left .flex-control-thumbs li {
		flex: none;
	}

	.mty-gallery--thumbs-left .mty-badges:has(+ .woocommerce-product-gallery .flex-control-thumbs) {
		inset-inline-start: calc(100px + .6rem);
	}
}

.mty-gallery--stacked .woocommerce-product-gallery__wrapper {
	display: grid;
	gap: 12px;
}

.mty-shop-layout .summary .product_title {
	margin-block-end: .4em;
	font-size: clamp(calc(var(--mty-h2) * .8), calc(var(--mty-h2) * .55 + 1.2vw), var(--mty-h2));
}

.mty-shop-layout .summary .woocommerce-product-rating {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .25rem .75rem;
	margin-block-end: var(--mty-space-s);
	font-size: .875rem;
}

.mty-shop-layout .summary .price {
	margin-block-end: var(--mty-space-s);
	font-size: 1.35rem;
}

.woocommerce-product-details__short-description {
	margin-block-end: var(--mty-space-m);
}

form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: .75rem;
	margin-block-end: var(--mty-space-m);
}

form.cart.variations_form,
form.cart.grouped_form {
	display: block;
}

.woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
}

form.cart .single_add_to_cart_button {
	flex: 1 1 200px;
}

table.variations {
	margin-block-end: var(--mty-space-s);
}

table.variations th,
table.variations td {
	display: block;
	padding: 0;
	border: 0;
}

table.variations label {
	margin-block-end: .25rem;
	font-size: .875rem;
}

table.variations td {
	padding-block-end: .75rem;
}

.reset_variations {
	display: inline-block;
	margin-block-start: .4rem;
	font-size: .85rem;
}

.woocommerce-variation-price {
	margin-block-end: var(--mty-space-xs);
}

.woocommerce-grouped-product-list {
	margin-block-end: var(--mty-space-s);
}

.woocommerce-grouped-product-list td {
	vertical-align: middle;
}

.stock {
	margin-block-end: var(--mty-space-xs);
	font-family: var(--mty-font-accent);
	font-size: .875rem;
	font-weight: 500;
}

.stock.in-stock {
	color: var(--mty-color-primary);
}

.stock.out-of-stock {
	color: var(--mty-color-accent);
}

.product_meta {
	padding-block-start: var(--mty-space-s);
	border-block-start: 1px solid var(--mty-color-line);
	color: var(--mty-color-muted);
	font-family: var(--mty-font-accent);
	font-size: .875rem;
}

.product_meta > span {
	display: block;
}

/* Quantity */
.quantity {
	display: inline-flex;
	align-items: stretch;
	min-height: 44px;
	max-width: 100%;
	vertical-align: middle;
}

.quantity input.qty {
	width: 4.5em;
	padding-inline: .4em;
	text-align: center;
}

.mty-qty input.qty {
	height: 44px;
	padding-block: 0;
	border-inline: 0;
	border-radius: 0;
	-moz-appearance: textfield;
	appearance: textfield;
}

.mty-qty input.qty::-webkit-inner-spin-button,
.mty-qty input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.mty-qty__step {
	flex: none;
	width: 44px;
	min-height: 44px;
	padding: 0;
	border: 1px solid var(--mty-input-border);
	background: var(--mty-input-bg);
	color: var(--mty-color-heading);
	font: inherit;
	line-height: 1;
	cursor: pointer;
}

.mty-qty__step:first-of-type {
	border-start-start-radius: var(--mty-radius);
	border-end-start-radius: var(--mty-radius);
}

.mty-qty__step:last-of-type {
	border-start-end-radius: var(--mty-radius);
	border-end-end-radius: var(--mty-radius);
}

.mty-qty__step:hover {
	background: var(--mty-color-surface);
}

/* Tabs */
.woocommerce-tabs,
.mty-product-blocks {
	margin-block-start: var(--mty-space-l);
}

.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--mty-space-m);
	margin: 0 0 var(--mty-space-m);
	padding: 0;
	border-block-end: 1px solid var(--mty-color-line);
	list-style: none;
}

.woocommerce-tabs ul.tabs li {
	margin-block-end: -1px;
	border-block-end: 2px solid transparent;
}

.woocommerce-tabs ul.tabs li.active {
	border-block-end-color: var(--mty-color-accent);
}

.woocommerce-tabs ul.tabs a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--mty-color-muted);
	font-family: var(--mty-font-accent);
	font-size: .9375rem;
	font-weight: 500;
	text-decoration: none;
}

.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs a:hover {
	color: var(--mty-color-heading);
}

.woocommerce-Tabs-panel > h2:first-child {
	font-size: var(--mty-h4);
}

/* Accordion and sections */
.mty-product-block {
	border-block-start: 1px solid var(--mty-color-line);
}

.mty-product-blocks--accordion .mty-product-block:last-of-type {
	border-block-end: 1px solid var(--mty-color-line);
}

summary.mty-product-block__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mty-space-s);
	min-height: 56px;
	color: var(--mty-color-heading);
	font-family: var(--mty-font-heading);
	font-size: var(--mty-h4);
	font-weight: var(--mty-weight-heading);
	list-style: none;
	cursor: pointer;
}

summary.mty-product-block__title::-webkit-details-marker {
	display: none;
}

summary.mty-product-block__title .mty-icon {
	transition: transform var(--mty-transition);
}

details[open] > summary.mty-product-block__title .mty-icon {
	transform: rotate(180deg);
}

.mty-product-blocks--accordion .panel {
	padding-block-end: var(--mty-space-m);
}

.mty-product-tabs-mode--accordion .woocommerce-Reviews-title {
	display: none;
}

.mty-product-blocks--sections .mty-product-block {
	padding-block: var(--mty-space-l);
}

.mty-product-blocks--sections .mty-product-block:first-child {
	padding-block-start: var(--mty-space-m);
}

.mty-product-blocks--sections h2.mty-product-block__title,
.mty-product-blocks--sections .woocommerce-Reviews-title {
	font-size: var(--mty-h3);
}

table.shop_attributes th {
	width: 30%;
	color: var(--mty-color-heading);
	font-weight: 500;
}

table.shop_attributes p {
	margin: 0;
}

/* Reviews */
#reviews .commentlist {
	margin: 0 0 var(--mty-space-m);
	padding: 0;
	list-style: none;
}

#reviews .commentlist li {
	padding-block: var(--mty-space-s);
	border-block-end: 1px solid var(--mty-color-line);
}

#reviews .comment_container {
	display: flex;
	gap: var(--mty-space-s);
}

#reviews .avatar {
	flex: none;
	width: 48px;
	height: 48px;
	border-radius: 50%;
}

#reviews .comment-text {
	flex: 1;
	min-width: 0;
}

#reviews .meta {
	margin-block-end: .25rem;
	color: var(--mty-color-muted);
	font-size: .875rem;
}

#reply-title {
	display: block;
	margin-block-end: .25rem;
	color: var(--mty-color-heading);
	font-family: var(--mty-font-heading);
	font-size: var(--mty-h4);
	font-weight: var(--mty-weight-heading);
}

.comment-form-rating label {
	display: block;
}

/* Related, up-sells, cross-sells */
.related.products,
.upsells.products,
.cross-sells {
	margin-block-start: var(--mty-space-xl);
}

.related.products > h2,
.upsells.products > h2,
.cross-sells > h2 {
	margin-block-end: var(--mty-space-m);
	padding-block-start: var(--mty-space-m);
	border-block-start: 1px solid var(--mty-color-line);
	font-size: var(--mty-h3);
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem 1rem;
	margin: 0 0 var(--mty-space-m);
	padding: .9rem 1.1rem;
	border: 1px solid var(--mty-color-line);
	border-inline-start: 3px solid var(--mty-color-primary);
	border-radius: var(--mty-radius);
	background: var(--mty-color-surface);
	color: var(--mty-color-heading);
	font-size: .9375rem;
	list-style: none;
}

.woocommerce-error {
	display: block;
	border-inline-start-color: var(--mty-color-accent);
}

.woocommerce-info {
	border-inline-start-color: var(--mty-color-muted);
}

.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	flex: none;
}

/* Fields */
.woocommerce form .form-row {
	margin: 0 0 var(--mty-space-s);
	padding: 0;
}

.woocommerce form .form-row label {
	display: block;
	font-size: .9375rem;
}

.woocommerce form .form-row .required {
	color: var(--mty-color-accent);
	text-decoration: none;
}

.woocommerce form .form-row.woocommerce-invalid input,
.woocommerce form .form-row.woocommerce-invalid select {
	border-color: var(--mty-color-accent);
}

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

.woocommerce-form__label-for-checkbox {
	display: inline-flex !important;
	align-items: baseline;
}

@media (min-width: 600px) {
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last {
		float: inline-start;
		width: calc(50% - .5rem);
	}

	.woocommerce form .form-row-last {
		float: inline-end;
	}

	.woocommerce form .form-row-wide {
		clear: both;
	}
}

.woocommerce-billing-fields__field-wrapper::after,
.woocommerce-shipping-fields__field-wrapper::after,
.woocommerce-address-fields__field-wrapper::after,
.woocommerce form .clear {
	content: "";
	display: block;
	clear: both;
}

.select2-container .select2-selection--single {
	display: flex;
	align-items: center;
	height: 44px;
	border: 1px solid var(--mty-input-border);
	border-radius: var(--mty-radius);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 8px;
}

.woocommerce-password-strength {
	margin-block-start: .4rem;
	font-size: .85rem;
}

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

.password-input input {
	padding-inline-end: 44px;
}

.show-password-input {
	position: absolute;
	inset-block-start: 50%;
	inset-inline-end: 2px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: currentColor;
	color: var(--mty-color-muted);
	cursor: pointer;
	transform: translateY(-50%);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 20px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 20px no-repeat;
}

.show-password-input.display-password {
	color: var(--mty-color-primary);
}

#ship-to-different-address {
	font-size: var(--mty-h4);
}

#ship-to-different-address label {
	display: inline-flex;
	align-items: center;
}

.woocommerce-customer-details address,
.woocommerce-column address {
	font-style: normal;
}

.woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem 1rem;
}

.woocommerce-form-login__rememberme {
	margin: 0;
}

/* Tables */
.woocommerce table.shop_table {
	margin-block-end: var(--mty-space-m);
	font-size: .9375rem;
}

.woocommerce table.shop_table thead th {
	color: var(--mty-color-muted);
	font-family: var(--mty-font-accent);
	font-size: .8125rem;
	font-weight: 500;
}

.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table .cart_totals th {
	color: var(--mty-color-heading);
	font-weight: 500;
}

/* Classic cart */
.woocommerce-cart-form .product-thumbnail img {
	display: block;
	width: 72px;
	border-radius: calc(var(--mty-radius) * .66);
}

.woocommerce-cart-form .product-remove a.remove,
.mty-cart-drawer a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: var(--mty-radius-pill);
	color: var(--mty-color-muted);
	font-size: 1.15rem;
	line-height: 1;
	text-decoration: none;
}

.woocommerce-cart-form .product-remove a.remove:hover,
.mty-cart-drawer a.remove:hover {
	background: var(--mty-color-surface);
	color: var(--mty-color-accent);
}

.woocommerce-cart-form .product-name a {
	color: var(--mty-color-heading);
	font-family: var(--mty-font-heading);
	font-weight: var(--mty-weight-heading);
	text-decoration: none;
}

.woocommerce-cart-form td.actions {
	padding-block: var(--mty-space-s);
	border: 0;
}

.woocommerce-cart-form td.actions > .button {
	float: inline-end;
}

.woocommerce-cart-form .coupon {
	display: inline-flex;
	flex-wrap: wrap;
	gap: .5rem;
	max-width: 100%;
}

.woocommerce-cart-form .coupon input.input-text {
	width: 12em;
}

.cart-collaterals .cart_totals {
	max-width: 480px;
	margin-inline-start: auto;
}

.cart_totals > h2,
#order_review_heading,
.woocommerce-billing-fields > h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields > h3 {
	font-size: var(--mty-h3);
}

.wc-proceed-to-checkout .button {
	width: 100%;
}

.woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 767px) {
	table.shop_table_responsive thead {
		display: none;
	}

	table.shop_table_responsive tr {
		display: block;
		padding-block: .5rem;
		border-block-end: 1px solid var(--mty-color-line);
	}

	table.shop_table_responsive td {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: .5rem;
		border: 0;
		text-align: end;
	}

	table.shop_table_responsive td::before {
		content: attr(data-title);
		color: var(--mty-color-muted);
		font-size: .875rem;
		text-align: start;
	}

	table.shop_table_responsive tbody th {
		display: none;
	}

	table.shop_table_responsive td[data-title="Shipment"],
	table.shop_table_responsive .woocommerce-shipping-totals td {
		display: block;
	}

	table.shop_table_responsive td.product-remove::before,
	table.shop_table_responsive td.product-thumbnail::before,
	table.shop_table_responsive td.actions::before {
		content: none;
	}

	.woocommerce-cart-form td.product-thumbnail {
		justify-content: flex-start;
	}

	.woocommerce-cart-form td.actions {
		display: block;
		text-align: start;
	}

	.woocommerce-cart-form td.actions > .button {
		float: none;
		width: 100%;
		margin-block-start: .5rem;
	}

	.woocommerce-cart-form .coupon {
		display: flex;
		width: 100%;
	}

	.woocommerce-cart-form .coupon input.input-text {
		flex: 1 1 8em;
		width: auto;
	}
}

/* Classic checkout */
.woocommerce-form-coupon-toggle .woocommerce-info,
.woocommerce-form-login-toggle .woocommerce-info {
	display: block;
}

form.checkout_coupon {
	margin-block-end: var(--mty-space-m);
	padding: var(--mty-space-s);
	border: 1px solid var(--mty-color-line);
	border-radius: var(--mty-radius);
}

.col2-set .col-1,
.col2-set .col-2 {
	min-width: 0;
}

@media (min-width: 1025px) {
	form.woocommerce-checkout {
		display: grid;
		grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
		column-gap: 4%;
		align-items: start;
	}

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

	form.woocommerce-checkout > #customer_details {
		grid-column: 1;
		grid-row: 2 / span 3;
	}

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

	form.woocommerce-checkout > #order_review {
		grid-column: 2;
		grid-row: 3;
	}
}

#order_review {
	padding: var(--mty-space-m);
	border: 1px solid var(--mty-color-line);
	border-radius: var(--mty-radius);
}

ul.wc_payment_methods {
	margin: 0 0 var(--mty-space-s);
	padding: 0;
	list-style: none;
}

ul.wc_payment_methods li {
	padding-block: .6rem;
	border-block-end: 1px solid var(--mty-color-line);
}

.payment_box {
	margin-block-start: .4rem;
	color: var(--mty-color-muted);
	font-size: .875rem;
}

.payment_box p:last-child {
	margin: 0;
}

#place_order {
	width: 100%;
}

/* Order received */
ul.woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: var(--mty-space-s) var(--mty-space-l);
	margin: 0 0 var(--mty-space-m);
	padding: 0 0 var(--mty-space-s);
	border-block-end: 1px solid var(--mty-color-line);
	list-style: none;
	font-size: .875rem;
}

ul.woocommerce-order-overview strong {
	display: block;
	color: var(--mty-color-heading);
	font-size: 1rem;
}

/* My account */
@media (min-width: 768px) {
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 220px minmax(0, 1fr);
		gap: 0 48px;
		align-items: start;
	}
}

.woocommerce-MyAccount-navigation ul {
	margin: 0 0 var(--mty-space-m);
	padding: 0;
	border-block-start: 1px solid var(--mty-color-line);
	list-style: none;
}

.woocommerce-MyAccount-navigation li {
	border-block-end: 1px solid var(--mty-color-line);
}

.woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	min-height: 44px;
	color: var(--mty-color-text);
	font-family: var(--mty-font-accent);
	font-size: .9375rem;
	text-decoration: none;
}

.woocommerce-MyAccount-navigation li.is-active a {
	color: var(--mty-color-heading);
	font-weight: 600;
	box-shadow: inset 2px 0 0 var(--mty-color-accent);
	padding-inline-start: .75rem;
}

[dir="rtl"] .woocommerce-MyAccount-navigation li.is-active a {
	box-shadow: inset -2px 0 0 var(--mty-color-accent);
}

.woocommerce-MyAccount-content {
	min-width: 0;
}

.u-columns.col2-set {
	display: grid;
	gap: var(--mty-space-l) 48px;
}

@media (min-width: 768px) {
	.u-columns.col2-set {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword {
	padding: var(--mty-space-m);
	border: 1px solid var(--mty-color-line);
	border-radius: var(--mty-radius);
}

.woocommerce-LostPassword {
	margin: 0;
	font-size: .9375rem;
}

.woocommerce-Address-title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: .5rem;
}

.woocommerce-Address-title h2,
.woocommerce-Address-title h3 {
	font-size: var(--mty-h4);
}

.woocommerce-orders-table__cell-order-actions .button {
	min-height: 36px;
	padding: .3em .9em;
	font-size: .875rem;
}

/* Widgets */
.woocommerce-product-search {
	display: flex;
	gap: .5rem;
}

ul.product_list_widget {
	margin: 0;
	padding: 0;
	list-style: none;
}

ul.product_list_widget li {
	padding-block: .6rem;
	border-block-end: 1px solid var(--mty-color-line);
	font-size: .9375rem;
}

ul.product_list_widget li::after {
	content: "";
	display: block;
	clear: both;
}

ul.product_list_widget img {
	float: inline-end;
	width: 48px;
	margin-inline-start: .75rem;
	border-radius: calc(var(--mty-radius) * .66);
}

.widget_price_filter .price_slider {
	margin-block-end: var(--mty-space-s);
}

.widget_price_filter .ui-slider {
	position: relative;
	height: 4px;
	margin-inline: 9px;
	border-radius: 4px;
	background: var(--mty-color-line);
}

.widget_price_filter .ui-slider-range {
	position: absolute;
	height: 100%;
	background: var(--mty-color-primary);
}

.widget_price_filter .ui-slider-handle {
	position: absolute;
	top: 50%;
	width: 18px;
	height: 18px;
	margin-inline-start: -9px;
	border: 2px solid var(--mty-color-primary);
	border-radius: 50%;
	background: #fff;
	transform: translateY(-50%);
	cursor: ew-resize;
}

.widget_price_filter .price_slider_amount {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	font-size: .875rem;
}

.widget_price_filter .price_slider_amount input[type="text"] {
	display: none;
}

.widget_price_filter .clear {
	display: none;
}

.widget_layered_nav ul,
.widget_product_categories ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.widget_product_categories li,
.widget_layered_nav li {
	padding-block: .35rem;
}

.widget_product_categories li ul {
	padding-inline-start: 1em;
}

/* Store notice */
.woocommerce-store-notice {
	margin: 0;
	padding: .6rem var(--mty-gutter-safe);
	background: var(--mty-color-primary);
	color: #fff;
	font-size: .875rem;
	text-align: center;
}

.woocommerce-store-notice a {
	color: inherit;
}

/* Cart drawer */
.mty-cart-locked {
	overflow: hidden;
}

.mty-cart-drawer {
	position: fixed;
	z-index: 100000;
	inset: 0;
}

.mty-cart-drawer[hidden] {
	display: none;
}

.mty-cart-drawer__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 18, 16, .55);
	opacity: 0;
	transition: opacity .3s ease;
}

.mty-cart-drawer__panel {
	--mty-drawer-from: 100%;
	position: absolute;
	inset-block: 0;
	inset-inline-end: 0;
	display: flex;
	flex-direction: column;
	width: min(420px, 100%);
	background: var(--mty-color-bg);
	color: var(--mty-color-text);
	transform: translateX(var(--mty-drawer-from));
	transition: transform .3s ease;
}

[dir="rtl"] .mty-cart-drawer__panel {
	--mty-drawer-from: -100%;
}

.mty-cart-drawer.is-open .mty-cart-drawer__overlay {
	opacity: 1;
}

.mty-cart-drawer.is-open .mty-cart-drawer__panel {
	transform: none;
}

.mty-cart-drawer__head {
	display: flex;
	flex: none;
	align-items: center;
	justify-content: space-between;
	gap: var(--mty-space-s);
	padding: .75rem 1rem .75rem 1.5rem;
	border-block-end: 1px solid var(--mty-color-line);
}

.mty-cart-drawer h2.mty-cart-drawer__title {
	margin: 0;
	font-size: var(--mty-h3);
}

.mty-cart-drawer__body {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	padding: 0 1.5rem 1.5rem;
	overscroll-behavior: contain;
}

.mty-cart-drawer .woocommerce-mini-cart {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mty-cart-drawer .woocommerce-mini-cart-item {
	position: relative;
	min-height: 96px;
	padding-block: 1rem;
	padding-inline: 80px 36px;
	border-block-end: 1px solid var(--mty-color-line);
	font-size: .9375rem;
	line-height: 1.4;
}

.mty-cart-drawer .woocommerce-mini-cart-item a:not(.remove) {
	display: block;
	color: var(--mty-color-heading);
	font-family: var(--mty-font-heading);
	font-weight: var(--mty-weight-heading);
	text-decoration: none;
}

.mty-cart-drawer .woocommerce-mini-cart-item img {
	position: absolute;
	inset-block-start: 1rem;
	inset-inline-start: 0;
	width: 64px;
	height: 64px;
	margin: 0;
	object-fit: cover;
	border-radius: calc(var(--mty-radius) * .66);
}

.mty-cart-drawer .woocommerce-mini-cart-item a.remove {
	position: absolute;
	inset-block-start: .75rem;
	inset-inline-end: 0;
}

.mty-cart-drawer .woocommerce-mini-cart-item .quantity {
	display: block;
	margin-block-start: .25rem;
	color: var(--mty-color-muted);
	font-size: .875rem;
}

.mty-cart-drawer .woocommerce-mini-cart-item dl.variation {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0 .35rem;
	margin: .25rem 0 0;
	color: var(--mty-color-muted);
	font-size: .8125rem;
}

.mty-cart-drawer dl.variation dd,
.mty-cart-drawer dl.variation p {
	margin: 0;
}

.mty-cart-drawer .woocommerce-mini-cart__total {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding-block: 1rem;
	color: var(--mty-color-heading);
	font-weight: 500;
}

.mty-cart-drawer .woocommerce-mini-cart__buttons {
	display: grid;
	gap: .5rem;
	margin: 0;
}

.mty-cart-drawer .woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout) {
	border-color: currentColor;
	background: transparent;
	color: var(--mty-color-link, var(--mty-color-primary));
}

.mty-cart-drawer .woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout):hover {
	border-color: var(--mty-color-accent);
	color: var(--mty-color-accent);
}

.mty-cart-drawer .woocommerce-mini-cart__empty-message {
	margin: 0;
	padding-block: var(--mty-space-l);
	color: var(--mty-color-muted);
	text-align: center;
}

/* Block cart and checkout: colours and radius only, their layout stays WooCommerce's */
.wc-block-components-button:not(.is-link) {
	border-radius: var(--mty-button-radius, var(--mty-radius));
	background-color: var(--mty-button-bg, var(--mty-color-primary));
	color: var(--mty-button-text, #fff);
}

.wc-block-components-button:not(.is-link):hover {
	background-color: var(--mty-shop-button-hover);
	color: var(--mty-button-text-hover, var(--mty-button-text, #fff));
}

.wc-block-components-product-badge {
	border-radius: calc(var(--mty-radius) * .66);
}

.wc-block-cart-item__wrap .wc-block-components-product-name,
.wc-block-components-order-summary-item .wc-block-components-product-name {
	color: var(--mty-color-heading);
	font-family: var(--mty-font-heading);
	font-weight: var(--mty-weight-heading);
	text-decoration: none;
}
