/* ==========================================================
   Sandhara Marketplace
   Product cards, Maker cards, carousels, shop, and cart toast
   ========================================================== */

/* ----------------------------------------------------------
   Screen-reader-only utility
   ---------------------------------------------------------- */

.sm-screen-reader-text,
.screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ----------------------------------------------------------
   Link reset inside Sandhara components
   ---------------------------------------------------------- */

.sm-product-card a,
.sm-product-card a:hover,
.sm-product-card a:focus,
.sm-product-card a:focus-visible,
.sm-product-card a:visited,
.sm-maker-card a,
.sm-maker-card a:hover,
.sm-maker-card a:focus,
.sm-maker-card a:focus-visible,
.sm-maker-card a:visited {
	color: inherit;
	text-decoration: none !important;
	text-decoration-line: none !important;
	border-bottom: 0 !important;
	box-shadow: none !important;
}

/* ----------------------------------------------------------
   Product cards
   ---------------------------------------------------------- */

.sm-product-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	height: 100%;
	overflow: hidden;
	border: 1px solid #e8e2d9;
	border-radius: 13px;
	background: #ffffff;
	color: #17251d;
	box-shadow: 0 2px 9px rgba(31, 44, 35, 0.08);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.sm-product-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 7px 19px rgba(31, 44, 35, 0.13);
}

.sm-product-card__image {
	display: block;
	overflow: hidden;
	aspect-ratio: 1.32 / 1;
	background: #f2eee7;
}

.sm-product-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 240ms ease;
}

.sm-product-card:hover .sm-product-card__image img {
	transform: scale(1.035);
}

.sm-product-card__content {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0.28rem;
	padding: 0.78rem 0.9rem 0.85rem;
}

.sm-product-card__title {
	display: -webkit-box;
	min-height: 2em;
	margin: 0;
	overflow: hidden;
	color: #17251d;
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1.35;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.sm-product-card__title a {
	display: block;
}

.sm-product-card__maker,
.sm-product-card__location {
	min-height: 1.25em;
	margin: 0;
	font-size: 0.75rem;
	line-height: 1.3;
}

.sm-product-card__maker,
.sm-product-card__maker a {
	color: #39483e;
	font-weight: 600;
}

.sm-product-card__location {
	color: #7a827b;
	font-weight: 500;
}

.sm-product-card__bottom {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.55rem;
	min-height: 3rem;
	margin-top: auto;
	padding-top: 0.48rem;
}

.sm-product-card__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 0.42rem;
	min-width: 0;
}

.sm-product-card__price {
	margin: 0;
	color: #24332a;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

.sm-product-card__price del {
	opacity: 0.55;
	font-size: 0.82em;
	font-weight: 500;
}

.sm-product-card__price ins {
	text-decoration: none;
}

.sm-product-card__rating {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	min-height: 1.05rem;
	color: #303b33;
	font-size: 0.76rem;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
}

.sm-product-card__rating-stars {
	color: #e4a800;
	font-size: 1.05rem;
	line-height: 1;
}

.sm-product-card__rating-value {
	color: #303b33;
	font-weight: 700;
}

.sm-product-card__review-count {
	color: #555f57;
	font-weight: 500;
}

.sm-product-card__cart {
	display: flex;
	align-items: flex-end;
	flex: 0 0 auto;
}

.sm-product-card__cart-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.65rem;
	height: 2.65rem;
	padding: 0;
	border: 1px solid #1e4a31;
	border-radius: 7px;
	background: #1e4a31;
	color: #ffffff !important;
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
	text-decoration: none !important;
	transition:
		background-color 160ms ease,
		border-color 160ms ease,
		transform 160ms ease;
}

.sm-product-card__cart-link:hover,
.sm-product-card__cart-link:focus,
.sm-product-card__cart-link:focus-visible {
	border-color: #13341f;
	background: #13341f;
	color: #ffffff !important;
	outline: none;
	text-decoration: none !important;
	transform: translateY(-1px);
}

.sm-product-card__cart-link:focus-visible {
	outline: 3px solid rgba(220, 163, 0, 0.65);
	outline-offset: 3px;
}

.sm-product-card__cart-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.08rem;
	line-height: 1;
	filter: grayscale(1) brightness(0) invert(1);
}

.sm-product-card--out-of-stock .sm-product-card__cart-link {
	border-color: #647066;
	background: #647066;
}

.sm-product-card {
	position: relative;
}

