/*
 * Linden Catalogue: the order form. Cart, checkout (block and classic), order received,
 * My Account, mini-cart, notices and errors.
 *
 * The checkout is the order form torn from the back of the catalogue: a coloured header strip
 * with the return address, a dashed tear line, then numbered boxes. The Linden Checkout Plus
 * features (free-delivery line, gift wrap, suggestions, gift note, delivery day, textile offer)
 * are boxes and lines on that form.
 */

:root {
	--lc-error: #b23d18; /* Tomato, darkened for text on paper (6.1:1). */
	--lc-box-pad: clamp(1.1rem, 2.4vw, 1.75rem);
	--lc-summary-width: 440px;
}

/* ---- Order form header strip ------------------------------------------------- */

.lc-order-form {
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.lc-form-head {
	margin: 0;
}

.lc-form-head__strip {
	display: grid;
	grid-template-columns: var(--lc-field-width) minmax(0, 1fr) auto;
	align-items: end;
	gap: 0.75rem 2.5rem;
	padding: clamp(1.75rem, 3.4vw, 2.75rem) var(--lc-gutter);
	background: var(--lc-tomato);
	color: var(--lc-paper);
}

.lc-order-form--checkout .lc-form-head__strip,
.lc-order-form--classic .lc-form-head__strip {
	background: var(--lc-teal);
}

.lc-order-form--received .lc-form-head__strip {
	background: var(--lc-mustard);
	color: var(--lc-ink);
}

.lc-form-head__title {
	margin: 0;
	color: inherit;
	font-size: var(--lh-step-display);
	line-height: var(--lh-leading-display);
	letter-spacing: -0.03em;
}

.lc-form-head__step {
	margin: 0;
	font-size: var(--lh-step-lead);
	line-height: var(--lh-leading-lead);
	font-weight: 400;
}

.lc-form-head__address {
	margin: 0;
	font-size: var(--lh-step-small);
	font-weight: 600;
	text-align: right;
	max-width: 22ch;
}

/* The tear line: where the form comes away from the catalogue. */
.lc-form-head .lc-tear {
	margin: 0.6rem 0 0;
}

.lc-form-body {
	margin: 0;
	padding: clamp(1.5rem, 3vw, 2.5rem) var(--lc-gutter) 0;
}

.lc-form-body > * {
	margin-block: 0 !important;
}

@media (max-width: 900px) {
	.lc-form-head__strip {
		grid-template-columns: 1fr;
	}

	.lc-form-head__address {
		text-align: left;
		max-width: none;
	}
}

/* ---- Shared controls ----------------------------------------------------------- */

.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-blocks-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-textarea,
.lc-classic .input-text,
.lc-classic select,
.woocommerce-MyAccount-content .input-text,
.woocommerce-MyAccount-content select,
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
	background-color: #fff !important;
	color: var(--lc-ink) !important;
	box-shadow: none !important;
	font-family: inherit;
}

.wc-block-components-text-input input:focus,
.wc-blocks-components-select__select:focus,
.wc-block-components-textarea:focus,
.woocommerce form .form-row .input-text:focus {
	outline: 3px solid var(--lc-mustard) !important;
	outline-offset: 0 !important;
	box-shadow: none !important;
}

.wc-block-components-text-input label,
.wc-blocks-components-select__label {
	color: var(--lc-ink-soft) !important;
}

.wc-blocks-components-select__container {
	border-radius: 0 !important;
}

.wc-blocks-components-select__container .wc-blocks-components-select__select {
	border: var(--lc-rule) !important;
}

/* Square tick boxes, like the boxes on a paper form. */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"],
.linden-cp-gift-wrap-toggle input[type="checkbox"],
.lc-classic input[type="checkbox"],
.woocommerce-MyAccount-content input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	flex: 0 0 auto;
	width: 1.375rem !important;
	height: 1.375rem !important;
	min-width: 1.375rem;
	margin: 0;
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
	background: #fff !important;
	cursor: pointer;
	position: relative;
	vertical-align: middle;
	display: inline-block !important;
}

.linden-cp-gift-wrap-toggle input[type="checkbox"]:checked,
.lc-classic input[type="checkbox"]:checked,
.woocommerce-MyAccount-content input[type="checkbox"]:checked,
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--lc-ink) !important;
}

.linden-cp-gift-wrap-toggle input[type="checkbox"]:checked::after,
.lc-classic input[type="checkbox"]:checked::after,
.woocommerce-MyAccount-content input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	left: 0.38rem;
	top: 0.12rem;
	width: 0.35rem;
	height: 0.7rem;
	border: solid var(--lc-paper);
	border-width: 0 3px 3px 0;
	transform: rotate(45deg);
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: var(--lc-paper) !important;
	width: 1rem;
	height: 1rem;
	left: 0.19rem;
	top: 0.19rem;
}

.wc-block-components-checkbox label {
	align-items: center;
	gap: 0.75rem;
}

.wc-block-components-checkbox__label {
	color: var(--lc-ink);
	font-weight: 600;
}

.wc-block-components-radio-control__input {
	border: var(--lc-rule) !important;
	background: #fff !important;
}

.wc-block-components-radio-control__input:checked::before {
	background: var(--lc-ink) !important;
}

.wc-block-components-radio-control--highlight-checked::after,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: none !important;
	border-radius: 0 !important;
}

.wc-block-components-radio-control--highlight-checked,
.wc-block-components-shipping-rates-control__package .wc-block-components-radio-control {
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
}

.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option {
	border-radius: 0 !important;
}

/* Buttons inside WooCommerce blocks follow the theme: ink, square. */
.wc-block-components-button:not(.is-link),
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.lc-classic .button,
#place_order,
.lc-specimen__addbtn {
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
	background: var(--lc-ink) !important;
	color: var(--lc-paper) !important;
	font-family: inherit;
	font-weight: 700 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	opacity: 1;
}

.wc-block-components-button:not(.is-link):hover,
.woocommerce .button:hover,
.woocommerce a.button:hover,
#place_order:hover {
	background: var(--lc-paper) !important;
	color: var(--lc-ink) !important;
}

.wc-block-components-button:not(.is-link):disabled,
.wc-block-components-button:not(.is-link)[aria-disabled="true"] {
	background: var(--lc-stone) !important;
	border-color: var(--lc-stone) !important;
	color: var(--lc-ink) !important;
	opacity: 1 !important;
}

.wc-block-components-button.is-link,
.wc-block-components-panel__button,
.wc-block-components-address-card__edit,
.wc-block-components-address-form__address_2-toggle {
	color: var(--lc-ink) !important;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.wc-block-components-validation-error,
.wc-block-components-validation-error > p,
.woocommerce-invalid .checkout-inline-error-message,
.checkout-inline-error-message {
	color: var(--lc-error) !important;
	font-weight: 600;
	font-size: var(--lh-step-small);
}

.wc-block-components-validation-error svg {
	fill: var(--lc-error);
}

.has-error input,
.has-error select,
.wc-block-components-text-input.has-error input,
.woocommerce-invalid .input-text {
	border-color: var(--lc-error) !important;
	outline: 2px solid var(--lc-error);
	outline-offset: 0;
}

.has-error label,
.wc-block-components-text-input.has-error label {
	color: var(--lc-error) !important;
}

/* ---- Notices ----------------------------------------------------------------------- */

.wc-block-components-notice-banner,
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	margin: 0 0 1.25rem !important;
	padding: 1rem 1.25rem !important;
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
	background: var(--lc-paper) !important;
	color: var(--lc-ink) !important;
	font-size: var(--lh-step-body);
	font-weight: 600;
	box-shadow: none !important;
	list-style: none;
}

.wc-block-components-notice-banner > svg {
	flex: 0 0 auto;
	width: 1.5rem;
	height: 1.5rem;
	padding: 0.15rem;
	border-radius: 0 !important;
	background: var(--lc-ink) !important;
	fill: var(--lc-paper) !important;
}

