/**
 * Ethics 404 WooCommerce design-system bridge.
 *
 * WooCommerce block templates are implemented in later steps. This file keeps
 * existing Woo controls aligned with the theme.json tokens without overriding
 * WooCommerce layout or business behavior.
 */

:where(.woocommerce, .woocommerce-page, .wc-block-components-notice-banner) {
	font-family: inherit;
}

:where(.woocommerce, .woocommerce-page) img {
	height: auto;
	max-width: 100%;
}

:where(
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.wc-block-components-button
) {
	min-height: var(--e404-control-min-height);
	border: 1px solid var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-carbon);
	color: var(--e404-white);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
}

:where(
	.woocommerce a.button,
	.woocommerce button.button,
	.woocommerce input.button,
	.wc-block-components-button
):hover {
	border-color: var(--e404-signal);
	background: var(--e404-signal);
	color: var(--e404-carbon);
}

:where(
	.woocommerce .price,
	.wc-block-components-product-price,
	.wc-block-grid__product-price
) {
	font-family: var(--wp--preset--font-family--mono);
	font-variant-numeric: tabular-nums;
}

:where(
	.woocommerce-message,
	.woocommerce-info,
	.woocommerce-error,
	.wc-block-components-notice-banner
) {
	border: 1px solid var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
	padding: var(--wp--preset--spacing--40);
	color: var(--e404-carbon);
}

:where(.woocommerce-message, .wc-block-components-notice-banner.is-success) {
	background: var(--e404-signal);
}

:where(.woocommerce-info, .wc-block-components-notice-banner.is-info) {
	background: var(--e404-paper-deep);
}

:where(.woocommerce-error, .wc-block-components-notice-banner.is-error) {
	background: var(--e404-error);
}

:where(
	.woocommerce form .form-row input.input-text,
	.woocommerce form .form-row textarea,
	.woocommerce form .form-row select,
	.wc-block-components-text-input input,
	.wc-block-components-combobox-control input
) {
	min-height: var(--e404-control-min-height);
	border: 1px solid var(--e404-line);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-white);
	color: var(--e404-carbon);
}

:where(
	.woocommerce form .form-row input.input-text,
	.woocommerce form .form-row textarea,
	.woocommerce form .form-row select,
	.wc-block-components-text-input input,
	.wc-block-components-combobox-control input
):focus {
	border-color: var(--e404-carbon);
	outline: 2px solid var(--e404-carbon);
	outline-offset: 3px;
	box-shadow: 0 0 0 5px var(--e404-signal);
}


/* Step 5 commerce header. */
.wc-block-mini-cart__drawer {
	color: var(--e404-carbon);
	font-family: var(--wp--preset--font-family--sans);
}

.wc-block-mini-cart__drawer .wc-block-components-drawer__screen-overlay {
	background: color-mix(in srgb, var(--e404-carbon) 62%, transparent);
}

.wc-block-mini-cart__drawer .wc-block-components-drawer__content {
	background: var(--e404-paper);
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer {
	border-top: 1px solid var(--e404-line);
	background: var(--e404-paper-deep);
}


/* --------------------------------------------------------------------------
 * Step 10: product archive, category and tag templates.
 * -------------------------------------------------------------------------- */

.e404-shop-archive {
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--90);
}

.e404-shop-archive .wp-block-woocommerce-store-notices {
	margin-bottom: var(--wp--preset--spacing--40);
}

.e404-shop-archive__header {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--60);
	border-bottom: 1px solid var(--e404-line);
}

.e404-shop-archive__header .wp-block-woocommerce-breadcrumbs {
	margin-bottom: var(--wp--preset--spacing--50);
	color: var(--e404-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-shop-archive__header .woocommerce-breadcrumb {
	margin: 0;
}

.e404-shop-archive__label {
	margin: 0 0 var(--wp--preset--spacing--30);
	color: var(--e404-muted);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.e404-shop-archive__title {
	max-width: 13ch;
	margin: 0;
	font-size: var(--wp--preset--font-size--display);
}

.e404-shop-archive__description {
	max-width: 52rem;
	margin-top: var(--wp--preset--spacing--40);
	color: var(--e404-muted);
	font-size: var(--wp--preset--font-size--lead);
}

.e404-shop-archive__description:empty {
	display: none;
}

.e404-shop-toolbar {
	gap: var(--wp--preset--spacing--40);
	margin-top: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--40);
	border-bottom: 1px solid var(--e404-line);
}

.e404-shop-toolbar .wp-block-woocommerce-product-results-count {
	margin: 0;
	color: var(--e404-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-shop-toolbar .wp-block-woocommerce-catalog-sorting {
	margin: 0;
}

.e404-shop-toolbar select {
	min-width: min(100%, 15rem);
	background-color: var(--e404-paper);
}

.e404-catalog-collection {
	margin-top: 0;
}

.e404-catalog-collection .wc-block-product-template {
	gap: var(--wp--custom--ethics-404--layout--grid-gap);
}

.e404-catalog-card {
	display: flex;
	height: 100%;
	flex-direction: column;
	margin: 0;
	border: 1px solid var(--e404-line);
	background: var(--e404-paper);
	transition:
		border-color var(--e404-transition-standard) var(--e404-ease),
		box-shadow var(--e404-transition-standard) var(--e404-ease),
		transform var(--e404-transition-standard) var(--e404-ease);
}

.e404-catalog-card:hover {
	border-color: var(--e404-carbon);
	box-shadow: var(--wp--preset--shadow--float);
	transform: translateY(-3px);
}

.e404-catalog-card__image {
	position: relative;
	overflow: hidden;
	aspect-ratio: var(--wp--custom--ethics-404--component--product-media-ratio);
	margin: 0;
	border-bottom: 1px solid var(--e404-line);
	background: var(--e404-dust);
}

.e404-catalog-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--e404-transition-slow) var(--e404-ease);
}

.e404-catalog-card:hover .e404-catalog-card__image img {
	transform: scale(1.025);
}

.e404-catalog-card__image .wc-block-components-product-sale-badge {
	top: var(--wp--preset--spacing--30);
	right: var(--wp--preset--spacing--30);
	margin: 0;
	padding: 0.5rem 0.65rem;
	border: 1px solid var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-signal);
	color: var(--e404-carbon);
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.e404-catalog-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: var(--wp--preset--spacing--40);
}

.e404-catalog-card__category {
	margin: 0;
	color: var(--e404-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.e404-catalog-card__category a {
	color: inherit;
	text-decoration: none;
}

.e404-catalog-card__category a:hover {
	color: var(--e404-carbon);
	text-decoration: underline;
	text-decoration-thickness: 2px;
}

.e404-catalog-card__title {
	margin-top: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--heading-4);
	line-height: 1.08;
}

.e404-catalog-card__title a {
	text-decoration: none;
}

.e404-catalog-card__title a:hover {
	text-decoration: underline;
	text-decoration-thickness: 2px;
}

.e404-catalog-card__rating {
	min-height: 1.25rem;
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--30);
	color: var(--e404-carbon);
}

.e404-catalog-card__rating .wc-block-components-product-rating__stars {
	color: var(--e404-carbon);
}

.e404-catalog-card__summary {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--40);
	color: var(--e404-muted);
	line-height: 1.55;
}

