.woocommerce-page {
	--hut-store-header-offset: 6.5rem;
}

/* Keep shopping and transactional views focused on products and checkout. */
@media (min-width: 64rem) {
	.single-product .site-header,
	.woocommerce-shop .site-header,
	.post-type-archive-product .site-header,
	.tax-product_cat .site-header,
	.tax-product_tag .site-header,
	.woocommerce-cart .site-header,
	.woocommerce-checkout .site-header,
	.woocommerce-account .site-header {
		padding-block: var(--hut-space-md);
	}

	.single-product .site-branding__logo,
	.woocommerce-shop .site-branding__logo,
	.post-type-archive-product .site-branding__logo,
	.tax-product_cat .site-branding__logo,
	.tax-product_tag .site-branding__logo,
	.woocommerce-cart .site-branding__logo,
	.woocommerce-checkout .site-branding__logo,
	.woocommerce-account .site-branding__logo {
		height: 2.5rem;
	}
}

/* Leave room for the sticky header when WooCommerce focuses or jumps to a form. */
.single-product form.variations_form,
.single-product .variations,
.single-product .single_variation_wrap {
	scroll-margin-block-start: var(--hut-store-header-offset);
}

.site-main--store {
	width: min(calc(100% - (var(--hut-container-padding) * 2)), var(--hut-container-xl));
}

.woocommerce-store-main > .product,
.woocommerce-store-main .woocommerce {
	display: grid;
	gap: var(--hut-space-xl);
}

.store-hero {
	display: grid;
	gap: clamp(var(--hut-space-lg), 4vw, var(--hut-space-2xl));
	align-items: end;
	margin-block-end: clamp(var(--hut-space-xl), 5vw, var(--hut-space-3xl));
	padding: clamp(var(--hut-space-lg), 5vw, var(--hut-space-3xl));
	border: 1px solid rgb(223 210 191 / 82%);
	border-radius: var(--hut-radius-lg);
	background:
		linear-gradient(135deg, rgb(255 253 248 / 94%), rgb(245 239 230 / 86%)),
		var(--hut-color-surface-raised);
	box-shadow: var(--hut-shadow-warm-md);
}

.store-hero__content,
.store-hero__aside,
.store-products,
.woocommerce-store-main .product,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
	min-width: 0;
}

.store-hero__title {
	max-width: 12ch;
	margin-block-end: var(--hut-space-md);
	font-size: clamp(var(--hut-font-size-2xl), 7vw, 4.75rem);
	line-height: 0.98;
}

.store-hero__copy {
	max-width: 42rem;
	color: var(--hut-color-text-muted);
	font-size: var(--hut-font-size-md);
}

.store-hero__copy > *:last-child,
.store-hero__aside > *:last-child {
	margin-block-end: 0;
}

.store-hero__aside {
	display: grid;
	gap: var(--hut-space-md);
	padding: var(--hut-space-lg);
	border: 1px solid rgb(224 108 43 / 22%);
	border-radius: var(--hut-radius-md);
	background:
		linear-gradient(135deg, rgb(224 108 43 / 10%), rgb(255 253 248 / 74%)),
		var(--hut-color-surface);
	color: var(--hut-color-text-muted);
	font-weight: 750;
}

.store-cart-link {
	display: inline-flex;
	gap: var(--hut-space-xs);
	align-items: center;
	justify-content: space-between;
	min-height: 2.75rem;
	padding: 0.55rem 0.75rem;
	border: 1px solid rgb(107 74 47 / 34%);
	border-radius: 999px;
	background: var(--hut-color-surface-raised);
	color: var(--hut-color-text);
	font-size: var(--hut-font-size-sm);
	font-weight: 850;
	text-decoration: none;
	box-shadow: var(--hut-shadow-warm-sm);
}

.store-cart-link:hover,
.store-cart-link:focus-visible {
	border-color: rgb(224 108 43 / 48%);
	color: var(--hut-color-accent-strong);
	text-decoration: none;
}

.store-cart-link__icon {
	display: inline-grid;
	min-width: 2rem;
	min-height: 2rem;
	place-items: center;
	border-radius: 999px;
	background: rgb(224 108 43 / 12%);
	color: var(--hut-color-accent-strong);
	font-size: var(--hut-font-size-xs);
	text-transform: uppercase;
}

.store-products {
	display: grid;
	gap: var(--hut-space-lg);
}

.store-products__toolbar,
.woocommerce-ordering,
.woocommerce-result-count {
	margin: 0;
}

.store-products__toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: var(--hut-space-sm) var(--hut-space-lg);
	align-items: center;
	justify-content: space-between;
	padding-block-end: var(--hut-space-md);
	border-block-end: 1px solid rgb(223 210 191 / 74%);
}

