/* --------------------------------------------------------------------------
   Cikareotype cart and checkout (THEME-4A)

   WooCommerce keeps ownership of its markup, cart form, coupon handling,
   quantity updates, totals, field definitions, payment methods, validation, and
   order creation. Everything here is presentation, scoped to the two commerce
   body classes, with no template override.

   The cart table's stacked mobile layout switches at 48rem to match
   WooCommerce's own .shop_table_responsive breakpoint (768px) rather than
   introducing a mismatched zone.
   -------------------------------------------------------------------------- */

/* Page templates render WooCommerce inside a 70ch prose column; commerce
   surfaces need the full container width instead. */
body:where(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .cika-entry__content.cika-prose {
	max-width: none;
}

body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce {
	--cika-commerce-border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	--cika-commerce-rule: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
}

/* Notices ----------------------------------------------------------------- */

body:where(.woocommerce-cart, .woocommerce-checkout) :where(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	border: 0;
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent-2);
	border-radius: 0;
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	line-height: var(--cika-leading-body);
}

body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce-message {
	border-inline-start-color: var(--cika-color-success);
}

body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce-error {
	border-inline-start-color: var(--cika-color-danger);
}

body:where(.woocommerce-cart, .woocommerce-checkout) :where(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
	display: none;
}

body:where(.woocommerce-cart, .woocommerce-checkout) :where(.woocommerce-message, .woocommerce-info, .woocommerce-error) a.button {
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
}

/* Shared table typography ------------------------------------------------- */

body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce table.shop_table {
	border-collapse: collapse;
	border-radius: 0;
}

body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce table.shop_table th {
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

/* The selected License V1 row is rendered by Cikareotype Core through
   woocommerce_get_item_data. It is restyled here, never duplicated. */
body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce dl.variation {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--cika-space-1) var(--cika-space-2);
	margin: var(--cika-space-3) 0 0;
	padding: var(--cika-space-2) var(--cika-space-3);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface-raised);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	line-height: var(--cika-leading-body);
}

body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce dl.variation dt {
	margin: 0;
	color: var(--cika-color-text-on-paper);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce dl.variation dd {
	margin: 0;
	color: var(--cika-color-accent);
	font-weight: 800;
}

body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce dl.variation dd p {
	margin: 0;
}

/* Cart table -------------------------------------------------------------- */

.woocommerce-cart .woocommerce-cart-form {
	padding: 0;
	background: transparent;
}

.woocommerce-cart table.shop_table.cart {
	width: 100%;
	margin: 0;
	border: var(--cika-commerce-border);
	background: var(--cika-color-surface);
}

.woocommerce-cart table.shop_table.cart thead th {
	padding: var(--cika-space-4);
	border-block-end: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface-raised);
	text-align: start;
	white-space: nowrap;
}

.woocommerce-cart table.shop_table.cart td {
	padding: var(--cika-space-4);
	border-block-start: var(--cika-commerce-rule);
	color: var(--cika-color-text-on-paper);
	vertical-align: middle;
}

.woocommerce-cart table.shop_table.cart td.product-thumbnail {
	width: 6.5rem;
}

.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
	display: block;
	width: 5rem;
	height: auto;
	border: var(--cika-commerce-rule);
}

.woocommerce-cart table.shop_table.cart td.product-name > a {
	display: inline-block;
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-lg);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-decoration: none;
	text-transform: uppercase;
}

.woocommerce-cart table.shop_table.cart td.product-name > a:hover,
.woocommerce-cart table.shop_table.cart td.product-name > a:focus-visible {
	color: var(--cika-color-accent);
}

.woocommerce-cart table.shop_table.cart td:where(.product-price, .product-subtotal) {
	font-family: var(--cika-font-mono);
	font-weight: 800;
	white-space: nowrap;
}

.woocommerce-cart table.shop_table.cart td.product-subtotal {
	color: var(--cika-color-accent);
}

.woocommerce-cart table.shop_table.cart td.product-quantity .quantity {
	display: inline-flex;
}

.woocommerce-cart table.shop_table.cart td.product-quantity .qty {
	width: 4.5rem;
	padding: var(--cika-space-2);
	font-family: var(--cika-font-mono);
	text-align: center;
}

.woocommerce-cart table.shop_table.cart td.product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: transparent;
	color: var(--cika-color-text);
	font-size: var(--cika-text-md);
	line-height: 1;
	text-decoration: none;
}

.woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover,
.woocommerce-cart table.shop_table.cart td.product-remove a.remove:focus-visible {
	border-color: var(--cika-color-accent);
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

/* Cart actions: coupon and update ----------------------------------------- */

.woocommerce-cart table.shop_table.cart td.actions {
	padding: var(--cika-space-4);
	background: var(--cika-color-surface-raised);
}

.woocommerce-cart table.shop_table.cart td.actions .coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--cika-space-2);
	float: none;
	margin-block-end: var(--cika-space-3);
}

.woocommerce-cart table.shop_table.cart td.actions .coupon #coupon_code {
	width: min(16rem, 100%);
	padding: var(--cika-space-2) var(--cika-space-3);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
}

.woocommerce-cart table.shop_table.cart td.actions button[name="update_cart"] {
	float: none;
}

/* Cart collaterals -------------------------------------------------------- */

.woocommerce-cart .cart-collaterals {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	margin-block-start: var(--cika-space-8);
}

.woocommerce-cart .cart-collaterals .cart_totals {
	width: min(30rem, 100%);
	float: none;
	padding: clamp(var(--cika-space-4), 2vw, var(--cika-space-6));
	border: var(--cika-commerce-border);
	background: var(--cika-color-surface);
}

