/* Native WooCommerce uses unlayered CSS, so these targeted overrides are unlayered. */
.fs-site .woocommerce ul.products, .fs-site .fs-products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; list-style:none; padding:0; }
.fs-site .woocommerce ul.products li.fs-card, .fs-site .fs-card { inline-size:auto; float:none; margin:0; min-inline-size:0; border:1px solid var(--fs-color-line); }
.fs-card__media { position:relative; aspect-ratio:410/556; overflow:hidden; background:var(--fs-card-gradient); }
.fs-card__image-link { display:block; inline-size:100%; block-size:100%; }
.fs-site .woocommerce ul.products li.fs-card .fs-card__image, .fs-card__image { inline-size:100%; block-size:100%; object-fit:contain; margin:0; }
.fs-card__image--hover { position:absolute; inset:0; opacity:0; pointer-events:none; }
.fs-card__top { position:absolute; z-index:4; inset-block-start:18px; inset-inline-end:18px; display:flex; align-items:center; justify-content:flex-end; gap:8px; pointer-events:none; }
.fs-card__ref { display:none; }
.fs-card__heart { pointer-events:auto; border:0; background:transparent; }
.fs-card__heart[aria-pressed="true"] .fs-icon { fill:currentColor; }
.fs-card__heart[hidden] { display:none; }
.fs-card__options { position:absolute; z-index:2; inset-inline:.5rem; inset-block-end:.5rem; display:flex; align-items:center; justify-content:space-between; gap:.25rem; }
.fs-card__swatches { display:none; }
.fs-card__swatch { inline-size:44px; block-size:44px; display:grid; place-items:center; font-size:.75rem; text-decoration:none; }
.fs-card__swatch span { display:grid; place-items:center; inline-size:22px; block-size:22px; border:1px solid var(--fs-color-line); border-radius:50%; background:var(--fs-color-bg); }
.fs-card__spin { display:grid; place-items:center; min-inline-size:44px; min-block-size:44px; padding:.25rem; border:1px solid var(--fs-color-line); background:var(--fs-color-bg); border-radius:50%; font-size:.625rem; text-decoration:none; }
.fs-card__badges { position:absolute; inset-inline-start:20px; inset-block-start:20px; z-index:2; display:flex; flex-wrap:wrap; gap:.25rem; max-inline-size:calc(100% - 8rem); }
.fs-card__badge { padding:2px 9px; border:1px solid var(--fs-color-line); color:var(--fs-color-text); background:var(--fs-color-bg); font-size:.625rem; letter-spacing:.04em; text-transform:uppercase; }
.fs-card__badge--sale { color:var(--fs-color-sale); }
.fs-card__placeholder-text { font-size:.625rem; text-transform:uppercase; letter-spacing:.04em; margin:0 0 .25rem; color:var(--fs-color-muted); }
.fs-card__footer { display:grid; grid-template-columns:minmax(0,1fr) 56px 56px; gap:0; align-items:stretch; min-block-size:70px; padding:0; background:var(--fs-color-bg); border-block-start:1px solid var(--fs-color-line); }
.fs-card__info{padding:14px 30px;align-self:center}
.fs-site .woocommerce ul.products li.fs-card .fs-card__title, .fs-card__title { padding:0; margin:0 0 3px; font-size:.75rem; line-height:1.35; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.fs-card__title a { text-decoration:none; display:inline-flex; align-items:center; min-block-size:44px; }
.fs-card__price { font-size:.875rem; font-variant-numeric:tabular-nums; }
.fs-card__price del { color:var(--fs-color-muted); }
.fs-card__price ins { text-decoration:none; }
.fs-card__footer>.fs-icon-button { inline-size:100%; block-size:100%; border:0; border-inline-start:1px solid var(--fs-color-line); color:var(--fs-color-text); background:transparent; text-decoration:none; }
.fs-card .fs-icon-button:hover { background:var(--fs-color-button-hover-bg); color:var(--fs-color-button-hover-text); }
.fs-card .fs-icon-button[aria-busy="true"] { opacity:.55; pointer-events:none; }
.fs-category-tabs { display:flex; flex-wrap:wrap; gap:.25rem 1rem; border-block:1px solid var(--fs-color-line-soft); margin-block:1.5rem; }
.fs-category-tabs a { display:inline-flex; min-block-size:44px; align-items:center; font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; }
.fs-category-tabs [aria-current] { text-decoration-thickness:2px; }
.fs-filter-form { display:flex; flex-wrap:wrap; gap:1rem; align-items:end; margin-block:1.5rem; }
.fs-filter-form label { flex:1 1 10rem; font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; }
.fs-filter-form input,.fs-filter-form select { display:block; inline-size:100%; margin-block-start:.375rem; font-size:.875rem; letter-spacing:normal; text-transform:none; }
.fs-filter-reset { display:inline-flex; align-items:center; min-block-size:44px; }
.fs-catalog-status { min-block-size:1.5rem; font-size:.875rem; }
.fs-catalog-notice { display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; gap:1rem; margin-block:0 2rem; padding:1.25rem 1.5rem; border:1px solid var(--fs-color-line); background:color-mix(in srgb,var(--fs-color-bg) 72%,white); color:var(--fs-color-text); }
.fs-catalog-notice__icon { display:grid; inline-size:44px; block-size:44px; place-items:center; border:1px solid currentColor; border-radius:50%; font-family:var(--fs-font-heading); font-size:1.125rem; font-style:italic; }
.fs-catalog-notice__content { min-inline-size:0; }
.fs-catalog-notice strong { display:block; font-size:.75rem; letter-spacing:.12em; line-height:1.35; text-transform:uppercase; }
.fs-catalog-notice p { max-inline-size:90ch; margin:.4rem 0 0; color:var(--fs-color-muted); font-size:.875rem; line-height:1.55; }
.fs-quickview { inline-size:min(100% - 2rem,1060px); }
.fs-qv-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:1.5rem; }
.fs-qv-media { min-inline-size:0; }
.fs-qv-image { inline-size:100%; aspect-ratio:4/5; object-fit:contain; background:var(--fs-color-surface); }
.fs-qv-thumbnails { display:flex; flex-wrap:wrap; gap:.5rem; margin-block-start:.5rem; }
.fs-qv-thumbnails button { inline-size:54px; block-size:68px; padding:0; border:1px solid var(--fs-color-line); background:var(--fs-color-surface); }
.fs-qv-thumbnails img { inline-size:100%; block-size:100%; object-fit:contain; }
.fs-qv-info { min-inline-size:0; }
.fs-qv-info h3 { font-size:var(--fs-type-h2); margin-block-start:0; }
.fs-qv-info form.cart { display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; }
.fs-qv-info form.variations_form { display:block; }
.fs-qv-info table.variations th,.fs-qv-info table.variations td { padding:.5rem; }
.fs-qv-info table.variations select { inline-size:100%; }
.fs-qv-details{margin-block:1.5rem}.fs-qv-details div{display:grid;grid-template-columns:minmax(7rem,.4fr) 1fr;gap:1rem;padding:.65rem 0;border-block-start:1px solid var(--fs-color-line-soft)}.fs-qv-details dt{font-weight:600}.fs-qv-details dd{margin:0}
.fs-qv-info .single_add_to_cart_button { min-block-size:44px; border:1px solid var(--fs-color-button-bg); border-radius:0; padding:.875rem 1rem; background:var(--fs-color-button-bg); color:var(--fs-color-button-text); }
.fs-qv-spin { display:block; margin-block:1rem; }
.fs-qv-spin input { inline-size:100%; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) { .fs-card__image { transition:opacity var(--fs-duration); } .fs-card:hover .fs-card__image--hover { opacity:1; } }
@media(max-width:599px) { .fs-card__footer { grid-template-columns:minmax(0,1fr) 52px 52px; } .fs-card__info { grid-column:1/-1; padding:14px 18px; } .fs-card__footer > .fs-icon-button:nth-child(2) { grid-column:2; } .fs-card__footer > .fs-icon-button:nth-child(3) { grid-column:3; } .fs-card__options { flex-wrap:wrap; } .fs-card__swatch { inline-size:44px; block-size:44px; } .fs-filter-form label { flex-basis:calc(50% - .5rem); } }
@media(max-width:599px) { .fs-catalog-notice { grid-template-columns:36px minmax(0,1fr); align-items:start; gap:.75rem; padding:1rem; } .fs-catalog-notice__icon { inline-size:36px; block-size:36px; font-size:1rem; } }
@media(min-width:700px) { .fs-qv-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
@media(min-width:900px) { .fs-site .woocommerce ul.products,.fs-site .fs-products { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(min-width:1200px) { .fs-site .woocommerce ul.products,.fs-site .fs-products { grid-template-columns:repeat(4,minmax(0,1fr)); } }

.fs-variation-options { display:flex; flex-wrap:wrap; gap:.5rem; margin-block:.75rem; }
.fs-variation-options[hidden] { display:none; }
.fs-variation-option { min-block-size:44px; min-inline-size:44px; display:inline-flex; align-items:center; gap:.5rem; padding:.5rem .75rem; color:var(--fs-color-text); background:transparent; border:1px solid var(--fs-color-line-soft); }
.fs-variation-option[aria-pressed="true"] { border-color:var(--fs-color-text); box-shadow:inset 0 0 0 1px currentColor; }
.fs-variation-option:disabled { opacity:.4; text-decoration:line-through; }
.fs-variation-option__color { inline-size:20px; block-size:20px; border:1px solid var(--fs-color-line); }

/* Full catalogue, product categories and product search. */
.fs-site .fs-shop-page,
.fs-site .fs-search-page {
	inline-size: min(calc(100% - 2 * var(--fs-page-pad)), 1600px);
	max-inline-size: none;
	padding-block: clamp(42px, 6vw, 82px) 90px;
}

.fs-catalog-heading,
.fs-search-heading {
	max-inline-size: none;
	margin: 0;
	padding-block-end: clamp(30px, 4vw, 52px);
}

.fs-catalog-heading h1,
.fs-search-heading h1 {
	max-inline-size: 20ch;
	margin: 8px 0 0;
	font-size: clamp(34px, 4vw, 58px);
	line-height: 1.02;
	text-wrap: balance;
}

.fs-catalog-heading .term-description {
	max-inline-size: 720px;
	margin-block-start: 18px;
	color: var(--fs-color-muted);
	font-size: 15px;
}

.fs-shop-catalog .fs-catalog-toolbar {
	border-block: 1px solid var(--fs-color-line);
}

.fs-shop-catalog .fs-category-tabs,
.fs-search-page > .fs-category-tabs {
	margin: 0;
	padding: 0;
	border: 0;
	overflow-x: auto;
	flex-wrap: nowrap;
	scrollbar-width: thin;
}

.fs-shop-catalog .fs-category-tabs a,
.fs-search-page > .fs-category-tabs a {
	flex: 0 0 auto;
	min-block-size: 54px;
	align-items: center;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	text-decoration: none;
}

.fs-shop-catalog .fs-filter-form {
	display: grid;
	grid-template-columns: repeat(3, minmax(140px, 1fr)) repeat(2, auto);
	gap: 16px;
	margin: 0;
	padding: 20px;
}

.fs-shop-catalog .woocommerce-result-count {
	float: none;
	margin: 0;
	padding: 16px 0;
	color: var(--fs-color-muted);
	font-size: 11px;
	text-align: end;
}

.fs-shop-catalog ul.products,
.fs-search-products ul.products {
	inline-size: 100%;
	gap: clamp(16px, 1.5vw, 24px) !important;
	margin: 20px 0 0 !important;
	padding: 0 !important;
	border: 0;
	list-style: none !important;
}

.fs-shop-catalog ul.products li.fs-card,
.fs-search-products ul.products li.fs-card {
	border: 1px solid var(--fs-color-line);
	list-style: none;
}

.fs-search-panel {
	margin-block-end: 28px;
	padding: clamp(20px, 3vw, 32px);
	border: 1px solid var(--fs-color-line);
	background: color-mix(in srgb, var(--fs-color-bg) 82%, white);
}

.fs-search-panel .fs-search-form {
	max-inline-size: 840px;
}

.fs-search-panel .fs-search-form label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fs-search-panel .fs-search-form__row { margin-block-start: 8px; }
.fs-search-panel input[type="search"] { min-block-size: 50px; background: var(--fs-color-bg); }
.fs-search-panel .fs-button { min-block-size: 50px; }
.fs-search-count { margin: 16px 0 0; color: var(--fs-color-muted); font-size: 13px; }
.fs-search-page > .fs-category-tabs { margin-block-end: 30px; border-block: 1px solid var(--fs-color-line); }
.fs-search-empty { min-block-size: 280px; display: grid; place-content: center; text-align: center; }

@media(max-width:900px) {
	.fs-shop-catalog .fs-filter-form { grid-template-columns: 1fr 1fr; }
}

@media(max-width:599px) {
	.fs-site .fs-shop-page,
	.fs-site .fs-search-page { inline-size: calc(100% - 32px); padding-block: 34px 64px; }
	.fs-catalog-heading h1,
	.fs-search-heading h1 { font-size: clamp(32px, 10vw, 44px); }
	.fs-shop-catalog .fs-filter-form { grid-template-columns: 1fr; padding: 16px; }
	.fs-search-panel { padding: 16px; }
	.fs-search-panel .fs-search-form__row { display: grid; grid-template-columns: 1fr; }
	.fs-shop-catalog ul.products,
	.fs-search-products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px !important; }
}