.woocommerce .woocommerce-result-count {
	color: var(--hut-color-text-muted);
	font-size: var(--hut-font-size-sm);
	font-weight: 750;
}

.woocommerce .woocommerce-ordering select {
	width: auto;
	min-width: min(100%, 14rem);
	background-color: rgb(255 253 248 / 84%);
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
	gap: clamp(var(--hut-space-lg), 3vw, var(--hut-space-xl));
	padding: 0;
	margin: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	content: none;
}

.woocommerce ul.products li.product.store-product-card {
	float: none;
	width: auto;
	margin: 0;
}

.store-product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	min-width: 0;
	border: 1px solid var(--hut-color-border);
	border-radius: var(--hut-radius-lg);
	background: var(--hut-color-surface-raised);
	box-shadow: var(--hut-shadow-warm-sm);
	transition:
		border-color var(--hut-transition-duration) var(--hut-transition-timing),
		box-shadow var(--hut-transition-duration-slow) var(--hut-transition-timing),
		transform var(--hut-transition-duration-slow) var(--hut-transition-timing);
}

.store-product-card:hover,
.store-product-card:focus-within {
	border-color: var(--hut-color-paper-150);
	box-shadow: 0 1.35rem 3rem rgb(13 27 42 / 18%);
	transform: translateY(-5px);
}

.store-product-card__link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
}

.store-product-card__link:hover,
.store-product-card__link:focus-visible {
	color: inherit;
	text-decoration: none;
}

.store-product-card__media {
	position: relative;
	margin: 0;
	padding: var(--hut-space-xs);
	background:
		linear-gradient(135deg, rgb(255 253 248 / 82%), rgb(245 239 230 / 78%)),
		var(--hut-color-surface-muted);
}

.store-product-card__media img {
	width: 100%;
	aspect-ratio: 1 / 1;
	border: 1px solid var(--hut-color-border);
	border-radius: var(--hut-radius-md);
	background: var(--hut-color-surface);
	object-fit: cover;
	box-shadow: var(--hut-shadow-warm-sm);
	transition:
		filter var(--hut-transition-duration) var(--hut-transition-timing),
		transform var(--hut-transition-duration) var(--hut-transition-timing);
}

.store-product-card:hover .store-product-card__media img {
	filter: saturate(1.03) contrast(1.04) brightness(1.02);
	transform: scale(1.025);
}

.store-product-card__badge,
.woocommerce span.onsale {
	position: absolute;
	inset-block-start: var(--hut-space-md);
	inset-inline-start: var(--hut-space-md);
	z-index: 2;
	display: inline-flex;
	align-items: center;
	min-height: 1.8rem;
	padding: 0.22rem 0.62rem;
	border: 1px solid rgb(255 253 248 / 58%);
	border-radius: 999px;
	background: var(--hut-color-accent);
	color: var(--hut-color-button-text-strong);
	font-size: var(--hut-font-size-xs);
	font-weight: 900;
	line-height: var(--hut-line-height-tight);
	text-transform: uppercase;
	box-shadow: 0 0.6rem 1.5rem rgb(13 27 42 / 18%);
}

.store-product-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: var(--hut-space-lg);
}

.store-product-card__type {
	margin-block-end: var(--hut-space-xs);
	color: var(--hut-color-brown-700);
	font-size: var(--hut-font-size-xs);
	font-weight: 900;
	letter-spacing: 0.08em;
	line-height: var(--hut-line-height-tight);
	text-transform: uppercase;
}

.store-product-card__title {
	margin-block-end: var(--hut-space-xs);
	font-size: var(--hut-font-size-lg);
}

.store-product-card__excerpt {
	display: -webkit-box;
	overflow: hidden;
	margin-block-end: var(--hut-space-md);
	color: var(--hut-color-text-muted);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.store-product-card__price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin-block-start: auto;
	color: var(--hut-color-accent-strong);
	font-size: var(--hut-font-size-md);
	font-weight: 900;
}

.store-product-card__price del,
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	color: var(--hut-color-text-subtle);
	font-weight: 700;
	opacity: 0.72;
}

.store-product-card__price ins,
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	text-decoration: none;
}

.store-product-card__actions {
	padding: 0 var(--hut-space-lg) var(--hut-space-lg);
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	border-color: var(--hut-color-accent);
	border-radius: var(--hut-radius-md);
	background: var(--hut-color-accent);
	color: var(--hut-color-button-text-strong);
	font-weight: 850;
	line-height: var(--hut-line-height-tight);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	border-color: var(--hut-color-accent-strong);
	background: var(--hut-color-accent-strong);
	color: var(--hut-color-button-text-strong);
}