.e404-catalog-card__summary p {
	margin: 0;
}

.e404-catalog-card__purchase {
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	margin-top: auto;
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--e404-line);
}

.e404-catalog-card__price {
	margin: 0;
	color: var(--e404-carbon);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.e404-catalog-card__price del {
	color: var(--e404-muted);
	font-weight: 400;
	opacity: 1;
}

.e404-catalog-card__price ins {
	text-decoration: none;
}

.e404-catalog-card__button {
	margin: 0;
}

.e404-catalog-card__button .wp-block-button__link,
.e404-catalog-card__button .wc-block-components-product-button__button {
	min-height: var(--e404-touch-target-min);
	padding: 0.75rem 1rem;
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-catalog-pagination {
	gap: var(--wp--preset--spacing--20);
	margin-top: var(--wp--preset--spacing--70);
	padding-top: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--e404-line);
}

.e404-catalog-pagination a,
.e404-catalog-pagination .page-numbers {
	display: inline-flex;
	min-width: var(--e404-touch-target-min);
	min-height: var(--e404-touch-target-min);
	align-items: center;
	justify-content: center;
	padding: 0.65rem;
	border: 1px solid transparent;
	font-family: var(--wp--preset--font-family--mono);
	text-decoration: none;
}

.e404-catalog-pagination .current {
	border-color: var(--e404-carbon);
	background: var(--e404-signal);
	color: var(--e404-carbon);
}

.e404-catalog-empty {
	margin-top: var(--wp--preset--spacing--60);
	padding: var(--wp--preset--spacing--70);
	border: 1px solid var(--e404-carbon);
	background: var(--e404-paper-deep);
}

.e404-catalog-empty h2 {
	max-width: 15ch;
	margin-top: var(--wp--preset--spacing--30);
}

@media (max-width: 900px) {
	.e404-catalog-collection .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.e404-shop-archive__title {
		font-size: clamp(3rem, 10vw, 6rem);
	}
}

@media (max-width: 600px) {
	.e404-shop-archive {
		padding-top: var(--wp--preset--spacing--30);
		padding-bottom: var(--wp--preset--spacing--80);
	}

	.e404-shop-toolbar {
		align-items: stretch;
		flex-direction: column;
	}

	.e404-shop-toolbar .wp-block-woocommerce-catalog-sorting,
	.e404-shop-toolbar select {
		width: 100%;
	}

	.e404-catalog-collection .wc-block-product-template {
		grid-template-columns: 1fr;
	}

	.e404-catalog-card__purchase {
		align-items: stretch;
		flex-direction: column;
	}

	.e404-catalog-card__button,
	.e404-catalog-card__button .wp-block-button__link,
	.e404-catalog-card__button .wc-block-components-product-button__button {
		width: 100%;
	}

	.e404-catalog-empty {
		padding: var(--wp--preset--spacing--50);
	}
}

@media (prefers-reduced-motion: reduce) {
	.e404-catalog-card:hover,
	.e404-catalog-card:hover .e404-catalog-card__image img {
		transform: none;
	}
}


/* --------------------------------------------------------------------------
 * Step 11: single-product experience.
 * -------------------------------------------------------------------------- */

.e404-product-page {
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: 0;
}

.e404-product-page > .wp-block-woocommerce-store-notices {
	margin-bottom: var(--wp--preset--spacing--40);
}

.e404-product-page__breadcrumbs {
	margin-bottom: var(--wp--preset--spacing--40);
	color: var(--e404-muted);
}

.e404-product-page__breadcrumbs .woocommerce-breadcrumb {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-product-hero {
	align-items: flex-start;
	gap: clamp(2rem, 1rem + 4vw, 6rem);
	margin-bottom: var(--wp--preset--spacing--80);
}

.e404-product-hero__media {
	position: sticky;
	top: calc(var(--wp--custom--ethics-404--component--header-desktop) + var(--wp--preset--spacing--30));
}

.e404-product-gallery {
	margin: 0;
}

.e404-product-gallery .woocommerce-product-gallery {
	width: 100%;
}

.e404-product-gallery .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.e404-product-gallery .woocommerce-product-gallery__image {
	overflow: hidden;
	border: 1px solid var(--e404-line);
	background: var(--e404-dust);
}

.e404-product-gallery .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
}

.e404-product-gallery .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--20);
	margin: var(--wp--preset--spacing--20) 0 0;
	padding: 0;
	list-style: none;
}

.e404-product-gallery .flex-control-thumbs li {
	width: auto;
	float: none;
	margin: 0;
}

.e404-product-gallery .flex-control-thumbs img {
	border: 1px solid var(--e404-line);
	opacity: 0.65;
}

.e404-product-gallery .flex-control-thumbs img.flex-active,
.e404-product-gallery .flex-control-thumbs img:hover {
	border-color: var(--e404-carbon);
	opacity: 1;
}

