/*
 * Product card tiles (category "images" layout).
 * Scoped to product tables that output a View button, so tables without
 * Name/Button columns are not affected. Matches the "Browse by Product
 * Category" cards: centered title and a red View button with an arrow.
 * Selectors follow the catalog-ims chain so they outrank its table link styles;
 * !important on display overrides the catalog-ims "td a { display: inline !important }" rule.
 */
/* Card grid spacing to match the "Browse by Product Category" grid: 4 / 3 / 1 per row. */
section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) {
	width: 100% !important;
}

section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody {
	column-gap: 2.1%;
	row-gap: 30px;
}

section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody tr {
	flex: 0 0 23.4%;
	width: 23.4%;
	max-width: 23.4%;
	border-color: #ececec !important;
}

@media (max-width: 991.98px) {
	section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody tr {
		flex-basis: 31.9%;
		width: 31.9%;
		max-width: 31.9%;
	}
}

@media (max-width: 767.98px) {
	section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody {
		column-gap: 0;
		row-gap: 20px;
	}

	section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody tr {
		flex-basis: 100%;
		width: 100%;
		max-width: 100% !important;
	}
}

/* Full-width cells inside each card; the table script sets fixed column widths inline. */
section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody tr > td {
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
}

/*
 * Multi-select checkbox: one centered box. The extra form inputs are hidden, and
 * the real product checkbox is laid over the styled box so clicking it toggles the selection.
 */
section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody td .add-to-cart-wrapper .multi-cart-check {
	position: relative;
	width: 13px;
	height: 13px;
	margin: 4px auto 0;
}

section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody td .add-to-cart-wrapper .multi-cart-check input:not([name="product_ids[]"]) {
	display: none !important;
}

section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody td .add-to-cart-wrapper .multi-cart-check input[name="product_ids[]"] {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody td .add-to-cart-wrapper .multi-cart-check .wpt-multi-checkbox {
	position: absolute;
	top: 0;
	left: 0;
}

section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody td:nth-child(3) a.single-product-link {
	display: block !important;
	margin-top: 10px;
	font-family: "Archivo Narrow", sans-serif;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	color: #000;
	text-align: center;
	text-decoration: none;
}

section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody td a.product-details-button {
	display: inline-flex !important;
	align-items: center;
	column-gap: 6px;
	margin: 14px auto 15px;
	padding: 8.5px 17px;
	border: 2px solid #bf0d3e;
	border-radius: 4px;
	background-color: #bf0d3e;
	color: #fff;
	font-family: "Archivo Narrow", sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 16px;
	text-decoration: none;
}

section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody td a.product-details-button::after {
	content: "";
	width: 15px;
	height: 16px;
	background: url("../../../plugins/catalog-ims/assets/images/svg/arrow-right-icon.svg") no-repeat center / contain;
	filter: brightness(0) invert(1);
}

/* Keep the reference button colors on hover (the theme .btn:hover would change them). */
section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody td a.product-details-button:hover,
section.sub_cat_catalog .content-area .wrapper_area .right_area .bottom_area.images_layout table:has(.product-details-button) tbody td a.product-details-button:focus-visible {
	border-color: #bf0d3e;
	background-color: #bf0d3e;
	color: #fff;
}

/*
 * All Categories "Can't find what you're looking for?" card (desktop and tablet).
 * The catalog-ims layout positions the copy and icon absolutely, so they overlap
 * when the neighboring cards are short. Stack them in normal flow instead; the
 * button stays pinned to the bottom so it lines up with the View All buttons.
 */
@media (min-width: 768px) {
	section.browse_product_cat .content-area .product_wrapper .item.cims-all-categories-final-cta {
		display: flex;
		flex-direction: column;
		align-items: center;
		padding: 25px 22px 105px;
	}

	section.browse_product_cat .content-area .product_wrapper .item.cims-all-categories-final-cta .cims-all-categories-final-cta-copy {
		position: static;
		width: 100%;
	}

	section.browse_product_cat .content-area .product_wrapper .item.cims-all-categories-final-cta .cims-all-categories-final-cta-icon {
		position: static;
		width: 64px;
		height: 64px;
		margin-top: 15px;
		transform: none;
	}
}

/*
 * Documentation/PDFs page: accordion sections laid out like the previous site's
 * documentation list (full-width bars with a circled chevron, PDF links below),
 * using this site's brand colors and fonts. Scoped to the accordion with the
 * "ksg-doc-accordion" class.
 */
.wp-block-accordion.ksg-doc-accordion {
	gap: 0;
}

.ksg-doc-accordion .wp-block-accordion-item {
	margin: 0 0 20px;
}

.ksg-doc-accordion .wp-block-accordion-heading {
	margin: 0;
	font-family: var(--wp--preset--font-family--ubuntu, "Ubuntu", sans-serif);
	font-size: 16px;
	font-weight: 500;
	line-height: 20px;
}

.ksg-doc-accordion .wp-block-accordion-heading__toggle,
.ksg-doc-accordion .wp-block-accordion-heading__toggle:hover,
.ksg-doc-accordion .wp-block-accordion-heading__toggle:focus {
	column-gap: 14px;
	padding: 16px 12px 16px 30px;
	border-radius: 4px;
	background-color: var(--wp--preset--color--primary, #006bb4);
	color: #fff;
	text-align: left;
}

.ksg-doc-accordion .wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
	text-decoration: none;
}

.ksg-doc-accordion .wp-block-accordion-heading__toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--secondary, #c61125);
	outline-offset: 2px;
}

/* Circled chevron: points down when closed and up when open. */
.ksg-doc-accordion .wp-block-accordion-heading__toggle::before {
	content: "";
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%23fff'/%3E%3Cpath d='M4.5 6.5 8 10l3.5-3.5' fill='none' stroke='%23006bb4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: transform 0.2s ease;
}

.ksg-doc-accordion .wp-block-accordion-item.is-open .wp-block-accordion-heading__toggle::before {
	transform: rotate(180deg);
}