/* Errors own a tomato field; the text is paper on tomato (4.7:1). */
.wc-block-components-notice-banner.is-error,
.woocommerce-error {
	background: var(--lc-tomato) !important;
	color: var(--lc-paper) !important;
}

.wc-block-components-notice-banner.is-error > svg {
	background: var(--lc-paper) !important;
	fill: var(--lc-tomato) !important;
}

.wc-block-components-notice-banner.is-success,
.woocommerce-message {
	background: var(--lc-teal) !important;
	color: var(--lc-paper) !important;
}

.wc-block-components-notice-banner.is-success > svg {
	background: var(--lc-paper) !important;
	fill: var(--lc-teal) !important;
}

.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-warning,
.woocommerce-info {
	background: var(--lc-mustard) !important;
	color: var(--lc-ink) !important;
}

.wc-block-components-notice-banner a,
.woocommerce .wc-block-components-notice-banner a.button,
.woocommerce-error a,
.woocommerce-message a,
.woocommerce-info a {
	color: inherit !important;
	font-weight: 700;
	text-decoration: underline !important;
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
}

.wc-block-components-notice-banner .wc-block-components-button {
	background: transparent !important;
	border: 0 !important;
	color: inherit !important;
	padding: 0 !important;
	min-height: 0;
	text-decoration: underline !important;
	margin-left: auto;
}

.wc-block-components-notice-banner__content {
	color: inherit;
	align-self: center;
}

.wc-block-components-notice-banner ul {
	margin: 0;
	padding-left: 1.1rem;
}

.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before {
	display: none !important;
}

.woocommerce-error li {
	margin: 0;
}

/* ---- Numbered boxes: block checkout ------------------------------------------------- */

.wc-block-checkout,
.wc-block-cart {
	margin: 0 !important;
}

.wc-block-components-sidebar-layout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) var(--lc-summary-width);
	gap: 0 clamp(1.5rem, 3vw, 3rem);
	margin: 0 !important;
	align-items: start;
}

.wc-block-components-sidebar-layout > .wc-block-components-main,
.wc-block-components-sidebar-layout > .wc-block-components-sidebar {
	width: auto !important;
	padding: 0 !important;
	margin: 0 !important;
}

.wc-block-components-sidebar-layout > .wc-block-components-notices,
.wc-block-components-sidebar-layout > .wc-block-components-notices__snackbar,
.wc-block-components-sidebar-layout > .wc-block-components-notice-snackbar-list {
	grid-column: 1 / -1;
}

.wc-block-checkout__form {
	counter-reset: lc-box;
	margin: 0 !important;
}

.wc-block-checkout__form > .wc-block-components-checkout-step,
.wc-block-checkout__form > .wc-block-checkout__order-notes {
	margin: 0 0 -2px !important;
	padding: 0 !important;
	border: var(--lc-rule) !important;
	background: var(--lc-paper);
}

.wc-block-checkout__form > fieldset.wc-block-components-checkout-step {
	counter-increment: lc-box;
}

.wc-block-components-checkout-step__heading-container {
	margin: 0 !important;
	padding: 0.85rem var(--lc-box-pad) !important;
	border-bottom: var(--lc-rule);
}

.wc-block-components-checkout-step__heading {
	display: flex;
	align-items: center;
	margin: 0 !important;
}

.wc-block-components-checkout-step__title {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 0 !important;
	/* !important: WooCommerce shrinks step titles on small checkouts with a more specific rule. */
	font-size: var(--lh-step-title) !important;
	font-weight: 800 !important;
	font-variation-settings: var(--lc-display);
	letter-spacing: -0.01em;
	line-height: var(--lh-leading-title);
}

.wc-block-checkout__form > fieldset .wc-block-components-checkout-step__title::before {
	content: counter(lc-box);
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 2.25rem;
	height: 2.25rem;
	background: var(--lc-ink);
	color: var(--lc-paper);
	font-size: var(--lh-step-title);
	font-weight: 800;
}

.wc-block-components-checkout-step__content {
	padding: var(--lc-box-pad) !important;
	margin: 0 !important;
}

.wc-block-components-checkout-step__container::after,
.wc-block-components-checkout-step::after {
	display: none !important;
}

.wc-block-components-checkout-step__description {
	color: var(--lc-ink-soft);
	margin-bottom: 1rem !important;
}

/* Box: gift note and delivery day. Its header strip is the mustard field of the form. */
.wc-block-checkout__order-fields .wc-block-components-checkout-step__heading-container {
	background: var(--lc-mustard);
}

.wc-block-checkout__order-fields .wc-block-components-checkout-step__content > .wc-block-components-address-form {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 15rem);
	gap: 1rem 1.25rem;
	align-items: start;
}

.wc-block-checkout__order-fields .wc-block-components-address-form > * {
	margin: 0 !important;
	flex: none !important;
	width: auto !important;
}

.wc-block-checkout__order-fields .wc-block-components-address-form__linden-is-gift,
.wc-block-checkout__order-fields .wc-block-components-address-form__linden-gift-message {
	grid-column: 1 / -1;
}

.wc-block-checkout__order-fields .wc-block-components-address-form__linden-delivery-date {
	grid-column: 1 / -1;
	max-width: 22rem;
}

/* The gift note reads as a ruled writing line on the card. */
.wc-block-components-address-form__linden-gift-message input {
	min-height: 3.75rem;
	/* !important: WooCommerce sizes block inputs from its own form rules, which load after the theme. */
	font-size: var(--lh-step-body) !important;
	background:
		#fff !important;
	border-style: solid !important;
}

.wc-block-components-address-form__linden-delivery-date input {
	font-variant-numeric: tabular-nums;
}

/*
 * The focused part of the date (month, day or year) is marked in mustard, not the system blue.
 * Chromium 156 no longer matches author :focus on these segments, but does match :focus-within
 * on the focused one; both are listed.
 */
input[type="date"]::-webkit-datetime-edit-month-field:focus,
input[type="date"]::-webkit-datetime-edit-day-field:focus,
input[type="date"]::-webkit-datetime-edit-year-field:focus,
input[type="date"]::-webkit-datetime-edit-month-field:focus-within,
input[type="date"]::-webkit-datetime-edit-day-field:focus-within,
input[type="date"]::-webkit-datetime-edit-year-field:focus-within {
	background: var(--lc-mustard);
	color: var(--lc-ink);
	outline: none;
}

.wc-block-components-text-input__date-icon svg {
	fill: var(--lc-ink);
}

.wc-block-checkout__add-note {
	padding: 0;
}

.wc-block-checkout__order-notes .wc-block-components-checkout-step__content {
	padding-block: 1rem !important;
}

.wc-block-checkout__terms {
	margin: 1.5rem 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	font-size: var(--lh-step-micro);
	color: var(--lc-ink-soft);
}

.wc-block-checkout__terms a {
	color: var(--lc-ink);
}

.wc-block-checkout__actions {
	margin-top: 1.25rem !important;
	padding-top: 1.25rem !important;
	border-top: 2px dashed var(--lc-ink);
}

.wc-block-checkout__actions_row {
	gap: 1rem;
}

.wc-block-components-checkout-place-order-button {
	width: 100%;
	min-height: 60px;
	font-size: var(--lh-step-title);
	font-weight: 800 !important;
	font-variation-settings: var(--lc-display);
}

.wc-block-components-checkout-return-to-cart-button {
	color: var(--lc-ink) !important;
	font-weight: 700;
}

.wc-block-components-address-card {
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
	background: #fff;
}

.wc-block-components-address-card address {
	color: var(--lc-ink);
}

/* ---- Order summary (checkout) and cart totals ----------------------------------- */

.wc-block-checkout__sidebar,
.wc-block-cart__sidebar {
	border: var(--lc-rule) !important;
	background: var(--lc-paper);
	top: 1rem !important;
}

.wp-block-woocommerce-checkout-order-summary-block {
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 !important;
}

