/* WooCommerce owns the forms and gallery behavior; this file supplies presentation. */
.fm-product-main,
.fm-commerce-page,
.fm-index-main {
	background: #fff;
	color: #111;
}

.fm-product-main {
	padding-block: clamp(1.5rem, 4vw, 4rem);
}

.fm-product-main .woocommerce-breadcrumb,
.fm-product-main .wp-block-woocommerce-breadcrumbs {
	margin-bottom: 1.5rem;
	font-size: .875rem;
}

.fm-product-layout {
	align-items: flex-start;
	gap: clamp(2rem, 5vw, 5rem);
}

.fm-product-gallery-column,
.fm-product-purchase,
.fm-product-secondary {
	min-width: 0;
	background: #fff;
}

.fm-product-purchase {
	padding-block: clamp(.5rem, 2vw, 2rem);
}

.fm-product-brand {
	margin: 0 0 .5rem;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.fm-product-purchase h1 {
	margin: 0 0 1rem;
	font-size: clamp(2rem, 4vw, 4rem);
	line-height: 1.1;
	letter-spacing: -.04em;
}

.fm-product-purchase .wp-block-woocommerce-product-price,
.fm-product-purchase .price {
	margin-block: 0 1rem;
	font-size: clamp(1.3rem, 2vw, 1.75rem);
	font-weight: 600;
}

.fm-product-purchase .stock {
	margin: 0 0 1rem;
	font-size: .875rem;
	font-weight: 600;
}

.fm-product-purchase .wp-block-post-excerpt {
	margin-block: 1.5rem;
	line-height: 1.7;
}

.fm-product-purchase form.cart,
.fm-product-purchase .variations_form {
	margin-top: 2rem;
}

.fm-product-purchase .variations {
	width: 100%;
	border-collapse: collapse;
}

.fm-product-purchase .variations th,
.fm-product-purchase .variations td {
	padding: .5rem 0;
	text-align: left;
	vertical-align: middle;
}

.fm-product-purchase .variations label,
.fm-product-purchase .quantity label {
	font-weight: 600;
}

.fm-product-purchase select,
.fm-product-purchase input.qty,
.fm-commerce-page input:not([type="checkbox"]):not([type="radio"]),
.fm-commerce-page select,
.fm-commerce-page textarea {
	min-height: 2.75rem;
	max-width: 100%;
	padding: .5rem .75rem;
	border: 1px solid #234b3a;
	border-radius: .8rem;
	background: #fff;
	color: #111;
}

.fm-product-purchase input.qty {
	width: 5rem;
	text-align: center;
}

.fm-product-purchase .single_add_to_cart_button,
.fm-commerce-page button,
.fm-commerce-page .button,
.fm-commerce-page .wp-block-button__link,
.fm-commerce-page .wc-block-components-button,
.fm-product-main .wc-block-components-button {
	min-height: 2.75rem;
	padding: .6rem 1.25rem;
	border: 1px solid #234b3a;
	border-radius: 999px;
	background: #fff;
	color: #111;
	font-weight: 600;
	text-decoration: none;
}

.fm-product-purchase .single_add_to_cart_button:hover,
.fm-commerce-page button:hover,
.fm-commerce-page .button:hover,
.fm-commerce-page .wc-block-components-button:hover {
	background: #fff;
	color: #111;
	border-color: #111;
}

.fm-product-purchase .single_variation_wrap,
.fm-product-purchase .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem;
}

.fm-product-purchase .woocommerce-variation {
	flex-basis: 100%;
}

/* WooCommerce's Product Image Gallery supplies slider, thumbnails and navigation. */
.fm-product-gallery-column .woocommerce-product-gallery {
	width: 100% !important;
	background: #fff;
}

.fm-product-gallery-column .woocommerce-product-gallery__image,
.fm-product-gallery-column .flex-viewport {
	background: #fff;
}

.fm-product-gallery-column .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	object-fit: contain;
}

.fm-product-gallery-column .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	margin-top: 1rem !important;
}

.fm-product-gallery-column .flex-control-thumbs li {
	width: clamp(4rem, 16%, 5.5rem) !important;
	margin: 0 !important;
}

.fm-product-gallery-column .flex-control-thumbs img {
	box-sizing: border-box;
	width: 100%;
	border: 2px solid transparent;
	background: #fff;
	opacity: 1;
	cursor: pointer;
}

.fm-product-gallery-column .flex-control-thumbs img.flex-active {
	border-color: #234b3a;
	outline: 1px solid #111;
	outline-offset: 2px;
}

.fm-product-gallery-column .flex-control-thumbs img:focus-visible {
	outline: 3px solid #234b3a;
	outline-offset: 3px;
}