.woocommerce-cart .cart-collaterals .cart_totals h2 {
	margin-block: 0 var(--cika-space-4);
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-xl);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

.woocommerce-cart .cart_totals table.shop_table {
	width: 100%;
	border: 0;
	background: transparent;
}

.woocommerce-cart .cart_totals table.shop_table :where(th, td) {
	padding: var(--cika-space-3) 0;
	border-block-start: var(--cika-commerce-rule);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
	text-align: start;
}

.woocommerce-cart .cart_totals table.shop_table td {
	text-align: end;
}

.woocommerce-cart .cart_totals table.shop_table tr.order-total :where(th, td) {
	border-block-start: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	font-size: var(--cika-text-md);
	font-weight: 800;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
	padding: var(--cika-space-4) 0 0;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	padding: var(--cika-space-4);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-accent);
	box-shadow: var(--cika-shadow-sm);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-align: center;
	text-transform: uppercase;
	transition: transform var(--cika-duration-fast) var(--cika-ease-standard), background-color var(--cika-duration-fast) var(--cika-ease-standard), box-shadow var(--cika-duration-fast) var(--cika-ease-standard);
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button:focus-visible {
	background: var(--cika-color-accent-hover);
	box-shadow: none;
	color: var(--cika-color-accent-contrast);
	transform: translate(3px, 3px);
}

.cika-cart__delivery-note {
	margin: var(--cika-space-3) 0 0;
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	line-height: var(--cika-leading-body);
	text-align: center;
}

/* Empty cart -------------------------------------------------------------- */

.woocommerce-cart .wc-empty-cart-message {
	margin: 0;
}

.woocommerce-cart .cart-empty.woocommerce-info {
	display: block;
	padding: clamp(var(--cika-space-6), 5vw, var(--cika-space-10));
	border: var(--cika-commerce-border);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface);
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-xl);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

.woocommerce-cart .return-to-shop {
	margin-block-start: var(--cika-space-6);
}

.woocommerce-cart .return-to-shop a.button {
	display: inline-block;
	padding: var(--cika-space-4) var(--cika-space-8);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-accent-2);
	box-shadow: var(--cika-shadow-sm);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
	transition: transform var(--cika-duration-fast) var(--cika-ease-standard), box-shadow var(--cika-duration-fast) var(--cika-ease-standard);
}

.woocommerce-cart .return-to-shop a.button:hover,
.woocommerce-cart .return-to-shop a.button:focus-visible {
	background: var(--cika-color-accent-2);
	box-shadow: none;
	color: var(--cika-color-accent-contrast);
	transform: translate(3px, 3px);
}

/* Checkout ---------------------------------------------------------------- */

.woocommerce-checkout .woocommerce > :where(.woocommerce-form-login, .woocommerce-form-coupon, .woocommerce-info) {
	margin-block-end: var(--cika-space-6);
}

.woocommerce-checkout form.checkout.woocommerce-checkout {
	--cika-checkout-sticky-offset: var(--cika-space-4);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--cika-space-8);
	padding: 0;
	background: transparent;
}

/* Anything a plugin injects into the form spans the full width by default;
   only the three known native children are explicitly placed. */
.woocommerce-checkout form.checkout.woocommerce-checkout > * {
	grid-column: 1 / -1;
	min-width: 0;
}

/* Both checkout columns are paper panels on the dark page, matching the cart.
   Without a panel the native field labels would be charcoal on dark ink. */
.woocommerce-checkout form.checkout .col2-set#customer_details {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--cika-space-6);
	width: 100%;
	padding: clamp(var(--cika-space-4), 2vw, var(--cika-space-6));
	border: var(--cika-commerce-border);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
}

.woocommerce-checkout form.checkout #customer_details :where(.col-1, .col-2) {
	float: none;
	width: 100%;
}

.woocommerce-checkout form.checkout :where(#customer_details, #order_review) h3 {
	margin-block: 0 var(--cika-space-4);
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-lg);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

.woocommerce-checkout form.checkout #customer_details :where(.col-1, .col-2) > :where(div, .woocommerce-billing-fields, .woocommerce-additional-fields) {
	padding: 0;
}

.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout form.checkout .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cika-space-4);
}

.woocommerce-checkout form.checkout .form-row {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
}

.woocommerce-checkout form.checkout .form-row:where(.form-row-wide, .notes, #order_comments_field, #billing_address_1_field, #billing_address_2_field) {
	grid-column: 1 / -1;
}

.woocommerce-checkout form.checkout .form-row label {
	display: block;
	margin-block-end: var(--cika-space-2);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.woocommerce-checkout form.checkout .form-row .required {
	color: var(--cika-color-accent);
	text-decoration: none;
}

.woocommerce-checkout form.checkout .form-row :where(input.input-text, textarea, select, .select2-selection) {
	width: 100%;
	min-height: 2.75rem;
	padding: var(--cika-space-3);
	font-family: var(--cika-font-body);
	font-size: var(--cika-text-sm);
}

.woocommerce-checkout form.checkout .form-row textarea {
	min-height: 6rem;
	line-height: var(--cika-leading-body);
}

.woocommerce-checkout form.checkout .form-row :where(input.input-text, textarea, select):focus-visible {
	border-color: var(--cika-color-accent);
	outline: var(--cika-border-medium) solid var(--cika-color-focus);
	outline-offset: 1px;
}

/* Order review panel ------------------------------------------------------ */

.woocommerce-checkout form.checkout #order_review_heading {
	margin-block: 0 var(--cika-space-4);
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-xl);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

.woocommerce-checkout form.checkout #order_review {
	padding: clamp(var(--cika-space-4), 2vw, var(--cika-space-6));
	border: var(--cika-commerce-border);
	background: var(--cika-color-surface);
}

