/*
 * Jahan Afarin, WooCommerce styles.
 *
 * WooCommerce's "general" stylesheet stays loaded as a baseline for small
 * components. Its float-based "layout" stylesheet is removed, the layouts
 * below use CSS grid. Selectors start with "body" where they need to win
 * over WooCommerce's own rules.
 *
 * Contents
 *  1. Book grid + card      6. Single book          11. Checkout (classic)
 *  2. Shop layout           7. Tabs + reviews       12. Cart + checkout blocks
 *  3. Pagination            8. Drawer mini cart     13. My account
 *  4. Buttons               9. Forms                14. Order received
 *  5. Notices              10. Cart (classic)
 */

/* 1. Book grid + card ------------------------------------------------------ */

body .woocommerce ul.products,
body.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* WooCommerce clearfix pseudo-elements would become empty grid cells. */
body .woocommerce ul.products::before,
body .woocommerce ul.products::after,
body.woocommerce ul.products::before,
body.woocommerce ul.products::after {
	display: none;
}

@media (min-width: 40em) {
	body .woocommerce ul.products,
	body.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 64em) {
	body .woocommerce ul.products.columns-4,
	body.woocommerce ul.products.columns-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	body .woocommerce ul.products.columns-5,
	body.woocommerce ul.products.columns-5 {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 1.25rem;
	}
}

body .woocommerce ul.products li.product,
body.woocommerce ul.products li.product,
body .woocommerce ul.products[class*="columns-"] li.product,
body.woocommerce ul.products[class*="columns-"] li.product {
	float: none;
	clear: none;
	width: auto;
	margin: 0;
	padding: 0.75rem;
	display: flex;
	flex-direction: column;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-lg);
	box-shadow: var(--ja-shadow-book);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

body .woocommerce ul.products li.product:hover,
body.woocommerce ul.products li.product:hover,
body .woocommerce ul.products li.product:focus-within,
body.woocommerce ul.products li.product:focus-within {
	transform: translateY(-4px);
	box-shadow: var(--ja-shadow-book-hover);
}

.ja-book__cover {
	position: relative;
	display: block;
	aspect-ratio: 2 / 3;
	margin-block-end: 0.75rem;
	overflow: hidden;
	border-radius: var(--ja-r);
	background: #f3f4f6;
}

body .woocommerce ul.products li.product .ja-book__cover img,
body.woocommerce ul.products li.product .ja-book__cover img {
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}

.ja-book__stock,
.ja-book__sale {
	position: absolute;
	inset-block-start: 0.5rem;
}

.ja-book__stock {
	inset-inline-start: 0.5rem;
}

.ja-book__sale {
	inset-inline-end: 0.5rem;
}

body .woocommerce ul.products li.product .ja-book__title,
body.woocommerce ul.products li.product .ja-book__title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0;
	padding: 0;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.75;
}

.ja-book__title a {
	color: var(--ja-ink);
}

.ja-book__title a:hover {
	color: var(--ja-brand);
}

.ja-book__author {
	overflow: hidden;
	margin-block-start: 0.25rem;
	color: var(--ja-muted);
	font-size: 0.75rem;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.ja-book__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-block-start: auto;
	padding-block-start: 0.625rem;
	border-block-start: 1px solid #f3f4f6;
}

/* Space above the footer line, whether or not the card has an author. */
body .woocommerce ul.products li.product .ja-book__title,
body.woocommerce ul.products li.product .ja-book__title,
.ja-book__author {
	margin-block-end: 0.875rem;
}

body .woocommerce ul.products li.product .ja-book__title:has(+ .ja-book__author),
body.woocommerce ul.products li.product .ja-book__title:has(+ .ja-book__author) {
	margin-block-end: 0;
}

body .woocommerce ul.products li.product .ja-book__price,
body.woocommerce ul.products li.product .ja-book__price {
	display: flex;
	flex-direction: column;
	margin: 0;
	color: var(--ja-brand-dark);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.6;
}

.ja-book__price del {
	color: var(--ja-muted);
	font-size: 0.6875rem;
	font-weight: 400;
	opacity: 1;
}

.ja-book__price ins {
	text-decoration: none;
}

.ja-book__price .woocommerce-Price-currencySymbol {
	color: var(--ja-muted);
	font-size: 0.6875rem;
	font-weight: 400;
}

body .woocommerce ul.products li.product a.ja-book__add,
body.woocommerce ul.products li.product a.ja-book__add {
	flex: none;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--ja-r);
	background: #f3f4f6;
	color: var(--ja-text);
	transition: background-color 0.15s, color 0.15s;
}

body .woocommerce ul.products li.product a.ja-book__add:hover,
body.woocommerce ul.products li.product a.ja-book__add:hover,
body .woocommerce ul.products li.product a.ja-book__add.added,
body.woocommerce ul.products li.product a.ja-book__add.added {
	background: var(--ja-brand);
	color: #fff;
}

/* WooCommerce spinner / tick pseudo-elements do not fit an icon button. */
body .woocommerce a.ja-book__add.loading,
body.woocommerce a.ja-book__add.loading {
	opacity: 0.5;
	padding: 0;
}

body .woocommerce a.ja-book__add.loading::after,
body .woocommerce a.ja-book__add.added::after,
body.woocommerce a.ja-book__add.loading::after,
body.woocommerce a.ja-book__add.added::after {
	display: none;
}

/* The drawer opens after adding, a second "view cart" link is clutter. */
body .woocommerce ul.products li.product .ja-book__foot a.added_to_cart,
body.woocommerce ul.products li.product .ja-book__foot a.added_to_cart {
	display: none;
}

.woocommerce .related,
.woocommerce .upsells,
.woocommerce .cross-sells {
	margin-block-start: 2.5rem;
}

.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2 {
	margin-block-end: 1.5rem;
	padding-block-end: 0.5rem;
	border-block-end: 2px solid var(--ja-brand);
	font-size: 1.25rem;
}

/* 2. Shop layout ----------------------------------------------------------- */

.ja-shop-layout {
	display: grid;
	gap: 1.5rem;
}

.ja-shop-layout__main {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-width: 0;
}

.ja-shop-layout__side {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

@media (min-width: 56em) {
	.ja-shop-layout {
		grid-template-columns: 16rem minmax(0, 1fr);
		align-items: start;
	}

	/* The sidebar comes after the books in the HTML (better for phones and
	   for screen readers) and is placed first visually on wide screens. */
	.ja-shop-layout__side {
		grid-column: 1;
		grid-row: 1;
	}

	.ja-shop-layout__main {
		grid-column: 2;
		grid-row: 1;
	}
}

.ja-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem;
	border-radius: var(--ja-r-lg);
}

