/*
 * WooCommerce screens. WooCommerce's own stylesheets are dequeued
 * (inc/woocommerce.php), so everything a shop screen renders is styled here.
 */

.shop-page {
	--shop-tile: #f4f3ef;
	--shop-sidebar: 15rem;

	padding-block: clamp(1.5rem, 3vw, 2.5rem) var(--space-section);
}

/* Breadcrumb and title band */
.shop-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: var(--space-lg);
	color: var(--color-muted);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.shop-breadcrumb a {
	color: var(--color-ink);
	text-decoration: none;
}

.shop-breadcrumb__sep {
	color: var(--color-muted-dark);
}

.woocommerce-products-header {
	padding-bottom: var(--space-lg);
	margin-bottom: var(--space-xl);
	border-bottom: 1px solid var(--color-border);
}

.woocommerce-products-header__title {
	margin-bottom: 0;
	font-size: clamp(2.5rem, 5vw, 4rem);
}

.woocommerce-products-header .term-description {
	max-width: var(--measure);
	margin-top: var(--space-md);
	color: var(--color-muted);
}

.woocommerce-products-header .term-description > :last-child {
	margin-bottom: 0;
}

/* Layout: category sidebar + catalog */
.shop-layout {
	display: grid;
	grid-template-columns: var(--shop-sidebar) minmax(0, 1fr);
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: start;
}

.shop-layout--full {
	grid-template-columns: minmax(0, 1fr);
}

.shop-sidebar {
	position: sticky;
	top: 7rem;
}

.shop-sidebar__title {
	margin-bottom: var(--space-sm);
	color: var(--color-ember-bright);
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	line-height: 1.35;
}

.shop-categories__list {
	padding: 0;
	margin: 0;
	list-style: none;
}

.shop-categories__list .shop-categories__list {
	padding-left: 0.85rem;
	margin-block: 0.15rem 0.35rem;
	border-left: 1px solid var(--color-border);
}

.shop-categories__all,
.shop-categories__item > a {
	display: flex;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.4rem 0;
	color: var(--color-ink);
	font-size: 0.9rem;
	line-height: 1.35;
	text-decoration: none;
}

.shop-categories__all {
	padding-bottom: 0.6rem;
	margin-bottom: 0.35rem;
	border-bottom: 1px solid var(--color-border);
	font-weight: 700;
}

.shop-categories__list .shop-categories__list a {
	color: var(--color-muted);
	font-size: 0.85rem;
}

.shop-categories__count {
	color: var(--color-muted-dark);
	font-size: 0.75rem;
	font-variant-numeric: tabular-nums;
}

.shop-categories a[aria-current="page"],
.shop-categories .shop-categories__list a[aria-current="page"] {
	color: var(--color-ember-bright);
	font-weight: 700;
}

.shop-categories .is-open > a {
	font-weight: 700;
}

/* Narrow-screen category chips; hidden on wide screens */
.shop-chips {
	display: none;
}

/* Toolbar: result count, sorting, notices */
.shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm) var(--space-md);
	margin-bottom: var(--space-lg);
}

.shop-toolbar .woocommerce-notices-wrapper {
	flex-basis: 100%;
}

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

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

.woocommerce-ordering {
	margin: 0;
}

.woocommerce-ordering select {
	min-height: var(--control-height);
	padding: 0 2.5rem 0 0.9rem;
	border: 1px solid var(--color-border-strong);
	border-radius: 0;
	background: var(--color-black-alt) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23e8e7e3' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 0.9rem center / 0.7rem;
	color: var(--color-ink);
	font-size: 0.85rem;
	appearance: none;
	cursor: pointer;
}

/* Product grid */
ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr));
	gap: var(--space-md);
	padding: 0;
	margin: 0;
	list-style: none;
}

ul.products li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--color-border);
	background: var(--color-black-alt);
	transition: border-color var(--duration-fast) ease;
}

ul.products li.product:focus-within {
	border-color: var(--color-border-strong);
}

.woocommerce-loop-product__link {
	display: flex;
	flex: 1;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
}

ul.products li.product img {
	width: 100%;
	aspect-ratio: 1;
	padding: clamp(0.75rem, 2vw, 1.25rem);
	background: var(--shop-tile);
	object-fit: contain;
}