.wc-block-components-checkout-order-summary__title,
.wc-block-cart .wc-block-cart__totals-title {
	margin: 0 !important;
	padding: 1rem var(--lc-box-pad) !important;
	background: var(--lc-ink) !important;
	color: var(--lc-paper) !important;
	border: 0 !important;
}

.wc-block-components-checkout-order-summary__title-text,
.wc-block-cart__totals-title {
	color: var(--lc-paper) !important;
	/* !important: the cart totals heading is sized by a more specific WooCommerce block rule. */
	font-size: var(--lh-step-title) !important;
	font-weight: 800 !important;
	font-variation-settings: var(--lc-display);
	text-transform: none !important;
	letter-spacing: -0.01em !important;
}

.wc-block-components-checkout-order-summary__title-price,
.wc-block-components-checkout-order-summary__title-icon {
	color: var(--lc-paper) !important;
	fill: var(--lc-paper);
}

.wc-block-components-totals-wrapper {
	padding: 1rem var(--lc-box-pad) !important;
	border-top: var(--lc-rule) !important;
}

.wc-block-components-totals-wrapper:empty {
	display: none;
}

.wp-block-woocommerce-checkout-order-summary-totals-block > .wc-block-components-totals-wrapper + .wc-block-components-totals-wrapper,
.wp-block-woocommerce-cart-order-summary-totals-block > .wc-block-components-totals-wrapper + .wc-block-components-totals-wrapper {
	border-top: 0 !important;
	padding-top: 0 !important;
}

.wc-block-components-totals-item {
	color: var(--lc-ink);
}

.wc-block-components-totals-item__label {
	font-weight: 500;
}