.ja-shop-toolbar__title {
	font-size: 1.125rem;
}

body .woocommerce .woocommerce-result-count,
body.woocommerce .woocommerce-result-count {
	float: none;
	margin: 0.125rem 0 0;
	color: var(--ja-muted);
	font-size: 0.8125rem;
}

body .woocommerce .woocommerce-ordering,
body.woocommerce .woocommerce-ordering {
	float: none;
	margin: 0;
}

.woocommerce-ordering select,
.ja-select {
	min-height: 2.5rem;
	padding-block: 0.375rem;
	padding-inline: 0.75rem 2rem;
	background-color: var(--ja-surface-2);
	border: 1px solid var(--ja-line-strong);
	border-radius: var(--ja-r);
	font-size: 0.8125rem;
}

.woocommerce-ordering select:focus {
	outline: none;
	border-color: transparent;
	box-shadow: 0 0 0 2px var(--ja-brand);
}

.ja-archive-desc {
	font-size: 0.9375rem;
}

/* Sidebar widgets */

.ja-widget {
	padding: 1rem;
	border-radius: var(--ja-r-lg);
}

.ja-widget__title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-block-end: 0.75rem;
	padding-block-end: 0.5rem;
	border-block-end: 1px solid var(--ja-line);
	font-size: 0.9375rem;
}

.ja-widget__title .ja-icon {
	color: var(--ja-brand);
}

.ja-cat-list {
	display: grid;
	gap: 0.25rem;
	font-size: 0.875rem;
}

.ja-cat-list__children {
	padding-inline-start: 0.75rem;
}

.ja-cat-list__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.3125rem 0.5rem;
	border-radius: var(--ja-r-sm);
	color: var(--ja-text);
}

.ja-cat-list__link:hover {
	color: var(--ja-brand);
}

.ja-cat-list__count {
	color: var(--ja-muted);
	font-size: 0.75rem;
}

.ja-cat-list__link.is-current {
	background: var(--ja-brand-soft);
	color: var(--ja-brand);
	font-weight: 700;
}

.ja-cat-list__link.is-current .ja-cat-list__count {
	min-width: 1.5rem;
	padding-inline: 0.375rem;
	border-radius: 999px;
	background: var(--ja-brand);
	color: #fff;
	font-size: 0.6875rem;
	text-align: center;
}

.ja-filter-toggle {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--ja-text);
	font-size: 0.875rem;
}

.ja-filter-toggle__box {
	flex: none;
	display: grid;
	place-items: center;
	width: 1.125rem;
	height: 1.125rem;
	border: 1px solid var(--ja-line-strong);
	border-radius: 4px;
	background: var(--ja-surface);
	color: transparent;
}

.ja-filter-toggle.is-active .ja-filter-toggle__box {
	background: var(--ja-brand);
	border-color: var(--ja-brand);
	color: #fff;
}

/* Widgets added from Appearance > Widgets */

.ja-widget ul {
	display: grid;
	gap: 0.375rem;
	font-size: 0.875rem;
}

.ja-widget ul ul {
	margin-block-start: 0.375rem;
	padding-inline-start: 0.75rem;
}

.ja-widget li a {
	color: var(--ja-text);
}

.ja-widget li a:hover {
	color: var(--ja-brand);
}

.ja-widget .count {
	color: var(--ja-muted);
	font-size: 0.75rem;
}

/* 3. Pagination ------------------------------------------------------------ */

body .woocommerce nav.woocommerce-pagination,
body.woocommerce nav.woocommerce-pagination {
	margin-block-start: 1rem;
	text-align: center;
}

body .woocommerce nav.woocommerce-pagination ul,
body.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.375rem;
	margin: 0;
	border: 0;
}

body .woocommerce nav.woocommerce-pagination ul li,
body.woocommerce nav.woocommerce-pagination ul li {
	float: none;
	border: 0;
	overflow: visible;
}

body .woocommerce nav.woocommerce-pagination ul li a,
body .woocommerce nav.woocommerce-pagination ul li span,
body.woocommerce nav.woocommerce-pagination ul li a,
body.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-grid;
	place-items: center;
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 0.75rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r);
	color: var(--ja-text);
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
}

body .woocommerce nav.woocommerce-pagination ul li a:hover,
body.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--ja-surface);
	border-color: var(--ja-brand);
	color: var(--ja-brand);
}

body .woocommerce nav.woocommerce-pagination ul li span.current,
body.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--ja-brand);
	border-color: var(--ja-brand);
	color: #fff;
}

/* 4. Buttons --------------------------------------------------------------- */

body .woocommerce a.button,
body .woocommerce button.button,
body .woocommerce input.button,
body .woocommerce #respond input#submit,
body.woocommerce a.button,
body.woocommerce button.button,
body.woocommerce #respond input#submit,
body .wc-block-components-button:not(.is-link),
body .woocommerce a.button.alt,
body .woocommerce button.button.alt,
body .woocommerce input.button.alt,
body.woocommerce button.button.alt {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0.5rem 1.25rem;
	border: 0;
	border-radius: var(--ja-r);
	background: var(--ja-brand);
	color: #fff;
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition: background-color 0.15s;
}

body .woocommerce a.button:hover,
body .woocommerce button.button:hover,
body .woocommerce input.button:hover,
body .woocommerce #respond input#submit:hover,
body.woocommerce a.button:hover,
body.woocommerce button.button:hover,
body.woocommerce #respond input#submit:hover,
body .wc-block-components-button:not(.is-link):hover,
body .woocommerce a.button.alt:hover,
body .woocommerce button.button.alt:hover,
body .woocommerce input.button.alt:hover,
body.woocommerce button.button.alt:hover {
	background: var(--ja-brand-dark);
	color: #fff;
}

body .woocommerce button.button:disabled,
body .woocommerce button.button:disabled[disabled],
body .woocommerce button.button.disabled,
body.woocommerce button.button.disabled,
body.woocommerce button.button:disabled[disabled] {
	padding: 0.5rem 1.25rem;
	background: var(--ja-line-strong);
	color: #4b5563;
	opacity: 1;
	cursor: not-allowed;
}

/* Secondary, dark buttons: coupon, update cart. */
body .woocommerce .coupon button.button,
body .woocommerce button[name="update_cart"],
body .woocommerce button[name="apply_coupon"] {
	background: #1f2937;
}

body .woocommerce .coupon button.button:hover,
body .woocommerce button[name="update_cart"]:not(:disabled):hover,
body .woocommerce button[name="apply_coupon"]:hover {
	background: #000;
}

/* 5. Notices --------------------------------------------------------------- */