.sm-product-card__badge {
	position: absolute;
	top: 0.6rem;
	right: 0.6rem;
	z-index: 5;
	padding: 0.28rem 0.65rem;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.3;
	text-transform: uppercase;
	pointer-events: none;
}

.sm-product-card__badge--sold-out {
	background: #d93b3b;
	color: #ffffff;
	box-shadow: 0 2px 8px rgba(217, 59, 59, 0.35);
}

/* WooCommerce injects this link after AJAX cart addition. */
.sm-product-card__cart .added_to_cart {
	display: none !important;
}

/* ----------------------------------------------------------
   Maker cards
   ---------------------------------------------------------- */

.sm-maker-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #e5e2dc;
	border-radius: 12px;
	background: #ffffff;
	color: #1d2923;
	box-shadow: 0 2px 9px rgba(32, 42, 35, 0.07);
	transition: transform 180ms ease, box-shadow 180ms ease;
}

.sm-maker-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 22px rgba(32, 42, 35, 0.13);
}

.sm-maker-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.sm-maker-card__image {
	flex: 0 0 auto;
	overflow: hidden;
	aspect-ratio: 1.56 / 1;
	background: #efede7;
}

.sm-maker-card__image img,
.sm-maker-card__image-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.sm-maker-card__image img {
	transition: transform 240ms ease;
}

.sm-maker-card:hover .sm-maker-card__image img {
	transform: scale(1.035);
}