.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table {
	width: 100%;
	margin: 0 0 var(--cika-space-4);
	border: 0;
	background: transparent;
}

.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table :where(th, td) {
	padding: var(--cika-space-3) 0;
	border-block-start: var(--cika-commerce-rule);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	text-align: start;
	vertical-align: top;
}

.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table thead th {
	border-block-start: 0;
	border-block-end: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
}

.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table th.product-total {
	text-align: end;
	white-space: nowrap;
}

.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table td.product-name {
	font-weight: 700;
}

.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table .product-quantity {
	color: var(--cika-color-text);
	font-weight: 400;
}

.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tr.order-total :where(th, td) {
	border-block-start: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	font-size: var(--cika-text-md);
	font-weight: 800;
}

.woocommerce-checkout #order_review table.woocommerce-checkout-review-order-table tr.order-total td {
	color: var(--cika-color-accent);
}

/* Payment ----------------------------------------------------------------- */

.woocommerce-checkout #order_review #payment {
	border-radius: 0;
	background: var(--cika-color-surface-raised);
}

.woocommerce-checkout #order_review #payment ul.wc_payment_methods {
	margin: 0;
	padding: 0;
	border-block-end: var(--cika-commerce-rule);
	list-style: none;
}

.woocommerce-checkout #order_review #payment ul.wc_payment_methods li {
	margin: 0;
	padding: var(--cika-space-3);
	border-block-end: var(--cika-commerce-rule);
	list-style: none;
}

.woocommerce-checkout #order_review #payment ul.wc_payment_methods li:last-child {
	border-block-end: 0;
}

.woocommerce-checkout #order_review #payment ul.wc_payment_methods label {
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 700;
}

.woocommerce-checkout #order_review #payment div.payment_box {
	margin: var(--cika-space-3) 0 0;
	padding: var(--cika-space-3);
	border-radius: 0;
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
	font-size: var(--cika-text-xs);
	line-height: var(--cika-leading-body);
}

.woocommerce-checkout #order_review #payment div.payment_box::before {
	display: none;
}

.woocommerce-checkout #order_review #payment .woocommerce-privacy-policy-text {
	padding: var(--cika-space-3);
	color: var(--cika-color-text-on-paper);
	font-size: var(--cika-text-xs);
	line-height: var(--cika-leading-body);
}

.woocommerce-checkout #order_review #payment .form-row.place-order {
	margin: 0;
	padding: var(--cika-space-3);
}

.woocommerce-checkout #order_review #payment #place_order {
	display: block;
	width: 100%;
	float: none;
	margin: 0;
	padding: var(--cika-space-4);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-accent);
	box-shadow: var(--cika-shadow-sm);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
	transition: transform var(--cika-duration-fast) var(--cika-ease-standard), background-color var(--cika-duration-fast) var(--cika-ease-standard), box-shadow var(--cika-duration-fast) var(--cika-ease-standard);
}

.woocommerce-checkout #order_review #payment #place_order:hover,
.woocommerce-checkout #order_review #payment #place_order:focus-visible {
	background: var(--cika-color-accent-hover);
	box-shadow: none;
	transform: translate(3px, 3px);
}

/* Desktop: classic checkout column placement ------------------------------- */

@media (min-width: 62.01rem) {
	.woocommerce-checkout form.checkout.woocommerce-checkout {
		grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
		grid-template-rows: auto 1fr;
		align-items: start;
		column-gap: clamp(var(--cika-space-6), 4vw, var(--cika-space-12));
		row-gap: var(--cika-space-6);
	}

	.woocommerce-checkout form.checkout .col2-set#customer_details {
		grid-column: 1;
		grid-row: 1 / -1;
	}

	.woocommerce-checkout form.checkout #order_review_heading {
		grid-column: 2;
		grid-row: 1;
	}

	.woocommerce-checkout form.checkout #order_review {
		grid-column: 2;
		grid-row: 2;
	}
}

/* Tablet and below --------------------------------------------------------- */

@media (max-width: 62rem) {
	.woocommerce-cart .cart-collaterals {
		justify-content: stretch;
	}

	.woocommerce-cart .cart-collaterals .cart_totals {
		width: 100%;
	}

}

/* Stacked cart rows: matches WooCommerce's own responsive table breakpoint. */

@media (max-width: 48rem) {
	/* Stated here rather than inherited from WooCommerce's stylesheet, so the
	   cart cannot overflow if that stylesheet is ever absent or reordered.
	   These declarations match WooCommerce's own responsive-table behaviour. */
	.woocommerce-cart table.shop_table.cart,
	.woocommerce-cart table.shop_table.cart tbody {
		display: block;
		width: 100%;
	}

	.woocommerce-cart table.shop_table.cart thead {
		display: none;
	}

	.woocommerce-cart table.shop_table.cart tr {
		display: block;
		width: 100%;
	}

	.woocommerce-cart table.shop_table.cart tr.cart_item + tr.cart_item {
		border-block-start: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	}

	.woocommerce-cart table.shop_table.cart td {
		display: block;
		width: 100%;
		padding: var(--cika-space-3) var(--cika-space-4);
		text-align: end;
	}

	.woocommerce-cart table.shop_table.cart td::before {
		content: attr(data-title) ': ';
		float: inline-start;
		color: var(--cika-color-text-on-paper);
		font-family: var(--cika-font-mono);
		font-size: var(--cika-text-xs);
		font-weight: 700;
		letter-spacing: var(--cika-tracking-wide);
		text-transform: uppercase;
	}

	.woocommerce-cart table.shop_table.cart td:where(.product-remove, .product-thumbnail, .actions)::before {
		content: none;
	}

	.woocommerce-cart table.shop_table.cart td.product-name {
		text-align: start;
	}

	.woocommerce-cart table.shop_table.cart td.product-thumbnail {
		width: auto;
		text-align: start;
	}

	.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
		width: 4.5rem;
	}

	.woocommerce-cart table.shop_table.cart td.product-remove {
		text-align: end;
	}

	body:where(.woocommerce-cart, .woocommerce-checkout) .woocommerce dl.variation {
		justify-content: flex-end;
		text-align: end;
	}

	.woocommerce-cart table.shop_table.cart td.actions .coupon #coupon_code {
		width: 100%;
	}

	.woocommerce-cart table.shop_table.cart td.actions button {
		width: 100%;
	}
}