ul.products li.product img.woocommerce-placeholder {
	padding: 0;
	object-fit: cover;
}

/*
 * On dev/production an integration plugin prints its own <h3> product title
 * in addition to WooCommerce's <h2>. Keep WooCommerce's; hide the duplicate.
 * Remove this once the plugin's hook is unhooked in inc/woocommerce.php.
 */
ul.products li.product h3.woocommerce-loop-product__title {
	display: none;
}

.woocommerce-loop-product__title {
	display: -webkit-box;
	padding: var(--space-md) var(--space-md) 0;
	margin: 0 0 var(--space-xs);
	overflow: hidden;
	font-family: var(--font-body);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

ul.products li.product .price {
	display: block;
	padding: 0 var(--space-md);
	margin-top: auto;
	color: var(--color-ink);
	font-size: 1.05rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

.price del {
	margin-right: 0.35rem;
	color: var(--color-muted);
	font-size: 0.85em;
	font-weight: 600;
}

.price ins {
	color: var(--color-ember-bright);
	text-decoration: none;
}

.shop-card__ffl {
	padding: 0 var(--space-md);
	margin: 0.35rem 0 0;
	color: var(--color-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

ul.products li.product .button {
	margin: var(--space-md);
	border-color: var(--color-border-strong);
	color: var(--color-ink);
}

ul.products li.product .button.loading {
	opacity: 0.6;
	pointer-events: none;
}

ul.products li.product .added_to_cart {
	margin: calc(var(--space-md) * -0.5) var(--space-md) var(--space-md);
	color: var(--color-ember-bright);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-align: center;
	text-transform: uppercase;
}

.onsale {
	position: absolute;
	top: var(--space-sm);
	left: var(--space-sm);
	z-index: 1;
	padding: 0.3rem 0.55rem;
	background: var(--color-ember-bright);
	color: var(--color-black);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Out of stock: badge, dimmed image, muted price; the card and its button stay a link */
.shop-card__badge {
	position: absolute;
	top: var(--space-sm);
	left: var(--space-sm);
	z-index: 1;
	padding: 0.3rem 0.55rem;
	border: 1px solid var(--color-border-strong);
	background: var(--color-black);
	color: var(--color-ink);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

ul.products li.product.outofstock img {
	filter: grayscale(1);
	opacity: 0.55;
	transition: opacity var(--duration-fast) ease, filter var(--duration-fast) ease;
}

/* A sale badge on something you can't buy is noise, and both badges share the corner. */
ul.products li.product.outofstock .onsale {
	display: none;
}

ul.products li.product.outofstock .price {
	color: var(--color-muted);
}

/* Pagination */
.woocommerce-pagination {
	margin-top: var(--space-xl);
}

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

.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
	display: grid;
	min-width: var(--control-height);
	min-height: var(--control-height);
	padding: 0 0.6rem;
	place-items: center;
	border: 1px solid var(--color-border);
	color: var(--color-ink);
	font-size: 0.85rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
}

.woocommerce-pagination .page-numbers .current {
	border-color: var(--color-ember-bright);
	background: var(--color-ember-bright);
	color: var(--color-black);
}

.woocommerce-pagination .page-numbers .dots {
	border-color: transparent;
	color: var(--color-muted);
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-no-products-found .woocommerce-info {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	padding: var(--space-md) var(--space-lg);
	margin: 0 0 var(--space-md);
	border: 1px solid var(--color-border-strong);
	border-left: 3px solid var(--color-ember-bright);
	background: var(--color-charcoal);
	color: var(--color-ink);
	list-style: none;
}

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

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

@media (hover: hover) and (pointer: fine) {
	ul.products li.product:hover {
		border-color: var(--color-border-strong);
	}

	ul.products li.product .button:hover {
		border-color: var(--color-ember-bright);
		background: var(--color-ember-bright);
		color: var(--color-black);
	}

	ul.products li.product.outofstock:hover img {
		filter: grayscale(0.4);
		opacity: 0.85;
	}

	.shop-categories a:hover,
	.shop-categories .shop-categories__list a:hover,
	.woocommerce-pagination a.page-numbers:hover {
		color: var(--color-ember-bright);
	}

	.woocommerce-pagination a.page-numbers:hover {
		border-color: var(--color-ember-bright);
	}
}

@media (max-width: 900px) {
	.shop-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.shop-sidebar {
		display: none;
	}

	.shop-chips {
		display: grid;
		gap: 0.5rem;
		margin-bottom: var(--space-lg);
	}

	.shop-chips__row {
		display: flex;
		gap: 0.5rem;
		padding: 0 0 0.25rem;
		margin: 0;
		overflow-x: auto;
		list-style: none;
		scrollbar-width: none;
		overscroll-behavior-x: contain;
	}

	.shop-chips__row::-webkit-scrollbar {
		display: none;
	}

	.shop-chips__row + .shop-chips__row .shop-chips__chip {
		border-style: dashed;
	}

	.shop-chips__chip {
		display: inline-flex;
		align-items: center;
		min-height: 2.5rem;
		padding: 0 0.95rem;
		border: 1px solid var(--color-border-strong);
		color: var(--color-ink);
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-decoration: none;
		text-transform: uppercase;
		white-space: nowrap;
	}

	.shop-chips__chip.is-open {
		border-color: var(--color-ink);
	}

	.shop-chips__chip[aria-current="page"] {
		border-color: var(--color-ember-bright);
		border-style: solid;
		background: var(--color-ember-bright);
		color: var(--color-black);
	}
}

@media (max-width: 600px) {
	ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.6rem;
	}

	.woocommerce-loop-product__title {
		padding: var(--space-sm) var(--space-sm) 0;
		font-size: 0.72rem;
	}

	ul.products li.product .price,
	.shop-card__ffl {
		padding-inline: var(--space-sm);
	}

	ul.products li.product .price {
		font-size: 0.95rem;
	}

	ul.products li.product .button {
		margin: var(--space-sm);
		padding-inline: 0.5rem;
		font-size: 0.68rem;
		letter-spacing: 0.1em;
	}

	.shop-toolbar {
		flex-wrap: nowrap;
	}

	.woocommerce-result-count {
		font-size: 0.75rem;
	}
}

/* Single product */
/* Gallery + summary; tabs and related products follow below in normal flow. */
.product-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}

.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related,
.single-product div.product > .upsells {
	margin-top: var(--space-xl);
}

.woocommerce-product-gallery {
	position: relative;
	display: grid;
	gap: var(--space-sm);
	margin: 0;
}

.woocommerce-product-gallery__wrapper {
	display: grid;
	gap: var(--space-sm);
	margin: 0;
}

.woocommerce-product-gallery__image,
.woocommerce-product-gallery__image--placeholder {
	background: var(--shop-tile);
}

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

.woocommerce-product-gallery img {
	width: 100%;
	aspect-ratio: 1;
	padding: clamp(1rem, 4vw, 2.5rem);
	object-fit: contain;
}

.woocommerce-product-gallery__image--placeholder img {
	padding: 0;
	object-fit: cover;
}

.woocommerce-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));
	gap: var(--space-xs);
	padding: 0;
	margin: 0;
	list-style: none;
}

.woocommerce-product-gallery .flex-control-thumbs img {
	padding: 0.35rem;
	background: var(--shop-tile);
	cursor: pointer;
	opacity: 0.6;
	transition: opacity var(--duration-fast) ease;
}

.woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	opacity: 1;
}