body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	margin: 0 0 1rem;
	padding: 0.875rem 1rem;
	padding-inline-start: 3rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-block-start: 3px solid var(--ja-brand);
	border-radius: var(--ja-r);
	color: var(--ja-text);
	font-size: 0.875rem;
	list-style: none;
}

body .woocommerce-message {
	border-block-start-color: var(--ja-ok-text);
}

body .woocommerce-message::before {
	color: var(--ja-ok-text);
}

body .woocommerce-info {
	border-block-start-color: #2563eb;
}

body .woocommerce-info::before {
	color: #2563eb;
}

body .woocommerce-error {
	border-block-start-color: #b91c1c;
}

body .woocommerce-message::before,
body .woocommerce-info::before,
body .woocommerce-error::before {
	inset-block-start: 0.875rem;
	inset-inline-start: 1rem;
	left: auto;
	right: auto;
}

[dir="rtl"] body .woocommerce-message::before,
[dir="rtl"] body .woocommerce-info::before,
[dir="rtl"] body .woocommerce-error::before,
[dir="rtl"] .woocommerce-message::before,
[dir="rtl"] .woocommerce-info::before,
[dir="rtl"] .woocommerce-error::before {
	right: 1rem;
	left: auto;
}

body .woocommerce-message .button,
body .woocommerce-info .button,
body .woocommerce-error .button {
	order: 2;
	float: none;
	margin-inline-start: auto;
	min-height: 2.25rem;
	padding: 0.25rem 0.875rem;
	font-size: 0.8125rem;
}

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

body .wc-block-components-notice-banner {
	border-radius: var(--ja-r);
	font-size: 0.875rem;
}

/* 6. Single book ----------------------------------------------------------- */

.ja-single-wrap {
	min-width: 0;
}

.ja-single {
	padding: 1.5rem;
}

@media (min-width: 64em) {
	.ja-single {
		padding: 2rem;
	}
}

.ja-single__top {
	display: grid;
	gap: 2rem;
}

@media (min-width: 48em) {
	.ja-single__top {
		grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	}
}

.ja-single__media {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
	width: 100%;
	max-width: 17rem;
	margin-inline: auto;
}

.ja-single__stock,
.ja-single__sale {
	position: absolute;
	inset-block-start: 0.75rem;
	z-index: 5;
	padding: 0.125rem 0.625rem;
	border-radius: 999px;
	font-size: 0.75rem;
	box-shadow: var(--ja-shadow-sm);
}

.ja-single__stock {
	inset-inline-start: 0.75rem;
}

.ja-single__sale {
	inset-inline-end: 0.75rem;
}

.ja-single__sample {
	width: 100%;
}

/* Gallery */

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

body .woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
body.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	margin: 0;
}

body.woocommerce div.product div.images .flex-viewport,
body.woocommerce div.product div.images .woocommerce-product-gallery__wrapper:only-child,
body.woocommerce div.product div.images > .woocommerce-product-gallery__wrapper {
	overflow: hidden;
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-lg);
	background: #f3f4f6;
	box-shadow: var(--ja-shadow-book);
}

body.woocommerce div.product div.images .flex-viewport .woocommerce-product-gallery__wrapper {
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

body.woocommerce div.product div.images img {
	width: 100%;
	height: auto;
}

body.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.5rem;
	margin-block-start: 0.75rem;
}

body.woocommerce div.product div.images .flex-control-thumbs li {
	float: none;
	width: auto;
	margin: 0;
}

body.woocommerce div.product div.images .flex-control-thumbs img {
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-sm);
}

body.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	inset-block-start: auto;
	inset-block-end: 0.75rem;
	inset-inline-end: 0.75rem;
	left: auto;
	right: auto;
}

[dir="rtl"] body.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	left: 0.75rem;
	right: auto;
}

/* Summary */

body .woocommerce div.product div.summary,
body.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	min-width: 0;
}

body.woocommerce div.product .product_title {
	margin: 0;
	font-size: clamp(1.375rem, 1.1rem + 1.4vw, 1.875rem);
	font-weight: 800;
	line-height: 1.6;
	text-wrap: balance;
}

.ja-single__subtitle {
	margin-block-start: -0.875rem;
	color: var(--ja-muted);
	font-size: 0.9375rem;
}

body.woocommerce div.product .woocommerce-product-rating {
	margin: 0;
	font-size: 0.8125rem;
}

.ja-specs {
	padding: 0.25rem 1rem;
	background: var(--ja-surface-2);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-lg);
}

.ja-specs__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.875rem;
}

.ja-specs__table th,
.ja-specs__table td {
	padding: 0.625rem 0;
	text-align: start;
	vertical-align: top;
}

.ja-specs__table tr + tr th,
.ja-specs__table tr + tr td {
	border-block-start: 1px solid var(--ja-line);
}

.ja-specs__table th {
	width: 34%;
	color: var(--ja-muted);
	font-weight: 400;
}

.ja-specs__table td {
	color: var(--ja-ink);
	font-weight: 700;
}

.ja-specs__table td.ja-ltr {
	font-weight: 400;
	text-align: end;
}

[dir="rtl"] .ja-specs__table td.ja-ltr {
	text-align: right;
}

/* Buy box */

.ja-buybox {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem;
	background: var(--ja-brand-soft);
	border: 1px solid var(--ja-brand-soft-line);
	border-radius: var(--ja-r-lg);
}

.ja-buybox__label {
	display: block;
	color: var(--ja-muted);
	font-size: 0.8125rem;
}

body.woocommerce div.product .ja-buybox p.price,
body.woocommerce div.product .ja-buybox span.price {
	margin: 0;
	color: var(--ja-brand-dark);
	font-size: 1.5rem;
	font-weight: 900;
	line-height: 1.5;
}

.ja-buybox .price del {
	color: var(--ja-muted);
	font-size: 0.9375rem;
	font-weight: 400;
	opacity: 1;
}

.ja-buybox .price ins {
	text-decoration: none;
}

.ja-buybox .price .woocommerce-Price-currencySymbol {
	color: var(--ja-text);
	font-size: 0.8125rem;
	font-weight: 400;
}

.ja-buybox__action {
	flex: 1 1 16rem;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.5rem;
}

body.woocommerce div.product .ja-buybox form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem;
	width: 100%;
	margin: 0;
}

body.woocommerce div.product .ja-buybox form.cart::before,
body.woocommerce div.product .ja-buybox form.cart::after {
	display: none;
}

body.woocommerce div.product .ja-buybox form.cart .button {
	float: none;
	flex: 1 1 auto;
	min-height: 3rem;
	padding-inline: 1.5rem;
	box-shadow: var(--ja-shadow-sm);
}