.e404-product-gallery .woocommerce-product-gallery__trigger {
	top: var(--wp--preset--spacing--30);
	right: var(--wp--preset--spacing--30);
	display: grid;
	width: var(--e404-touch-target-min);
	height: var(--e404-touch-target-min);
	place-items: center;
	border: 1px solid var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-paper);
	color: var(--e404-carbon);
	text-decoration: none;
}

.e404-product-summary-card {
	padding: clamp(1.5rem, 1rem + 2vw, 3rem);
	border: 1px solid var(--e404-carbon);
	background: var(--e404-paper);
	box-shadow: var(--wp--preset--shadow--float);
}

.e404-product-summary-card__status {
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
}

.e404-product-summary-card__status p {
	margin: 0;
	color: var(--e404-muted);
	text-transform: uppercase;
}

.e404-product-summary-card__status .wc-block-components-product-sale-badge {
	margin: 0;
	padding: 0.5rem 0.65rem;
	border: 1px solid var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-signal);
	color: var(--e404-carbon);
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.e404-product-title {
	max-width: 12ch;
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--30);
	font-size: clamp(2.7rem, 1.5rem + 4vw, 5.75rem);
	line-height: 0.94;
}

.e404-product-rating-row {
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
	color: var(--e404-muted);
}

.e404-product-rating-row .wp-block-woocommerce-product-rating {
	margin: 0;
}

.e404-product-stock {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.e404-product-price {
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--40);
	color: var(--e404-carbon);
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.e404-product-price del {
	color: var(--e404-muted);
	font-size: 0.65em;
	font-weight: 400;
	opacity: 1;
}

.e404-product-price ins {
	text-decoration: none;
}

.e404-product-summary {
	margin-bottom: var(--wp--preset--spacing--40);
	color: var(--e404-muted);
	font-size: var(--wp--preset--font-size--body);
	line-height: 1.65;
}

.e404-product-summary-card__rule {
	margin-top: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--40);
}

.e404-product-purchase {
	margin-bottom: var(--wp--preset--spacing--40);
}

.e404-product-purchase form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin: 0;
}

.e404-product-purchase .quantity {
	flex: 0 0 auto;
	margin: 0;
}

.e404-product-purchase .qty {
	width: 5.5rem;
	min-height: var(--e404-control-min-height);
	border-color: var(--e404-carbon);
	text-align: center;
}

.e404-product-purchase .single_add_to_cart_button {
	flex: 1 1 12rem;
	min-height: var(--e404-control-min-height);
	margin: 0;
}

.e404-product-purchase table.variations {
	width: 100%;
	margin-bottom: var(--wp--preset--spacing--30);
	border-collapse: collapse;
}

.e404-product-purchase table.variations th,
.e404-product-purchase table.variations td {
	display: block;
	padding: 0;
	border: 0;
	text-align: left;
}

.e404-product-purchase table.variations th {
	margin-bottom: var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.e404-product-purchase table.variations tr + tr th {
	margin-top: var(--wp--preset--spacing--30);
}

.e404-product-purchase table.variations select {
	width: 100%;
}

.e404-product-purchase .reset_variations {
	display: inline-block;
	margin-top: var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	text-transform: uppercase;
}

.e404-product-purchase .woocommerce-variation {
	margin-bottom: var(--wp--preset--spacing--30);
}

.e404-product-purchase .woocommerce-variation-price {
	margin-bottom: var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
}

.e404-product-purchase .stock {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-product-purchase-notes {
	margin-top: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--e404-line);
	background: var(--e404-paper-deep);
}

.e404-product-purchase-notes p {
	margin-top: 0;
}

.e404-product-purchase-notes ul {
	margin-bottom: 0;
	padding-left: 1.2rem;
	color: var(--e404-muted);
	font-size: var(--wp--preset--font-size--small);
}

.e404-product-purchase-notes li + li {
	margin-top: var(--wp--preset--spacing--20);
}

.e404-product-meta {
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--e404-line);
	color: var(--e404-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.e404-product-meta .wp-block-group {
	display: grid;
	gap: var(--wp--preset--spacing--20);
}

.e404-product-meta a {
	color: var(--e404-carbon);
}

.e404-product-assurance {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
}

.e404-product-assurance__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--e404-line);
	border-left: 1px solid var(--e404-line);
}

.e404-product-assurance__item {
	min-height: 20rem;
	padding: var(--wp--preset--spacing--40);
	border-right: 1px solid var(--e404-line);
	border-bottom: 1px solid var(--e404-line);
}

.e404-product-assurance__item h2 {
	margin-top: var(--wp--preset--spacing--40);
}

.e404-product-assurance__item > p:last-child {
	color: var(--e404-muted);
}

.e404-product-information {
	padding-top: var(--wp--preset--spacing--90);
	padding-bottom: var(--wp--preset--spacing--80);
}

.e404-product-information__header {
	max-width: 56rem;
	margin-bottom: var(--wp--preset--spacing--60);
}

.e404-product-information__header h2 {
	max-width: 13ch;
}

.e404-product-details {
	border-top: 1px solid var(--e404-carbon);
}

.e404-product-details .wc-block-components-tabs__list,
.e404-product-details .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0;
	padding: 0;
	border-bottom: 1px solid var(--e404-line);
	list-style: none;
}

.e404-product-details .wc-block-components-tabs__item,
.e404-product-details .woocommerce-tabs ul.tabs li {
	margin: 0;
	border: 0;
	border-right: 1px solid var(--e404-line);
	border-radius: 0;
	background: transparent;
}

.e404-product-details .wc-block-components-tabs__item button,
.e404-product-details .woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	min-height: var(--e404-touch-target-min);
	align-items: center;
	padding: 0.85rem 1.1rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.e404-product-details .wc-block-components-tabs__item--active,
.e404-product-details .woocommerce-tabs ul.tabs li.active {
	background: var(--e404-signal);
	color: var(--e404-carbon);
}

.e404-product-details .wc-block-components-tabs__content,
.e404-product-details .woocommerce-Tabs-panel {
	max-width: 68rem;
	padding-top: var(--wp--preset--spacing--50);
}

.e404-product-details table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
}