.sm-maker-card__image-placeholder {
	background: linear-gradient(135deg, #ece8dc, #dcd5c6);
}

.sm-maker-card__content {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 0.95rem 1rem 1.05rem;
}

.sm-maker-card__title {
	margin: 0;
	color: #1c2b22;
	font-size: 1.08rem;
	font-weight: 700;
	line-height: 1.3;
}

.sm-maker-card__description {
	display: -webkit-box;
	min-height: 2.9em;
	margin: 0.55rem 0;
	overflow: hidden;
	color: #4d5a50;
	font-size: 0.88rem;
	line-height: 1.45;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.sm-maker-card__location {
	display: flex;
	align-items: center;
	gap: 0.42rem;
	margin: 0.75rem 0 0;
	margin-top: auto;
	padding-top: 0.1rem;
	color: #4f5c53;
	font-size: 0.84rem;
	font-weight: 500;
	line-height: 1.3;
}

.sm-maker-card__location-icon {
	color: #384a3d;
	font-size: 1.05rem;
	line-height: 1;
}

/* ----------------------------------------------------------
   Carousel
   ---------------------------------------------------------- */

.sm-carousel {
	position: relative;
	width: 100%;
	padding: 0;
}

.sm-carousel__viewport {
	width: 100%;
	overflow: hidden;
	outline-offset: 4px;
	touch-action: pan-y;
	cursor: grab;
}

.sm-carousel__viewport:active {
	cursor: grabbing;
}

.sm-carousel__track {
	display: flex;
	align-items: stretch;
	will-change: transform;
}

.sm-carousel__slide {
	flex: 0 0 calc(100% / var(--sm-carousel-columns, 5));
	box-sizing: border-box;
	min-width: 0;
	padding-right: var(--sm-carousel-gap, 1.5rem);
}

.sm-carousel--static .sm-carousel__viewport {
	overflow: visible;
	cursor: default;
	touch-action: auto;
}

.sm-carousel--static .sm-carousel__track {
	flex-wrap: wrap;
	justify-content: center;
	transform: none !important;
	transition: none !important;
}

.sm-carousel--static .sm-carousel__slide {
	flex: 0 0 calc(
		100% / var(--sm-carousel-columns, 5) -
		var(--sm-carousel-gap, 1.5rem)
	);
	max-width: calc(
		100% / var(--sm-carousel-columns, 5) -
		var(--sm-carousel-gap, 1.5rem)
	);
	padding-right: 0;
	margin: 0 calc(var(--sm-carousel-gap, 1.5rem) / 2);
}

.sm-carousel__slide > .sm-product-card,
.sm-carousel__slide > .sm-maker-card {
	height: 100%;
}

.sm-carousel__control {
	position: absolute;
	top: 50%;
	z-index: 20;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.15rem;
	height: 3.15rem;
	margin: 0;
	padding: 0;
	border: 1px solid #dedbd4;
	border-radius: 999px;
	background: #ffffff !important;
	color: #1e2d23 !important;
	box-shadow: 0 3px 11px rgba(24, 35, 28, 0.15);
	cursor: pointer;
	font-size: 2.05rem;
	font-weight: 400;
	line-height: 1;
	text-align: center;
	text-decoration: none !important;
	transition:
		background-color 160ms ease,
		border-color 160ms ease,
		color 160ms ease,
		transform 160ms ease;
}

.sm-carousel__control[hidden] {
	display: none !important;
}

.sm-carousel__control:hover,
.sm-carousel__control:focus,
.sm-carousel__control:focus-visible {
	border-color: #bec8be;
	background: #f9faf8 !important;
	color: #102418 !important;
	outline: none;
	transform: translateY(-50%) scale(1.04);
}

.sm-carousel__control:focus-visible {
	outline: 3px solid rgba(220, 163, 0, 0.65);
	outline-offset: 3px;
}

.sm-carousel__control:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.sm-carousel__control--previous {
	left: -1.55rem;
	transform: translateY(-50%);
}

.sm-carousel__control--next {
	right: -1.55rem;
	transform: translateY(-50%);
}

.sm-carousel__control span {
	display: block;
	margin-top: -0.16rem;
}

/* ----------------------------------------------------------
   Maker grids
   ---------------------------------------------------------- */

.sm-makers-grid {
	display: grid;
	grid-template-columns: repeat(
		var(--sm-makers-columns, 5),
		minmax(0, 1fr)
	);
	gap: 1.5rem;
}

.sm-makers-grid__item {
	min-width: 0;
}

/* ----------------------------------------------------------
   Maker Product grid
   ---------------------------------------------------------- */

.sm-maker-products__grid {
	display: grid;
	grid-template-columns: repeat(
		var(--sm-maker-products-columns, 4),
		minmax(0, 1fr)
	);
	gap: 1.5rem;
}

.sm-maker-products__empty,
.sm-shop__empty {
	margin: 0;
	padding: 1.25rem;
	border-radius: 10px;
	background: #f6f4ee;
	color: #4e5a51;
}

/* ----------------------------------------------------------
   Sandhara Shop shortcode
   ---------------------------------------------------------- */

.sm-shop {
	width: 100%;
	max-width: none;
	position: relative;
}

/*
 * Mobile filter toggle button.
 * Hidden by default (desktop). Shown only inside the mobile
 * media query below. Colors are locked with !important plus
 * a scoped selector so theme .button styles cannot repaint it.
 */
.sm-shop .sm-shop__filters-toggle,
.sm-shop button.sm-shop__filters-toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	width: 100% !important;
	margin: 0 0 1rem !important;
	padding: 0.65rem 0.9rem !important;
	border: 1px solid #d8d3c7 !important;
	border-radius: 10px !important;
	background-color: #ffffff !important;
	background-image: none !important;
	color: #24332a !important;
	cursor: pointer;
	font: inherit;
	font-size: 0.9rem !important;
	font-weight: 700 !important;
	text-align: left;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
}

.sm-shop .sm-shop__filters-toggle:hover,
.sm-shop .sm-shop__filters-toggle:focus,
.sm-shop .sm-shop__filters-toggle:focus-visible,
.sm-shop .sm-shop__filters-toggle:active,
.sm-shop button.sm-shop__filters-toggle:hover,
.sm-shop button.sm-shop__filters-toggle:focus,
.sm-shop button.sm-shop__filters-toggle:active {
	border-color: #1e4a31 !important;
	background-color: #ffffff !important;
	color: #24332a !important;
	outline: none;
}

.sm-shop .sm-shop__filters-toggle:focus-visible {
	outline: 3px solid rgba(220, 163, 0, 0.5);
	outline-offset: 2px;
}

.sm-shop__filters-toggle-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1e4a31 !important;
	flex: 0 0 auto;
}

.sm-shop__filters-toggle-icon svg {
	display: block;
}

.sm-shop__filters-toggle-icon svg path {
	stroke: #1e4a31 !important;
}

.sm-shop__filters-toggle-label {
	flex: 1 1 auto;
	color: #24332a !important;
}

.sm-shop .sm-shop__filters-toggle::after {
	content: "\25BE";
	flex: 0 0 auto;
	color: #556259 !important;
	font-size: 0.8rem;
	transition: transform 160ms ease;
}

.sm-shop.sm-shop--filters-open .sm-shop__filters-toggle::after {
	transform: rotate(180deg);
}

/*
 * Filter form.
 * Visible inline by default on desktop.
 * Hidden completely on mobile until the parent .sm-shop has
 * the .sm-shop--filters-open class toggled on by shop.js.
 */