.store-product-card__actions .button {
	width: 100%;
}

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--hut-space-xs);
	justify-content: center;
	padding: 0;
	margin: var(--hut-space-xl) 0 0;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0.35rem 0.65rem;
	border: 1px solid var(--hut-color-border);
	border-radius: var(--hut-radius-md);
	background: var(--hut-color-surface);
	color: var(--hut-color-text);
	text-decoration: none;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	border-color: var(--hut-color-accent);
	background: var(--hut-color-accent);
	color: var(--hut-color-button-text-strong);
}

.woocommerce-notices-wrapper,
.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
	margin-block-end: var(--hut-space-lg);
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
	display: grid;
	gap: var(--hut-space-sm);
	padding: var(--hut-space-md) var(--hut-space-lg);
	border: 1px solid var(--hut-color-border);
	border-radius: var(--hut-radius-md);
	background: var(--hut-color-surface-raised);
	box-shadow: var(--hut-shadow-warm-sm);
}

.woocommerce-message {
	border-inline-start: 0.35rem solid var(--hut-color-success);
}

.woocommerce-info {
	border-inline-start: 0.35rem solid var(--hut-color-accent);
}

.woocommerce-error {
	border-inline-start: 0.35rem solid var(--hut-color-error);
}

.woocommerce table.shop_table,
.woocommerce-cart-form,
.cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-MyAccount-navigation,
.woocommerce-MyAccount-content,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: 1px solid var(--hut-color-border);
	border-radius: var(--hut-radius-lg);
	background: var(--hut-color-surface-raised);
	box-shadow: var(--hut-shadow-warm-sm);
}

.woocommerce table.shop_table {
	overflow: hidden;
	border-collapse: separate;
	border-spacing: 0;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: var(--hut-space-md);
	border-color: rgb(223 210 191 / 74%);
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce-MyAccount-navigation,
.woocommerce-MyAccount-content,
.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	padding: var(--hut-space-lg);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	border-color: var(--hut-color-border);
	border-radius: var(--hut-radius-md);
	background: var(--hut-color-surface);
	color: var(--hut-color-text);
}

.woocommerce div.product {
	display: grid;
	gap: clamp(var(--hut-space-xl), 5vw, var(--hut-space-3xl));
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
}

.woocommerce div.product div.images img {
	border: 1px solid var(--hut-color-border);
	border-radius: var(--hut-radius-lg);
	background: var(--hut-color-surface);
	box-shadow: var(--hut-shadow-warm-md);
}

.woocommerce div.product .product_title {
	font-size: clamp(var(--hut-font-size-2xl), 5vw, 4rem);
	line-height: 1;
}

.woocommerce div.product .product-purchase-reassurance {
	display: grid;
	gap: var(--hut-space-xs);
	margin: var(--hut-space-md) 0 var(--hut-space-lg);
	padding: var(--hut-space-md) var(--hut-space-lg);
	border: 1px solid var(--hut-color-border);
	border-radius: var(--hut-radius-md);
	background: var(--hut-color-surface-raised);
	color: var(--hut-color-text-muted);
	font-size: var(--hut-font-size-sm);
	list-style: none;
}

.woocommerce div.product .product-purchase-reassurance li {
	position: relative;
	padding-inline-start: 1.35rem;
}

.woocommerce div.product .product-purchase-reassurance li::before {
	position: absolute;
	inset: 0 auto auto 0;
	color: var(--hut-color-accent);
	content: "\2713";
	font-weight: 700;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--hut-space-xs);
	padding: 0;
	margin: 0 0 var(--hut-space-lg);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	content: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border: 1px solid var(--hut-color-border);
	border-radius: 999px;
	background: var(--hut-color-surface);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	content: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	border-color: rgb(224 108 43 / 42%);
	background: rgb(224 108 43 / 10%);
}

.woocommerce div.product .woocommerce-tabs .panel {
	padding: var(--hut-space-lg);
	border: 1px solid var(--hut-color-border);
	border-radius: var(--hut-radius-lg);
	background: var(--hut-color-surface-raised);
	box-shadow: var(--hut-shadow-warm-sm);
}

.woocommerce div.product .related ul.products,
.woocommerce div.product .upsells ul.products {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 18rem));
	justify-content: start;
}

.woocommerce div.product .related ul.products li.product,
.woocommerce div.product .upsells ul.products li.product {
	width: 100%;
	max-width: 18rem;
}

.woocommerce div.product .related .store-product-card__media img,
.woocommerce div.product .upsells .store-product-card__media img {
	width: 100%;
	max-width: 17rem;
	margin-inline: auto;
}

@media (min-width: 48rem) {
	.store-hero {
		grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.36fr);
	}
}

@media (min-width: 64rem) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
		align-items: start;
	}

	.woocommerce div.product .woocommerce-tabs,
	.woocommerce div.product .related,
	.woocommerce div.product .upsells {
		grid-column: 1 / -1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.store-product-card:hover,
	.store-product-card:hover .store-product-card__media img {
		transform: none;
	}
}