.e404-product-details table.shop_attributes th,
.e404-product-details table.shop_attributes td {
	padding: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--e404-line);
	text-align: left;
}

.e404-product-details table.shop_attributes th {
	width: 30%;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-product-support {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--80);
	border-top: 1px solid var(--e404-line);
}

.e404-product-support__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(18rem, 5fr);
	align-items: end;
	gap: var(--wp--preset--spacing--60);
}

.e404-product-support h2 {
	max-width: 10ch;
	margin-bottom: 0;
}

.e404-product-support__actions {
	max-width: 34rem;
}

.e404-related-products {
	padding-top: var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--90);
}

.e404-related-products__header {
	margin-bottom: var(--wp--preset--spacing--40);
}

.e404-related-products .wp-block-heading {
	max-width: 13ch;
}

.e404-related-products .wc-block-product-template,
.e404-related-products .products {
	gap: var(--wp--custom--ethics-404--layout--grid-gap);
}

.e404-related-products .wc-block-product,
.e404-related-products li.product {
	padding: 0 0 var(--wp--preset--spacing--40);
	border: 1px solid var(--e404-line);
	background: var(--e404-paper);
}

@media (max-width: 1080px) {
	.e404-product-hero {
		flex-wrap: wrap !important;
	}

	.e404-product-hero__media,
	.e404-product-hero__summary {
		flex-basis: 100% !important;
	}

	.e404-product-hero__media {
		position: static;
	}

	.e404-product-summary-card {
		max-width: 50rem;
	}

	.e404-product-assurance__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.e404-product-page {
		padding-top: var(--wp--preset--spacing--30);
	}

	.e404-product-hero {
		margin-bottom: var(--wp--preset--spacing--60);
	}

	.e404-product-summary-card {
		padding: var(--wp--preset--spacing--40);
	}

	.e404-product-title {
		font-size: clamp(2.7rem, 14vw, 4.5rem);
	}

	.e404-product-assurance__grid {
		grid-template-columns: 1fr;
	}

	.e404-product-assurance__item {
		min-height: 0;
	}

	.e404-product-support__grid {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.e404-product-details .wc-block-components-tabs__list,
	.e404-product-details .woocommerce-tabs ul.tabs {
		flex-direction: column;
	}

	.e404-product-details .wc-block-components-tabs__item,
	.e404-product-details .woocommerce-tabs ul.tabs li {
		width: 100%;
		border-right: 0;
		border-bottom: 1px solid var(--e404-line);
	}

	.e404-product-details .wc-block-components-tabs__item button,
	.e404-product-details .woocommerce-tabs ul.tabs li a {
		width: 100%;
	}

	.e404-product-details table.shop_attributes th,
	.e404-product-details table.shop_attributes td {
		display: block;
		width: 100%;
	}

	.e404-product-purchase form.cart {
		align-items: stretch;
		flex-direction: column;
	}

	.e404-product-purchase .quantity,
	.e404-product-purchase .qty,
	.e404-product-purchase .single_add_to_cart_button {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.e404-product-gallery *,
	.e404-product-summary-card *,
	.e404-related-products * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}


/* --------------------------------------------------------------------------
 * Step 12: Cart, Checkout and Order Confirmation.
 * -------------------------------------------------------------------------- */

.e404-checkout-header {
	border-bottom: 1px solid var(--e404-line);
}

.e404-checkout-header__inner {
	min-height: var(--wp--custom--ethics-404--component--header-mobile);
	gap: var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--20);
	padding-bottom: var(--wp--preset--spacing--20);
}

.e404-checkout-header__brand {
	margin: 0;
	font-size: var(--wp--preset--font-size--heading-4);
	font-weight: 800;
	letter-spacing: -0.04em;
}

.e404-checkout-header__brand a {
	color: inherit;
	text-decoration: none;
}

.e404-checkout-header__status {
	gap: var(--wp--preset--spacing--40);
}

.e404-checkout-header__status p {
	margin: 0;
}

.e404-checkout-header__status .is-style-terminal-note {
	color: var(--e404-muted);
	text-transform: uppercase;
}

.e404-checkout-header__return a {
	color: var(--e404-carbon);
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
}

.e404-checkout-header__return a:hover {
	text-decoration: underline;
	text-decoration-thickness: 2px;
}

.e404-cart-page,
.e404-checkout-page,
.e404-order-confirmation {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--90);
}

.e404-cart-page__intro,
.e404-checkout-page__intro,
.e404-order-confirmation__intro {
	margin-bottom: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--50);
	border-bottom: 1px solid var(--e404-line);
}

.e404-cart-page__intro h1,
.e404-checkout-page__intro h1,
.e404-order-confirmation__intro h1 {
	max-width: 12ch;
	margin-top: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--30);
}

.e404-cart-page__intro > p:last-child,
.e404-checkout-page__intro > p:last-child,
.e404-order-confirmation__intro > p:last-child {
	max-width: 50rem;
	margin-bottom: 0;
}

.e404-cart-block,
.e404-checkout-block {
	margin-top: 0;
}

.e404-cart-block .wc-block-cart__main {
	padding-right: clamp(1.5rem, 1rem + 2vw, 3.5rem);
}

.e404-cart-block .wc-block-cart__sidebar,
.e404-checkout-block .wc-block-checkout__sidebar {
	position: sticky;
	top: calc(var(--wp--custom--ethics-404--component--header-mobile) + var(--wp--preset--spacing--30));
	align-self: flex-start;
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--e404-carbon);
	background: var(--e404-paper);
	box-shadow: var(--wp--preset--shadow--float);
}

.e404-cart-block .wc-block-cart-items {
	border-collapse: collapse;
}