.sm-shop__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 1rem;
	margin-bottom: 1.5rem;
	padding: 1rem;
	border: 1px solid #ece8df;
	border-radius: 12px;
	background: #f8f6f1;
}

.sm-shop__filters label {
	display: grid;
	min-width: 150px;
	gap: 0.35rem;
	color: #314237;
	font-size: 0.84rem;
	font-weight: 600;
}

.sm-shop__filters input,
.sm-shop__filters select {
	box-sizing: border-box;
	width: 100%;
	min-height: 42px;
	padding: 0.55rem 0.65rem;
	border: 1px solid #cfd5cf;
	border-radius: 7px;
	background: #ffffff;
	color: #1f2d24;
	font: inherit;
}

.sm-shop__filters input:focus,
.sm-shop__filters select:focus {
	border-color: #2e5c40;
	outline: 3px solid rgba(46, 92, 64, 0.16);
}

.sm-shop .sm-shop__submit,
.sm-shop .sm-load-more,
.sm-shop .sm-pagination button {
	min-height: 42px;
	padding: 0.6rem 1rem !important;
	border: 1px solid #1e4a31 !important;
	border-radius: 7px !important;
	background-color: #1e4a31 !important;
	background-image: none !important;
	color: #ffffff !important;
	cursor: pointer;
	font: inherit;
	font-weight: 700 !important;
	text-decoration: none;
}

.sm-shop .sm-shop__submit:hover,
.sm-shop .sm-shop__submit:focus,
.sm-shop .sm-load-more:hover,
.sm-shop .sm-load-more:focus,
.sm-shop .sm-pagination button:hover,
.sm-shop .sm-pagination button:focus {
	border-color: #13341f !important;
	background-color: #13341f !important;
	color: #ffffff !important;
	outline: none;
}

.sm-product-grid {
	display: grid;
	grid-template-columns: repeat(
		var(--sm-product-grid-columns, 4),
		minmax(0, 1fr)
	);
	gap: 1.5rem;
}

.sm-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1.5rem;
}

.sm-pagination button[aria-current="page"] {
	border-color: #13341f !important;
	background-color: #13341f !important;
}

.sm-load-more {
	display: block;
	margin: 1.5rem auto 0;
}

.sm-shop__results[aria-busy="true"] {
	opacity: 0.62;
	pointer-events: none;
}

/* ----------------------------------------------------------
   Default WooCommerce Shop archive replacement
   ---------------------------------------------------------- */

.woocommerce-shop #secondary,
.woocommerce-shop .widget-area,
.woocommerce-shop .sidebar,
.woocommerce-shop .woocommerce-sidebar {
	display: none !important;
}

.sm-shop-archive {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 2.5rem clamp(1rem, 4vw, 4.5rem) 4rem;
	background: #ffffff;
}

.sm-shop-archive__inner {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
}

/*
 * Desktop Shop filter bar:
 * Search area + Category + Maker + Sort + button.
 */
.sm-shop-archive .sm-shop__filters {
	display: grid;
	grid-template-columns:
		minmax(210px, 1.4fr)
		repeat(3, minmax(150px, 1fr))
		auto;
	align-items: end;
	gap: 1rem;
	margin-bottom: 2rem;
	padding: 1.15rem;
	border: 1px solid #e7e4dc;
	border-radius: 14px;
	background: #f8f7f3;
}

.sm-shop-archive .sm-shop__filters label {
	min-width: 0;
}

.sm-shop-archive .sm-shop__submit {
	align-self: end;
	min-height: 42px;
	white-space: nowrap;
}

.sm-shop-archive .sm-product-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
}

.woocommerce-shop ul.products,
.woocommerce-shop .products.columns-1,
.woocommerce-shop .products.columns-2,
.woocommerce-shop .products.columns-3,
.woocommerce-shop .products.columns-4,
.woocommerce-shop .products.columns-5,
.woocommerce-shop .products.columns-6,
.woocommerce-shop .woocommerce-result-count,
.woocommerce-shop .woocommerce-ordering,
.woocommerce-shop nav.woocommerce-pagination {
	display: none !important;
}