.wc-block-components-totals-item__value {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.wc-block-components-totals-item__description {
	color: var(--lc-ink-soft);
}

/* Fees: gift wrapping and the textiles offer are lines of their own. */
.wc-block-components-totals-fees .wc-block-components-totals-item__label,
.wp-block-woocommerce-checkout-order-summary-fee-block .wc-block-components-totals-item__label,
.wp-block-woocommerce-cart-order-summary-fee-block .wc-block-components-totals-item__label {
	font-weight: 700;
}

.wc-block-components-totals-footer-item {
	align-items: baseline;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-size: var(--lh-step-title);
	font-weight: 800 !important;
	font-variation-settings: var(--lc-display);
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item-tax-value {
	font-size: var(--lh-step-number);
	font-weight: 800 !important;
	font-variation-settings: var(--lc-display);
}

.wc-block-components-order-summary {
	padding: 0 !important;
}

.wc-block-components-order-summary-item {
	padding: 0.75rem 0 !important;
	border-bottom: 2px dashed var(--lc-ink);
}

.wc-block-components-order-summary-item:last-child {
	border-bottom: 0;
}

.wc-block-components-order-summary-item__image img,
.wc-block-cart-item__image img,
.wc-block-mini-cart-items .wc-block-cart-item__image img {
	border: var(--lc-rule);
	border-radius: 0 !important;
	aspect-ratio: 1;
	object-fit: cover;
}

.wc-block-components-order-summary-item__quantity {
	border: 2px solid var(--lc-paper) !important;
	border-radius: 0 !important;
	background: var(--lc-ink) !important;
	color: var(--lc-paper) !important;
	box-shadow: none !important;
	font-weight: 800;
}

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

a.wc-block-components-product-name:hover {
	text-decoration: underline;
}

.wc-block-components-product-metadata {
	color: var(--lc-ink-soft);
	font-size: var(--lh-step-micro);
}

/* The catalogue number on each line: "Catalogue: No. 103". */
.wc-block-components-product-details {
	margin: 0.25rem 0 0 !important;
	padding: 0;
	list-style: none;
}

.wc-block-components-product-details__catalogue,
.wc-block-components-product-details > :first-child {
	font-weight: 800;
	color: var(--lc-ink);
	font-variation-settings: var(--lc-display);
}

.wc-block-components-product-details > :first-child .wc-block-components-product-details__name,
.wc-block-components-product-details__catalogue .wc-block-components-product-details__name {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.wc-block-components-totals-coupon .wc-block-components-panel__button {
	padding: 0 !important;
}

.wc-block-components-panel__button-icon {
	fill: var(--lc-ink);
}

/* ---- Linden Checkout Plus on the form ------------------------------------------- */

.wc-block-components-totals-wrapper.slot-wrapper {
	padding: 0 !important;
}

.wc-block-components-order-meta {
	margin: 0;
}

.linden-cp-panel {
	display: grid;
	gap: 0;
	margin: 0 !important;
}

.linden-cp-panel > * {
	margin: 0 !important;
}

/* Free-delivery line: the message, then a bar that fills toward the threshold. */
.linden-cp-free-shipping {
	padding: 1rem var(--lc-box-pad) 0.6rem;
	font-size: var(--lh-step-body);
	font-weight: 700 !important;
	color: var(--lc-ink);
}

.lc-classic .linden-cp-free-shipping,
.wc-block-cart .linden-cp-free-shipping.woocommerce-info {
	background: transparent !important;
	border: 0 !important;
	margin: 0 !important;
	padding: 0 0 0.6rem !important;
	color: var(--lc-ink) !important;
}

.linden-cp-progress {
	position: relative;
	height: 1.125rem;
	margin: 0 var(--lc-box-pad) 1rem !important;
	border: var(--lc-rule);
	background: #fff;
	overflow: hidden;
}

.lc-classic .linden-cp-progress {
	margin: 0 0 1.25rem !important;
}

/*
 * The one orchestrated moment: when the order form changes, the bar fills to the new amount
 * with a long ease-out, as if the line were being inked in. It starts from where it was, so
 * the first paint already shows the current state.
 */
.linden-cp-progress__bar {
	display: block;
	height: 100%;
	width: var(--linden-cp-progress, 0%);
	background: var(--lc-teal);
	transition: width 1100ms var(--lc-ease);
}

.linden-cp-progress__bar[style*="100%"] {
	background: var(--lc-ink);
}

/* Gift wrapping: a tick-box line on the form. */
.linden-cp-gift-wrap-toggle {
	padding: 0.85rem var(--lc-box-pad);
	border-top: var(--lc-rule);
}

.linden-cp-gift-wrap-toggle label {
	display: flex !important;
	align-items: center;
	gap: 0.75rem !important;
	font-weight: 700;
	cursor: pointer;
}

.linden-cp-gift-wrap-toggle input:disabled {
	opacity: 0.6;
}

/* Suggestions: an "add to this order" box with its own mustard strip. */
.linden-cp-bumps {
	border: 0 !important;
	border-top: var(--lc-rule) !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

.linden-cp-bumps h3,
.linden-cp-bumps h2 {
	margin: 0 !important;
	padding: 0.7rem var(--lc-box-pad);
	background: var(--lc-mustard);
	border-bottom: var(--lc-rule);
	color: var(--lc-ink);
	font-size: var(--lh-step-body);
	font-weight: 800;
	font-variation-settings: var(--lc-display);
	letter-spacing: 0;
}

.linden-cp-bumps ul {
	gap: 0 !important;
	padding: 0 var(--lc-box-pad) !important;
}

.linden-cp-bump {
	display: grid !important;
	grid-template-columns: 56px minmax(0, 1fr) !important;
	grid-template-rows: auto auto;
	gap: 0.5rem 0.85rem !important;
	align-items: start !important;
	padding: 0.85rem 0;
	border-bottom: 2px dashed var(--lc-ink);
}

.linden-cp-bump:last-child {
	border-bottom: 0;
}

.linden-cp-bump img {
	grid-row: span 2;
	width: 56px !important;
	height: 56px !important;
	object-fit: cover;
	border: var(--lc-rule);
}

.linden-cp-bump > span {
	font-weight: 600;
	line-height: 1.35;
}

.linden-cp-bump > span a {
	color: var(--lc-ink);
	font-weight: 700;
	text-decoration: none;
}

.linden-cp-bump > span a:hover {
	text-decoration: underline;
}

/* Number first, then the name; the price takes its own line under them. */
.linden-cp-bump__price {
	display: block;
	margin-top: 0.15rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums lining-nums;
}

.linden-cp-bump .woocommerce-Price-amount,
.linden-cp-bump .amount {
	font-weight: 600;
}

.linden-cp-bump button,
.linden-cp-bump .button,
.linden-cp-bump form {
	grid-column: 2;
	justify-self: start;
	margin: 0 !important;
}

/*
 * The "Add" button is the form's primary ink button (ink fill, paper text, paper on hover), from
 * the shared button rule above. Here it only gets the smaller size of a line on the form.
 */
.linden-cp-bump button,
.linden-cp-bump .button,
.linden-cp-bump .linden-cp-bump-add,
.lc-specimen__addbtn {
	min-height: 40px;
	padding: 0.45rem 0.85rem !important;
	font-size: var(--lh-step-small);
	line-height: 1.25 !important;
	white-space: normal;
	text-align: left;
}

/* Payment note: small print at the foot of the form. */
.linden-cp-payment-note {
	padding: 0.85rem var(--lc-box-pad) 1rem;
	border-top: var(--lc-rule);
	font-size: var(--lh-step-small);
	color: var(--lc-ink);
}

.lc-classic .linden-cp-payment-note.woocommerce-info {
	background: transparent !important;
	border: 0 !important;
	border-top: var(--lc-rule) !important;
	padding: 0.85rem 0 !important;
	margin: 0 !important;
	font-weight: 500;
}

/* ---- Cart (block) ---------------------------------------------------------------------- */

.wc-block-cart-items,
.wc-block-cart table.wc-block-cart-items {
	margin: 0 !important;
	border: var(--lc-rule) !important;
	border-collapse: collapse;
}

.wc-block-cart-items__header {
	background: var(--lc-ink);
	color: var(--lc-paper);
}

.wc-block-cart-items__header th {
	padding: 0.85rem var(--lc-box-pad) !important;
	color: var(--lc-paper);
	font-size: var(--lh-step-small);
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

.wc-block-cart-items__row {
	border-top: var(--lc-rule) !important;
}

.wc-block-cart-items td {
	border: 0 !important;
	padding-top: 1.25rem !important;
	padding-bottom: 1.25rem !important;
}

.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
	padding-left: var(--lc-box-pad) !important;
}

.wc-block-cart-items .wc-block-cart-item__total {
	padding-right: var(--lc-box-pad) !important;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
}

.wc-block-cart-item__prices {
	font-weight: 600;
}

.wc-block-components-quantity-selector {
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
	background: #fff;
}

.wc-block-components-quantity-selector::after {
	display: none !important;
}

.wc-block-components-quantity-selector input {
	font-weight: 700 !important;
	color: var(--lc-ink) !important;
}

.wc-block-components-quantity-selector__button {
	color: var(--lc-ink) !important;
	opacity: 1 !important;
}

.wc-block-components-quantity-selector__button:disabled {
	opacity: 0.4 !important;
}

.wc-block-cart-item__remove-link {
	color: var(--lc-ink) !important;
	font-weight: 600;
	/* !important: WooCommerce sizes the remove link with a more specific cart-row rule. */
	font-size: var(--lh-step-small) !important;
	text-decoration: underline !important;
}

.wc-block-cart__submit-container {
	padding: var(--lc-box-pad) !important;
	border-top: var(--lc-rule);
}

/* WooCommerce renders only the "sticky" submit container here; on wide screens keep it in place. */
@media (min-width: 782px) {
	.wc-block-cart .wc-block-cart__submit-container--sticky {
		display: block !important;
		position: static !important;
		box-shadow: none !important;
	}
}

@media (max-width: 781px) {
	.wc-block-cart .wc-block-cart__submit-container--sticky {
		border-top: var(--lc-rule);
		box-shadow: none !important;
		padding: 0.75rem 1rem !important;
	}

	.wc-block-cart .wc-block-cart__submit-container--sticky::before {
		display: none !important;
	}
}

.wc-block-cart__submit-button {
	width: 100%;
	min-height: 56px;
	font-size: var(--lh-step-title);
}

.wc-block-cart__payment-options {
	padding: 0 !important;
}

.wc-block-cart__payment-options:empty,
.wc-block-cart__payment-options > :empty {
	display: none;
}

/* Empty order form. */
.wp-block-woocommerce-empty-cart-block {
	padding: 0 !important;
}

.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block > .wp-block-heading:first-child {
	margin: 1rem 0 1.5rem !important;
	padding: 0 !important;
	font-size: var(--lh-step-headline);
	text-align: left !important;
}

.wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
	display: none !important;
}

.wp-block-woocommerce-empty-cart-block > .wp-block-separator {
	display: none;
}

.wp-block-woocommerce-empty-cart-block > .wp-block-heading:not(:first-child) {
	margin: 2rem 0 0 !important;
	padding: 0 0 1rem !important;
	border-bottom: var(--lc-rule);
	font-size: var(--lh-step-number);
	text-align: left !important;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__products,
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new ul {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0 !important;
	border-left: var(--lc-rule);
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
	max-width: none !important;
	flex: none !important;
	margin: 0 !important;
	padding: 1rem !important;
	border-right: var(--lc-rule);
	border-bottom: var(--lc-rule);
	text-align: left !important;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
	aspect-ratio: 1;
	object-fit: cover;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title {
	color: var(--lc-ink);
	font-weight: 700;
	font-size: var(--lh-step-small);
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price {
	font-size: var(--lh-step-small);
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-link {
	color: var(--lc-ink);
	text-decoration: none;
}

.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link {
	padding: 0.5rem 0.85rem !important;
	font-size: var(--lh-step-small);
}

/* ---- Mini-cart drawer ---------------------------------------------------------------- */

/*
 * The closed drawer stays in the page with aria-hidden="true"; hiding it from layout as well
 * keeps its links and buttons out of the tab order (Lighthouse "aria-hidden-focus").
 */
.wc-block-components-drawer__screen-overlay--is-hidden {
	visibility: hidden;
	transition: opacity 200ms var(--lc-ease), visibility 0s linear 200ms !important;
}

.wc-block-components-drawer__screen-overlay {
	background-color: rgba(28, 28, 26, 0.55) !important;
}

.wc-block-mini-cart__drawer,
.wc-block-components-drawer {
	background: var(--lc-paper) !important;
	color: var(--lc-ink);
	border-left: var(--lc-rule);
	box-shadow: none !important;
}

.wc-block-mini-cart__title {
	margin: 0 !important;
	padding: 1.25rem var(--lc-box-pad) !important;
	background: var(--lc-tomato);
	color: var(--lc-paper);
	/* !important: the mini-cart drawer sizes its title with a more specific WooCommerce rule. */
	font-size: var(--lh-step-number) !important;
	font-weight: 800;
	font-variation-settings: var(--lc-display);
	mask-image: none !important;
}

.wc-block-mini-cart__title span {
	color: var(--lc-paper);
}

.wc-block-components-drawer__close {
	color: var(--lc-paper) !important;
	opacity: 1 !important;
}

.wc-block-mini-cart__items {
	padding: 0 var(--lc-box-pad) !important;
}

.wc-block-mini-cart__items .wc-block-cart-items__row {
	border-top: 0 !important;
	border-bottom: 2px dashed var(--lc-ink) !important;
}

.wc-block-mini-cart__footer {
	padding: var(--lc-box-pad) !important;
	border-top: var(--lc-rule);
	box-shadow: none !important;
}

.wc-block-mini-cart__footer::after {
	display: none !important;
}

.wc-block-mini-cart__footer-actions {
	gap: 0.75rem;
}

.wc-block-mini-cart__footer-cart.wc-block-components-button:not(.is-link) {
	background: var(--lc-paper) !important;
	color: var(--lc-ink) !important;
}

.wc-block-mini-cart__empty-cart-wrapper {
	padding: 2rem var(--lc-box-pad);
}

/* The order-form link in the checkout header: "Order form" back to part 1. */
.lc-back-to-cart a,
.lc-topbar .wc-block-cart-link {
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0.45rem 0.9rem;
	background: var(--lc-mustard);
	color: var(--lc-ink) !important;
	font-weight: 700;
	text-decoration: none;
}

.lc-topbar .wc-block-cart-link svg,
.lc-topbar .wc-block-cart-link .wc-block-cart-link__icon {
	display: none;
}

.lc-topbar .wc-block-cart-link::before {
	content: var(--lc-order-form-label, "Order form");
}

/* ---- Classic cart and checkout (shortcodes) ------------------------------------------- */

.lc-classic .woocommerce {
	max-width: none;
}

.lc-classic form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--lc-summary-width);
	grid-template-rows: auto auto 1fr;
	gap: 0 clamp(1.5rem, 3vw, 3rem);
	align-items: start;
	counter-reset: lc-box;
}

.lc-classic form.checkout > .woocommerce-NoticeGroup {
	grid-column: 1 / -1;
	grid-row: 1;
}

.lc-classic #customer_details {
	grid-column: 1;
	grid-row: 2 / span 2;
	width: auto;
}

.lc-classic #order_review_heading {
	grid-column: 2;
	grid-row: 2;
	margin: 0 !important;
	padding: 1rem var(--lc-box-pad);
	background: var(--lc-ink);
	color: var(--lc-paper);
	font-size: var(--lh-step-title);
}

.lc-classic #order_review {
	grid-column: 2;
	grid-row: 3;
	padding: 0 var(--lc-box-pad) var(--lc-box-pad);
	border: var(--lc-rule);
	border-top: 0;
}

.lc-classic .col2-set {
	display: block;
}

.lc-classic .col2-set .col-1,
.lc-classic .col2-set .col-2 {
	float: none !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 0 -2px !important;
	padding: 0 var(--lc-box-pad) var(--lc-box-pad);
	border: var(--lc-rule);
}

.lc-classic .woocommerce-billing-fields > h3,
.lc-classic .woocommerce-shipping-fields > h3,
.lc-classic .woocommerce-additional-fields > h3 {
	counter-increment: lc-box;
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 0 calc(var(--lc-box-pad) * -1) var(--lc-box-pad) !important;
	padding: 0.85rem var(--lc-box-pad);
	border-bottom: var(--lc-rule);
	font-size: var(--lh-step-title);
	line-height: var(--lh-leading-title);
}

.lc-classic .woocommerce-billing-fields > h3::before,
.lc-classic .woocommerce-shipping-fields > h3::before,
.lc-classic .woocommerce-additional-fields > h3::before {
	content: counter(lc-box);
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 2.25rem;
	height: 2.25rem;
	background: var(--lc-ink);
	color: var(--lc-paper);
	font-size: var(--lh-step-title);
}

.lc-classic .woocommerce-shipping-fields > h3 label {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	font-size: var(--lh-step-title);
}

/* The classic gift and delivery box gets the same mustard strip. */
.lc-classic .woocommerce-additional-fields > h3 {
	background: var(--lc-mustard);
}

.lc-classic .woocommerce-shipping-fields:not(:has(h3)) + .woocommerce-additional-fields > h3,
.lc-classic .woocommerce-additional-fields {
	margin-top: 0;
}

.lc-classic .form-row {
	margin: 0 0 1rem !important;
	padding: 0 !important;
}

.lc-classic .form-row label {
	display: block;
	margin-bottom: 0.35rem;
	font-weight: 600;
	color: var(--lc-ink);
	line-height: 1.35;
}

.lc-classic form .form-row label.checkbox,
.lc-classic form .form-row label.woocommerce-form__label-for-checkbox {
	display: block;
	font-weight: 700;
	line-height: 1.6;
}

.lc-classic form .form-row label.checkbox input,
.lc-classic form .form-row label.woocommerce-form__label-for-checkbox input {
	margin: -0.2rem 0.6rem 0 0 !important;
}

.lc-classic .form-row .input-text,
.lc-classic .form-row select,
.lc-classic .select2-container .select2-selection {
	min-height: 48px;
	padding: 0.6rem 0.75rem !important;
	font-size: var(--lh-step-body);
	width: 100%;
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
}

.lc-classic .select2-container .select2-selection__rendered {
	line-height: 1.6 !important;
	padding-left: 0 !important;
	color: var(--lc-ink) !important;
}

.lc-classic .select2-container .select2-selection__arrow {
	top: 10px !important;
}

.lc-classic .form-row-first,
.lc-classic .form-row-last {
	width: calc(50% - 0.5rem) !important;
}

.lc-classic textarea.input-text {
	min-height: 6rem;
}

.lc-classic .required {
	color: var(--lc-error) !important;
	text-decoration: none;
}

.lc-classic .optional {
	color: var(--lc-ink-soft);
	font-weight: 500;
}

.lc-classic .woocommerce-input-wrapper .description,
.lc-classic .linden-cp-counter {
	display: block;
	margin-top: 0.35rem;
	padding: 0 !important;
	background: none !important;
	color: var(--lc-ink-soft) !important;
	font-size: var(--lh-step-small);
	font-weight: 600;
	box-shadow: none !important;
	position: static !important;
}

.lc-classic .woocommerce-input-wrapper .description::before {
	display: none !important;
}

.lc-classic #linden_delivery_date {
	max-width: 16rem;
	font-variant-numeric: tabular-nums;
}

/* Order review table. */
.lc-classic table.shop_table,
.woocommerce-cart-form table.shop_table,
.woocommerce table.shop_table,
.woocommerce-table--order-details {
	width: 100%;
	margin: 0 0 1.25rem !important;
	border: 0 !important;
	border-radius: 0 !important;
	border-collapse: collapse !important;
}

.lc-classic table.shop_table th,
.lc-classic table.shop_table td,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 0.75rem 0 !important;
	border: 0 !important;
	border-bottom: 2px dashed var(--lc-ink) !important;
	text-align: left;
	color: var(--lc-ink);
	background: none !important;
	font-variant-numeric: tabular-nums;
}

