/* WooCommerce storefront: shop, product, cart, checkout and account. */
.sa-store {
	padding-block: clamp(20px, 3vw, 36px) var(--sa-section);
}

.woocommerce .woocommerce-breadcrumb {
	margin: 0 0 18px;
	color: var(--sa-muted);
	font-size: 14px;
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--sa-rose-deep);
	text-decoration: none;
}

.sa-crumb-sep {
	margin-inline: 8px;
	color: var(--sa-rose-soft);
}

.woocommerce-products-header {
	margin-block-end: 18px;
	text-align: center;
}

.woocommerce-products-header__title.page-title {
	font-size: clamp(28px, 3.4vw, 42px);
}

.term-description {
	color: var(--sa-muted);
}

.sa-chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-block-end: 22px;
}

.sa-chip {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 4px 18px;
	background: var(--sa-card);
	border: 1px solid var(--sa-border);
	border-radius: 22px;
	color: var(--sa-ink);
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.sa-chip:hover {
	border-color: var(--sa-rose);
	color: var(--sa-rose-deep);
}

.sa-chip.is-active {
	background: var(--sa-rose-deep);
	border-color: var(--sa-rose-deep);
	color: #fff;
}

.woocommerce .woocommerce-ordering {
	float: none;
	display: flex;
	justify-content: flex-end;
	margin: 0 0 18px;
}

.woocommerce .woocommerce-ordering select {
	min-height: 44px;
	padding: 6px 14px;
	background-color: #fff;
	border: 1px solid #d9c3b9;
	border-radius: 10px;
	color: var(--sa-ink);
	font-family: inherit;
	font-size: 15px;
}

.woocommerce nav.woocommerce-pagination {
	margin-block-start: 30px;
}

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

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

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 42px;
	padding: 10px;
	background: var(--sa-card);
	border: 1px solid var(--sa-border);
	border-radius: 10px;
	color: var(--sa-ink);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--sa-rose-deep);
	color: #fff;
}

/* Notices */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
	margin-block-end: 20px;
	background: var(--sa-card);
	border-block-start-color: var(--sa-rose);
	border-radius: 0 0 10px 10px;
	color: var(--sa-ink);
}

.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before {
	color: var(--sa-rose);
}

/* Shared WooCommerce buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit {
	min-height: 46px;
	padding: 10px 24px;
	background: var(--sa-rose-deep);
	border-radius: 10px;
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
	transition: background-color .2s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit:hover {
	background: var(--sa-wine);
	color: #fff;
}

/* Single product */
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: start;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: 100%;
	margin: 0;
}

.woocommerce div.product div.images {
	padding: clamp(10px, 1.5vw, 20px);
	background: var(--sa-paper);
	border-radius: var(--sa-radius);
}

.woocommerce div.product div.images img {
	border-radius: 6px;
}

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

.woocommerce div.product .product_title {
	font-size: clamp(26px, 3vw, 38px);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin-block: 10px 14px;
	color: var(--sa-wine);
	font-size: clamp(22px, 2.2vw, 28px);
	font-weight: 800;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	margin-block-end: 18px;
	color: var(--sa-muted);
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	margin-block-end: 20px;
}

.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after {
	display: none;
}

.woocommerce div.product form.cart div.quantity,
.woocommerce div.product form.cart .button {
	float: none;
	margin: 0;
}

.woocommerce .quantity .qty {
	width: 4.2em;
	min-height: 46px;
	background: #fff;
	border: 1px solid #d9c3b9;
	border-radius: 10px;
	color: var(--sa-ink);
	font-family: inherit;
	font-size: 16px;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1 1 200px;
	max-width: 340px;
	font-size: 17px;
}

.woocommerce div.product .product_meta {
	color: var(--sa-muted);
	font-size: 14px;
}

.woocommerce div.product .product_meta a {
	color: var(--sa-rose-deep);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 16px;
	padding: 0;
	border-block-end: 1px solid var(--sa-border);
}

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

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 10px 18px;
	color: var(--sa-muted);
	font-weight: 700;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	border-block-end: 3px solid var(--sa-rose-deep);
	color: var(--sa-rose-deep);
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
	margin-block-end: 8px;
	font-size: 22px;
}