.tax-product_cat ul.products,
.tax-product_tag ul.products,
.woocommerce-no-products-found,
.tax-product_cat .products.columns-1,
.tax-product_cat .products.columns-2,
.tax-product_cat .products.columns-3,
.tax-product_cat .products.columns-4,
.tax-product_cat .products.columns-5,
.tax-product_cat .products.columns-6,
.tax-product_tag .products.columns-1,
.tax-product_tag .products.columns-2,
.tax-product_tag .products.columns-3,
.tax-product_tag .products.columns-4,
.tax-product_tag .products.columns-5,
.tax-product_tag .products.columns-6,
.tax-product_cat .woocommerce-result-count,
.tax-product_tag .woocommerce-result-count,
.tax-product_cat .woocommerce-ordering,
.tax-product_tag .woocommerce-ordering,
.tax-product_cat nav.woocommerce-pagination,
.tax-product_tag nav.woocommerce-pagination {
	display: none !important;
}

/* ----------------------------------------------------------
   Hide duplicated Shop / product taxonomy archive titles
   ---------------------------------------------------------- */

.post-type-archive-product .entry-title,
.post-type-archive-product .page-title,
.post-type-archive-product .woocommerce-products-header,
.tax-product_cat .entry-title,
.tax-product_cat .page-title,
.tax-product_cat .woocommerce-products-header,
.tax-product_tag .entry-title,
.tax-product_tag .page-title,
.tax-product_tag .woocommerce-products-header {
	display: none !important;
}

.post-type-archive-product .site-main > .page-header,
.post-type-archive-product .site-main > header,
.tax-product_cat .site-main > .page-header,
.tax-product_cat .site-main > header,
.tax-product_tag .site-main > .page-header,
.tax-product_tag .site-main > header {
	display: none !important;
}

/* ----------------------------------------------------------
   Add-to-cart success notification
   ---------------------------------------------------------- */

.sm-cart-toast-container {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 999999;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.75rem;
	pointer-events: none;
}

.sm-cart-toast {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	width: min(390px, calc(100vw - 2rem));
	padding: 0.85rem 0.9rem;
	border: 1px solid rgba(25, 63, 40, 0.22);
	border-radius: 11px;
	background: #ffffff;
	color: #1f3528;
	box-shadow: 0 12px 32px rgba(19, 38, 26, 0.2);
	opacity: 0;
	pointer-events: auto;
	transform: translateY(0.75rem);
	transition: opacity 180ms ease, transform 180ms ease;
}

.sm-cart-toast--visible {
	opacity: 1;
	transform: translateY(0);
}

.sm-cart-toast--leaving {
	opacity: 0;
	transform: translateY(0.75rem);
}

.sm-cart-toast__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 1.65rem;
	height: 1.65rem;
	border-radius: 999px;
	background: #1e4a31;
	color: #ffffff;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
}

.sm-cart-toast__message {
	flex: 1 1 auto;
	min-width: 0;
	color: #203126;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.35;
}

.sm-cart-toast__link {
	flex: 0 0 auto;
	color: #1e4a31 !important;
	font-size: 0.86rem;
	font-weight: 700;
	text-decoration: underline !important;
	text-underline-offset: 2px;
	white-space: nowrap;
}

.sm-cart-toast__link:hover,
.sm-cart-toast__link:focus {
	color: #13341f !important;
}

.sm-cart-toast__close {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 1.6rem;
	height: 1.6rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #556259;
	cursor: pointer;
	font: inherit;
	font-size: 1.35rem;
	line-height: 1;
}

.sm-cart-toast__close:hover,
.sm-cart-toast__close:focus {
	background: #f1f3ef;
	color: #1c2b21;
	outline: none;
}

.sm-product-card__cart-link--added {
	border-color: #1e4a31 !important;
	background: #1e4a31 !important;
}

/* ----------------------------------------------------------
   Tablet
   ---------------------------------------------------------- */