.lc-classic table.shop_table td:last-child,
.lc-classic table.shop_table th:last-child,
.woocommerce table.shop_table td:last-child {
	text-align: right;
}

.lc-classic table.shop_table thead th,
.woocommerce table.shop_table thead th {
	border-bottom: var(--lc-rule) !important;
	font-size: var(--lh-step-small);
}

.lc-classic table.shop_table .order-total th,
.lc-classic table.shop_table .order-total td,
.woocommerce table.shop_table .order-total th,
.woocommerce table.shop_table .order-total td {
	border-top: var(--lc-rule) !important;
	border-bottom: 0 !important;
	font-size: var(--lh-step-title);
	font-weight: 800;
	font-variation-settings: var(--lc-display);
}

/* The amount is set one step up, as in the block checkout's total line. */
.lc-classic table.shop_table .order-total td,
.woocommerce table.shop_table .order-total td {
	font-size: var(--lh-step-number);
}

.lc-classic table.shop_table .fee th {
	font-weight: 700;
}

.lc-classic #shipping_method {
	margin: 0;
	padding: 0;
	list-style: none;
}

.lc-classic #payment {
	background: none !important;
	border-radius: 0 !important;
}

.lc-classic #payment ul.payment_methods {
	padding: 1rem 0 !important;
	border-bottom: var(--lc-rule) !important;
	margin: 0;
}

.lc-classic #payment div.payment_box {
	font-size: var(--lh-step-small);
	background: #fff !important;
	border: var(--lc-rule);
	border-radius: 0 !important;
	color: var(--lc-ink) !important;
}

.lc-classic #payment div.payment_box::before {
	display: none !important;
}

.lc-classic #payment .place-order {
	padding: 1.25rem 0 0 !important;
	margin: 0 !important;
	border-top: 2px dashed var(--lc-ink);
}