.e404-cart-block .wc-block-cart-items__header {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.e404-cart-block .wc-block-cart-items__row {
	border-top: 1px solid var(--e404-line);
}

.e404-cart-block .wc-block-cart-item__image img {
	border: 1px solid var(--e404-line);
	background: var(--e404-dust);
}

.e404-cart-block .wc-block-components-product-name {
	color: var(--e404-carbon);
	font-size: var(--wp--preset--font-size--heading-4);
	font-weight: 700;
	line-height: 1.12;
	text-decoration: none;
}

.e404-cart-block .wc-block-components-product-name:hover {
	text-decoration: underline;
	text-decoration-thickness: 2px;
}

.e404-cart-block .wc-block-components-product-metadata,
.e404-cart-block .wc-block-components-product-details {
	color: var(--e404-muted);
	font-size: var(--wp--preset--font-size--small);
}

.e404-cart-block .wc-block-components-quantity-selector {
	min-height: var(--e404-touch-target-min);
	border-color: var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
}

.e404-cart-block .wc-block-components-quantity-selector__button {
	min-width: var(--e404-touch-target-min);
	min-height: var(--e404-touch-target-min);
}

.e404-cart-block .wc-block-cart-item__remove-link {
	min-height: var(--e404-touch-target-min);
	color: var(--e404-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: underline;
	text-transform: uppercase;
}

.e404-cart-block .wc-block-cart-item__total-price-and-sale-badge-wrapper,
.e404-cart-block .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--mono);
	font-variant-numeric: tabular-nums;
}

.e404-cart-block .wp-block-woocommerce-cart-order-summary-block,
.e404-checkout-block .wp-block-woocommerce-checkout-order-summary-block {
	border: 0;
}

.e404-cart-block .wc-block-components-totals-wrapper,
.e404-checkout-block .wc-block-components-totals-wrapper {
	padding: var(--wp--preset--spacing--30) 0;
	border-color: var(--e404-line);
}

.e404-cart-block .wc-block-components-totals-item__label,
.e404-checkout-block .wc-block-components-totals-item__label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-cart-block .wc-block-components-totals-item__value,
.e404-checkout-block .wc-block-components-totals-item__value {
	font-family: var(--wp--preset--font-family--mono);
	font-variant-numeric: tabular-nums;
}

.e404-cart-block .wc-block-components-totals-coupon__input input,
.e404-checkout-block .wc-block-components-totals-coupon__input input {
	min-height: var(--e404-control-min-height);
	border-color: var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
}

.e404-cart-block .wc-block-cart__submit-button,
.e404-checkout-block .wc-block-components-checkout-place-order-button {
	min-height: 3.5rem;
	border-color: var(--e404-carbon);
	background: var(--e404-carbon);
	color: var(--e404-paper);
	font-weight: 800;
}

.e404-cart-block .wc-block-cart__submit-button:hover,
.e404-checkout-block .wc-block-components-checkout-place-order-button:hover {
	border-color: var(--e404-signal);
	background: var(--e404-signal);
	color: var(--e404-carbon);
}

.e404-cart-cross-sells {
	margin-top: var(--wp--preset--spacing--70);
}

.e404-cart-cross-sells__title {
	margin-bottom: var(--wp--preset--spacing--40);
}

.e404-cart-cross-sells .wc-block-product-template {
	gap: var(--wp--custom--ethics-404--layout--grid-gap);
}

.e404-cart-cross-sell-card {
	height: 100%;
	padding-bottom: var(--wp--preset--spacing--30);
	border: 1px solid var(--e404-line);
	background: var(--e404-paper);
}

.e404-cart-cross-sell-card > :not(.wp-block-woocommerce-product-image) {
	margin-right: var(--wp--preset--spacing--30);
	margin-left: var(--wp--preset--spacing--30);
}

.e404-cart-cross-sell-card .wp-block-post-title {
	margin-top: var(--wp--preset--spacing--30);
}

.e404-cart-empty {
	margin-top: var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--70);
	padding: var(--wp--preset--spacing--70);
	border: 1px solid var(--e404-carbon);
	background: var(--e404-paper-deep);
}

.e404-cart-empty .is-style-signal-label {
	width: max-content;
	margin-right: auto;
	margin-left: auto;
}

.e404-cart-empty__new-title {
	margin-bottom: var(--wp--preset--spacing--50);
}

.e404-checkout-trust {
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--30) 0;
	border-top: 1px solid var(--e404-line);
	border-bottom: 1px solid var(--e404-line);
	color: var(--e404-muted);
}

.e404-checkout-trust p {
	margin: 0;
	text-transform: uppercase;
}

.e404-checkout-block .wc-block-checkout__main {
	padding-right: clamp(1.5rem, 1rem + 2vw, 3.5rem);
}

.e404-checkout-block .wc-block-components-checkout-step {
	padding: 0 0 var(--wp--preset--spacing--50);
}

.e404-checkout-block .wc-block-components-checkout-step__heading {
	margin-bottom: var(--wp--preset--spacing--30);
}

.e404-checkout-block .wc-block-components-title {
	font-size: var(--wp--preset--font-size--heading-4);
	font-weight: 800;
	letter-spacing: -0.03em;
}

.e404-checkout-block .wc-block-components-checkout-step__description {
	color: var(--e404-muted);
	font-size: var(--wp--preset--font-size--small);
}

.e404-checkout-block .wc-block-components-text-input input,
.e404-checkout-block .wc-block-components-combobox-control input,
.e404-checkout-block .wc-block-components-address-form select,
.e404-checkout-block textarea {
	min-height: var(--e404-control-min-height);
	border-color: var(--e404-line);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-paper);
}

.e404-checkout-block .wc-block-components-text-input input:focus,
.e404-checkout-block .wc-block-components-combobox-control input:focus,
.e404-checkout-block .wc-block-components-address-form select:focus,
.e404-checkout-block textarea:focus {
	border-color: var(--e404-carbon);
	box-shadow: 0 0 0 2px var(--e404-signal);
}

.e404-checkout-block .wc-block-components-radio-control-accordion-option,
.e404-checkout-block .wc-block-components-radio-control__option {
	border-color: var(--e404-line);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-paper);
}

.e404-checkout-block .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.e404-checkout-block .wc-block-components-radio-control__option-checked {
	border-color: var(--e404-carbon);
	box-shadow: inset 4px 0 0 var(--e404-signal);
}

.e404-checkout-block .wc-block-checkout__actions {
	padding-top: var(--wp--preset--spacing--40);
}