@media (min-width: 40em) {
	body.woocommerce div.product .ja-buybox form.cart .button {
		flex: 0 1 auto;
	}
}

body.woocommerce div.product .ja-buybox form.cart.variations_form {
	flex-direction: column;
	align-items: stretch;
}

body.woocommerce div.product form.cart .variations {
	margin: 0 0 0.75rem;
}

body.woocommerce div.product form.cart .variations select {
	min-height: 2.5rem;
	padding-inline: 0.75rem;
	border: 1px solid var(--ja-line-strong);
	border-radius: var(--ja-r);
	background: var(--ja-surface);
}

body.woocommerce div.product .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

body.woocommerce div.product .ja-buybox p.stock,
body.woocommerce div.product p.stock {
	margin: 0;
	font-size: 0.8125rem;
}

body.woocommerce div.product .stock.in-stock {
	color: var(--ja-ok-text);
}

body.woocommerce div.product .stock.out-of-stock {
	color: #b91c1c;
}

/* Quantity stepper, shared by product and cart pages. */

body .woocommerce .quantity,
body.woocommerce .quantity {
	display: inline-flex;
	align-items: stretch;
	float: none;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--ja-line-strong);
	border-radius: var(--ja-r);
	background: var(--ja-surface);
}

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

body .woocommerce .quantity .qty,
body.woocommerce .quantity .qty {
	width: 3rem;
	min-height: 2.875rem;
	padding: 0;
	border: 0;
	background: none;
	font-size: 0.9375rem;
	font-weight: 700;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.quantity .qty::-webkit-outer-spin-button,
.quantity .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.ja-qty__btn {
	display: grid;
	place-items: center;
	width: 2.5rem;
	border: 0;
	background: none;
	color: #4b5563;
}

.ja-qty__btn:hover {
	background: #f3f4f6;
	color: var(--ja-ink);
}

/* "Sold individually" products have a hidden quantity: no stepper at all. */
.quantity:has(input[type="hidden"]) {
	display: none !important;
}

body.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--ja-text);
	font-size: 0.9375rem;
}

body.woocommerce div.product .product_meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1.25rem;
	padding-block-start: 1rem;
	border-block-start: 1px solid var(--ja-line);
	color: var(--ja-muted);
	font-size: 0.8125rem;
}

/* 7. Tabs + reviews -------------------------------------------------------- */

body.woocommerce div.product .woocommerce-tabs {
	margin-block-start: 2.5rem;
	padding-block-start: 1.5rem;
	border-block-start: 1px solid var(--ja-line);
}

body.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: nowrap;
	gap: 1.5rem;
	overflow-x: auto;
	margin: 0;
	padding: 0;
	border-block-end: 1px solid var(--ja-line);
}

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

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

body.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	margin-block-end: -1px;
	padding: 0 0 0.75rem;
	border-block-end: 2px solid transparent;
	color: var(--ja-muted);
	font-size: 0.9375rem;
	font-weight: 700;
	white-space: nowrap;
}

body.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--ja-ink);
}

body.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	border-block-end-color: var(--ja-brand);
	color: var(--ja-brand);
}

body.woocommerce div.product .woocommerce-tabs .panel {
	margin: 0;
	padding-block: 1.5rem 0;
	font-size: 1rem;
	line-height: 2.1;
}

body.woocommerce div.product .woocommerce-tabs .panel > * + * {
	margin-block-start: 1.25em;
}

body.woocommerce div.product .woocommerce-tabs .panel ul {
	padding-inline-start: 1.5rem;
	list-style: disc;
}

body.woocommerce div.product .woocommerce-tabs .panel ol {
	padding-inline-start: 1.5rem;
	list-style: decimal;
}

body.woocommerce table.shop_attributes {
	max-width: 36rem;
	margin: 0;
	border: 0;
	font-size: 0.875rem;
}

body.woocommerce table.shop_attributes th,
body.woocommerce table.shop_attributes td {
	padding: 0.625rem 0.75rem;
	border: 0;
	border-block-end: 1px solid var(--ja-line);
	background: none;
	font-style: normal;
	text-align: start;
}

body.woocommerce table.shop_attributes th {
	width: 12rem;
	color: var(--ja-muted);
	font-weight: 400;
}

body.woocommerce table.shop_attributes td p {
	padding: 0;
}

/* Reviews */

body.woocommerce #reviews #comments h2,
body.woocommerce #reviews .woocommerce-Reviews-title {
	margin-block-end: 1rem;
	font-size: 1.0625rem;
}

body.woocommerce #reviews #comments ol.commentlist {
	display: grid;
	gap: 1rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

body.woocommerce #reviews #comments ol.commentlist li {
	margin: 0;
}

body.woocommerce #reviews #comments ol.commentlist li img.avatar {
	display: none;
}

body.woocommerce #reviews #comments ol.commentlist li .comment-text {
	margin: 0;
	padding: 1rem;
	background: var(--ja-surface-2);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-lg);
	font-size: 0.875rem;
}

body.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta {
	margin-block-end: 0.375rem;
	color: var(--ja-muted);
	font-size: 0.8125rem;
}

body.woocommerce #reviews #comments ol.commentlist li .comment-text .woocommerce-review__author {
	color: var(--ja-ink);
}

body.woocommerce #review_form #respond {
	padding: 1.25rem;
	background: var(--ja-surface-2);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-lg);
}

body.woocommerce #review_form #respond .comment-reply-title {
	display: block;
	margin-block-end: 0.5rem;
	color: var(--ja-ink);
	font-size: 1rem;
	font-weight: 700;
}

body.woocommerce #review_form #respond p {
	margin: 0;
}

body.woocommerce #review_form #respond textarea,
body.woocommerce #review_form #respond input[type="text"],
body.woocommerce #review_form #respond input[type="email"] {
	width: 100%;
	padding: 0.625rem 0.75rem;
	border: 1px solid var(--ja-line-strong);
	border-radius: var(--ja-r);
	background: var(--ja-surface);
}

body .woocommerce .star-rating,
body.woocommerce .star-rating {
	color: #d97706;
}

body.woocommerce p.stars a {
	color: #d97706;
}

/* 8. Drawer mini cart ------------------------------------------------------ */

.ja-drawer .widget_shopping_cart_content {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

body .ja-drawer ul.woocommerce-mini-cart,
body .ja-drawer ul.cart_list {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	overflow-y: auto;
	margin: 0;
	padding: 0 0 1rem;
	list-style: none;
}

body .ja-drawer .widget_shopping_cart ul.cart_list li.mini_cart_item {
	position: relative;
	display: grid;
	grid-template-columns: 3rem 1fr;
	gap: 0.125rem 0.75rem;
	align-items: start;
	margin: 0;
	padding: 0.625rem;
	padding-inline-end: 2.5rem;
	background: var(--ja-surface-2);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r);
	font-size: 0.8125rem;
}