.lc-classic #place_order {
	float: none !important;
	width: 100%;
	min-height: 60px;
	/* !important: WooCommerce sizes it from "#payment #place_order" (two ids). */
	font-size: var(--lh-step-title) !important;
	font-weight: 800 !important;
	font-variation-settings: var(--lc-display);
}

.lc-classic .woocommerce-privacy-policy-text {
	font-size: var(--lh-step-micro);
	color: var(--lc-ink-soft);
}

.lc-classic .woocommerce-form-login-toggle .woocommerce-info,
.lc-classic .woocommerce-form-coupon-toggle .woocommerce-info {
	background: var(--lc-paper) !important;
	color: var(--lc-ink) !important;
}

.lc-classic .linden-cp-bumps {
	margin: 0 0 1.25rem !important;
	border: var(--lc-rule) !important;
}

.lc-classic .linden-cp-bumps h2 {
	border-bottom: var(--lc-rule);
}

.lc-classic .linden-cp-bumps ul {
	padding: 0 1rem !important;
}

/* Classic cart. */
.lc-classic .woocommerce-cart-form {
	border: var(--lc-rule);
	padding: 0 var(--lc-box-pad);
	margin-bottom: 1.5rem;
}

.lc-classic .woocommerce-cart-form .product-thumbnail img {
	width: 72px;
	border: var(--lc-rule);
}

.lc-classic .woocommerce-cart-form .product-remove a {
	color: var(--lc-ink) !important;
	font-weight: 700;
	text-decoration: none;
}

.lc-classic .woocommerce-cart-form .product-name a {
	color: var(--lc-ink);
	font-weight: 700;
	text-decoration: none;
}

.lc-classic .woocommerce-cart-form .variation,
.lc-classic dl.variation {
	margin: 0.25rem 0 0;
	font-size: var(--lh-step-small);
	font-weight: 700;
}

.lc-classic .woocommerce-cart-form .variation dt,
.lc-classic dl.variation dt {
	display: none;
}

.lc-classic .woocommerce-cart-form .variation dd,
.lc-classic dl.variation dd {
	margin: 0;
}

.lc-classic .woocommerce-cart-form .variation p,
.lc-classic dl.variation p {
	margin: 0;
}

.lc-classic .cart-collaterals {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--lc-summary-width);
	gap: 0 3rem;
}

.lc-classic .cart-collaterals .cart_totals {
	display: flex;
	flex-direction: column;
	grid-column: 2;
	float: none !important;
	width: auto !important;
	padding: 0 var(--lc-box-pad) var(--lc-box-pad);
	border: var(--lc-rule);
}

.lc-classic .cart_totals > .linden-cp-free-shipping,
.lc-classic .cart_totals > .linden-cp-progress {
	order: 1;
}

.lc-classic .cart_totals > table {
	order: 2;
}

.lc-classic .cart_totals > .wc-proceed-to-checkout {
	order: 3;
}

.lc-classic .cart_totals h2 {
	margin: 0 calc(var(--lc-box-pad) * -1) 1rem !important;
	padding: 1rem var(--lc-box-pad);
	background: var(--lc-ink);
	color: var(--lc-paper);
	font-size: var(--lh-step-title);
}

.lc-classic .wc-proceed-to-checkout .checkout-button {
	box-sizing: border-box;
	display: block;
	width: 100%;
	min-height: 56px;
	padding: 1rem !important;
	text-align: center;
	/* !important: WooCommerce's ".woocommerce-cart .wc-proceed-to-checkout a.checkout-button" is more specific. */
	font-size: var(--lh-step-title) !important;
}

.lc-classic a.remove {
	font-size: var(--lh-step-title);
}

.lc-classic .actions .coupon {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.lc-classic .actions .coupon .input-text {
	width: 12rem !important;
}

.lc-classic .quantity .qty {
	width: 4rem;
	min-height: 44px;
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
	text-align: center;
	font-weight: 700;
}

@media (max-width: 1000px) {
	.wc-block-components-sidebar-layout,
	.lc-classic form.checkout,
	.lc-classic .cart-collaterals {
		grid-template-columns: 1fr;
	}

	.lc-classic #customer_details,
	.lc-classic #order_review_heading,
	.lc-classic #order_review,
	.lc-classic .cart-collaterals .cart_totals {
		grid-column: 1;
		grid-row: auto;
	}

	.lc-classic #order_review_heading {
		margin-top: 1.5rem !important;
	}

	.wc-block-checkout__sidebar,
	.wc-block-cart__sidebar {
		margin-top: 1.5rem !important;
	}
}