.e404-checkout-block .wc-block-components-checkout-return-to-cart-button {
	min-height: var(--e404-touch-target-min);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-checkout-block .wc-block-checkout__terms,
.e404-checkout-block .wc-block-checkout__terms a {
	color: var(--e404-muted);
	font-size: var(--wp--preset--font-size--small);
}

.e404-checkout-block .wc-block-components-order-summary-item {
	padding-top: var(--wp--preset--spacing--30);
	padding-bottom: var(--wp--preset--spacing--30);
	border-bottom-color: var(--e404-line);
}

.e404-checkout-block .wc-block-components-order-summary-item__image img {
	border: 1px solid var(--e404-line);
	background: var(--e404-dust);
}

.e404-order-confirmation__status {
	margin-bottom: var(--wp--preset--spacing--60);
	padding: var(--wp--preset--spacing--50);
	border: 1px solid var(--e404-carbon);
	background: var(--e404-paper-deep);
}

.e404-order-confirmation__status .wc-block-order-confirmation-status {
	margin-top: 0;
	font-weight: 800;
	letter-spacing: -0.03em;
}

.e404-order-confirmation__status .wc-block-order-confirmation-summary {
	margin-top: var(--wp--preset--spacing--40);
}

.e404-order-confirmation__details {
	display: grid;
	gap: var(--wp--preset--spacing--60);
}

.e404-order-confirmation__details > :where(
	.wc-block-order-confirmation-totals-wrapper,
	.wc-block-order-confirmation-downloads-wrapper,
	.wc-block-order-confirmation-additional-fields-wrapper
) {
	padding-top: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--e404-line);
}

.e404-order-confirmation__details h2 {
	margin-top: 0;
	font-size: var(--wp--preset--font-size--heading-3) !important;
}

.e404-order-confirmation__details table {
	width: 100%;
	border-collapse: collapse;
}

.e404-order-confirmation__details th,
.e404-order-confirmation__details td {
	padding: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--e404-line);
	text-align: left;
}

.e404-order-confirmation__details th {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-order-confirmation__details .wc-block-order-confirmation-totals__total {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.e404-order-confirmation__addresses {
	gap: var(--wp--preset--spacing--40);
	margin: 0;
}

.e404-order-confirmation__addresses > .wp-block-column {
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--e404-line);
	background: var(--e404-paper);
}

.e404-order-confirmation__addresses address {
	color: var(--e404-muted);
	font-style: normal;
	line-height: 1.7;
}

.e404-order-confirmation__next {
	margin-top: var(--wp--preset--spacing--70);
	padding: var(--wp--preset--spacing--60);
	border: 1px solid var(--e404-carbon);
}

.e404-order-confirmation__next h2 {
	max-width: 14ch;
	margin-top: var(--wp--preset--spacing--30);
}

.e404-order-confirmation__next > p:not(.is-style-terminal-note) {
	max-width: 46rem;
	color: var(--e404-muted);
}

@media (max-width: 1080px) {
	.e404-cart-block .wc-block-cart,
	.e404-checkout-block .wc-block-checkout {
		flex-direction: column;
	}

	.e404-cart-block .wc-block-cart__main,
	.e404-checkout-block .wc-block-checkout__main {
		width: 100%;
		padding-right: 0;
	}

	.e404-cart-block .wc-block-cart__sidebar,
	.e404-checkout-block .wc-block-checkout__sidebar {
		position: static;
		width: 100%;
		margin-top: var(--wp--preset--spacing--50);
	}

	.e404-cart-cross-sells .wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.e404-checkout-header__inner,
	.e404-checkout-header__status {
		align-items: flex-start;
		flex-direction: column;
	}

	.e404-checkout-header__status {
		gap: var(--wp--preset--spacing--20);
	}

	.e404-cart-page,
	.e404-checkout-page,
	.e404-order-confirmation {
		padding-top: var(--wp--preset--spacing--50);
		padding-bottom: var(--wp--preset--spacing--80);
	}

	.e404-cart-block .wc-block-cart__sidebar,
	.e404-checkout-block .wc-block-checkout__sidebar,
	.e404-order-confirmation__status,
	.e404-cart-empty,
	.e404-order-confirmation__next {
		padding: var(--wp--preset--spacing--40);
		box-shadow: none;
	}

	.e404-checkout-trust {
		align-items: flex-start;
		flex-direction: column;
	}

	.e404-cart-cross-sells .wc-block-product-template {
		grid-template-columns: 1fr;
	}

	.e404-order-confirmation__addresses {
		flex-direction: column;
	}

	.e404-order-confirmation__details th,
	.e404-order-confirmation__details td {
		display: block;
		width: 100%;
		padding-right: 0;
		padding-left: 0;
	}

	.e404-checkout-block .wc-block-checkout__actions {
		align-items: stretch;
		flex-direction: column-reverse;
		gap: var(--wp--preset--spacing--30);
	}

	.e404-checkout-block .wc-block-components-checkout-place-order-button,
	.e404-checkout-block .wc-block-components-checkout-return-to-cart-button {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.e404-cart-block *,
	.e404-checkout-block *,
	.e404-order-confirmation * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}


/* --------------------------------------------------------------------------
 * Step 13: WooCommerce My Account.
 * -------------------------------------------------------------------------- */

.e404-account-page {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--90);
}

.e404-account-page__intro {
	margin-bottom: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--50);
	border-bottom: 1px solid var(--e404-line);
}

.e404-account-page__intro .is-style-terminal-note {
	margin-bottom: var(--wp--preset--spacing--30);
	color: var(--e404-muted);
	text-transform: uppercase;
}

.e404-account-page__title {
	max-width: 12ch;
	margin-top: 0;
	margin-bottom: var(--wp--preset--spacing--30);
}

.e404-account-page__lead {
	max-width: 52rem;
	margin-bottom: 0;
}

.e404-account-page__content > .woocommerce {
	width: 100%;
}

.e404-account-page__content .woocommerce-notices-wrapper {
	margin-bottom: var(--wp--preset--spacing--40);
}