.fm-product-gallery-column .flex-direction-nav {
	display: flex;
	justify-content: space-between;
	gap: .5rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.fm-product-gallery-column .flex-direction-nav a {
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: auto;
	min-height: 2.75rem;
	padding: .5rem .75rem;
	border: 1px solid #234b3a;
	background: #fff;
	color: #111;
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	text-indent: 0;
	opacity: 1;
}

.fm-product-gallery-column .flex-direction-nav a::before {
	content: none;
}

.fm-product-main .woocommerce-product-gallery__trigger {
	background: #fff;
	color: #111;
}

.fm-product-secondary {
	margin-top: clamp(3rem, 6vw, 6rem);
}

.fm-product-details {
	max-width: 52rem;
	margin-bottom: clamp(3rem, 6vw, 6rem);
	border-top: 1px solid #234b3a;
}

.fm-product-detail {
	border-bottom: 1px solid #234b3a;
	background: #fff;
}

.fm-product-detail summary {
	padding: 1.1rem .3rem;
	background: #fff;
	color: #111;
	font-size: 1.1rem;
	font-weight: 600;
	cursor: pointer;
}

.fm-product-detail-content {
	padding: 0 .3rem 1.25rem;
	background: #fff;
	color: #111;
}

.fm-product-secondary .wp-block-woocommerce-related-products,
.fm-product-secondary .related.products {
	background: #fff;
}

/* Native account endpoints, Cart and Checkout blocks retain all WooCommerce logic. */
.fm-commerce-page {
	padding-block: clamp(2rem, 5vw, 5rem);
}

body.woocommerce-cart .fm-commerce-page,
body.woocommerce-checkout .fm-commerce-page,
body.woocommerce-cart .fm-commerce-page > .wp-block-post-content,
body.woocommerce-checkout .fm-commerce-page > .wp-block-post-content {
	max-width: var(--fanmatcher-wide-width);
	width: 100%;
}

.fm-commerce-page > .wp-block-post-title {
	margin-bottom: 2rem;
	font-size: clamp(2rem, 4vw, 3.5rem);
	line-height: 1.15;
}

.fm-commerce-page .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

.fm-commerce-page .woocommerce-MyAccount-navigation a,
.fm-commerce-page .woocommerce-MyAccount-content a {
	color: #111;
}

.fm-commerce-page .woocommerce-MyAccount-navigation a {
	display: inline-block;
	padding: .6rem .8rem;
	border: 1px solid #234b3a;
	text-decoration: none;
}

.fm-commerce-page .woocommerce-MyAccount-navigation .is-active a {
	border-width: 2px;
	font-weight: 700;
}

.fm-commerce-page .woocommerce form .form-row,
.fm-commerce-page .woocommerce-MyAccount-content,
.fm-commerce-page .wc-block-components-form {
	background: #fff;
	color: #111;
}

.fm-commerce-page .woocommerce form .form-row label,
.fm-commerce-page .wc-block-components-text-input label {
	color: #111;
	font-weight: 600;
}

.fm-commerce-page .woocommerce table.shop_table,
.fm-commerce-page .wc-block-cart,
.fm-commerce-page .wc-block-checkout,
.fm-commerce-page .wc-block-components-sidebar,
.fm-commerce-page .wc-block-components-main {
	background: #fff;
	color: #111;
}

.fm-commerce-page .woocommerce table.shop_table th,
.fm-commerce-page .woocommerce table.shop_table td {
	padding: .8rem;
	border-color: #d5ded8;
}

.fm-commerce-page .woocommerce-message,
.fm-commerce-page .woocommerce-info,
.fm-commerce-page .woocommerce-error,
.fm-product-main .woocommerce-message,
.fm-product-main .woocommerce-info,
.fm-product-main .woocommerce-error,
.fm-commerce-page .wc-block-components-notice-banner,
.fm-product-main .wc-block-components-notice-banner {
	border: 1px solid #234b3a;
	background: #fff;
	color: #111;
}

.fm-commerce-page :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner) *,
.fm-product-main :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner) * {
	color: #111;
}

.fm-commerce-page :is(.wc-block-cart, .wc-block-checkout) :is(.wc-block-components-totals-wrapper, .wc-block-components-order-summary, .wc-block-components-payment-methods, .wc-block-components-checkout-step) {
	background: #fff;
	color: #111;
}

.fm-commerce-page :is(.wc-block-cart, .wc-block-checkout) a,
.fm-commerce-page :is(.wc-block-cart, .wc-block-checkout) button {
	color: #111;
}

.fm-product-main :focus-visible,
.fm-commerce-page :focus-visible {
	outline: 3px solid #234b3a;
	outline-offset: 3px;
}

@media (max-width: 48rem) {
	.fm-product-layout {
		flex-direction: column;
	}
	.fm-product-layout > .wp-block-column {
		width: 100%;
		flex-basis: auto !important;
	}
	.fm-product-purchase {
		padding-block: 0;
	}
}