@media (max-width: 600px) {
	.wc-block-checkout__order-fields .wc-block-components-checkout-step__content > .wc-block-components-address-form {
		grid-template-columns: 1fr;
	}

	.lc-classic .form-row-first,
	.lc-classic .form-row-last {
		width: 100% !important;
		float: none !important;
	}

	.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image {
		padding-left: 1rem !important;
	}

	.wp-block-woocommerce-empty-cart-block .wc-block-grid__products,
	.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new ul {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* ---- Gift and delivery details on the order (thank-you, My Account, emails) --------- */

.linden-cp-order-details {
	margin: 1.5rem 0 !important;
	border: var(--lc-rule);
	background: #fff;
}

.linden-cp-order-details > h2,
.linden-cp-order-details > h3 {
	margin: 0 !important;
	padding: 0.85rem var(--lc-box-pad);
	background: var(--lc-mustard);
	border-bottom: var(--lc-rule);
	color: var(--lc-ink);
	/* !important: My Account and order-received heading rules are more specific. */
	font-size: var(--lh-step-title) !important;
}

.linden-cp-order-details dl {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	margin: 0 !important;
	padding: 0 var(--lc-box-pad);
}

.linden-cp-order-details dt,
.linden-cp-order-details dd {
	padding: 0.75rem 0;
	border-bottom: 2px dashed var(--lc-ink);
}

.linden-cp-order-details dt {
	padding-right: 1.5rem;
	font-weight: 700;
}

.linden-cp-order-details dd {
	margin: 0;
	font-size: var(--lh-step-body);
}

.linden-cp-order-details dt:nth-last-of-type(1),
.linden-cp-order-details dd:last-of-type {
	border-bottom: 0;
}

@media (max-width: 600px) {
	.linden-cp-order-details dl {
		grid-template-columns: 1fr;
	}

	.linden-cp-order-details dt {
		padding-bottom: 0;
		border-bottom: 0;
	}
}

/* ---- Order received ------------------------------------------------------------------ */

.lc-received {
	display: grid;
	gap: 1.5rem;
	max-width: 1180px;
}

.lc-received > * {
	margin: 0 !important;
}

.wc-block-order-confirmation-status {
	padding: 0 !important;
}

.wc-block-order-confirmation-status h1 {
	display: none;
}

.wc-block-order-confirmation-status p {
	margin: 0;
	font-size: var(--lh-step-number);
	font-weight: 800;
	font-variation-settings: var(--lc-display);
	line-height: 1.2;
}

.wc-block-order-confirmation-summary {
	border: var(--lc-rule);
	padding: 0 !important;
}

.wc-block-order-confirmation-summary-list {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.wc-block-order-confirmation-summary-list-item {
	flex: 1 1 auto;
	display: grid;
	gap: 0.25rem;
	padding: 1rem var(--lc-box-pad) !important;
	margin: 0 !important;
	border-left: var(--lc-rule);
	border-right: 0 !important;
}

.wc-block-order-confirmation-summary-list-item:first-child {
	border-left: 0;
}

.wc-block-order-confirmation-summary-list-item__key {
	font-size: var(--lh-step-small);
	font-weight: 600;
	color: var(--lc-ink-soft);
}

.wc-block-order-confirmation-summary-list-item__value {
	font-weight: 800;
	font-size: var(--lh-step-body);
	font-variation-settings: var(--lc-display);
	overflow-wrap: anywhere;
}

.wc-block-order-confirmation-totals table,
.wc-block-order-confirmation-totals__table {
	width: 100%;
	border: var(--lc-rule) !important;
	border-collapse: collapse;
}

.wc-block-order-confirmation-totals__table th,
.wc-block-order-confirmation-totals__table td {
	padding: 0.75rem var(--lc-box-pad) !important;
	border: 0 !important;
	border-bottom: 2px dashed var(--lc-ink) !important;
	font-variant-numeric: tabular-nums;
}

.wc-block-order-confirmation-totals__table thead th {
	background: var(--lc-ink);
	color: var(--lc-paper);
	border-bottom: 0 !important;
}

.wc-block-order-confirmation-totals__table tfoot tr:last-child th,
.wc-block-order-confirmation-totals__table tfoot tr:last-child td {
	border-top: var(--lc-rule) !important;
	border-bottom: 0 !important;
	font-size: var(--lh-step-title);
	font-weight: 800;
}

.wc-block-order-confirmation-totals__table a {
	color: var(--lc-ink);
	font-weight: 700;
}

.lc-received h2,
.lc-received .wp-block-heading {
	margin: 0 0 0.75rem !important;
	/* !important: WooCommerce order-confirmation headings carry their own size. */
	font-size: var(--lh-step-number) !important;
}

.lc-received__addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

.lc-received__addresses > * {
	margin: 0 !important;
}

.wc-block-order-confirmation-address-wrapper address,
.wc-block-order-confirmation-shipping-address,
.wc-block-order-confirmation-billing-address {
	padding: 1rem var(--lc-box-pad);
	border: var(--lc-rule);
	border-radius: 0 !important;
	font-style: normal;
}

.lc-received .woocommerce-order-details,
.lc-received .woocommerce-customer-details {
	display: none;
}

@media (max-width: 700px) {
	.lc-received__addresses {
		grid-template-columns: 1fr;
	}

	.wc-block-order-confirmation-summary-list-item {
		border-left: 0;
		border-top: var(--lc-rule);
	}

	.wc-block-order-confirmation-summary-list-item:first-child {
		border-top: 0;
	}
}

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

.lc-account-body {
	margin: 0;
	padding: clamp(1.5rem, 3vw, 2.5rem) var(--lc-gutter) clamp(2.5rem, 5vw, 4rem);
}

.lc-account-body > * {
	margin-block: 0 !important;
}

.lc-account-body .woocommerce {
	display: grid;
	grid-template-columns: 16rem minmax(0, 1fr);
	gap: 2rem clamp(1.5rem, 3vw, 3rem);
	align-items: start;
	max-width: none;
}

.lc-account-body .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.lc-account-body .woocommerce > .woocommerce-MyAccount-navigation {
	grid-column: 1;
}

.lc-account-body .woocommerce > .woocommerce-MyAccount-content {
	grid-column: 2;
}

@media (max-width: 800px) {
	.lc-account-body .woocommerce > .woocommerce-MyAccount-content {
		grid-column: 1;
	}
}

.woocommerce-MyAccount-navigation {
	float: none !important;
	width: auto !important;
	border: var(--lc-rule);
}

.woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-MyAccount-navigation li {
	margin: 0;
	border-bottom: var(--lc-rule);
}

.woocommerce-MyAccount-navigation li:last-child {
	border-bottom: 0;
}

.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.85rem 1.1rem;
	color: var(--lc-ink);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce-MyAccount-navigation a:hover {
	background: var(--lc-stone);
}

.woocommerce-MyAccount-navigation .is-active a {
	background: var(--lc-ink);
	color: var(--lc-paper);
}

.woocommerce-MyAccount-content {
	float: none !important;
	width: auto !important;
	min-width: 0;
}

.woocommerce-MyAccount-content > p:first-child {
	margin-top: 0;
	font-size: var(--lh-step-lead);
}

.woocommerce-MyAccount-content a:not(.button) {
	color: var(--lc-ink);
	font-weight: 700;
}

.woocommerce-MyAccount-content mark {
	background: var(--lc-mustard);
	color: var(--lc-ink);
	padding: 0 0.25em;
	font-weight: 700;
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3,
.lc-account-body .woocommerce h2 {
	font-size: var(--lh-step-number);
	margin: 1.5rem 0 0.75rem;
}

.woocommerce-orders-table,
.woocommerce-MyAccount-content table.shop_table {
	border: var(--lc-rule) !important;
}

/* WooCommerce shrinks the orders table to 0.85em ("table.my_account_orders"); the form keeps its scale. */
.woocommerce-account table.my_account_orders {
	font-size: var(--lh-step-small);
}

.woocommerce-orders-table th,
.woocommerce-orders-table td,
.woocommerce-MyAccount-content table.shop_table th,
.woocommerce-MyAccount-content table.shop_table td {
	padding: 0.75rem 1rem !important;
}

.woocommerce-orders-table thead th {
	background: var(--lc-ink) !important;
	color: var(--lc-paper) !important;
}

.woocommerce-orders-table .button,
.woocommerce-MyAccount-content .button {
	padding: 0.45rem 0.85rem !important;
	font-size: var(--lh-step-small);
}

.woocommerce-Addresses {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

.woocommerce-Addresses::before,
.woocommerce-Addresses::after {
	display: none !important;
}

.woocommerce-Address {
	float: none !important;
	width: auto !important;
	padding: 0 1.25rem 1.25rem;
	border: var(--lc-rule);
}

.woocommerce-Address-title {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin: 0 -1.25rem 1rem;
	padding: 0.75rem 1.25rem;
	border-bottom: var(--lc-rule);
}

.woocommerce-Address-title h2 {
	margin: 0 !important;
	/* !important: the My Account heading rule (".woocommerce-MyAccount-content h2") is more specific. */
	font-size: var(--lh-step-title) !important;
}

.woocommerce-customer-details address {
	padding: 1rem 1.25rem;
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
	font-style: normal;
}

/* Signed-out My Account: log in and register as two boxes. */
.lc-account-body .woocommerce:has(> .woocommerce-form-login),
.lc-account-body .woocommerce:has(> #customer_login) {
	display: block;
}

#customer_login {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}

#customer_login::before,
#customer_login::after {
	display: none !important;
}

#customer_login .u-column1,
#customer_login .u-column2 {
	float: none !important;
	width: auto !important;
}

.woocommerce-form-login,
.woocommerce-form-register,
.lc-account-body .woocommerce > form.login {
	margin: 0 !important;
	padding: 1.5rem !important;
	border: var(--lc-rule) !important;
	border-radius: 0 !important;
	max-width: 36rem;
}

.lc-account-body .form-row {
	margin: 0 0 1rem;
}

.lc-account-body .form-row label {
	display: block;
	margin-bottom: 0.35rem;
	font-weight: 600;
}

.lc-account-body .input-text {
	width: 100%;
	min-height: 48px;
	padding: 0.6rem 0.75rem !important;
}

.lc-account-body .woocommerce-form-login__rememberme {
	display: flex !important;
	gap: 0.6rem;
	align-items: center;
	margin-bottom: 1rem;
}

.lc-account-body .lost_password a {
	color: var(--lc-ink);
	font-weight: 600;
}

@media (max-width: 800px) {
	.lc-account-body .woocommerce,
	.woocommerce-Addresses,
	#customer_login {
		grid-template-columns: 1fr;
	}
}

/* Responsive orders table: WooCommerce turns rows into stacked blocks on small screens. */
@media (max-width: 768px) {
	.woocommerce-orders-table tr {
		display: block;
		border-bottom: var(--lc-rule);
	}

	.woocommerce-orders-table thead {
		display: none;
	}

	.woocommerce-orders-table td {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		text-align: right !important;
		border-bottom: 0 !important;
	}

	.woocommerce-orders-table td::before {
		content: attr(data-title);
		font-weight: 700;
		text-align: left;
	}
}

/* WooCommerce indents rows inside the summary; the form keeps one left edge. */
.wc-block-components-totals-wrapper .wc-block-components-totals-item,
.wc-block-components-totals-wrapper .wc-block-components-totals-coupon,
.wc-block-components-totals-wrapper .wc-block-components-panel,
.wc-block-components-checkout-order-summary__title-text,
.wc-block-components-order-summary .wc-block-components-order-summary__content {
	padding-left: 0 !important;
	padding-right: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.wc-block-components-checkout-order-summary__content .wc-block-components-order-summary {
	padding: 0 var(--lc-box-pad) !important;
}

/* Shortcode pages and account pages use the full width of the form, not the reading column. */
.lc-form-body .wp-block-post-content > *,
.lc-account-body .wp-block-post-content > * {
	max-width: none !important;
}

/* Stacked order addresses on small screens keep a gap between the two boxes. */
@media (max-width: 768px) {
	.woocommerce-columns--addresses .woocommerce-column + .woocommerce-column {
		margin-top: 1.5rem;
	}
}

/* ---- Order lines lead with their catalogue number ------------------------------- */

/* Block cart: the number is its own first column, before the picture and the name. */
.wc-block-cart .wc-block-cart-items__row {
	position: relative;
}

.wc-block-cart .wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image,
.wc-block-cart .wc-block-cart-items__header .wc-block-cart-items__header-image {
	padding-left: calc(var(--lc-box-pad) + 6rem) !important;
}

.wc-block-cart .wc-block-cart-items__row .wc-block-components-product-details > :first-child,
.wc-block-components-order-summary-item .wc-block-components-product-details > :first-child {
	position: absolute;
	top: 1.2rem;
	left: var(--lc-box-pad);
	margin: 0;
	font-size: var(--lh-step-title);
	line-height: 1;
	font-weight: 800;
	font-variation-settings: var(--lc-display);
	letter-spacing: -0.01em;
	white-space: nowrap;
}

/*
 * Checkout summary: the number sits above the name in the item column (as in the mobile cart),
 * and the long product description is left out so each name fits on one or two lines.
 * The !important values here beat WooCommerce's own summary-item layout rules.
 */
.wc-block-components-order-summary-item {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	padding-left: 0 !important;
}

.wc-block-components-order-summary-item__description {
	position: relative !important;
	padding-top: 1.55rem !important;
	padding-left: 1.25rem !important;
}

.wc-block-components-order-summary-item .wc-block-components-product-metadata,
.wc-block-components-order-summary-item .wc-block-components-product-details {
	position: static !important;
}

.wc-block-components-order-summary-item .wc-block-components-product-details > :first-child {
	top: 0;
	left: 1.25rem;
}

.wc-block-components-order-summary-item .wc-block-components-product-metadata__description {
	display: none !important;
}

/* Classic lines carry the number in front of the name, so the item-data line is not repeated. */
.lc-classic dl.variation > dt:first-of-type,
.lc-classic dl.variation > dd:first-of-type {
	display: none !important;
}

.lc-classic h3#ship-to-different-address {
	float: none !important;
	width: auto !important;
}

/* Small cart layouts (WooCommerce marks them is-mobile / is-small): the number sits above the picture. */
.wc-block-cart:is(.is-mobile, .is-small) .wc-block-cart-items .wc-block-cart-items__row {
	padding-top: 2.75rem !important;
}

.wc-block-cart:is(.is-mobile, .is-small) .wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image,
.wc-block-cart:is(.is-mobile, .is-small) .wc-block-cart-items__header .wc-block-cart-items__header-image {
	padding-left: 1rem !important;
}

.wc-block-cart:is(.is-mobile, .is-small) .wc-block-cart-items__row .wc-block-components-product-details > :first-child {
	top: 1rem;
	left: 1rem;
	font-size: var(--lh-step-title);
}

/* ---- Thank-you: the order overview as one ruled grid ----------------------------- */

.wc-block-order-confirmation-summary-list {
	display: grid !important;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 2.1fr) minmax(0, 1.35fr);
}

.wc-block-order-confirmation-summary-list-item {
	box-sizing: border-box;
	border-left: var(--lc-rule) !important;
	border-top: 0 !important;
}

.wc-block-order-confirmation-summary-list-item:first-child {
	border-left: 0 !important;
}

@media (max-width: 800px) {
	.wc-block-order-confirmation-summary-list {
		grid-template-columns: minmax(0, 1fr);
	}

	.wc-block-order-confirmation-summary-list-item {
		min-width: 0;
	}

	.wc-block-order-confirmation-summary-list-item {
		border-left: 0 !important;
		border-top: var(--lc-rule) !important;
	}

	.wc-block-order-confirmation-summary-list-item:first-child {
		border-top: 0 !important;
	}
}

/* Wide screens: the overview has room for the date and the email on one line each. */
@media (min-width: 801px) {
	.wc-block-order-confirmation-summary-list {
		grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.35fr) minmax(0, 0.95fr) minmax(0, 2.35fr) minmax(0, 1.35fr);
	}

	.wc-block-order-confirmation-summary-list-item__value {
		white-space: nowrap;
		overflow-wrap: normal;
	}
}