.e404-account-page__content .woocommerce-MyAccount-navigation {
	width: 25%;
	float: left;
	padding-right: var(--wp--preset--spacing--50);
}

.e404-account-page__content .woocommerce-MyAccount-navigation ul {
	position: sticky;
	top: calc(var(--wp--custom--ethics-404--component--header-desktop) + var(--wp--preset--spacing--30));
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--e404-carbon);
	list-style: none;
}

.e404-account-page__content .woocommerce-MyAccount-navigation li {
	margin: 0;
	border-bottom: 1px solid var(--e404-line);
}

.e404-account-page__content .woocommerce-MyAccount-navigation a {
	display: flex;
	min-height: var(--e404-touch-target-min);
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20);
	padding: 0.9rem 0.75rem;
	color: var(--e404-carbon);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
}

.e404-account-page__content .woocommerce-MyAccount-navigation a::after {
	content: "→";
	color: var(--e404-muted);
}

.e404-account-page__content .woocommerce-MyAccount-navigation a:hover,
.e404-account-page__content .woocommerce-MyAccount-navigation .is-active a {
	background: var(--e404-signal);
	color: var(--e404-carbon);
}

.e404-account-page__content .woocommerce-MyAccount-navigation .is-active a::after {
	color: var(--e404-carbon);
}

.e404-account-page__content .woocommerce-MyAccount-content {
	width: 75%;
	float: right;
	padding-left: var(--wp--preset--spacing--50);
	border-left: 1px solid var(--e404-line);
}

.e404-account-page__content .woocommerce::after {
	display: table;
	clear: both;
	content: "";
}

.e404-account-page__content .woocommerce-MyAccount-content > :first-child {
	margin-top: 0;
}

.e404-account-page__content .woocommerce-MyAccount-content h2,
.e404-account-page__content .woocommerce-MyAccount-content h3 {
	max-width: 18ch;
}

.e404-account-page__content .woocommerce-MyAccount-content > p:first-child {
	max-width: 50rem;
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--e404-line);
	background: var(--e404-paper-deep);
}

.e404-account-page__content .woocommerce-MyAccount-content mark {
	padding: 0.1em 0.25em;
	background: var(--e404-signal);
	color: var(--e404-carbon);
}

.e404-account-page__content .u-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--60);
}

.e404-account-page__content .u-column1,
.e404-account-page__content .u-column2 {
	width: auto;
	float: none;
}

.e404-account-page__content .woocommerce-form-login,
.e404-account-page__content .woocommerce-form-register,
.e404-account-page__content .woocommerce-ResetPassword,
.e404-account-page__content .woocommerce-EditAccountForm,
.e404-account-page__content .woocommerce-address-fields {
	margin: 0;
	padding: var(--wp--preset--spacing--50);
	border: 1px solid var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-paper);
}

.e404-account-page__content .woocommerce-form-login h2,
.e404-account-page__content .woocommerce-form-register h2 {
	margin-top: 0;
}

.e404-account-page__content .form-row {
	margin: 0 0 var(--wp--preset--spacing--30);
	padding: 0;
}

.e404-account-page__content .form-row label {
	display: block;
	margin-bottom: var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-account-page__content .form-row .required {
	color: var(--e404-error);
	text-decoration: none;
}

.e404-account-page__content .input-text,
.e404-account-page__content input[type="text"],
.e404-account-page__content input[type="email"],
.e404-account-page__content input[type="password"],
.e404-account-page__content input[type="tel"],
.e404-account-page__content select,
.e404-account-page__content textarea {
	width: 100%;
	min-height: var(--e404-control-min-height);
	border-color: var(--e404-line);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-paper);
}

.e404-account-page__content textarea {
	min-height: 8rem;
}

.e404-account-page__content .input-text:focus,
.e404-account-page__content input:focus,
.e404-account-page__content select:focus,
.e404-account-page__content textarea:focus {
	border-color: var(--e404-carbon);
	box-shadow: 0 0 0 2px var(--e404-signal);
	outline: 0;
}

.e404-account-page__content .show-password-input {
	min-width: var(--e404-touch-target-min);
	min-height: var(--e404-touch-target-min);
}

.e404-account-page__content .woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	margin-bottom: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.e404-account-page__content .woocommerce-form-login__rememberme input {
	width: 1.2rem;
	height: 1.2rem;
	margin: 0;
}

.e404-account-page__content .woocommerce-form-login__submit,
.e404-account-page__content .woocommerce-form-register__submit,
.e404-account-page__content .woocommerce-Button,
.e404-account-page__content button.button {
	min-height: var(--e404-control-min-height);
	border-color: var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-carbon);
	color: var(--e404-paper);
	font-weight: 800;
}

.e404-account-page__content .woocommerce-form-login__submit:hover,
.e404-account-page__content .woocommerce-form-register__submit:hover,
.e404-account-page__content .woocommerce-Button:hover,
.e404-account-page__content button.button:hover {
	border-color: var(--e404-signal);
	background: var(--e404-signal);
	color: var(--e404-carbon);
}

.e404-account-page__content .woocommerce-LostPassword {
	margin-bottom: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-account-page__content fieldset {
	margin: var(--wp--preset--spacing--50) 0;
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--e404-line);
}

.e404-account-page__content legend {
	padding: 0 var(--wp--preset--spacing--20);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-account-page__content .woocommerce-orders-table,
.e404-account-page__content .woocommerce-table,
.e404-account-page__content .shop_table {
	width: 100%;
	border: 1px solid var(--e404-line);
	border-collapse: collapse;
	border-radius: 0;
}

.e404-account-page__content .woocommerce-orders-table th,
.e404-account-page__content .woocommerce-orders-table td,
.e404-account-page__content .woocommerce-table th,
.e404-account-page__content .woocommerce-table td,
.e404-account-page__content .shop_table th,
.e404-account-page__content .shop_table td {
	padding: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--e404-line);
	text-align: left;
	vertical-align: top;
}