.woocommerce div.product .related > h2 {
	margin-block: 10px 22px;
	font-size: clamp(24px, 2.6vw, 32px);
	text-align: center;
}

/* Reviews form */
.woocommerce #reviews #comment,
.woocommerce #review_form input[type="text"],
.woocommerce #review_form input[type="email"] {
	width: 100%;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #d9c3b9;
	border-radius: 10px;
	font-family: inherit;
}

.woocommerce p.stars a {
	color: #d29a2e;
}

/* Classic forms: account login, address and any shortcode cart or checkout. */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row .select2-selection {
	min-height: 46px;
	padding: 10px 14px;
	background: #fff;
	border: 1px solid #d9c3b9;
	border-radius: 10px;
	color: var(--sa-ink);
	font-family: inherit;
	font-size: 16px;
}

.woocommerce form .form-row label {
	font-weight: 700;
	line-height: 1.7;
}

.woocommerce form.login,
.woocommerce form.register {
	background: var(--sa-card);
	border-color: var(--sa-border);
	border-radius: var(--sa-radius);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	padding: 8px;
	background: var(--sa-card);
	border: 1px solid var(--sa-border);
	border-radius: var(--sa-radius);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 8px 12px;
	border-radius: 8px;
	color: var(--sa-ink);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--sa-blush);
	color: var(--sa-wine);
}

/* Block cart and checkout */
.wc-block-cart,
.wc-block-checkout,
.wc-block-components-sidebar-layout {
	font-family: var(--sa-font);
}

.wp-block-woocommerce-cart.alignwide,
.wp-block-woocommerce-checkout.alignwide {
	margin-inline: 0;
	max-width: none;
}

.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button {
	min-height: 50px;
	background-color: var(--sa-rose-deep);
	border-radius: 10px;
	color: #fff;
	font-family: inherit;
	font-weight: 700;
	text-decoration: none;
}

.wc-block-components-button:not(.is-link):hover {
	background-color: var(--sa-wine);
	color: #fff;
}

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox .components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select {
	border-color: #d9c3b9 !important;
	border-radius: 10px !important;
	font-family: inherit !important;
}

.wc-block-components-product-name {
	color: var(--sa-ink);
	font-weight: 700;
	text-decoration: none;
}

.wc-block-components-title,
.wc-block-cart__totals-title {
	color: var(--sa-ink);
	font-weight: 800;
}

.wc-block-components-notice-banner {
	border-radius: 10px;
}

.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
	font-size: 26px;
}

@media (max-width: 860px) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce .woocommerce-ordering {
		justify-content: center;
	}
}

/* Related products: a short row stays centred. */
.woocommerce div.product .related ul.products.sa-products {
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 340px));
	justify-content: center;
}

/* The "new in store" suggestions shown in an empty cart. */
.wc-block-grid__products {
	gap: 18px;
	margin: 0;
}

.wc-block-grid__product {
	padding: 12px;
	background: var(--sa-card);
	border: 1px solid var(--sa-border) !important;
	border-radius: var(--sa-radius);
}

.wc-block-grid__product-image img {
	width: 100%;
	aspect-ratio: 4 / 4.6;
	object-fit: contain;
}

.wc-block-grid__product-link,
.wc-block-grid__product-title {
	color: var(--sa-ink);
	font-weight: 800;
	text-decoration: none;
}

.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wc-block-grid__product-add-to-cart .add_to_cart_button {
	padding: 8px 20px;
	background: var(--sa-rose-deep);
	border-radius: 10px;
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
}

.wc-block-grid__product-add-to-cart .wp-block-button__link:hover {
	background: var(--sa-wine);
	color: #fff;
}

.wc-block-cart__empty-cart__title {
	color: var(--sa-rose-deep);
}

/* Login form: a comfortable reading width. */
.woocommerce-account:not(.logged-in) .sa-page__content > .woocommerce {
	max-width: 620px;
	margin-inline: auto;
}

/* The ordering notice takes the add-to-cart form's place in a product's summary. */
.woocommerce div.product div.summary .sa-notice {
	justify-content: flex-start;
	width: auto;
	margin: 0 0 20px;
}