/* Summary column: one consistent rhythm instead of per-element margins */
.single-product .summary {
	position: sticky;
	top: 7rem;
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
}

.single-product .summary > * {
	margin: 0;
}

.single-product .product_title {
	font-size: clamp(2rem, 3.6vw, 3.1rem);
	line-height: 1;
}

.single-product .summary .price {
	color: var(--color-ink);
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}

.woocommerce-product-details__short-description {
	color: var(--color-muted);
}

.woocommerce-product-details__short-description > :last-child {
	margin-bottom: 0;
}

.single-product .stock {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--color-ink);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.single-product .stock::before {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: #6fbf73;
	content: "";
}

.single-product .stock.out-of-stock {
	color: var(--color-muted);
}

.single-product .stock.out-of-stock::before {
	background: var(--color-muted-dark);
}

.product-ffl {
	display: grid;
	gap: 0.35rem;
	padding: var(--space-md);
	border: 1px solid var(--color-border-strong);
	border-left: 3px solid var(--color-ember-bright);
	background: var(--color-charcoal);
	font-size: 0.9rem;
}

.product-ffl p {
	margin: 0;
}

.product-ffl a {
	justify-self: start;
	color: var(--color-ember-bright);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
}

/* Quantity + add to cart */
.single-product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	padding-top: var(--space-lg);
	border-top: 1px solid var(--color-border);
}