.e404-account-page__content .woocommerce-orders-table th,
.e404-account-page__content .woocommerce-table th,
.e404-account-page__content .shop_table th {
	background: var(--e404-paper-deep);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-account-page__content .woocommerce-orders-table__cell-order-number,
.e404-account-page__content .woocommerce-orders-table__cell-order-total,
.e404-account-page__content .woocommerce-table__product-table,
.e404-account-page__content .woocommerce-table__product-total {
	font-family: var(--wp--preset--font-family--mono);
	font-variant-numeric: tabular-nums;
}

.e404-account-page__content .woocommerce-orders-table .button,
.e404-account-page__content .woocommerce-MyAccount-downloads-file {
	display: inline-flex;
	min-height: var(--e404-touch-target-min);
	align-items: center;
	margin: 0.15rem;
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--e404-carbon);
	border-radius: var(--wp--preset--border-radius--square);
	background: var(--e404-paper);
	color: var(--e404-carbon);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
}

.e404-account-page__content .woocommerce-orders-table .button:hover,
.e404-account-page__content .woocommerce-MyAccount-downloads-file:hover {
	background: var(--e404-signal);
}

.e404-account-page__content .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--40);
}

.e404-account-page__content .woocommerce-Address {
	width: auto;
	float: none;
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--e404-line);
	background: var(--e404-paper);
}

.e404-account-page__content .woocommerce-Address-title {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
}

.e404-account-page__content .woocommerce-Address-title h2,
.e404-account-page__content .woocommerce-Address-title h3 {
	margin-top: 0;
}

.e404-account-page__content .woocommerce-Address-title .edit {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.e404-account-page__content address {
	color: var(--e404-muted);
	font-style: normal;
	line-height: 1.7;
}

.e404-account-page__content .woocommerce-customer-details {
	margin-top: var(--wp--preset--spacing--60);
}

.e404-account-page__content .woocommerce-order-details {
	margin-bottom: var(--wp--preset--spacing--60);
}

.e404-account-page__content .woocommerce-order-details__title,
.e404-account-page__content .woocommerce-column__title {
	margin-bottom: var(--wp--preset--spacing--30);
}

.e404-account-page__content .woocommerce-pagination {
	margin-top: var(--wp--preset--spacing--50);
}

.e404-account-page__content .woocommerce-pagination .button {
	min-height: var(--e404-touch-target-min);
	margin-right: var(--wp--preset--spacing--20);
}

.e404-account-page__content .woocommerce-privacy-policy-text,
.e404-account-page__content .woocommerce-form-register p {
	color: var(--e404-muted);
	font-size: var(--wp--preset--font-size--small);
}

.e404-account-page__content .password-input {
	display: block;
	position: relative;
}

.e404-account-page__content .password-input .show-password-input {
	position: absolute;
	top: 0;
	right: 0;
}

.e404-account-help {
	margin-top: var(--wp--preset--spacing--80);
	padding: var(--wp--preset--spacing--60);
	border: 1px solid var(--e404-carbon);
}

.e404-account-help__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(18rem, 5fr);
	align-items: end;
	gap: var(--wp--preset--spacing--60);
}

.e404-account-help h2 {
	max-width: 12ch;
	margin-bottom: 0;
}

.e404-account-help__copy {
	max-width: 35rem;
}

.e404-account-help__copy > p {
	color: var(--e404-muted);
}

@media (max-width: 1000px) {
	.e404-account-page__content .woocommerce-MyAccount-navigation,
	.e404-account-page__content .woocommerce-MyAccount-content {
		width: 100%;
		float: none;
	}

	.e404-account-page__content .woocommerce-MyAccount-navigation {
		padding-right: 0;
	}

	.e404-account-page__content .woocommerce-MyAccount-navigation ul {
		position: static;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-bottom: var(--wp--preset--spacing--50);
		border-left: 1px solid var(--e404-line);
	}

	.e404-account-page__content .woocommerce-MyAccount-navigation li {
		border-right: 1px solid var(--e404-line);
	}

	.e404-account-page__content .woocommerce-MyAccount-content {
		padding-left: 0;
		border-left: 0;
	}

	.e404-account-help__grid {
		grid-template-columns: 1fr;
		align-items: start;
	}
}

@media (max-width: 700px) {
	.e404-account-page {
		padding-top: var(--wp--preset--spacing--50);
		padding-bottom: var(--wp--preset--spacing--80);
	}

	.e404-account-page__content .u-columns,
	.e404-account-page__content .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}

	.e404-account-page__content .woocommerce-form-login,
	.e404-account-page__content .woocommerce-form-register,
	.e404-account-page__content .woocommerce-ResetPassword,
	.e404-account-page__content .woocommerce-EditAccountForm,
	.e404-account-page__content .woocommerce-address-fields,
	.e404-account-help {
		padding: var(--wp--preset--spacing--40);
	}

	.e404-account-page__content .woocommerce-MyAccount-navigation ul {
		grid-template-columns: 1fr;
	}

	.e404-account-page__content .woocommerce-orders-table,
	.e404-account-page__content .woocommerce-orders-table tbody,
	.e404-account-page__content .woocommerce-orders-table tr,
	.e404-account-page__content .woocommerce-orders-table td {
		display: block;
		width: 100%;
	}

	.e404-account-page__content .woocommerce-orders-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.e404-account-page__content .woocommerce-orders-table tr {
		margin-bottom: var(--wp--preset--spacing--30);
		border: 1px solid var(--e404-line);
	}

	.e404-account-page__content .woocommerce-orders-table td {
		display: grid;
		grid-template-columns: minmax(7rem, 40%) minmax(0, 60%);
		gap: var(--wp--preset--spacing--20);
		border-bottom: 1px solid var(--e404-line);
	}

	.e404-account-page__content .woocommerce-orders-table td::before {
		font-family: var(--wp--preset--font-family--mono);
		font-size: var(--wp--preset--font-size--micro);
		font-weight: 700;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}

	.e404-account-page__content .woocommerce-orders-table td:last-child {
		border-bottom: 0;
	}

	.e404-account-page__content .woocommerce-orders-table .button,
	.e404-account-page__content .woocommerce-MyAccount-downloads-file {
		width: 100%;
		justify-content: center;
		margin: 0.15rem 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.e404-account-page * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