.ksg-doc-accordion .wp-block-accordion-item > .wp-block-accordion-panel {
	margin-block-start: 0;
	padding: 20px 0 0;
}

.ksg-doc-accordion .wp-block-accordion-panel ul.wp-block-list {
	margin: 0 0 10px;
	padding: 0 0 0 40px;
	list-style: none;
}

.ksg-doc-accordion .wp-block-accordion-panel ul.wp-block-list li {
	margin: 0 0 10px;
	padding-left: 23px;
	background: url("../images/pdf-icon.gif") no-repeat left 1px / 16px 17px;
	font-family: var(--wp--preset--font-family--source-sans-3, "Source Sans 3", sans-serif);
	font-size: 15px;
	line-height: 20px;
	list-style: none;
}

.ksg-doc-accordion .wp-block-accordion-panel ul.wp-block-list li::before,
.ksg-doc-accordion .wp-block-accordion-panel ul.wp-block-list li::marker {
	content: none;
}

.ksg-doc-accordion .wp-block-accordion-panel ul.wp-block-list a {
	color: var(--wp--preset--color--primary, #006bb4);
	text-decoration: none;
}

.ksg-doc-accordion .wp-block-accordion-panel ul.wp-block-list a:hover,
.ksg-doc-accordion .wp-block-accordion-panel ul.wp-block-list a:focus-visible {
	text-decoration: underline;
}

/* Product and category pages: same content width as the other pages, page header above the content. */
body.tax-product_cat .page_banner .content-area,
body.tax-product_cat .browse_product_cat .content-area,
body.tax-product_cat .sub_cat_catalog .content-area,
body.tax-product_cat .featured_products .content-area,
body.tax-product_cat .all_product_cat .content-area,
body.woocommerce-shop main .content-area,
body.single-product section.banner_single_product .content-area,
body.single-product section.all_product_cat .content-area {
	max-width: 90rem;
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 40em) {
	body.tax-product_cat .page_banner .content-area,
	body.tax-product_cat .browse_product_cat .content-area,
	body.tax-product_cat .sub_cat_catalog .content-area,
	body.tax-product_cat .featured_products .content-area,
	body.tax-product_cat .all_product_cat .content-area,
	body.woocommerce-shop main .content-area,
	body.single-product section.banner_single_product .content-area,
	body.single-product section.all_product_cat .content-area {
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}

@media (min-width: 75em) {
	body.tax-product_cat .page_banner .content-area,
	body.tax-product_cat .browse_product_cat .content-area,
	body.tax-product_cat .sub_cat_catalog .content-area,
	body.tax-product_cat .featured_products .content-area,
	body.tax-product_cat .all_product_cat .content-area,
	body.woocommerce-shop main .content-area,
	body.single-product section.banner_single_product .content-area,
	body.single-product section.all_product_cat .content-area {
		padding-left: 5rem;
		padding-right: 5rem;
	}
}

body.single-product section.banner_single_product {
	margin-top: 0;
	padding-top: 2.1875rem;
}

/* The product name is the page title in the page header. */
body.single-product section.banner_single_product .content-area .left_area .title_area h1 {
	display: none;
}

/* Product pages: breadcrumbs in the page header, under the product name. */
body.single-product section.banner_single_product .content-area > .top_area {
	display: flex;
	justify-content: flex-end;
	margin: 0;
	position: static;
}

body.single-product section.banner_single_product .content-area > .top_area .breadcrumb_area {
	bottom: calc(100% + 3.5rem);
	flex-wrap: wrap;
	justify-content: center;
	left: 1rem;
	position: absolute;
	right: 1rem;
	text-align: center;
	z-index: 5;
}

body.single-product section.banner_single_product .content-area > .top_area .breadcrumb_area a,
body.single-product section.banner_single_product .content-area > .top_area .breadcrumb_area span,
body.single-product section.banner_single_product .content-area > .top_area .breadcrumb_area p {
	color: #fff;
	margin: 0;
}

@media (min-width: 62em) {
	body.single-product section.banner_single_product .content-area > .top_area .social_links {
		position: absolute;
		right: 5rem;
		top: 0;
		z-index: 2;
	}
}

/* Bold first line of the description as the section heading. */
body.single-product section.banner_single_product .content-area .left_area .title_area {
	margin: 0;
	padding: 0;
}

body.single-product section.banner_single_product .content-area .left_area .title_area .button_area:not(:has(a)) {
	display: none;
}

body.single-product section.banner_single_product .content-area .left_area .description > p:first-child > strong:only-child {
	color: #006bb4;
	display: block;
	font-family: Ubuntu, sans-serif;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.2;
}

/* Product pages: photo column stays in view beside the options (desktop, tall enough screens). */
@media (min-width: 62em) and (min-height: 43.75rem) {
	body.single-product section.banner_single_product .content-area > .right_area {
		align-self: flex-start;
		position: sticky;
		top: 10rem;
		z-index: 1;
	}

	body.single-product.admin-bar section.banner_single_product .content-area > .right_area {
		top: 12rem;
	}
}

/* Product pages: quantity and Add to Cart on one row, total larger and bold. */
body.single-product form.cart {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
}

body.single-product form.cart > * {
	flex: 0 0 100%;
	margin-left: 0;
	margin-right: 0;
	order: 3;
}

body.single-product form.cart > .pewc-product-extra-groups-wrap {
	order: 0;
}

body.single-product form.cart > .quantity {
	flex: 0 0 auto;
	margin: 0;
	order: 1;
	width: auto;
}

body.single-product form.cart > .quantity input.qty {
	height: 3rem;
	margin: 0;
}

body.single-product form.cart > .single_add_to_cart_button {
	flex: 0 0 auto;
	margin: 0;
	order: 2;
	width: auto;
}

body.single-product #pewc-grand-total,
body.single-product #pewc-grand-total .amount {
	color: #2f3d49;
	font-size: 2rem;
	font-weight: 700;
}

/* Product pages: light frame around the main photo. */
body.single-product section.banner_single_product .content-area > .right_area .slider_top {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 0.5rem;
	box-shadow: 0 0.25rem 1.25rem rgba(47, 61, 73, 0.08);
	box-sizing: border-box;
	height: calc(var(--ims-pdp-media-main-height, 340px) + 2rem + 2px) !important;
	min-height: calc(var(--ims-pdp-media-main-height, 340px) + 2rem + 2px) !important;
	padding: 1rem;
}

body.single-product section.banner_single_product .content-area > .right_area .slider_top .single_img a {
	align-items: center;
	display: flex;
	justify-content: center;
}

/* Tablet and phone: space between the envelope icon and the photo. */
body.single-product section.banner_single_product .content-area > .top_area {
	margin-bottom: 0.75rem;
}

/* Desktop: wider gap between the columns, options column slightly wider, tops aligned. */
@media (min-width: 62em) {
	body.single-product section.banner_single_product .content-area {
		column-gap: clamp(2.5rem, 5vw, 5rem) !important;
	}

	body.single-product section.banner_single_product .content-area > .top_area {
		margin-bottom: 0;
	}

	body.single-product section.banner_single_product .content-area > .left_area {
		flex: 1 1 0 !important;
		margin-top: 1.75rem !important;
		max-width: none !important;
		width: auto !important;
	}

	body.single-product section.banner_single_product .content-area > .right_area {
		flex: 0 0 42% !important;
		margin-top: 1.75rem !important;
		max-width: 42% !important;
		width: 42% !important;
	}

	body.single-product section.banner_single_product .content-area > .top_area .social_links {
		right: 2.5rem;
	}
}

@media (min-width: 75em) {
	body.single-product section.banner_single_product .content-area > .top_area .social_links {
		right: 5rem;
	}
}

/* Cart and checkout: the page header sits above the content, so no space for the fixed site header. */
body.woocommerce-cart main .woocommerce.wp-block-group,
body.woocommerce-checkout main .woocommerce.wp-block-group {
	padding-top: 2.5rem;
}

/* Cart: the page title is in the page header, so hide the template's own title. */
body.woocommerce-cart .top_area.cart_wrap > p:first-child,
body.woocommerce-cart .ywraq-wrapper .top_area > h2 {
	display: none;
}

body.woocommerce-cart .woocommerce-cart-form > .ywraq-wrapper {
	margin-top: 0;
}

/* Cart and checkout: same content width as the other pages. */
body.woocommerce-cart .cart_content_wrapper,
body.woocommerce-checkout main .woocommerce.wp-block-group {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 90rem !important;
	padding-left: 1rem;
	padding-right: 1rem;
	width: 100%;
}

@media (min-width: 40em) {
	body.woocommerce-cart .cart_content_wrapper,
	body.woocommerce-checkout main .woocommerce.wp-block-group {
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}

@media (min-width: 75em) {
	body.woocommerce-cart .cart_content_wrapper,
	body.woocommerce-checkout main .woocommerce.wp-block-group {
		padding-left: 5rem;
		padding-right: 5rem;
	}
}

/* Checkout: each order summary option on its own line, the value right after its label. */
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation {
	display: block;
	line-height: 1.4;
	margin: 0.5rem 0 0;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dt,
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd,
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd p {
	clear: none;
	display: inline;
	float: none;
	margin: 0;
	padding: 0;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd::after {
	content: "\A";
	white-space: pre;
}

/* Cart: totals stay in view beside the items (when side by side, on tall enough screens). */
@media (min-width: 48em) and (min-height: 37.5rem) {
	body.woocommerce-cart .cart-collaterals .cart_totals {
		position: sticky;
		top: 10rem;
	}

	body.woocommerce-cart.admin-bar .cart-collaterals .cart_totals {
		top: 12rem;
	}
}

/* Cart totals as a card, matching the product photo frame and the site's buttons. */
body.woocommerce-cart .cart-collaterals .cart_totals {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 0.5rem;
	box-shadow: 0 0.25rem 1.25rem rgba(47, 61, 73, 0.08);
	box-sizing: border-box;
	padding: 1.5rem;
}

body.woocommerce-cart .cart-collaterals .cart_totals > h2 {
	border-bottom: 1px solid #e5e5e5;
	color: #006bb4;
	font-family: Ubuntu, sans-serif !important;
	font-size: 1.375rem !important;
	font-weight: 700 !important;
	line-height: 1.2;
	margin: 0 0 1rem !important;
	padding: 0 0 0.75rem;
}

body.woocommerce-cart .cart-collaterals .cart_totals .total_wrapper,
body.woocommerce-cart .cart-collaterals .cart_totals .total_wrapper .amount {
	color: #2f3d49;
	font-family: "Source Sans 3", sans-serif;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
}

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

body.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout a.btn {
	background: #006bb4;
	border: 0;
	border-radius: 3rem;
	box-sizing: border-box;
	color: #fff;
	display: block;
	font-family: "Source Sans 3", sans-serif;
	font-size: 1.0625rem;
	font-weight: 600;
	margin: 0 0 1rem;
	padding: 0.875rem 1.5rem;
	text-align: center;
	transition: background-color 0.2s;
	width: 100%;
}

body.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout a.btn:hover,
body.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout a.btn:focus-visible {
	background: #005a97;
	color: #fff;
}

body.woocommerce-cart .cart-collaterals .cart_totals .wc-proceed-to-checkout p {
	color: #6c6c6c;
	font-family: "Source Sans 3", sans-serif;
	font-size: 0.9375rem;
	line-height: 1.45;
	margin: 0;
}

/* Product pages: notification for "added to cart" and other WooCommerce messages. */
.ksg-product-notice {
	background: #fff;
	border-left: 0.3125rem solid #2e7d32;
	border-radius: 0.5rem;
	box-shadow: 0 0.5rem 2rem rgba(47, 61, 73, 0.25);
	box-sizing: border-box;
	left: 1rem;
	max-width: 30rem;
	opacity: 0;
	padding: 1rem 2.75rem 1rem 1.25rem;
	position: fixed;
	right: 1rem;
	top: 6.5rem;
	transform: translateY(-0.75rem);
	transition: opacity 0.25s, transform 0.25s;
	z-index: 30;
}

.ksg-product-notice.is-visible {
	opacity: 1;
	transform: none;
}

.ksg-product-notice--error {
	border-left-color: #b32d2e;
}

.admin-bar .ksg-product-notice {
	top: 9.5rem;
}

@media (min-width: 40em) {
	.ksg-product-notice {
		left: auto;
		right: 2.5rem;
		top: 10rem;
		width: 30rem;
	}

	.admin-bar .ksg-product-notice {
		top: 12rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ksg-product-notice {
		transform: none;
		transition: none;
	}
}

.ksg-product-notice__body .woocommerce-message,
.ksg-product-notice__body .woocommerce-error,
.ksg-product-notice__body .woocommerce-info {
	background: none;
	border: 0;
	box-shadow: none;
	color: #2f3d49;
	font-family: "Source Sans 3", sans-serif;
	font-size: 1rem;
	line-height: 1.4;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* WooCommerce focuses its message on load; no outline around the text itself. */
.ksg-product-notice__body .woocommerce-message:focus,
.ksg-product-notice__body .woocommerce-error:focus,
.ksg-product-notice__body .woocommerce-info:focus,
.ksg-product-notice:focus {
	outline: none;
}

.ksg-product-notice__body .woocommerce-message::before,
.ksg-product-notice__body .woocommerce-error::before,
.ksg-product-notice__body .woocommerce-info::before {
	content: none;
}

.ksg-product-notice__body .woocommerce-message a,
.ksg-product-notice__body .woocommerce-info a {
	color: #006bb4;
	display: inline-block;
	float: none;
	font-weight: 600;
	margin: 0.25rem 1rem 0 0;
	text-decoration: underline;
	white-space: nowrap;
}

.ksg-product-notice__close {
	background: none;
	border: 0;
	color: #6c6c6c;
	cursor: pointer;
	font-size: 1.5rem;
	height: 2rem;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: 0.5rem;
	top: 0.5rem;
	width: 2rem;
}

.ksg-product-notice__close:hover,
.ksg-product-notice__close:focus-visible {
	color: #2f3d49;
}

/* Category pages: page header above the content, breadcrumbs in it under the title. */
body.tax-product_cat main#content {
	position: relative;
}

body.tax-product_cat .page_banner {
	background: none;
	padding-bottom: 1.5rem;
	padding-top: 2.5rem;
	position: static;
}

body.tax-product_cat .sub_cat_catalog {
	padding-top: 1.5rem;
}

body.tax-product_cat .page_banner .content-area,
body.tax-product_cat .sub_cat_catalog > .content-area {
	position: static;
}

body.tax-product_cat .page_banner .top_area,
body.tax-product_cat .sub_cat_catalog > .content-area > .top_area {
	margin: 0;
	min-height: 0;
	position: static;
}

/* Bottom edge stays just above the end of the 325px page header, however many lines it wraps to. */
body.tax-product_cat .page_banner .breadcrumb_area,
body.tax-product_cat .sub_cat_catalog > .content-area .breadcrumb_area {
	flex-wrap: wrap;
	justify-content: center;
	left: 1rem;
	line-height: 1.3;
	position: absolute;
	right: 1rem;
	text-align: center;
	top: 20.3125rem;
	transform: translateY(calc(-100% - 1rem));
	z-index: 5;
}

body.tax-product_cat .page_banner .breadcrumb_area a,
body.tax-product_cat .page_banner .breadcrumb_area span,
body.tax-product_cat .page_banner .breadcrumb_area p,
body.tax-product_cat .sub_cat_catalog > .content-area .breadcrumb_area a,
body.tax-product_cat .sub_cat_catalog > .content-area .breadcrumb_area span,
body.tax-product_cat .sub_cat_catalog > .content-area .breadcrumb_area p {
	color: #fff !important;
	margin: 0;
}

/* Long titles and breadcrumbs don't fit together in the header on phones: breadcrumbs go below it. */
@media (max-width: 39.99em) {
	body.tax-product_cat .page_banner .breadcrumb_area,
	body.tax-product_cat .sub_cat_catalog > .content-area .breadcrumb_area,
	body.single-product section.banner_single_product .content-area > .top_area .breadcrumb_area {
		bottom: auto;
		justify-content: flex-start;
		left: auto;
		margin-bottom: 0.75rem;
		position: static;
		right: auto;
		text-align: left;
		top: auto;
		transform: none;
		width: 100%;
	}

	body.tax-product_cat .page_banner .breadcrumb_area a,
	body.tax-product_cat .page_banner .breadcrumb_area span,
	body.tax-product_cat .page_banner .breadcrumb_area p,
	body.tax-product_cat .sub_cat_catalog > .content-area .breadcrumb_area a,
	body.tax-product_cat .sub_cat_catalog > .content-area .breadcrumb_area span,
	body.tax-product_cat .sub_cat_catalog > .content-area .breadcrumb_area p,
	body.single-product section.banner_single_product .content-area > .top_area .breadcrumb_area a,
	body.single-product section.banner_single_product .content-area > .top_area .breadcrumb_area span,
	body.single-product section.banner_single_product .content-area > .top_area .breadcrumb_area p {
		color: #2f3d49 !important;
	}

	body.single-product section.banner_single_product .content-area > .top_area {
		flex-wrap: wrap;
	}
}

/* No empty space above the product list. */
body.tax-product_cat .sub_cat_catalog .wrapper_area {
	align-items: flex-start;
	flex-wrap: wrap;
}

body.tax-product_cat .sub_cat_catalog .wrapper_area > .top_area {
	flex: 0 0 100%;
	margin: 0 !important;
	min-height: 0;
	padding: 0;
	position: static;
}

/* A sub-category with no description shows only its products, not a lone category photo. */
body.tax-product_cat .sub_cat_catalog .right_area > .top:not(:has(.description > *, .button_area a)) {
	display: none !important;
}

body.tax-product_cat .sub_cat_catalog .right_area > .top:not(:has(.description > *, .button_area a)) + .bottom_area {
	margin-top: 0;
}

/* The category name is the page title in the page header. */
body.tax-product_cat .page_banner h1,
body.tax-product_cat .sub_cat_catalog h1 {
	display: none;
}

/* Bulk add message stays in view wherever the customer has scrolled to. */
body.tax-product_cat .sub_cat_catalog .modal_notification:not(.active) {
	pointer-events: none;
}

body.tax-product_cat .sub_cat_catalog .modal_notification {
	position: fixed;
	right: 2.5rem;
	top: 10rem;
	z-index: 30;
}

@media (max-width: 39.99em) {
	body.tax-product_cat .sub_cat_catalog .modal_notification {
		left: 1rem;
		right: 1rem;
		top: 6.5rem;
	}
}

/* Pages with a page header: no space reserved for the fixed site header. */
body.woocommerce-account main .woocommerce,
body.yith-request-a-quote-page main .woocommerce.ywraq-wrapper {
	padding-top: 2.5rem;
}

/* Add to Cart button states. */
body.single-product form.cart .single_add_to_cart_button.is-adding {
	cursor: progress;
	opacity: 0.85;
	pointer-events: none;
	position: relative;
}

body.single-product form.cart .single_add_to_cart_button.is-adding::before {
	animation: ksg-button-spin 0.7s linear infinite;
	border: 2px solid rgba(255, 255, 255, 0.4);
	border-radius: 50%;
	border-top-color: #fff;
	content: "";
	display: inline-block;
	height: 1rem;
	margin-right: 0.5rem;
	vertical-align: -0.15em;
	width: 1rem;
}

body.single-product form.cart .single_add_to_cart_button.is-added {
	background: #2e7d32 !important;
	background-image: none !important;
}

body.single-product form.cart .single_add_to_cart_button.is-added::before {
	content: "\2713";
	margin-right: 0.5rem;
}

/* Category pages: the same states on the bulk Add to cart button. */
.multi-cart-form.btn-primary.btn.is-adding {
	cursor: progress;
	opacity: 0.85;
	pointer-events: none;
}

.multi-cart-form.btn-primary.btn.is-adding svg,
.multi-cart-form.btn-primary.btn.is-added svg {
	display: none;
}

.multi-cart-form.btn-primary.btn.is-adding::before {
	animation: ksg-button-spin 0.7s linear infinite;
	border: 2px solid rgba(255, 255, 255, 0.4);
	border-radius: 50%;
	border-top-color: #fff;
	content: "";
	display: inline-block;
	flex: none;
	height: 1rem;
	margin-right: 0.5rem;
	width: 1rem;
}

.multi-cart-form.btn-primary.btn.is-added {
	background: #2e7d32 !important;
	background-image: none !important;
	pointer-events: none;
}

.multi-cart-form.btn-primary.btn.is-added::before {
	color: #fff;
	content: "\2713";
	margin-right: 0.5rem;
}

@keyframes ksg-button-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.single-product form.cart .single_add_to_cart_button.is-adding::before {
		animation: none;
	}
}

.header__cart-count.is-updated {
	animation: ksg-cart-pulse 0.6s ease-out 3;
}

@keyframes ksg-cart-pulse {
	50% {
		opacity: 0.2;
	}
}

/* Category tiles: image, clickable title, short gap, button at the bottom. */
body.tax-product_cat section.browse_product_cat .content-area .product_wrapper .item {
	padding-bottom: 4.75rem;
}

body.tax-product_cat section.browse_product_cat .content-area .product_wrapper .item .text_area {
	padding-bottom: 0;
}

body.tax-product_cat section.browse_product_cat .content-area .product_wrapper .item .text_area h3 {
	margin-bottom: 0;
}

.ksg-tile-title {
	color: inherit;
	text-decoration: none;
}

.ksg-tile-title:hover,
.ksg-tile-title:focus-visible {
	color: #006bb4;
	text-decoration: underline;
}

/* Cart: the item being removed fades while the page reloads. */
body.woocommerce-cart .cart_item.is-removing {
	opacity: 0.4;
	pointer-events: none;
	transition: opacity 0.2s;
}

/* Shop page: same layout as the category pages. */
body.woocommerce-shop main#content {
	position: relative;
}

body.woocommerce-shop main > .content-area {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 90rem;
	padding-bottom: 3.5rem;
	padding-top: 2rem;
}

body.woocommerce-shop main .site-main {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	position: static;
}

body.woocommerce-shop main .woocommerce-products-header,
body.woocommerce-shop main .cgims-extra-options {
	display: none;
}

/* Breadcrumbs in the page header, under the title; below it on phones. */
body.woocommerce-shop main .woocommerce-breadcrumb {
	color: #fff;
	font-family: "Archivo Narrow", sans-serif;
	font-size: 1.0625rem;
	left: 1rem;
	margin: 0;
	position: absolute;
	right: 1rem;
	text-align: center;
	top: 20.3125rem;
	transform: translateY(calc(-100% - 1rem));
	z-index: 5;
}

body.woocommerce-shop main .woocommerce-breadcrumb a {
	color: #fff;
	text-decoration: underline;
}

@media (max-width: 39.99em) {
	body.woocommerce-shop main .woocommerce-breadcrumb {
		color: #2f3d49;
		flex: 0 0 100%;
		margin-bottom: 0.75rem;
		position: static;
		text-align: left;
		transform: none;
	}

	body.woocommerce-shop main .woocommerce-breadcrumb a {
		color: #2f3d49;
	}
}

/* Result count and sorting on one row. */
body.woocommerce-shop main .woocommerce-result-count {
	align-self: center;
	color: #6c6c6c;
	float: none;
	font-family: "Archivo Narrow", sans-serif;
	font-size: 1.125rem;
	margin: 0 auto 1.5rem 0;
}

body.woocommerce-shop main .woocommerce-ordering {
	float: none;
	margin: 0 0 1.5rem;
}

body.woocommerce-shop main .woocommerce-ordering select {
	margin: 0;
}

/* Product cards, matching the category tiles. */
body.woocommerce-shop main ul.products {
	display: grid;
	flex: 0 0 100%;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

body.woocommerce-shop main ul.products::before,
body.woocommerce-shop main ul.products::after {
	content: none;
}

@media (min-width: 48em) {
	body.woocommerce-shop main ul.products {
		gap: 1.875rem;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

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

body.woocommerce-shop main ul.products li.product {
	background: #fff;
	border: 1px solid #ececec;
	box-sizing: border-box;
	clear: none;
	display: flex;
	flex-direction: column;
	float: none;
	margin: 0;
	padding: 1rem;
	text-align: center;
	transition: box-shadow 0.2s;
	width: 100% !important;
}

body.woocommerce-shop main ul.products li.product:hover {
	box-shadow: 0 0.25rem 1.25rem rgba(47, 61, 73, 0.12);
}

body.woocommerce-shop main ul.products li.product .woocommerce-loop-product__link {
	color: inherit;
	display: block;
	margin-bottom: 1rem;
	text-decoration: none;
}

body.woocommerce-shop main ul.products li.product img {
	height: 12.5rem;
	margin: 0 auto 0.75rem;
	object-fit: contain;
	width: 100%;
}

body.woocommerce-shop main ul.products li.product .woocommerce-loop-product__title {
	color: #000 !important;
	font-family: "Archivo Narrow", sans-serif;
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.2;
	margin: 0 0 0.375rem;
	padding: 0;
}

body.woocommerce-shop main ul.products li.product .woocommerce-loop-product__link:hover .woocommerce-loop-product__title {
	color: #006bb4 !important;
}

body.woocommerce-shop main ul.products li.product .price,
body.woocommerce-shop main ul.products li.product .price .amount {
	color: #2f3d49;
	display: block;
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0;
}

/* Buttons at the bottom of the card, whatever the title length. */
body.woocommerce-shop main ul.products li.product a.button {
	border-radius: 3rem;
	box-sizing: border-box;
	display: block;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	margin: 0;
	padding: 0.75rem 0.5rem;
	text-align: center;
	transition: background-color 0.2s, color 0.2s;
	width: 100%;
}

body.woocommerce-shop main ul.products li.product > a.button {
	background: #006bb4;
	color: #fff;
	margin-top: auto;
}

body.woocommerce-shop main ul.products li.product > a.button:hover,
body.woocommerce-shop main ul.products li.product > a.button:focus-visible {
	background: #005a97;
	color: #fff;
}

body.woocommerce-shop main ul.products li.product a.added_to_cart {
	color: #006bb4;
	display: block;
	font-weight: 600;
	margin-top: 0.5rem;
	text-decoration: underline;
}

/* Pagination. */
body.woocommerce-shop main .woocommerce-pagination {
	flex: 0 0 100%;
	margin-top: 2.5rem;
	text-align: center;
}

body.woocommerce-shop main .woocommerce-pagination ul.page-numbers {
	border: 0;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	margin: 0;
}

body.woocommerce-shop main .woocommerce-pagination ul.page-numbers li {
	border: 0;
	float: none;
	margin: 0;
}

body.woocommerce-shop main .woocommerce-pagination ul.page-numbers li .page-numbers {
	align-items: center;
	border: 1px solid #ececec;
	border-radius: 50%;
	box-sizing: border-box;
	color: #2f3d49;
	display: flex;
	font-weight: 600;
	height: 2.5rem;
	justify-content: center;
	padding: 0;
	width: 2.5rem;
}

body.woocommerce-shop main .woocommerce-pagination ul.page-numbers li a.page-numbers:hover,
body.woocommerce-shop main .woocommerce-pagination ul.page-numbers li .page-numbers.current {
	background: #006bb4;
	border-color: #006bb4;
	color: #fff;
}

/* Checkout: "Your order" stays in view beside the form when the two sit side by side. */
@media (min-width: 48em) {
	body.woocommerce-checkout form.checkout .review_wrapper {
		align-self: flex-start;
		position: sticky;
		top: var(--ksg-sticky-top, 10rem);
	}
}

/* Configurator image options: the photo sits centred in the box and the label stays at the bottom. */
body.single-product .pewc-radio-image-wrapper label {
	align-items: center;
	display: flex;
	flex-direction: column;
	height: 100%;
	width: 100%;
}

body.single-product .pewc-radio-image-wrapper label img {
	flex-shrink: 0;
	margin: auto;
}

body.single-product .pewc-radio-image-wrapper .pewc-radio-image-desc {
	width: 100%;
}

/* Products without a configurator: price above the quantity, matching the configurator total. */
body.single-product .ksg-product-price,
body.single-product .ksg-product-price .amount {
	color: #2f3d49;
	font-size: 2rem;
	font-weight: 700;
}

body.single-product .ksg-product-price {
	align-self: flex-start;
	line-height: 3rem;
	margin: 0 0 1rem;
}

/* Checkout: Stripe's express button and its "OR" line sit in their own row above the two columns. */
body.woocommerce-checkout form.checkout > #wc-stripe-express-checkout-element,
body.woocommerce-checkout form.checkout > #wc-stripe-express-checkout-button-separator {
	flex: 0 0 100%;
}

/* Checkout: WooCommerce's hidden order attribution holder shouldn't take a place in the columns row. */
body.woocommerce-checkout form.checkout > wc-order-attribution-inputs {
	display: none;
}

/* Checkout: hold the express button's space until Stripe shows it, released after 20s if it never does. */
body.woocommerce-checkout form.checkout:has(> #wc-stripe-express-checkout-element[style*="display:none"]) {
	animation: ksg-express-space 20s step-end;
}

@keyframes ksg-express-space {
	from {
		padding-top: 148px;
	}
	to {
		padding-top: 0;
	}
}

/* Checkout: country and state dropdowns match the other fields before their script restyles them. */
body.woocommerce-checkout .woocommerce form.checkout .col2-set .form-row select:not(.select2-hidden-accessible) {
	background-color: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 5px;
	color: #6c6c6c;
	font-family: var(--defaultfont);
	font-size: 1rem;
	line-height: 1.4;
	margin: 0;
	padding: 0.625rem 0.75rem;
	width: 100%;
}

/* Checkout: standard field size and spacing. */
body.woocommerce-checkout .woocommerce form.checkout .col2-set .form-row {
	margin-bottom: 1rem;
}

body.woocommerce-checkout .woocommerce form.checkout .col2-set .form-row label {
	font-size: 1rem;
	line-height: 1.4;
	margin-bottom: 0.25rem;
}

body.woocommerce-checkout .woocommerce form.checkout .col2-set .form-row .input-text {
	font-size: 1rem;
	line-height: 1.4;
	padding: 0.625rem 0.75rem;
}

body.woocommerce-checkout .woocommerce form.checkout .col2-set .select2-selection--single {
	font-size: 1rem;
	line-height: 1.4;
	margin: 0;
	padding: 0.625rem 0.75rem;
}

body.woocommerce-checkout .woocommerce form.checkout .col2-set .select2-selection__rendered {
	font-size: 1rem;
	line-height: 1.4;
	padding: 0;
}

body.woocommerce-checkout .woocommerce form.checkout .col2-set .select2-selection--single .select2-selection__arrow {
	top: 0.5rem;
}

/* Checkout: payment box in white instead of WooCommerce's default purple. */
body.woocommerce-checkout #payment div.payment_box {
	background-color: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 0.25rem;
	color: #2f3d49;
}

body.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: #fff;
}

/* Stripe's test card number, shown only in test mode: readable instead of the theme's button style. */
body.woocommerce-checkout #payment .wc-stripe-copy-test-number,
body.woocommerce-checkout #payment .wc-stripe-copy-test-number:hover {
	background: transparent;
	border: 0;
	color: #2f3d49;
	padding: 0;
}

/* Checkout: more space between the billing fields and "Your order" when they sit side by side. */
@media (min-width: 48em) {
	body.woocommerce-checkout .woocommerce form.checkout .col2-set {
		max-width: calc(61% - 3rem);
	}
}

/* ------------------------------------------------------------------ My Account */

/* Same content width as the other pages. */
body.woocommerce-account main .woocommerce {
	box-sizing: border-box;
	margin-left: auto;
	margin-right: auto;
	max-width: 90rem;
	padding: 2.5rem 1rem 4rem;
	width: 100%;
}

@media (min-width: 40em) {
	body.woocommerce-account main .woocommerce {
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}

@media (min-width: 75em) {
	body.woocommerce-account main .woocommerce {
		padding-left: 5rem;
		padding-right: 5rem;
	}
}

/* Logged in: menu on the left, content on the right. */
body.woocommerce-account main .woocommerce::before,
body.woocommerce-account main .woocommerce::after,
body.woocommerce-account #customer_login::before,
body.woocommerce-account #customer_login::after,
body.woocommerce-account .woocommerce-Addresses::before,
body.woocommerce-account .woocommerce-Addresses::after {
	display: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	width: auto;
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
	margin-bottom: 2rem;
}

@media (min-width: 48em) {
	body.woocommerce-account.logged-in main .woocommerce {
		align-items: start;
		display: grid;
		gap: 3rem;
		grid-template-columns: 15rem minmax(0, 1fr);
	}

	body.woocommerce-account.logged-in main .woocommerce > * {
		grid-column: 1 / -1;
	}

	body.woocommerce-account.logged-in main .woocommerce > .woocommerce-MyAccount-navigation {
		grid-column: 1;
		margin-bottom: 0;
		position: sticky;
		top: 2rem;
	}

	body.woocommerce-account.logged-in main .woocommerce > .woocommerce-MyAccount-content {
		grid-column: 2;
	}
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
	background: #f7fafc;
	border: 1px solid #e2e2e2;
	border-radius: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0.5rem;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li {
	margin: 0;
	padding: 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li::before {
	display: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a {
	border-radius: 0.375rem;
	color: #2f3d49;
	display: block;
	font-family: "Source Sans 3", sans-serif;
	font-size: 1rem;
	font-weight: 600;
	padding: 0.75rem 1rem;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation li a:focus-visible {
	background: #fff;
	color: #006bb4;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: #006bb4;
	color: #fff;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout {
	border-top: 1px solid #e2e2e2;
	margin-top: 0.5rem;
	padding-top: 0.5rem;
}

body.woocommerce-account .woocommerce-MyAccount-content > h2:first-child,
body.woocommerce-account .woocommerce-MyAccount-content form > h2:first-child,
body.woocommerce-account .woocommerce-MyAccount-content > p:first-child {
	margin-top: 0;
}

/* Buttons in the site's style. */
body.woocommerce-account main .woocommerce .button,
body.yith-request-a-quote-page main .button.wc-backward {
	background: #006bb4;
	border: 1px solid #006bb4;
	border-radius: 3rem;
	box-shadow: none;
	color: #fff;
	display: inline-block;
	font-family: "Source Sans 3", sans-serif;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 0.8125rem 1.75rem;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s, border-color 0.2s;
}

body.woocommerce-account main .woocommerce .button:hover,
body.woocommerce-account main .woocommerce .button:focus-visible,
body.yith-request-a-quote-page main .button.wc-backward:hover,
body.yith-request-a-quote-page main .button.wc-backward:focus-visible {
	background: #005a97;
	border-color: #005a97;
	color: #fff;
}

body.woocommerce-account .woocommerce-orders-table .button,
body.woocommerce-account .woocommerce-info .button,
body.woocommerce-account .woocommerce-message .button {
	font-size: 0.875rem;
	padding: 0.4375rem 1.125rem;
}

body.woocommerce-account .woocommerce-orders-table .button + .button {
	margin-left: 0.5rem;
}

/* Fields like the checkout. */
body.woocommerce-account main .woocommerce .form-row {
	margin: 0 0 1rem;
	padding: 0;
}

body.woocommerce-account main .woocommerce .form-row label {
	color: #2f3d49;
	font-size: 1rem;
	line-height: 1.4;
	margin-bottom: 0.25rem;
}

body.woocommerce-account main .woocommerce .input-text,
body.woocommerce-account main .woocommerce select:not(.select2-hidden-accessible),
body.woocommerce-account main .woocommerce textarea,
body.woocommerce-account main .woocommerce .select2-container .select2-selection--single {
	background-color: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 5px;
	box-shadow: none;
	box-sizing: border-box;
	color: #2f3d49;
	font-family: "Source Sans 3", sans-serif;
	font-size: 1rem;
	height: auto;
	line-height: 1.4;
	margin: 0;
	padding: 0.625rem 0.75rem;
	width: 100%;
}

body.woocommerce-account main .woocommerce .input-text:focus,
body.woocommerce-account main .woocommerce select:focus,
body.woocommerce-account main .woocommerce textarea:focus {
	border-color: #006bb4;
	box-shadow: 0 0 0 3px rgba(0, 107, 180, 0.15);
	outline: none;
}

body.woocommerce-account main .woocommerce .select2-container .select2-selection__rendered {
	color: #2f3d49;
	line-height: 1.4;
	padding: 0;
}

body.woocommerce-account main .woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	height: 100%;
	top: 0;
}

body.woocommerce-account main .woocommerce .password-input {
	display: block;
}

body.woocommerce-account main .woocommerce fieldset {
	border: 1px solid #e2e2e2;
	border-radius: 0.5rem;
	margin: 1.5rem 0;
	padding: 1.25rem 1.5rem 0.5rem;
}

body.woocommerce-account main .woocommerce fieldset legend {
	color: #2f3d49;
	font-size: 1.125rem;
	font-weight: 600;
	padding: 0 0.5rem;
}

body.woocommerce-account main .woocommerce .woocommerce-form-login__rememberme {
	align-items: center;
	display: inline-flex;
	gap: 0.5rem;
	margin: 0 0 0 1rem;
}

/* Logged out: login and register side by side as cards. */
body.woocommerce-account #customer_login {
	display: grid;
	gap: 2.5rem;
}

@media (min-width: 48em) {
	body.woocommerce-account #customer_login {
		grid-template-columns: 1fr 1fr;
	}
}

body.woocommerce-account #customer_login .u-column1,
body.woocommerce-account #customer_login .u-column2 {
	float: none;
	max-width: none;
	width: auto;
}

body.woocommerce-account #customer_login h2 {
	margin-top: 0;
}

body.woocommerce-account #customer_login form.login,
body.woocommerce-account #customer_login form.register,
body.woocommerce-account form.lost_reset_password {
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 0.5rem;
	margin: 0;
	padding: 2rem;
}

body.woocommerce-account form.lost_reset_password {
	max-width: 36rem;
}

body.woocommerce-account form.lost_reset_password .form-row-first,
body.woocommerce-account form.lost_reset_password .form-row-last {
	float: none;
	width: 100%;
}

body.woocommerce-account .woocommerce-LostPassword {
	margin: 1rem 0 0;
}

/* Tables: orders, order details, downloads. */
body.woocommerce-account main .woocommerce table.shop_table {
	border: 1px solid #e2e2e2;
	border-collapse: separate;
	border-radius: 0.5rem;
	overflow: hidden;
}

body.woocommerce-account main .woocommerce table.shop_table thead th {
	background: #f7fafc;
	color: #2f3d49;
	font-weight: 600;
}

body.woocommerce-account main .woocommerce table.shop_table th,
body.woocommerce-account main .woocommerce table.shop_table td {
	padding: 0.875rem 1rem;
}

/* Saved addresses as cards. */
body.woocommerce-account .woocommerce-Addresses {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 48em) {
	body.woocommerce-account .woocommerce-Addresses {
		grid-template-columns: 1fr 1fr;
	}
}

body.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
	border: 1px solid #e2e2e2;
	border-radius: 0.5rem;
	float: none;
	max-width: none;
	padding: 1.5rem;
	width: auto;
}

body.woocommerce-account .woocommerce-Address-title {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	justify-content: space-between;
}

body.woocommerce-account .woocommerce-Address-title::before,
body.woocommerce-account .woocommerce-Address-title::after {
	display: none;
}

body.woocommerce-account .woocommerce-Address-title h2 {
	font-size: 1.5rem;
	margin: 0;
}

body.woocommerce-account .woocommerce-Address-title .edit {
	float: none;
	font-weight: 600;
}

body.woocommerce-account .woocommerce-Address address {
	font-style: normal;
	line-height: 1.6;
	margin-top: 1rem;
}


/* Blog: post cards below the intro. */
.archive-page--landing .archive-page__posts {
	padding-bottom: 4rem;
	padding-top: 1.5rem;
}

.archive-page--landing .page__navigation {
	display: flex;
	justify-content: space-between;
	margin-top: 2.5rem;
}

.archive-page--landing .page__navigation a {
	font-weight: 600;
}

/* My Account: dropdown arrows inside their field, grey placeholders, checkbox in line with its label. */
body.woocommerce-account main .woocommerce .select2-container .select2-selection--single {
	position: relative;
}

body.woocommerce-account main .woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	height: 1.5rem;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
}

body.woocommerce-account main .woocommerce .input-text::placeholder {
	color: #8a959e;
	opacity: 1;
}

body.woocommerce-account main .woocommerce .woocommerce-form-login__rememberme input {
	margin: 0;
}

/* Thank-you pages (order and quote): both have a page header, so no space for the old fixed header. */
main section.thank_you {
	padding: 4rem 0 5rem;
}

body.woocommerce-account main .woocommerce .woocommerce-orders-table .button,
body.woocommerce-account main .woocommerce .woocommerce-info .button,
body.woocommerce-account main .woocommerce .woocommerce-message .button {
	font-size: 0.875rem;
	padding: 0.4375rem 1.125rem;
}

body.woocommerce-account .woocommerce-Address-title h2 {
	text-align: left;
}