body .ja-drawer .widget_shopping_cart ul.cart_list li.mini_cart_item::before,
body .ja-drawer .widget_shopping_cart ul.cart_list li.mini_cart_item::after {
	display: none;
}

body .ja-drawer .widget_shopping_cart ul.cart_list li a:not(.remove) {
	display: contents;
	color: var(--ja-ink);
	font-weight: 700;
	line-height: 1.7;
}

body .ja-drawer .widget_shopping_cart ul.cart_list li img {
	float: none;
	grid-row: span 2;
	width: 3rem;
	height: auto;
	margin: 0;
	border-radius: 4px;
}

body .ja-drawer .widget_shopping_cart ul.cart_list li .quantity {
	grid-column: 2;
	display: block;
	border: 0;
	background: none;
	color: var(--ja-muted);
}

body .ja-drawer .widget_shopping_cart ul.cart_list li dl.variation {
	grid-column: 2;
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--ja-muted);
}

body .ja-drawer .widget_shopping_cart ul.cart_list li a.remove {
	position: absolute;
	inset-block-start: 50%;
	inset-inline-end: 0.5rem;
	left: auto;
	right: auto;
	display: grid;
	place-items: center;
	width: 1.75rem;
	height: 1.75rem;
	margin-block-start: -0.875rem;
	border-radius: 50%;
	color: #b91c1c !important;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1;
}

[dir="rtl"] body .ja-drawer .widget_shopping_cart ul.cart_list li a.remove {
	left: 0.5rem;
	right: auto;
}

body .ja-drawer .widget_shopping_cart ul.cart_list li a.remove:hover {
	background: #b91c1c;
	color: #fff !important;
}

body .ja-drawer .widget_shopping_cart .woocommerce-mini-cart__total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0;
	padding: 1rem 0 0.75rem;
	border-block-start: 1px solid var(--ja-line);
	color: var(--ja-ink);
	font-size: 0.9375rem;
}

body .ja-drawer .widget_shopping_cart .woocommerce-mini-cart__total .amount {
	color: var(--ja-brand-dark);
	font-size: 1.125rem;
	font-weight: 800;
}

body .ja-drawer .widget_shopping_cart .woocommerce-mini-cart__buttons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem;
	margin: 0;
}

body .ja-drawer .widget_shopping_cart .woocommerce-mini-cart__buttons::before,
body .ja-drawer .widget_shopping_cart .woocommerce-mini-cart__buttons::after {
	display: none;
}

body .ja-drawer .widget_shopping_cart .woocommerce-mini-cart__buttons .button {
	margin: 0;
}

body .ja-drawer .widget_shopping_cart .woocommerce-mini-cart__buttons .button:not(.checkout) {
	background: #f3f4f6;
	color: var(--ja-ink);
}

body .ja-drawer .widget_shopping_cart .woocommerce-mini-cart__buttons .button:not(.checkout):hover {
	background: var(--ja-line);
	color: var(--ja-ink);
}

body .ja-drawer .woocommerce-mini-cart__empty-message {
	margin: 0;
	padding-block: 2.5rem;
	color: var(--ja-muted);
	font-size: 0.875rem;
	text-align: center;
}

/* 9. Forms ----------------------------------------------------------------- */

/* WooCommerce reads these variables for its own default field styles. */
:root {
	--wc-form-border-color: var(--ja-line-strong);
	--wc-form-border-radius: var(--ja-r);
	--wc-form-border-width: 1px;
	--wc-form-color-background: var(--ja-surface);
	--wc-form-color-text: var(--ja-text);
}

body .woocommerce form .form-row {
	display: block;
	float: none;
	width: auto;
	margin: 0 0 1rem;
	padding: 0;
}

body .woocommerce form .form-row label {
	display: block;
	margin-block-end: 0.25rem;
	color: var(--ja-text);
	font-size: 0.875rem;
	line-height: 1.7;
}

body .woocommerce form .form-row .required {
	color: #b91c1c;
	text-decoration: none;
}

body .woocommerce form .form-row input.input-text,
body .woocommerce form .form-row textarea,
body .woocommerce form .form-row textarea.input-text,
body .woocommerce form .form-row select,
body .woocommerce-page form .form-row input.input-text,
body .woocommerce .coupon .input-text,
body .woocommerce table.cart td.actions .coupon .input-text {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line-strong);
	border-radius: var(--ja-r);
	font-size: 0.9375rem;
	line-height: 1.6;
}

body .woocommerce form .form-row textarea.input-text {
	min-height: 5rem;
}

body .woocommerce form .form-row input.input-text:focus,
body .woocommerce form .form-row textarea.input-text:focus,
body .woocommerce form .form-row select:focus,
body .woocommerce .coupon .input-text:focus {
	outline: none;
	border-color: transparent;
	box-shadow: 0 0 0 2px var(--ja-brand);
}

body .woocommerce form .form-row.woocommerce-invalid input.input-text,
body .woocommerce form .form-row.woocommerce-invalid select {
	border-color: #b91c1c;
}

/* Phone, postcode, email: typed left to right even on an RTL page. */
body .woocommerce form .form-row input[type="tel"],
body .woocommerce form .form-row input[type="email"],
body .woocommerce form .form-row input#billing_postcode,
body .woocommerce form .form-row input#shipping_postcode {
	direction: ltr;
	text-align: end;
}

[dir="rtl"] body .woocommerce form .form-row input[type="tel"],
[dir="rtl"] body .woocommerce form .form-row input[type="email"],
[dir="rtl"] body .woocommerce form .form-row input#billing_postcode,
[dir="rtl"] body .woocommerce form .form-row input#shipping_postcode {
	text-align: right;
}

body .select2-container--default .select2-selection--single {
	height: 2.75rem;
	border: 1px solid var(--ja-line-strong);
	border-radius: var(--ja-r);
}

body .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding-inline: 0.75rem 2rem;
	color: var(--ja-text);
	line-height: 2.625rem;
}

body .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 2.625rem;
}

body .select2-container--default .select2-results__option--highlighted[aria-selected],
body .select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--ja-brand);
}

body .select2-dropdown {
	border-color: var(--ja-line-strong);
	font-family: var(--ja-font);
	font-size: 0.875rem;
}