@media (max-width: 900px) {
	.sm-carousel__slide {
		flex-basis: calc(100% / var(--sm-carousel-tablet-columns, 3));
	}

	.sm-carousel--static .sm-carousel__slide {
		flex-basis: calc(
			100% / var(--sm-carousel-tablet-columns, 3) -
			var(--sm-carousel-gap, 1.5rem)
		);
		max-width: calc(
			100% / var(--sm-carousel-tablet-columns, 3) -
			var(--sm-carousel-gap, 1.5rem)
		);
	}

	.sm-carousel__control--previous {
		left: -1.2rem;
	}

	.sm-carousel__control--next {
		right: -1.2rem;
	}

	.sm-makers-grid {
		grid-template-columns: repeat(
			var(--sm-makers-tablet-columns, 3),
			minmax(0, 1fr)
		);
	}

	.sm-maker-products__grid {
		grid-template-columns: repeat(
			var(--sm-maker-products-tablet-columns, 2),
			minmax(0, 1fr)
		);
	}

	.sm-product-grid {
		grid-template-columns: repeat(
			var(--sm-product-grid-tablet-columns, 2),
			minmax(0, 1fr)
		);
	}

	.sm-shop-archive .sm-shop__filters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sm-shop-archive .sm-shop__submit {
		width: max-content;
	}

	.sm-shop-archive .sm-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/*
	 * Mobile / tablet-width filter collapse.
	 * The toggle button becomes visible; the filter form is
	 * fully hidden until .sm-shop--filters-open is present.
	 */
	.sm-shop .sm-shop__filters-toggle,
	.sm-shop button.sm-shop__filters-toggle {
		display: flex !important;
	}

	.sm-shop .sm-shop__filters {
		display: none !important;
	}

	.sm-shop.sm-shop--filters-open .sm-shop__filters {
		display: flex !important;
		flex-direction: column;
		align-items: stretch;
	}

	.sm-shop.sm-shop--filters-open .sm-shop__filters label {
		min-width: 0;
	}

	.sm-shop-archive .sm-shop__filters-toggle {
		max-width: 1440px;
		margin-right: auto;
		margin-left: auto;
	}

	.sm-shop-archive.sm-shop--filters-open .sm-shop__filters,
	.sm-shop-archive .sm-shop.sm-shop--filters-open .sm-shop__filters {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ----------------------------------------------------------
   Mobile
   ---------------------------------------------------------- */

@media (max-width: 600px) {
	.sm-carousel__slide {
		flex-basis: calc(100% / var(--sm-carousel-mobile-columns, 1));
		padding-right: 0.8rem;
	}

	.sm-carousel--static .sm-carousel__slide {
		flex-basis: calc(
			100% / var(--sm-carousel-mobile-columns, 1) -
			0.8rem
		);
		max-width: calc(
			100% / var(--sm-carousel-mobile-columns, 1) -
			0.8rem
		);
		margin: 0 0.4rem;
	}

	.sm-carousel__control {
		width: 2.55rem;
		height: 2.55rem;
		font-size: 1.75rem;
	}

	.sm-carousel__control--previous {
		left: -0.8rem;
	}

	.sm-carousel__control--next {
		right: -0.8rem;
	}

	.sm-product-card__content {
		padding: 0.72rem 0.78rem 0.8rem;
	}

	.sm-product-card__title {
		font-size: 0.92rem;
	}

	.sm-product-card__cart-link {
		width: 2.5rem;
		height: 2.5rem;
	}

	.sm-makers-grid {
		grid-template-columns: repeat(
			var(--sm-makers-mobile-columns, 1),
			minmax(0, 1fr)
		);
		gap: 1rem;
	}

	.sm-maker-products__grid {
		grid-template-columns: repeat(
			var(--sm-maker-products-mobile-columns, 1),
			minmax(0, 1fr)
		);
		gap: 1rem;
	}

	.sm-product-grid {
		grid-template-columns: repeat(
			var(--sm-product-grid-mobile-columns, 1),
			minmax(0, 1fr)
		);
		gap: 1rem;
	}

	.sm-shop.sm-shop--filters-open .sm-shop__filters {
		display: grid !important;
		grid-template-columns: 1fr;
	}

	.sm-shop__filters label {
		min-width: 0;
	}

	.sm-shop-archive {
		padding: 1.5rem 1rem 3rem;
	}

	.sm-shop-archive::before {
		margin-bottom: 1rem;
		font-size: 1.75rem;
	}

	.sm-shop-archive.sm-shop--filters-open .sm-shop__filters,
	.sm-shop-archive .sm-shop.sm-shop--filters-open .sm-shop__filters {
		grid-template-columns: 1fr !important;
		gap: 0.85rem;
		padding: 0.9rem;
	}

	.sm-shop-archive .sm-shop__submit {
		width: 100%;
	}

	.sm-shop-archive .sm-product-grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.sm-cart-toast-container {
		right: 0.8rem;
		bottom: 0.8rem;
		left: 0.8rem;
		align-items: stretch;
	}

	.sm-cart-toast {
		width: 100%;
	}
}

/* ----------------------------------------------------------
   Reduced-motion accessibility
   ---------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.sm-product-card,
	.sm-product-card__image img,
	.sm-maker-card,
	.sm-maker-card__image img,
	.sm-carousel__track,
	.sm-carousel__control,
	.sm-cart-toast {
		transition: none !important;
	}
}