/* ---- Field errors: the field itself shows the problem ------------------------------ */

.wc-block-components-text-input.has-error input,
.wc-block-components-text-input input[aria-invalid="true"],
.lc-classic .woocommerce-invalid .input-text,
.lc-classic [aria-invalid="true"] {
	border: 2px solid var(--lc-tomato) !important;
	outline: none !important;
}

.wc-block-components-text-input.has-error input:focus,
.lc-classic [aria-invalid="true"]:focus {
	outline: 3px solid var(--lc-mustard) !important;
	outline-offset: 0 !important;
}

.wc-block-components-text-input.has-error label,
.lc-classic .woocommerce-invalid label {
	color: var(--lc-error) !important;
}

.wc-block-components-validation-error {
	margin-top: 0.45rem;
}

.wc-block-components-validation-error > p {
	display: flex;
	gap: 0.4rem;
	align-items: flex-start;
	font-size: var(--lh-step-small);
	font-weight: 700;
	line-height: var(--lh-leading-small);
}

.lc-classic .checkout-inline-error-message {
	margin: 0.45rem 0 0;
	color: var(--lc-error);
	font-size: var(--lh-step-small);
	font-weight: 700;
}

/* ---- Cart: summary edge and column heads ------------------------------------- */

/* Cart: no stray rule between the suggestions and the checkout button. */
.wc-block-cart .wp-block-woocommerce-cart-order-summary-block {
	border-bottom: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

.wc-block-cart .wc-block-cart__submit,
.wc-block-cart .wp-block-woocommerce-proceed-to-checkout-block {
	margin-top: 0 !important;
}

/* Cart table header: "No." over the number column, "Product" over the picture and name. */
.wc-block-cart .wc-block-cart-items__header .wc-block-cart-items__header-image {
	position: relative;
}

.wc-block-cart .wc-block-cart-items__header .wc-block-cart-items__header-image > span {
	font-size: 0;
}

.wc-block-cart .wc-block-cart-items__header .wc-block-cart-items__header-image::before {
	content: var(--lc-col-no, "No.");
	position: absolute;
	left: var(--lc-box-pad);
	top: 50%;
	transform: translateY(-50%);
	font-size: var(--lh-step-small);
	font-weight: 700;
}

.wc-block-cart .wc-block-cart-items__header .wc-block-cart-items__header-image::after {
	content: var(--lc-col-product, "Product");
	font-size: var(--lh-step-small);
	font-weight: 700;
}

.wc-block-cart:is(.is-mobile, .is-small) .wc-block-cart-items__header .wc-block-cart-items__header-image::before {
	content: none;
}

/* WooCommerce's relative sizes, brought onto the scale: the quantity badge and "via Standard delivery". */
.wc-block-components-order-summary-item__quantity {
	/* !important: WooCommerce sizes the badge with a more specific summary rule. */
	font-size: var(--lh-step-micro) !important;
}

.woocommerce-table--order-details .shipped_via {
	font-size: var(--lh-step-small);
}