@media (max-width: 42rem) {
	.woocommerce-checkout form.checkout .woocommerce-billing-fields__field-wrapper,
	.woocommerce-checkout form.checkout .woocommerce-additional-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-cart .cart-collaterals .cart_totals,
	.woocommerce-checkout form.checkout #order_review {
		padding: var(--cika-space-4);
	}
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button,
	.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button:hover,
	.woocommerce-cart .return-to-shop a.button,
	.woocommerce-cart .return-to-shop a.button:hover,
	.woocommerce-checkout #order_review #payment #place_order,
	.woocommerce-checkout #order_review #payment #place_order:hover {
		transform: none;
		transition: none;
	}
}

/* --------------------------------------------------------------------------
   Order received (THEME-4B)

   Scoped to the native .woocommerce-order wrapper, which exists only on the
   order-received page. My Account's view-order screen renders the same
   order-details markup without that wrapper, so it stays untouched here.
   -------------------------------------------------------------------------- */

.woocommerce-order {
	--cika-commerce-border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	--cika-commerce-rule: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
	display: grid;
	gap: var(--cika-space-8);
	grid-template-columns: minmax(0, 1fr);
}

/* Hero confirmation ------------------------------------------------------- */

.woocommerce-order > .woocommerce-thankyou-order-received {
	margin: 0;
	padding: clamp(var(--cika-space-6), 5vw, var(--cika-space-10));
	border: var(--cika-commerce-border);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface);
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-xl);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

.woocommerce-order > .woocommerce-thankyou-order-received::before {
	display: none;
}

.woocommerce-order > .woocommerce-thankyou-order-failed {
	border-inline-start-color: var(--cika-color-danger);
}

/* Order overview summary -------------------------------------------------- */

.woocommerce-order ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	border: var(--cika-commerce-border);
	background: var(--cika-color-surface);
	list-style: none;
}

.woocommerce-order ul.woocommerce-order-overview li {
	margin: 0;
	padding: var(--cika-space-4);
	border-inline-end: var(--cika-commerce-rule);
	border-block-end: var(--cika-commerce-rule);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
	word-break: break-word;
}

.woocommerce-order ul.woocommerce-order-overview li strong {
	display: block;
	margin-block-start: var(--cika-space-2);
	color: var(--cika-color-accent);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 800;
	letter-spacing: 0;
	text-transform: none;
}

.woocommerce-order ul.woocommerce-order-overview li.total strong {
	font-size: var(--cika-text-md);
}

/* Next steps -------------------------------------------------------------- */

.cika-order-next {
	padding: clamp(var(--cika-space-4), 2vw, var(--cika-space-6));
	border: var(--cika-commerce-border);
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text-on-paper);
}

.cika-order-next__title {
	margin-block: 0 var(--cika-space-4);
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-lg);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

.cika-order-next__list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--cika-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cika-order-next__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--cika-space-1);
	padding: var(--cika-space-3);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-border);
	background: var(--cika-color-surface);
}

.cika-order-next__item--ready {
	border-inline-start-color: var(--cika-color-success);
}

.cika-order-next__item--pending {
	border-inline-start-color: var(--cika-color-accent-2);
}

.cika-order-next__label {
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cika-order-next__value {
	color: var(--cika-color-text);
	font-size: var(--cika-text-sm);
	line-height: var(--cika-leading-body);
}

.cika-order-next__note {
	margin: var(--cika-space-4) 0 0;
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	line-height: var(--cika-leading-body);
}

.cika-order-next__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cika-space-3);
	margin-block-start: var(--cika-space-5);
}

.cika-order-next__action {
	display: inline-block;
	padding: var(--cika-space-3) var(--cika-space-6);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface);
	box-shadow: var(--cika-shadow-sm);
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration: none;
	text-transform: uppercase;
	transition: transform var(--cika-duration-fast) var(--cika-ease-standard), box-shadow var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-order-next__action--primary {
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.cika-order-next__action:hover,
.cika-order-next__action:focus-visible {
	box-shadow: none;
	color: var(--cika-color-text);
	transform: translate(3px, 3px);
}

.cika-order-next__action--primary:hover,
.cika-order-next__action--primary:focus-visible {
	background: var(--cika-color-accent-hover);
	color: var(--cika-color-accent-contrast);
}

/* Downloads, details, bank instructions, customer details ------------------ */

.woocommerce-order :where(.woocommerce-order-downloads, .woocommerce-order-details, .woocommerce-bacs-bank-details, .woocommerce-customer-details) {
	margin: 0;
	padding: clamp(var(--cika-space-4), 2vw, var(--cika-space-6));
	border: var(--cika-commerce-border);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
}

.woocommerce-order :where(.woocommerce-order-downloads, .woocommerce-order-details, .woocommerce-bacs-bank-details, .woocommerce-customer-details) :where(h2, h3) {
	margin-block: 0 var(--cika-space-4);
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-lg);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

.woocommerce-order table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	background: transparent;
	border-collapse: collapse;
}