body .woocommerce form.login,
body .woocommerce form.register,
body .woocommerce form.checkout_coupon,
body .woocommerce form.woocommerce-ResetPassword {
	margin: 0;
	padding: 1.5rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-xl);
	box-shadow: var(--ja-shadow-sm);
}

body .woocommerce .col2-set {
	display: grid;
	gap: 1.5rem;
	width: auto;
	float: none;
}

body .woocommerce .col2-set::before,
body .woocommerce .col2-set::after {
	display: none;
}

body .woocommerce .col2-set .col-1,
body .woocommerce .col2-set .col-2 {
	float: none;
	width: auto;
	max-width: none;
}

@media (min-width: 48em) {
	body .woocommerce .u-columns.col2-set,
	body .woocommerce-account .col2-set.addresses {
		grid-template-columns: 1fr 1fr;
	}
}

/* Shop pages rendered through page.php */

.ja-shop-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1.375rem;
}

.ja-shop-title .ja-icon {
	color: var(--ja-brand);
}

.ja-shop-page > * + * {
	margin-block-start: 1.5rem;
}

/* Shared table look: cart, order review, order details, account orders. */

body .woocommerce table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	border-radius: 0;
	font-size: 0.875rem;
}

body .woocommerce table.shop_table th,
body .woocommerce table.shop_table td {
	padding: 0.75rem 0.5rem;
	border: 0;
	border-block-end: 1px solid var(--ja-line);
	text-align: start;
	vertical-align: middle;
}

body .woocommerce table.shop_table thead th {
	color: var(--ja-muted);
	font-size: 0.8125rem;
	font-weight: 400;
}

body .woocommerce table.shop_table tbody tr:last-child td,
body .woocommerce table.shop_table tbody tr:last-child th,
body .woocommerce .cart_totals table.shop_table tr:last-child th,
body .woocommerce .cart_totals table.shop_table tr:last-child td,
body .woocommerce table.shop_table tfoot tr:last-child th,
body .woocommerce table.shop_table tfoot tr:last-child td {
	border-block-end: 0;
}

body .woocommerce table.shop_table tfoot th,
body .woocommerce table.shop_table tfoot td {
	border-block-start: 0;
	font-weight: 400;
}

body .woocommerce table.shop_table .order-total th,
body .woocommerce table.shop_table .order-total td {
	color: var(--ja-ink);
	font-size: 0.9375rem;
	font-weight: 700;
}

body .woocommerce table.shop_table .order-total .amount {
	color: var(--ja-brand-dark);
}

/* 10. Cart (classic shortcode) --------------------------------------------- */

.woocommerce-cart .ja-shop-page > .woocommerce {
	display: grid;
	gap: 1.5rem;
	align-items: start;
}

.woocommerce-cart .ja-shop-page > .woocommerce > * {
	min-width: 0;
	margin: 0;
}

@media (min-width: 64em) {
	.woocommerce-cart .ja-shop-page > .woocommerce {
		grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
	}

	.woocommerce-cart .ja-shop-page > .woocommerce > .woocommerce-notices-wrapper,
	.woocommerce-cart .ja-shop-page > .woocommerce > .cart-empty,
	.woocommerce-cart .ja-shop-page > .woocommerce > .return-to-shop,
	.woocommerce-cart .ja-shop-page > .woocommerce > .wc-empty-cart-message {
		grid-column: 1 / -1;
	}
}

body .woocommerce form.woocommerce-cart-form,
body .woocommerce .cart-collaterals .cart_totals {
	padding: 1.5rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-xl);
	box-shadow: var(--ja-shadow-sm);
}

body .woocommerce .cart-collaterals,
body .woocommerce .cart-collaterals .cart_totals {
	float: none;
	width: auto;
}

body .woocommerce .cart-collaterals::before,
body .woocommerce .cart-collaterals::after {
	display: none;
}

body .woocommerce .cart-collaterals .cross-sells {
	float: none;
	width: auto;
	margin: 1.5rem 0 0;
}

body .woocommerce table.cart img {
	width: 3rem;
	border-radius: 4px;
	box-shadow: none;
}

body .woocommerce table.cart td.product-name a {
	color: var(--ja-ink);
	font-weight: 700;
}

body .woocommerce table.cart td.product-name a:hover {
	color: var(--ja-brand);
}

body .woocommerce table.cart td.product-subtotal {
	color: var(--ja-brand-dark);
	font-weight: 700;
}

body .woocommerce table.cart a.remove {
	display: grid;
	place-items: center;
	width: 1.75rem;
	height: 1.75rem;
	color: #b91c1c !important;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1;
}

body .woocommerce table.cart a.remove:hover {
	background: #b91c1c;
	color: #fff !important;
}

body .woocommerce table.cart .quantity .qty {
	min-height: 2.25rem;
	width: 2.5rem;
}

body .woocommerce table.cart .ja-qty__btn {
	width: 2rem;
}

body .woocommerce table.cart td.actions {
	padding-block-start: 1.25rem;
	border-block-end: 0;
}

body .woocommerce table.cart td.actions::before,
body .woocommerce table.cart td.actions::after {
	display: none;
}

body .woocommerce table.cart td.actions {
	display: table-cell;
}

body .woocommerce table.cart td.actions > .coupon,
body .woocommerce table.cart td.actions .coupon {
	display: flex;
	gap: 0.5rem;
	float: none;
	max-width: 24rem;
	margin: 0 0 0.75rem;
	padding: 0;
}

body .woocommerce table.cart td.actions .coupon .input-text {
	flex: 1;
	float: none;
	width: auto;
	margin: 0;
	min-height: 2.75rem;
}

body .woocommerce table.cart td.actions .coupon button.button {
	float: none;
	flex: none;
	width: auto;
}

body .woocommerce table.cart td.actions > button.button {
	float: none;
}

@media (min-width: 48em) {
	body .woocommerce table.cart td.actions {
		text-align: end;
	}

	body .woocommerce table.cart td.actions > .coupon {
		float: inline-start;
		margin: 0;
	}

	[dir="rtl"] body .woocommerce table.cart td.actions > .coupon {
		float: right;
	}
}

body .woocommerce .cart_totals h2 {
	margin-block-end: 0.75rem;
	padding-block-end: 0.75rem;
	border-block-end: 1px solid var(--ja-line);
	font-size: 0.9375rem;
}

body .woocommerce .cart_totals table.shop_table th {
	width: 40%;
	color: var(--ja-muted);
	font-weight: 400;
}

body .woocommerce .cart_totals table.shop_table td {
	text-align: end;
}

body .woocommerce .cart_totals .woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

body .woocommerce .cart_totals .wc-proceed-to-checkout {
	padding: 1rem 0 0;
}