.single-product form.cart .quantity {
	flex: 0 0 auto;
}

.single-product form.cart .qty {
	width: 5rem;
	min-height: 3.25rem;
	padding: 0 0.75rem;
	border: 1px solid var(--color-border-strong);
	background: var(--color-black);
	color: var(--color-ink);
	font-weight: 700;
	text-align: center;
}

.single-product form.cart .single_add_to_cart_button {
	flex: 1 1 12rem;
	min-height: 3.25rem;
	border-color: var(--color-ember-bright);
	background: var(--color-ember-bright);
	color: var(--color-black);
	font-size: 0.8rem;
}

.single-product form.cart .single_add_to_cart_button.disabled,
.single-product form.cart .single_add_to_cart_button:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Variations (variable products) */
.single-product table.variations {
	width: 100%;
	border-collapse: collapse;
}

.single-product table.variations th,
.single-product table.variations td {
	display: block;
	padding: 0 0 var(--space-xs);
	text-align: left;
}

.single-product table.variations label {
	color: var(--color-ember-bright);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.single-product .reset_variations {
	display: inline-block;
	margin-top: var(--space-xs);
	color: var(--color-muted);
	font-size: 0.8rem;
}

/* SKU and categories */
.product_meta {
	display: grid;
	gap: var(--space-xs);
	padding-top: var(--space-lg);
	border-top: 1px solid var(--color-border);
	color: var(--color-muted);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.product_meta > span {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
}

.product_meta__label {
	margin-right: 0.35rem;
}

.product_meta a,
.product_meta .sku {
	color: var(--color-ink);
	text-decoration: none;
}

.product_meta a {
	padding: 0.3rem 0.6rem;
	border: 1px solid var(--color-border-strong);
	letter-spacing: 0.1em;
}

/* Tabs: description, additional information, reviews */
.woocommerce-tabs {
	padding-top: var(--space-xl);
	border-top: 1px solid var(--color-border);
}

.woocommerce-tabs ul.tabs {
	display: flex;
	gap: var(--space-lg);
	padding: 0;
	margin: 0 0 var(--space-xl);
	border-bottom: 1px solid var(--color-border);
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}

.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0 0 var(--space-sm);
	margin-bottom: -1px;
	border-bottom: 2px solid transparent;
	color: var(--color-muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.woocommerce-tabs ul.tabs li.active a {
	border-bottom-color: var(--color-ember-bright);
	color: var(--color-ink);
}

.woocommerce-Tabs-panel {
	max-width: var(--measure);
	color: var(--color-ink);
	line-height: 1.75;
}

.woocommerce-Tabs-panel > * {
	margin-top: 0;
}

.woocommerce-Tabs-panel h2,
.woocommerce-Tabs-panel h3 {
	margin-bottom: var(--space-md);
	color: var(--color-ember-bright);
	font-family: var(--font-body);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	line-height: 1.35;
}

.woocommerce-Tabs-panel p,
.woocommerce-Tabs-panel ul,
.woocommerce-Tabs-panel ol {
	margin-bottom: var(--space-md);
}

.woocommerce-Tabs-panel p:empty {
	display: none;
}

.woocommerce-product-attributes {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce-product-attributes th,
.woocommerce-product-attributes td {
	padding: var(--space-sm) 0;
	border-bottom: 1px solid var(--color-border);
	text-align: left;
	vertical-align: top;
}

.woocommerce-product-attributes th {
	width: 35%;
	padding-right: var(--space-md);
	color: var(--color-muted);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.woocommerce-product-attributes td p {
	margin: 0;
}

/* Reviews */
.woocommerce-Reviews .woocommerce-noreviews {
	color: var(--color-muted);
}

.woocommerce-Reviews .comment-reply-title {
	display: block;
	margin-bottom: var(--space-md);
	font-weight: 700;
}

.woocommerce-Reviews .comment-form {
	display: grid;
	gap: var(--space-md);
}

.woocommerce-Reviews .comment-form > * {
	margin: 0;
}

.woocommerce-Reviews label {
	display: block;
	margin-bottom: var(--space-xs);
	color: var(--color-ember-bright);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.woocommerce-Reviews input[type="text"],
.woocommerce-Reviews input[type="email"],
.woocommerce-Reviews select,
.woocommerce-Reviews textarea {
	width: 100%;
	min-height: var(--control-height);
	padding: 0.8rem;
	border: 1px solid var(--color-border-strong);
	border-radius: 0;
	background: var(--color-black);
	color: var(--color-ink);
	resize: vertical;
}

.woocommerce-Reviews .comment-form-cookies-consent {
	display: flex;
	gap: 0.6rem;
	align-items: baseline;
}

.woocommerce-Reviews .comment-form-cookies-consent label {
	color: var(--color-muted);
	letter-spacing: 0;
	text-transform: none;
}

.woocommerce-Reviews .form-submit input[type="submit"] {
	min-height: var(--control-height);
	padding: 0.75rem 1.35rem;
	border: 1px solid var(--color-ember-bright);
	background: var(--color-ember-bright);
	color: var(--color-black);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
}

.woocommerce-Reviews .required {
	color: var(--color-ember-bright);
	text-decoration: none;
}

/* Related and upsell products */
.single-product .related,
.single-product .upsells {
	padding-top: var(--space-xl);
	border-top: 1px solid var(--color-border);
}

.single-product .related ul.products,
.single-product .upsells ul.products {
	grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr));
}

.single-product .related > h2,
.single-product .upsells > h2 {
	margin-bottom: var(--space-lg);
	font-size: clamp(1.8rem, 3vw, 2.6rem);
}

@media (hover: hover) and (pointer: fine) {
	.woocommerce-tabs ul.tabs li a:hover,
	.product_meta a:hover {
		color: var(--color-ember-bright);
	}

	.product_meta a:hover {
		border-color: var(--color-ember-bright);
	}

	.single-product form.cart .single_add_to_cart_button:not(:disabled):hover {
		border-color: var(--color-ink);
		background: var(--color-ink);
		color: var(--color-black);
	}

	.woocommerce-product-gallery .flex-control-thumbs img:hover {
		opacity: 1;
	}
}

@media (max-width: 900px) {
	.product-hero {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-lg);
	}

	.single-product .summary {
		position: static;
	}

	.woocommerce-product-gallery img {
		max-height: 70vh;
	}
}

@media (max-width: 600px) {
	.single-product .summary {
		gap: var(--space-md);
	}

	.single-product form.cart,
	.product_meta {
		padding-top: var(--space-md);
	}

	.woocommerce-tabs ul.tabs {
		gap: var(--space-md);
		margin-bottom: var(--space-lg);
	}

	.woocommerce-product-attributes th {
		width: 40%;
	}

	.single-product .related ul.products,
	.single-product .upsells ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/*
 * FFL dealer picker (third-party checkout plugin). It writes light-theme colors
 * as inline styles (black names, #666 details), which are unreadable on the dark
 * checkout, so these overrides need !important to beat the inline style attribute.
 */
/*
 * The plugin fixes every card at 140px tall with 4px vertical padding, so the
 * last line sits on the border once a card is outlined. Let cards grow and pad
 * them evenly; applied to all cards so selecting one doesn't shift the list.
 */
.ffl-card {
	height: auto !important;
	min-height: 140px;
	padding: var(--space-sm) var(--space-md) var(--space-md) !important;
}

.ffl-card h3 {
	color: var(--color-ink) !important;
}

.ffl-card h5,
.ffl-card p {
	color: var(--color-muted) !important;
}

/*
 * The plugin marks the chosen dealer only through inline styles (light blue
 * background, blue border); unselected cards are written with a transparent
 * background. Restyle the selected card for the dark theme so its light text stays readable.
 */
.ffl-card:not([style*="background-color: transparent"]) {
	border: 1px solid var(--color-ember-bright) !important;
	background-color: var(--color-charcoal) !important;
}

.ffl-card:not([style*="background-color: transparent"]) h5,
.ffl-card:not([style*="background-color: transparent"]) p {
	color: var(--color-ink) !important;
}

@media (hover: hover) and (pointer: fine) {
	.ffl-card[style*="background-color: transparent"]:hover {
		background-color: var(--color-black-alt) !important;
	}
}