.woocommerce-order table.shop_table :where(th, td) {
	padding: var(--cika-space-3) var(--cika-space-2);
	border-block-start: var(--cika-commerce-rule);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	text-align: start;
	vertical-align: top;
}

.woocommerce-order table.shop_table thead th {
	border-block-start: 0;
	border-block-end: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.woocommerce-order table.shop_table td.product-total,
.woocommerce-order table.shop_table th.product-total,
.woocommerce-order table.shop_table tfoot td {
	text-align: end;
	white-space: nowrap;
}

.woocommerce-order table.shop_table td.product-name a {
	color: var(--cika-color-text);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce-order table.shop_table td.product-name a:hover,
.woocommerce-order table.shop_table td.product-name a:focus-visible {
	color: var(--cika-color-accent);
}

.woocommerce-order table.shop_table tfoot tr:last-child :where(th, td) {
	border-block-start: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	font-size: var(--cika-text-md);
	font-weight: 800;
}

.woocommerce-order table.shop_table tfoot tr:last-child td {
	color: var(--cika-color-accent);
}

/* The License line is order item meta written by Cikareotype Core and
   rendered by wc_display_item_meta(). It is restyled here, never duplicated. */
.woocommerce-order .wc-item-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--cika-space-1) var(--cika-space-2);
	margin: var(--cika-space-3) 0 0;
	padding: var(--cika-space-2) var(--cika-space-3);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface-raised);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	line-height: var(--cika-leading-body);
	list-style: none;
}

.woocommerce-order .wc-item-meta li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--cika-space-2);
	margin: 0;
	list-style: none;
}

.woocommerce-order .wc-item-meta .wc-item-meta-label {
	margin: 0;
	color: var(--cika-color-text-on-paper);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.woocommerce-order .wc-item-meta li > p,
.woocommerce-order .wc-item-meta p {
	margin: 0;
	color: var(--cika-color-accent);
	font-weight: 800;
}

.woocommerce-order .woocommerce-table--order-downloads .download-product a {
	color: var(--cika-color-text);
	font-weight: 700;
}

.woocommerce-order .woocommerce-MyAccount-downloads-file {
	display: inline-block;
	padding: var(--cika-space-2) var(--cika-space-4);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.woocommerce-order .woocommerce-MyAccount-downloads-file:hover,
.woocommerce-order .woocommerce-MyAccount-downloads-file:focus-visible {
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.woocommerce-order ul.wc-bacs-bank-details {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-order ul.wc-bacs-bank-details li {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cika-space-2);
	padding: var(--cika-space-2) 0;
	border-block-start: var(--cika-commerce-rule);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	list-style: none;
}

.woocommerce-order ul.wc-bacs-bank-details li strong {
	color: var(--cika-color-accent);
}

.woocommerce-order .woocommerce-customer-details address {
	padding: var(--cika-space-3);
	border: var(--cika-commerce-rule);
	background: var(--cika-color-surface-raised);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-style: normal;
	line-height: var(--cika-leading-body);
}

/* Desktop: overview and next steps sit side by side ----------------------- */

@media (min-width: 62.01rem) {
	.woocommerce-order {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}

	/* A payment gateway can inject its instructions anywhere between the
	   overview and the next-steps panel, so the two are paired with `order`
	   rather than by relying on document position. Everything else, known or
	   injected, falls through to a full-width row below them. */
	.woocommerce-order > * {
		order: 4;
		grid-column: 1 / -1;
	}

	.woocommerce-order > :where(.woocommerce-thankyou-order-received, .woocommerce-thankyou-order-failed) {
		order: 1;
	}

	.woocommerce-order > ul.woocommerce-order-overview {
		order: 2;
		grid-column: 1;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.woocommerce-order > .cika-order-next {
		order: 3;
		grid-column: 2;
	}
}

@media (max-width: 48rem) {
	.woocommerce-order table.shop_table.shop_table_responsive,
	.woocommerce-order table.shop_table.shop_table_responsive tbody {
		display: block;
		width: 100%;
	}

	.woocommerce-order table.shop_table.shop_table_responsive thead {
		display: none;
	}

	.woocommerce-order table.shop_table.shop_table_responsive tr {
		display: block;
		width: 100%;
		border-block-start: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	}

	.woocommerce-order table.shop_table.shop_table_responsive td {
		display: block;
		width: 100%;
		text-align: end;
	}

	.woocommerce-order table.shop_table.shop_table_responsive td::before {
		content: attr(data-title) ': ';
		float: inline-start;
		color: var(--cika-color-text-on-paper);
		font-size: var(--cika-text-xs);
		font-weight: 700;
		letter-spacing: var(--cika-tracking-wide);
		text-transform: uppercase;
	}

	.woocommerce-order .wc-item-meta {
		justify-content: flex-end;
		text-align: end;
	}
}

@media (max-width: 42rem) {
	.woocommerce-order ul.woocommerce-order-overview {
		grid-template-columns: minmax(0, 1fr);
	}

	.cika-order-next__action {
		flex: 1 1 100%;
		text-align: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cika-order-next__action,
	.cika-order-next__action:hover {
		transform: none;
		transition: none;
	}
}

/* --------------------------------------------------------------------------
   My Account (THEME-4C)

   WooCommerce owns the endpoints, navigation items, orders, downloads,
   addresses, and account forms. Cikareotype Core owns the `licenses` endpoint,
   its query, and every download and certificate authorization on it. Only
   presentation lives here.
   -------------------------------------------------------------------------- */

.woocommerce-account .woocommerce {
	--cika-commerce-border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	--cika-commerce-rule: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--cika-space-6);
	align-items: start;
}

.woocommerce-account .woocommerce > * {
	grid-column: 1 / -1;
	min-width: 0;
}

/* woocommerce-layout.css floats the navigation at 30% and the content at 68%.
   Inside a grid those percentages resolve against the grid area and shrink both
   columns, so the float layout is released here. */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	width: 100%;
	float: none;
}

/* Navigation ------------------------------------------------------------- */

.woocommerce-account .woocommerce-MyAccount-navigation {
	padding: var(--cika-space-3);
	border: var(--cika-commerce-border);
	background: var(--cika-color-surface);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cika-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
	margin: 0;
	list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: var(--cika-space-3);
	border-inline-start: var(--cika-border-heavy) solid transparent;
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color var(--cika-duration-fast) var(--cika-ease-standard), color var(--cika-duration-fast) var(--cika-ease-standard);
}

.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation li a:focus-visible {
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-accent);
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	border-inline-start-color: var(--cika-color-accent);
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-accent);
}

.woocommerce-account .woocommerce-MyAccount-navigation-link--licenses a::before {
	content: '\2731\00a0';
	color: var(--cika-color-accent-2);
}

.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--cika-color-text-muted);
}