body .woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	width: 100%;
	min-height: 3rem;
	margin: 0;
	padding: 0.5rem 1rem;
	border-radius: var(--ja-r-lg);
	font-size: 0.9375rem;
}

.woocommerce-cart .cart-empty,
.woocommerce-cart .wc-empty-cart-message .cart-empty {
	padding: 2.5rem 1rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-block-start: 3px solid #2563eb;
	border-radius: var(--ja-r-xl);
	text-align: center;
	justify-content: center;
}

.woocommerce-cart .return-to-shop {
	text-align: center;
}

/* Small screens: WooCommerce stacks the cart rows, tidy that view. */
@media (max-width: 48em) {
	body .woocommerce table.shop_table_responsive tr td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		text-align: end !important;
	}

	body .woocommerce table.shop_table_responsive tr td::before {
		float: none;
		color: var(--ja-muted);
		font-weight: 400;
	}

	body .woocommerce table.shop_table_responsive tr td.product-remove,
	body .woocommerce table.shop_table_responsive tr td.actions {
		display: block;
	}

	body .woocommerce table.shop_table_responsive tr td.product-thumbnail {
		display: none;
	}

	body .woocommerce table.shop_table_responsive tbody tr {
		display: block;
		padding-block: 0.5rem;
		border-block-end: 1px solid var(--ja-line);
	}

	body .woocommerce table.shop_table_responsive tbody tr td {
		border: 0;
		padding-block: 0.375rem;
		background: none !important;
	}
}

/* 11. Checkout (classic shortcode) ----------------------------------------- */

body .woocommerce form.checkout {
	display: grid;
	gap: 1.5rem;
	align-items: start;
}

body .woocommerce form.checkout > * {
	min-width: 0;
}

body .woocommerce form.checkout #customer_details,
body .woocommerce form.checkout #order_review {
	padding: 1.5rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-xl);
	box-shadow: var(--ja-shadow-sm);
}

body .woocommerce form.checkout #order_review_heading {
	display: none;
}

@media (min-width: 64em) {
	body .woocommerce form.checkout {
		grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
	}

	body .woocommerce form.checkout > .woocommerce-NoticeGroup,
	body .woocommerce form.checkout > .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
	}

	body .woocommerce form.checkout #order_review {
		position: sticky;
		inset-block-start: 1rem;
	}
}

body .woocommerce form.checkout h3 {
	margin-block-end: 1rem;
	padding-block-end: 0.5rem;
	border-block-end: 1px solid var(--ja-line);
	font-size: 0.9375rem;
}

body .woocommerce form.checkout h3#ship-to-different-address {
	border: 0;
	padding: 0;
}

body .woocommerce form.checkout h3#ship-to-different-address label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 700;
}

@media (min-width: 40em) {
	body .woocommerce form.checkout .woocommerce-billing-fields__field-wrapper,
	body .woocommerce form.checkout .woocommerce-shipping-fields__field-wrapper {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 1rem;
	}

	body .woocommerce form.checkout .form-row-wide,
	body .woocommerce form.checkout .notes {
		grid-column: 1 / -1;
	}
}

body .woocommerce-checkout-review-order-table td.product-total,
body .woocommerce-checkout-review-order-table tfoot td {
	text-align: end;
}

body .woocommerce-checkout #payment {
	margin-block-start: 1rem;
	background: none;
	border-radius: 0;
}

body .woocommerce-checkout #payment ul.payment_methods {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}

body .woocommerce-checkout #payment ul.payment_methods::before,
body .woocommerce-checkout #payment ul.payment_methods::after {
	display: none;
}

body .woocommerce-checkout #payment ul.payment_methods li {
	margin: 0;
	padding: 0.75rem;
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-lg);
	font-size: 0.875rem;
	line-height: 1.8;
}

body .woocommerce-checkout #payment ul.payment_methods li:has(input:checked) {
	background: var(--ja-brand-soft);
	border-color: var(--ja-brand);
}

body .woocommerce-checkout #payment ul.payment_methods li label {
	display: inline;
	font-weight: 700;
}

body .woocommerce-checkout #payment ul.payment_methods li input {
	margin-inline-end: 0.5rem;
	accent-color: var(--ja-brand);
}

body .woocommerce-checkout #payment ul.payment_methods li img {
	display: inline-block;
	max-height: 1.5rem;
	margin-inline-start: 0.5rem;
	vertical-align: middle;
}

body .woocommerce-checkout #payment div.payment_box {
	margin: 0.5rem 0 0;
	padding: 0.625rem 0.75rem;
	background: var(--ja-surface);
	border-radius: var(--ja-r);
	color: var(--ja-muted);
	font-size: 0.8125rem;
}

body .woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

body .woocommerce-checkout #payment div.form-row.place-order {
	margin: 0;
	padding: 1rem 0 0;
}

body .woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
	margin-block-end: 1rem;
	color: var(--ja-muted);
	font-size: 0.8125rem;
}

body .woocommerce-checkout #payment #place_order {
	float: none;
	display: flex;
	width: 100%;
	min-height: 3rem;
	border-radius: var(--ja-r-lg);
	font-size: 0.9375rem;
}

body .woocommerce form.checkout_coupon,
body .woocommerce form.woocommerce-form-login {
	margin-block-end: 1.5rem;
}

/* 12. Cart + checkout blocks ----------------------------------------------- */

body .wc-block-cart,
body .wc-block-checkout {
	font-size: 0.9375rem;
}

body .wc-block-components-sidebar-layout .wc-block-components-main,
body .wc-block-components-sidebar-layout .wc-block-components-sidebar {
	padding: 1.5rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-xl);
	box-shadow: var(--ja-shadow-sm);
}

@media (min-width: 44em) {
	body .wc-block-components-sidebar-layout {
		gap: 1.5rem;
	}

	body .wc-block-components-sidebar-layout .wc-block-components-main {
		width: calc(65% - 0.75rem);
		padding-inline-end: 1.5rem;
	}

	body .wc-block-components-sidebar-layout .wc-block-components-sidebar {
		width: calc(35% - 0.75rem);
		padding-inline-start: 1.5rem;
	}
}

body .wc-block-components-product-name {
	color: var(--ja-ink);
	font-weight: 700;
}

body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--ja-brand-dark);
}

body .wc-block-components-text-input input,
body .wc-block-components-text-input input[type="text"],
body .wc-block-components-text-input input[type="email"],
body .wc-block-components-text-input input[type="tel"],
body .wc-blocks-components-select .wc-blocks-components-select__select {
	border-color: var(--ja-line-strong);
	border-radius: var(--ja-r);
	font-family: inherit;
}