/* Content panel ----------------------------------------------------------- */

.woocommerce-account .woocommerce-MyAccount-content {
	padding: clamp(var(--cika-space-4), 2vw, var(--cika-space-6));
	border: var(--cika-commerce-border);
	background: var(--cika-color-surface);
	color: var(--cika-color-text-on-paper);
}

.woocommerce-account .woocommerce-MyAccount-content :where(h2, h3, legend) {
	margin-block: 0 var(--cika-space-4);
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-lg);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

.woocommerce-account .woocommerce-MyAccount-content p {
	line-height: var(--cika-leading-body);
}

.woocommerce-account .woocommerce-MyAccount-content a:not(.button):not([class*='__action']):not([class*='-link']) {
	color: var(--cika-color-accent);
}

/* Notices and empty states ------------------------------------------------ */

.woocommerce-account :where(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-Message) {
	border: 0;
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent-2);
	border-radius: 0;
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	line-height: var(--cika-leading-body);
}

.woocommerce-account .woocommerce-message {
	border-inline-start-color: var(--cika-color-success);
}

.woocommerce-account .woocommerce-error {
	border-inline-start-color: var(--cika-color-danger);
}

.woocommerce-account :where(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
	display: none;
}

.woocommerce-account :where(.woocommerce-info, .woocommerce-message) a.button {
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

/* Dashboard panel --------------------------------------------------------- */

.cika-account-dashboard {
	margin-block-end: var(--cika-space-6);
	padding: clamp(var(--cika-space-4), 2vw, var(--cika-space-5));
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface-raised);
}

.cika-account-dashboard__copy {
	margin: 0;
	color: var(--cika-color-text-on-paper);
	font-size: var(--cika-text-sm);
	line-height: var(--cika-leading-body);
}

.cika-account-dashboard__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cika-space-3);
	margin-block-start: var(--cika-space-4);
}

.cika-account-dashboard__action {
	display: inline-block;
	padding: var(--cika-space-3) var(--cika-space-5);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface);
	box-shadow: var(--cika-shadow-sm);
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration: none;
	text-transform: uppercase;
	transition: transform var(--cika-duration-fast) var(--cika-ease-standard), box-shadow var(--cika-duration-fast) var(--cika-ease-standard);
}