body .wc-block-components-text-input input:focus,
body .wc-blocks-components-select .wc-blocks-components-select__select:focus {
	box-shadow: 0 0 0 2px var(--ja-brand);
	border-color: transparent;
}

body .wc-block-components-radio-control__option-checked,
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	box-shadow: inset 0 0 0 2px var(--ja-brand);
	border-radius: var(--ja-r);
}

body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--ja-brand);
	border-color: var(--ja-brand);
}

body .wc-block-cart__submit-button,
body .wc-block-components-checkout-place-order-button {
	width: 100%;
	min-height: 3rem;
	border-radius: var(--ja-r-lg);
}

/* 13. My account ----------------------------------------------------------- */

.woocommerce-account .ja-shop-page > .woocommerce {
	display: grid;
	gap: 1.5rem;
	align-items: start;
}

@media (min-width: 56em) {
	.woocommerce-account.logged-in .ja-shop-page > .woocommerce {
		grid-template-columns: 16rem minmax(0, 1fr);
	}

	.woocommerce-account.logged-in .ja-shop-page > .woocommerce > .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
	}
}

body .woocommerce-account .woocommerce-MyAccount-navigation,
body .woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
	padding: 1rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-xl);
	box-shadow: var(--ja-shadow-sm);
}

body .woocommerce-account .woocommerce-MyAccount-content {
	padding: 1.5rem;
	min-width: 0;
}

body .woocommerce-account .woocommerce-MyAccount-content > * + * {
	margin-block-start: 1rem;
}

body .woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

body .woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.5rem 0.75rem;
	border-radius: var(--ja-r);
	color: var(--ja-text);
	font-size: 0.875rem;
}

body .woocommerce-account .woocommerce-MyAccount-navigation a:hover {
	background: #f3f4f6;
}

body .woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
	background: var(--ja-brand-soft);
	color: var(--ja-brand);
	font-weight: 700;
}

body .woocommerce-account .addresses .title h2,
body .woocommerce-account .addresses .title h3 {
	float: none;
	font-size: 1rem;
}

body .woocommerce-account .addresses .title .edit {
	float: none;
	font-size: 0.8125rem;
}

body .woocommerce-account fieldset {
	margin: 1.5rem 0 0;
	padding: 1rem;
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-lg);
}

body .woocommerce-account fieldset legend {
	padding-inline: 0.5rem;
	font-weight: 700;
}

/* 14. Order received ------------------------------------------------------- */

body .woocommerce ul.order_details {
	display: grid;
	gap: 0.75rem;
	margin: 0 0 1.5rem;
	padding: 1.25rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-xl);
	list-style: none;
}

body .woocommerce ul.order_details::before,
body .woocommerce ul.order_details::after {
	display: none;
}

@media (min-width: 40em) {
	body .woocommerce ul.order_details {
		grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
	}
}

body .woocommerce ul.order_details li {
	float: none;
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--ja-muted);
	font-size: 0.75rem;
	text-transform: none;
}

body .woocommerce ul.order_details li strong {
	display: block;
	color: var(--ja-ink);
	font-size: 0.9375rem;
}

body .woocommerce .woocommerce-order-details,
body .woocommerce .woocommerce-customer-details {
	margin: 0 0 1.5rem;
	padding: 1.5rem;
	background: var(--ja-surface);
	border: 1px solid var(--ja-line);
	border-radius: var(--ja-r-xl);
}

body .woocommerce .woocommerce-order-details__title,
body .woocommerce .woocommerce-column__title {
	margin-block-end: 0.75rem;
	font-size: 1rem;
}

body .woocommerce .woocommerce-customer-details address {
	padding: 0;
	border: 0;
	font-style: normal;
	line-height: 2;
}

body .woocommerce .woocommerce-thankyou-order-received {
	margin-block-end: 1.5rem;
	padding: 1rem 1.25rem;
	background: var(--ja-ok-bg);
	border: 1px solid var(--ja-ok-line);
	border-radius: var(--ja-r-lg);
	color: var(--ja-ok-text);
	font-weight: 700;
}

/* Block widgets placed in the shop sidebar. */

.ja-widget h2,
.ja-widget h3,
.ja-widget .wp-block-heading,
.ja-widget .wp-block-search__label {
	display: block;
	margin-block-end: 0.75rem;
	padding-block-end: 0.5rem;
	border-block-end: 1px solid var(--ja-line);
	font-size: 0.9375rem;
	font-weight: 700;
}

.ja-widget .wp-block-search__inside-wrapper {
	gap: 0.5rem;
}

.ja-widget .wp-block-search__input {
	min-width: 0;
	min-height: 2.5rem;
	padding: 0.375rem 0.75rem;
	border: 1px solid var(--ja-line-strong);
	border-radius: var(--ja-r);
}

.ja-widget .wp-block-search__button {
	margin: 0;
	padding: 0.375rem 0.875rem;
	border: 0;
	border-radius: var(--ja-r);
	background: var(--ja-brand);
	color: #fff;
	font-size: 0.8125rem;
	font-weight: 700;
}

/* The checkout block draws its own box around the order summary; inside the
   theme's card that would be a box in a box. */
body .wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block {
	border: 0;
}

body .wc-block-checkout .wc-block-components-sidebar {
	padding: 0.75rem;
}

/* Accessibility overrides (WCAG AA contrast) --------------------------------
   WooCommerce greys out breadcrumbs (#767676) and fades crossed-out prices
   to 70% opacity. On this background both fall under the 4.5:1 minimum. */

body .woocommerce .woocommerce-breadcrumb,
body.woocommerce .woocommerce-breadcrumb,
body .woocommerce .woocommerce-breadcrumb a,
body.woocommerce .woocommerce-breadcrumb a {
	margin: 0;
	color: var(--ja-muted);
	font-size: 0.8125rem;
}

body .woocommerce .woocommerce-breadcrumb a:hover,
body.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--ja-brand);
}

body .woocommerce ul.products li.product .ja-book__price del,
body.woocommerce ul.products li.product .ja-book__price del,
body.woocommerce div.product .ja-buybox .price del {
	color: var(--ja-muted);
	opacity: 1;
}

body .woocommerce ul.products li.product .ja-book__price ins,
body.woocommerce ul.products li.product .ja-book__price ins {
	font-weight: 700;
}

/* Links inside sentences must not rely on colour alone. */
body .woocommerce-privacy-policy-text a,
body .woocommerce-terms-and-conditions-checkbox-text a,
body .woocommerce-info a:not(.button),
body .woocommerce-message a:not(.button),
body .woocommerce-error a:not(.button),
body .woocommerce-MyAccount-content p a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