.cika-account-dashboard__action--primary {
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.cika-account-dashboard__action:hover,
.cika-account-dashboard__action:focus-visible {
	box-shadow: none;
	transform: translate(3px, 3px);
}

.cika-account-dashboard__action--primary:hover,
.cika-account-dashboard__action--primary:focus-visible {
	background: var(--cika-color-accent-hover);
	color: var(--cika-color-accent-contrast);
}

/* Shared account tables --------------------------------------------------- */

.woocommerce-account .woocommerce-MyAccount-content table.shop_table:not(.cikareotype-core-licenses__table) {
	width: 100%;
	margin: 0;
	border: var(--cika-commerce-rule);
	border-collapse: collapse;
	background: transparent;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table:not(.cikareotype-core-licenses__table) :where(th, td) {
	padding: var(--cika-space-3);
	border-block-start: var(--cika-commerce-rule);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 400;
	text-align: start;
	vertical-align: middle;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table:not(.cikareotype-core-licenses__table) thead th {
	border-block-start: 0;
	border-block-end: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface-raised);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
	white-space: nowrap;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table:not(.cikareotype-core-licenses__table) a:not(.button) {
	color: var(--cika-color-text);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table:not(.cikareotype-core-licenses__table) a:not(.button):hover,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table:not(.cikareotype-core-licenses__table) a:not(.button):focus-visible {
	color: var(--cika-color-accent);
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table:not(.cikareotype-core-licenses__table) :where(.woocommerce-button, a.button) {
	display: inline-block;
	padding: var(--cika-space-2) var(--cika-space-3);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-surface);
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.woocommerce-account .woocommerce-MyAccount-content table.shop_table:not(.cikareotype-core-licenses__table) :where(.woocommerce-button, a.button):hover,
.woocommerce-account .woocommerce-MyAccount-content table.shop_table:not(.cikareotype-core-licenses__table) :where(.woocommerce-button, a.button):focus-visible {
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

/* Orders: status colour comes from WooCommerce's own row class ------------ */

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-status {
	font-weight: 700;
	text-transform: uppercase;
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status {
	color: var(--cika-color-success);
}

.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status {
	color: var(--cika-color-accent);
}

.woocommerce-account .woocommerce-MyAccount-content :where(.woocommerce-orders-table__row--status-cancelled, .woocommerce-orders-table__row--status-refunded, .woocommerce-orders-table__row--status-failed) .woocommerce-orders-table__cell-order-status {
	color: var(--cika-color-text-muted);
}

.woocommerce-account .woocommerce-orders-table__cell-order-total .woocommerce-Price-amount {
	color: var(--cika-color-accent);
	font-weight: 800;
}

/* Downloads --------------------------------------------------------------- */

.woocommerce-account .woocommerce-MyAccount-downloads-file {
	display: inline-block;
	padding: var(--cika-space-2) var(--cika-space-4);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.woocommerce-account .woocommerce-MyAccount-downloads-file:hover,
.woocommerce-account .woocommerce-MyAccount-downloads-file:focus-visible {
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

/* Addresses --------------------------------------------------------------- */

.woocommerce-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: var(--cika-space-4);
	margin: 0;
}

.woocommerce-account .woocommerce-Address {
	width: auto;
	float: none;
	padding: var(--cika-space-4);
	border: var(--cika-commerce-rule);
	background: var(--cika-color-surface-raised);
}

.woocommerce-account .woocommerce-Address-title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--cika-space-2);
}

.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3 {
	margin: 0;
	font-size: var(--cika-text-md);
}

.woocommerce-account .woocommerce-Address address {
	margin: var(--cika-space-3) 0 0;
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-style: normal;
	line-height: var(--cika-leading-body);
}

/* Account forms ----------------------------------------------------------- */

.woocommerce-account .woocommerce-MyAccount-content :where(.woocommerce-EditAccountForm, .woocommerce-address-fields) .woocommerce-form-row,
.woocommerce-account .woocommerce-MyAccount-content :where(.woocommerce-EditAccountForm, .woocommerce-address-fields) .form-row {
	float: none;
	width: auto;
	margin: 0 0 var(--cika-space-4);
	padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-content :where(.woocommerce-EditAccountForm, .woocommerce-address-fields) label {
	display: block;
	margin-block-end: var(--cika-space-2);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.woocommerce-account .woocommerce-MyAccount-content :where(input.input-text, input.woocommerce-Input, textarea, select, .select2-selection) {
	width: 100%;
	min-height: 2.75rem;
	padding: var(--cika-space-3);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: var(--cika-radius-sm);
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-body);
	font-size: var(--cika-text-sm);
}

.woocommerce-account .woocommerce-MyAccount-content :where(input.input-text, textarea, select):focus-visible {
	border-color: var(--cika-color-accent);
	outline: var(--cika-border-medium) solid var(--cika-color-focus);
	outline-offset: 1px;
}

.woocommerce-account .woocommerce-MyAccount-content fieldset {
	margin: var(--cika-space-6) 0 0;
	padding: var(--cika-space-4);
	border: var(--cika-commerce-rule);
}

.woocommerce-account .woocommerce-MyAccount-content button[type='submit'] {
	padding: var(--cika-space-3) var(--cika-space-6);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-radius: 0;
	background: var(--cika-color-accent);
	box-shadow: var(--cika-shadow-sm);
	color: var(--cika-color-accent-contrast);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
	transition: transform var(--cika-duration-fast) var(--cika-ease-standard), box-shadow var(--cika-duration-fast) var(--cika-ease-standard);
}

.woocommerce-account .woocommerce-MyAccount-content button[type='submit']:hover,
.woocommerce-account .woocommerce-MyAccount-content button[type='submit']:focus-visible {
	background: var(--cika-color-accent-hover);
	box-shadow: none;
	transform: translate(3px, 3px);
}

/* --------------------------------------------------------------------------
   Cikareotype Core licenses endpoint

   Core renders this markup and authorizes every font download and certificate
   link on it. Nothing below changes what is shown, only how it looks.
   -------------------------------------------------------------------------- */

.cikareotype-core-licenses__title {
	margin-block: 0 var(--cika-space-4);
}

.cikareotype-core-licenses__empty {
	margin: 0;
	padding: clamp(var(--cika-space-5), 4vw, var(--cika-space-8));
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	border-inline-start: var(--cika-border-heavy) solid var(--cika-color-accent);
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-lg);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

/* Eight columns is wide for a content panel, so the table is allowed to scroll
   inside its own box rather than pushing the page sideways. */
.cikareotype-core-licenses__table {
	display: block;
	width: 100%;
	margin: 0;
	overflow-x: auto;
	border: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
	border-collapse: collapse;
	overscroll-behavior-x: contain;
}

.cikareotype-core-licenses__heading {
	padding: var(--cika-space-3) var(--cika-space-2);
	border-block-end: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface-raised);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-align: start;
	text-transform: uppercase;
	white-space: nowrap;
}

.cikareotype-core-licenses__cell {
	padding: var(--cika-space-3);
	border-block-start: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
	color: var(--cika-color-text-on-paper);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-sm);
	vertical-align: middle;
}

.cikareotype-core-licenses__cell--product {
	color: var(--cika-color-text);
	font-family: var(--cika-font-display);
	font-size: var(--cika-text-md);
	letter-spacing: var(--cika-tracking-tight);
	line-height: var(--cika-leading-heading);
	text-transform: uppercase;
}

.cikareotype-core-licenses__cell--license {
	color: var(--cika-color-accent);
	font-weight: 800;
}

.cikareotype-core-licenses__cell--order,
.cikareotype-core-licenses__cell--price {
	white-space: nowrap;
}

.cikareotype-core-licenses__cell--price .woocommerce-Price-amount {
	color: var(--cika-color-text);
	font-weight: 800;
}

.cikareotype-core-licenses__cell--status {
	font-weight: 700;
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
	white-space: nowrap;
}

.cikareotype-core-licenses__cell--date {
	white-space: nowrap;
}

.cikareotype-core-licenses__order-link {
	color: var(--cika-color-text);
	font-weight: 700;
	text-decoration: none;
}

.cikareotype-core-licenses__order-link:hover,
.cikareotype-core-licenses__order-link:focus-visible {
	color: var(--cika-color-accent);
}

.cikareotype-core-licenses__font-link {
	display: inline-block;
	white-space: nowrap;
	margin-block-end: var(--cika-space-1);
	padding: var(--cika-space-2) var(--cika-space-3);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-accent-2);
	color: var(--cika-color-accent-contrast);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration: none;
	text-transform: uppercase;
}

.cikareotype-core-licenses__font-link:hover,
.cikareotype-core-licenses__font-link:focus-visible {
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

.cikareotype-core-licenses__certificate-link {
	display: inline-block;
	padding: var(--cika-space-2) var(--cika-space-3);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-accent);
	box-shadow: var(--cika-shadow-sm);
	color: var(--cika-color-accent-contrast);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration: none;
	text-transform: uppercase;
	transition: transform var(--cika-duration-fast) var(--cika-ease-standard), box-shadow var(--cika-duration-fast) var(--cika-ease-standard);
}

.cikareotype-core-licenses__certificate-link:hover,
.cikareotype-core-licenses__certificate-link:focus-visible {
	background: var(--cika-color-accent-hover);
	box-shadow: none;
	color: var(--cika-color-accent-contrast);
	transform: translate(3px, 3px);
}

.cikareotype-core-licenses__unavailable {
	color: var(--cika-color-text-muted);
	white-space: nowrap;
	font-size: var(--cika-text-xs);
	letter-spacing: var(--cika-tracking-wide);
	text-transform: uppercase;
}

.cikareotype-core-licenses__pagination {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cika-space-3);
	margin-block-start: var(--cika-space-5);
}

.cikareotype-core-licenses__pagination a {
	display: inline-block;
	padding: var(--cika-space-3) var(--cika-space-5);
	border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
	background: var(--cika-color-surface);
	color: var(--cika-color-text);
	font-family: var(--cika-font-mono);
	font-size: var(--cika-text-xs);
	font-weight: 800;
	letter-spacing: var(--cika-tracking-wide);
	text-decoration: none;
	text-transform: uppercase;
}

.cikareotype-core-licenses__pagination a:hover,
.cikareotype-core-licenses__pagination a:focus-visible {
	background: var(--cika-color-accent);
	color: var(--cika-color-accent-contrast);
}

/* Desktop: navigation beside content --------------------------------------- */

@media (min-width: 62.01rem) {
	.woocommerce-account .woocommerce {
		grid-template-columns: minmax(0, 15rem) minmax(0, 1fr);
		column-gap: var(--cika-space-8);
	}

	.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation {
		position: sticky;
		top: var(--cika-space-4);
		grid-column: 1;
	}

	.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
		grid-column: 2;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		flex-direction: column;
		gap: 0;
	}
}

/* Mobile: account tables become cards -------------------------------------- */

@media (max-width: 48rem) {
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table,
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody,
	.cikareotype-core-licenses__table,
	.cikareotype-core-licenses__table tbody {
		display: block;
		width: 100%;
		border: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-content table.shop_table thead,
	.cikareotype-core-licenses__table thead {
		display: none;
	}

	.woocommerce-account .woocommerce-MyAccount-content table.shop_table tr,
	.cikareotype-core-licenses__row {
		display: block;
		width: 100%;
		margin-block-end: var(--cika-space-4);
		border: var(--cika-border-medium) solid var(--cika-color-border-on-paper);
		background: var(--cika-color-surface-raised);
	}

	.woocommerce-account .woocommerce-MyAccount-content table.shop_table td,
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table th,
	.cikareotype-core-licenses__cell {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		justify-content: space-between;
		gap: var(--cika-space-2);
		width: 100%;
		border-block-start: var(--cika-border-thin) solid var(--cika-color-border-on-paper);
		text-align: end;
	}

	.woocommerce-account .woocommerce-MyAccount-content table.shop_table tr :where(td, th):first-child,
	.cikareotype-core-licenses__row .cikareotype-core-licenses__cell:first-child {
		border-block-start: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-content table.shop_table td::before,
	.woocommerce-account .woocommerce-MyAccount-content table.shop_table th::before,
	.cikareotype-core-licenses__cell::before {
		content: attr(data-title);
		color: var(--cika-color-text-on-paper);
		font-family: var(--cika-font-mono);
		font-size: var(--cika-text-xs);
		font-weight: 700;
		letter-spacing: var(--cika-tracking-wide);
		text-align: start;
		text-transform: uppercase;
	}

	.cikareotype-core-licenses__cell--product {
		justify-content: flex-start;
		text-align: start;
	}

	.cikareotype-core-licenses__cell,
	.cikareotype-core-licenses__cell--order,
	.cikareotype-core-licenses__cell--price,
	.cikareotype-core-licenses__cell--date,
	.cikareotype-core-licenses__cell--status {
		white-space: normal;
	}

	.cikareotype-core-licenses__cell--product::before {
		flex: 1 1 100%;
	}
}

@media (max-width: 42rem) {
	.cika-account-dashboard__action,
	.woocommerce-account .woocommerce-MyAccount-content button[type='submit'] {
		width: 100%;
		text-align: center;
	}

	.woocommerce-account .woocommerce-Addresses {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.cika-account-dashboard__action,
	.cika-account-dashboard__action:hover,
	.cikareotype-core-licenses__certificate-link,
	.cikareotype-core-licenses__certificate-link:hover,
	.woocommerce-account .woocommerce-MyAccount-content button[type='submit'],
	.woocommerce-account .woocommerce-MyAccount-content button[type='submit']:hover {
		transform: none;
		transition: none;
	}
}
