/*
 * Moonlite shop + cart design (templates/store-shop.php, templates/store-cart.php).
 * Loaded only on those pages. Brand: ink #301E15, orange #F2642F, cream #FEF3E3,
 * paper #F7EEDF (paper-tile.webp: the site's paper texture, evened out and made seamless so it
 * repeats without bands); display face "How Dare You" (the Elementor kit loads it site-wide).
 * Buttons are ink-on-orange (5:1); cream-on-orange (2.9:1) is never used for text.
 */

.ml-shop,
.ml-cartpage {
	--ml-ink: #301E15;
	--ml-ink-2: #5E4A3D;
	--ml-muted: #7A6455;
	--ml-orange: #F2642F;
	--ml-orange-hover: #F5814F;
	--ml-rust: #B5401A;
	--ml-cream: #FEF3E3;
	--ml-paper: #F7EEDF;
	--ml-card: #FFFDF8;
	--ml-line: #E8DCCB;
	--ml-display: "How Dare You", "Arial Narrow", "Roboto Condensed", "Helvetica Neue", Impact, sans-serif;
	--ml-container: 1240px;
	--ml-gutter: clamp(1rem, .5rem + 2vw, 2rem);
	display: block;
	background: var(--ml-paper) url("../img/paper-tile.webp") center top / 1600px auto;
	color: var(--ml-ink);
	font-family: Barlow, Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}

@media (min-width: 1600px) {
	.ml-shop,
	.ml-cartpage {
		--ml-container: 1360px;
	}
}

@media (min-width: 2000px) {
	.ml-shop,
	.ml-cartpage {
		--ml-container: 1560px;
	}
}

.ml-shop a,
.ml-cartpage a {
	color: var(--ml-rust);
}

.ml-shop a:focus-visible,
.ml-cartpage a:focus-visible,
.ml-shop button:focus-visible,
.ml-cartpage button:focus-visible,
.ml-shop select:focus-visible,
.ml-cartpage input:focus-visible {
	outline: 2px solid var(--ml-ink);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------ Hero */

.ml-shop-hero {
	/* 170px: the site header (Elementor's or the theme's) overlays the top of every page. */
	padding: calc(170px + clamp(2rem, 1rem + 3vw, 3.5rem)) var(--ml-gutter) clamp(2rem, 1rem + 3vw, 3.5rem);
	border-bottom: 1px solid var(--ml-line);
	text-align: center;
}

.ml-shop-hero__inner {
	max-width: 860px;
	margin: 0 auto;
}

.ml-shop-hero__kicker {
	margin: 0 0 .6rem;
	color: var(--ml-rust);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.ml-shop .ml-shop-hero__title,
.ml-cartpage .ml-cartpage__title {
	margin: 0;
	color: var(--ml-ink);
	font-family: var(--ml-display);
	font-size: clamp(2.8rem, 1.6rem + 5vw, 5.6rem);
	font-weight: 400;
	letter-spacing: .03em;
	line-height: .95;
	text-transform: uppercase;
}

.ml-shop-hero__intro {
	max-width: 60ch;
	margin: 1rem auto 0;
	color: var(--ml-ink-2);
	font-size: clamp(1rem, .9rem + .4vw, 1.2rem);
	line-height: 1.55;
}

.ml-perks {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem .75rem;
	margin: 1.4rem 0 0;
	padding: 0;
	list-style: none;
}

.ml-perks li {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin: 0;
	padding: .4rem .85rem;
	border: 1px solid var(--ml-line);
	border-radius: 999px;
	background: var(--ml-card);
	color: var(--ml-ink);
	font-size: .875rem;
	font-weight: 600;
}

/* ------------------------------------------------------------------ Chips & toolbar */

.ml-shop-body {
	max-width: var(--ml-container);
	margin: 0 auto;
	padding: clamp(1.5rem, 1rem + 2vw, 2.5rem) var(--ml-gutter) clamp(2.5rem, 1.5rem + 3vw, 4rem);
}

.ml-shop-cats ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.ml-shop-cats li {
	margin: 0;
}

.ml-shop .ml-chip {
	display: inline-block;
	padding: .55rem 1rem;
	border: 1.5px solid var(--ml-ink);
	border-radius: 999px;
	background: transparent;
	color: var(--ml-ink);
	font-size: .9rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}

.ml-shop .ml-chip:hover {
	background: rgba(48, 30, 21, .08);
	color: var(--ml-ink);
}

.ml-shop .ml-chip.is-current {
	background: var(--ml-ink);
	color: var(--ml-cream);
}

.ml-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem 1.5rem;
	margin: 0 0 1.25rem;
}

.ml-shop-count {
	margin: 0;
	color: var(--ml-ink-2);
	font-size: .95rem;
}

.ml-shop-sort {
	display: flex;
	align-items: center;
	gap: .5rem;
}

.ml-shop-sort label {
	white-space: nowrap;
	color: var(--ml-ink-2);
	font-size: .9rem;
	font-weight: 600;
}

.ml-shop .ml-shop-sort select {
	min-height: 40px;
	padding: .35rem 2rem .35rem .75rem;
	border: 1px solid var(--ml-line);
	border-radius: 8px;
	background-color: var(--ml-card);
	color: var(--ml-ink);
	font: inherit;
	font-size: .95rem;
}

/* ------------------------------------------------------------------ Product grid */

.ml-shop .ml-products,
.ml-cartpage .ml-products {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(1rem, .75rem + 1vw, 1.75rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 560px) {
	.ml-shop .ml-products,
	.ml-cartpage .ml-products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1025px) {
	.ml-shop .ml-products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.ml-cartpage .ml-products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (min-width: 1600px) {
	.ml-shop .ml-products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.ml-shop .ml-card,
.ml-cartpage .ml-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--ml-line);
	border-radius: 16px;
	background: var(--ml-card);
	box-shadow: 0 1px 2px rgba(48, 30, 21, .05);
	transition: box-shadow .2s ease, border-color .2s ease;
}

@media (hover: hover) {
	.ml-shop .ml-card:hover,
	.ml-cartpage .ml-card:hover {
		border-color: #DCC7AE;
		box-shadow: 0 18px 36px -24px rgba(48, 30, 21, .55);
	}
}

.ml-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--ml-cream) url("../img/paper-tile.webp") center / 800px auto;
}

.ml-card__media img.ml-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	.ml-card:hover .ml-card__media img.ml-card__img {
		transform: scale(1.03);
	}
}

.ml-card__placeholder {
	display: grid;
	place-items: center;
	height: 100%;
}

.ml-card__placeholder img {
	width: 72px;
	height: 72px;
	opacity: .55;
	filter: grayscale(.3);
}

.ml-card__badge {
	position: absolute;
	top: .75rem;
	left: .75rem;
	padding: .3rem .65rem;
	border-radius: 999px;
	background: var(--ml-orange);
	color: var(--ml-ink);
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ml-card__badge--out {
	background: var(--ml-ink);
	color: var(--ml-cream);
}

.ml-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 1rem 1.15rem 1.15rem;
}

.ml-card__cat {
	margin: 0 0 .35rem;
	color: var(--ml-rust);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.ml-shop .ml-card__title,
.ml-cartpage .ml-card__title {
	margin: 0 0 .45rem;
	padding: 0;
	font-family: var(--ml-display);
	font-size: clamp(1.45rem, 1.2rem + .6vw, 1.75rem);
	font-weight: 400;
	letter-spacing: .02em;
	line-height: 1.05;
	text-transform: uppercase;
}

.ml-shop .ml-card__title a,
.ml-cartpage .ml-card__title a {
	color: var(--ml-ink);
	text-decoration: none;
}

.ml-shop .ml-card__title a:hover,
.ml-cartpage .ml-card__title a:hover {
	color: var(--ml-rust);
}

/* The whole card is clickable through the title link. */
.ml-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.ml-card__desc {
	display: -webkit-box;
	margin: 0 0 .9rem;
	overflow: hidden;
	color: var(--ml-ink-2);
	font-size: .92rem;
	line-height: 1.45;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.ml-card__foot {
	margin-top: auto;
}

.ml-card__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .35rem .6rem;
	margin: 0 0 .85rem;
	color: var(--ml-ink);
	font-size: 1.35rem;
	font-weight: 800;
}

.ml-card__price del {
	color: var(--ml-muted);
	font-size: .95rem;
	font-weight: 500;
}

.ml-card__price ins {
	text-decoration: none;
}

.ml-card__ship {
	padding: .2rem .55rem;
	border-radius: 999px;
	background: #E7F2E6;
	color: #1F4D24;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}

/* Buttons sit above the card's stretched link so they stay clickable. */
.ml-shop .ml-card .button,
.ml-cartpage .ml-card .button,
.ml-shop .ml-card .added_to_cart,
.ml-cartpage .ml-card .added_to_cart {
	position: relative;
	z-index: 2;
}

.ml-shop .ml-card .button,
.ml-cartpage .ml-card .button {
	display: block;
	width: 100%;
	margin: 0;
	padding: .8rem 1rem;
	border: 0;
	border-radius: 10px;
	background: var(--ml-orange);
	color: var(--ml-ink);
	font-size: .9rem;
	font-weight: 800;
	letter-spacing: .08em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color .15s ease;
}

.ml-shop .ml-card .button:hover,
.ml-cartpage .ml-card .button:hover {
	background: var(--ml-orange-hover);
	color: var(--ml-ink);
}

.ml-shop .ml-card .button.loading,
.ml-cartpage .ml-card .button.loading {
	opacity: .7;
}

.ml-shop .ml-card .button.added::after,
.ml-cartpage .ml-card .button.added::after {
	content: " ✓";
}

.ml-shop .ml-card .added_to_cart,
.ml-cartpage .ml-card .added_to_cart {
	display: block;
	margin-top: .5rem;
	color: var(--ml-rust);
	font-size: .85rem;
	font-weight: 700;
	text-align: center;
}

.ml-shop .ml-card.outofstock .button {
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--ml-ink);
}

/* ------------------------------------------------------------------ Pagination */

.ml-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .4rem;
	margin: 2.5rem 0 0;
}

.ml-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 .9rem;
	border: 1.5px solid var(--ml-ink);
	border-radius: 999px;
	color: var(--ml-ink);
	font-weight: 700;
	text-decoration: none;
}

.ml-pagination .page-numbers.current {
	background: var(--ml-ink);
	color: var(--ml-cream);
}

.ml-pagination .page-numbers.dots {
	border-color: transparent;
}

/* ------------------------------------------------------------------ Promise band */

.ml-shop-promise {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem 2.5rem;
	padding: clamp(2.5rem, 1.5rem + 3vw, 4rem) max(var(--ml-gutter), calc((100% - var(--ml-container)) / 2));
	background: #301E15 url("../img/wood-dark.webp") center / cover;
	color: #E9D9C4;
}

@media (min-width: 768px) {
	.ml-shop-promise {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.ml-shop-promise h2 {
	margin: 0 0 .5rem;
	color: #F5A07C;
	font-family: var(--ml-display);
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	font-weight: 400;
	letter-spacing: .03em;
	line-height: 1.05;
	text-transform: uppercase;
}

.ml-shop-promise p {
	margin: 0;
	line-height: 1.55;
}

/* ------------------------------------------------------------------ Empty states */

.ml-empty-cart {
	max-width: 520px;
	margin: 1rem auto 1.5rem;
	padding: 2rem 1.5rem;
	border: 1px solid var(--ml-line);
	border-radius: 16px;
	background: var(--ml-card);
	text-align: center;
}

.ml-empty-cart img {
	width: 96px;
	height: 96px;
	border-radius: 50%;
}

.ml-empty-cart h2 {
	margin: .75rem 0 .35rem;
	font-family: var(--ml-display);
	font-size: 2rem;
	font-weight: 400;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.ml-empty-cart p {
	margin: 0;
	color: var(--ml-ink-2);
}

/* ------------------------------------------------------------------ Cart page */

.ml-cartpage__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: end;
	gap: 1rem 2rem;
	max-width: var(--ml-container);
	margin: 0 auto;
	padding: calc(170px + clamp(1.5rem, 1rem + 2vw, 2.5rem)) var(--ml-gutter) 1.25rem;
}

@media (max-width: 767px) {
	/* Phones: the header overlays 220px. */
	.ml-shop-hero {
		padding-top: 244px;
	}

	.ml-cartpage__head {
		padding-top: 240px;
	}
}

@media (min-width: 900px) {
	.ml-cartpage__head {
		grid-template-columns: minmax(0, 1fr) auto;
	}
}

.ml-cartpage .ml-cartpage__title {
	font-size: clamp(2.6rem, 1.6rem + 3.5vw, 4.4rem);
}

.ml-steps {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--ml-muted);
	font-size: .9rem;
	font-weight: 700;
}

.ml-steps li {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin: 0;
}

.ml-steps span {
	display: inline-grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border: 1.5px solid currentColor;
	border-radius: 50%;
	font-size: .8rem;
}

.ml-steps .is-current {
	color: var(--ml-ink);
}

.ml-steps .is-current span {
	border-color: var(--ml-orange);
	background: var(--ml-orange);
	color: var(--ml-ink);
}

.ml-cartpage__continue {
	grid-column: 1 / -1;
	justify-self: start;
	font-weight: 700;
	text-decoration: none;
}

.ml-cartpage__body {
	max-width: var(--ml-container);
	margin: 0 auto;
	padding: 0 var(--ml-gutter) 2rem;
}

/* WooCommerce's cart: form on the left, summary on the right. */
.ml-cartpage .ml-cartpage__body > .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: start;
	gap: 1.5rem 2rem;
}

@media (min-width: 1025px) {
	.ml-cartpage .ml-cartpage__body > .woocommerce {
		grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
	}

	.ml-cartpage .cart-collaterals {
		position: sticky;
		top: 1.5rem;
	}
}

.ml-cartpage .ml-cartpage__body > .woocommerce > .woocommerce-notices-wrapper,
.ml-cartpage .ml-cartpage__body > .woocommerce > .ml-cross-sells,
.ml-cartpage .ml-cartpage__body > .woocommerce > .wc-empty-cart-message,
.ml-cartpage .ml-cartpage__body > .woocommerce > .return-to-shop,
.ml-cartpage .ml-cartpage__body > .woocommerce > .ml-empty-cart {
	grid-column: 1 / -1;
}

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

.ml-cartpage .woocommerce-cart-form {
	min-width: 0;
	margin: 0;
}

/* Items: each row is a card. */
.ml-cartpage table.shop_table.cart {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	background: transparent;
}

.ml-cartpage table.shop_table.cart thead {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.ml-cartpage table.shop_table.cart tbody {
	display: grid;
	gap: .9rem;
}

.ml-cartpage table.shop_table.cart tr.cart_item {
	position: relative;
	display: grid;
	grid-template-areas:
		"thumb name     remove"
		"thumb price    price"
		"thumb qty      subtotal";
	grid-template-columns: 104px minmax(0, 1fr) auto;
	align-items: center;
	gap: .35rem 1rem;
	padding: 1rem 1.1rem;
	border: 1px solid var(--ml-line);
	border-radius: 16px;
	background: var(--ml-card);
}

.ml-cartpage table.shop_table.cart td {
	display: block;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: left;
}

.ml-cartpage table.shop_table.cart td::before {
	content: none;
}

.ml-cartpage td.product-thumbnail {
	grid-area: thumb;
	align-self: start;
}

.ml-cartpage td.product-thumbnail img {
	display: block;
	width: 104px;
	height: 104px;
	border-radius: 12px;
	object-fit: cover;
	background: var(--ml-cream);
}

.ml-cartpage td.product-name {
	grid-area: name;
	align-self: end;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
}

.ml-cartpage td.product-name a {
	color: var(--ml-ink);
	text-decoration: none;
}

.ml-cartpage td.product-name a:hover {
	color: var(--ml-rust);
}

.ml-cartpage td.product-name .variation,
.ml-cartpage td.product-name .backorder_notification {
	margin: .25rem 0 0;
	color: var(--ml-ink-2);
	font-size: .85rem;
	font-weight: 500;
}

.ml-cartpage td.product-price {
	grid-area: price;
	color: var(--ml-ink-2);
	font-size: .9rem;
}

.ml-cartpage td.product-price::after {
	content: " each";
}

.ml-cartpage td.product-quantity {
	grid-area: qty;
}

.ml-cartpage td.product-quantity .quantity .qty {
	width: 5rem;
	min-height: 42px;
	padding: .35rem .5rem;
	border: 1px solid var(--ml-line);
	border-radius: 10px;
	background: #fff;
	color: var(--ml-ink);
	font-size: 1rem;
	font-weight: 700;
	text-align: center;
}

.ml-cartpage td.product-subtotal {
	grid-area: subtotal;
	color: var(--ml-ink);
	font-size: 1.2rem;
	font-weight: 800;
	text-align: right;
}

.ml-cartpage td.product-remove {
	grid-area: remove;
	align-self: start;
	justify-self: end;
}

.ml-cartpage td.product-remove a.remove {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: transparent;
	color: var(--ml-muted) !important; /* WooCommerce colours this link with !important. */
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
}

.ml-cartpage td.product-remove a.remove:hover {
	background: #FBE4E1;
	color: #B42318 !important; /* Beats WooCommerce's own !important hover colour. */
}

/* Coupon + update row. */
.ml-cartpage table.shop_table.cart tr:not(.cart_item) {
	display: block;
}

.ml-cartpage table.shop_table.cart td.actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding: .25rem 0 0;
}

.ml-cartpage td.actions .coupon {
	display: flex;
	flex: 1 1 320px;
	flex-wrap: wrap;
	gap: .5rem;
	float: none;
}

.ml-cartpage td.actions .coupon label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.ml-cartpage td.actions .coupon .input-text {
	flex: 1 1 180px;
	width: auto;
	min-height: 44px;
	margin: 0;
	padding: .5rem .85rem;
	border: 1px solid var(--ml-line);
	border-radius: 10px;
	background: #fff;
	color: var(--ml-ink);
	font-size: .95rem;
}

.ml-cartpage .woocommerce button.button,
.ml-cartpage .woocommerce a.button,
.ml-cartpage .woocommerce input.button {
	min-height: 44px;
	padding: .6rem 1.1rem;
	border: 1.5px solid var(--ml-ink);
	border-radius: 10px;
	background: transparent;
	color: var(--ml-ink);
	font-size: .85rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ml-cartpage .woocommerce button.button:hover,
.ml-cartpage .woocommerce a.button:hover {
	background: rgba(48, 30, 21, .08);
	color: var(--ml-ink);
}

.ml-cartpage .woocommerce button.button:disabled,
.ml-cartpage .woocommerce button.button:disabled[disabled] {
	opacity: .45;
	padding: .6rem 1.1rem;
}

/* Order summary. */
.ml-cartpage .cart-collaterals {
	min-width: 0;
}

.ml-cartpage .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	padding: 1.25rem 1.35rem 1.4rem;
	border: 1px solid var(--ml-line);
	border-radius: 16px;
	background: var(--ml-card);
	box-shadow: 0 18px 40px -30px rgba(48, 30, 21, .6);
}

.ml-cartpage .cart_totals > h2 {
	margin: 0 0 .75rem;
	font-family: var(--ml-display);
	font-size: 1.9rem;
	font-weight: 400;
	letter-spacing: .03em;
	line-height: 1;
	text-transform: uppercase;
}

.ml-cartpage .cart_totals table.shop_table {
	width: 100%;
	margin: 0 0 1rem;
	border: 0;
	border-collapse: collapse;
}

.ml-cartpage .cart_totals table.shop_table th,
.ml-cartpage .cart_totals table.shop_table td {
	padding: .65rem 0;
	border: 0;
	border-top: 1px solid var(--ml-line);
	background: transparent;
	color: var(--ml-ink);
	font-size: .95rem;
	text-align: left;
	vertical-align: top;
}

.ml-cartpage .cart_totals table.shop_table td {
	text-align: right;
}

.ml-cartpage .cart_totals table.shop_table td::before {
	content: none;
}

.ml-cartpage .cart_totals .order-total th,
.ml-cartpage .cart_totals .order-total td {
	padding-top: .85rem;
	border-top: 2px solid var(--ml-ink);
	font-size: 1.2rem;
	font-weight: 800;
}

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

.ml-cartpage .cart_totals .woocommerce-shipping-destination,
.ml-cartpage .cart_totals .shipping-calculator-button {
	font-size: .85rem;
}

.ml-cartpage .wc-proceed-to-checkout {
	padding: 0;
}

.ml-cartpage .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0 0 .75rem;
	padding: 1.05rem 1rem;
	border: 0;
	border-radius: 12px;
	background: var(--ml-orange);
	color: var(--ml-ink);
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-align: center;
	text-transform: uppercase;
	box-shadow: 0 10px 22px -14px rgba(242, 100, 47, .95);
}

.ml-cartpage .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--ml-orange-hover);
	color: var(--ml-ink);
}

.ml-cartpage .wc-proceed-to-checkout .ml-checkout-disabled {
	border: 0;
	border-radius: 12px;
	background: var(--ml-line);
	color: var(--ml-ink-2);
	opacity: 1;
}

/* Cross-sells under the cart. */
.ml-cross-sells {
	margin-top: 1rem;
}

.ml-section-title {
	margin: 0 0 1rem;
	font-family: var(--ml-display);
	font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem);
	font-weight: 400;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.ml-cartpage .return-to-shop {
	margin: 0 0 2rem;
	text-align: center;
}

.ml-cartpage .return-to-shop .button.wc-backward {
	border-color: var(--ml-orange);
	background: var(--ml-orange);
}

.ml-perks--cart {
	max-width: var(--ml-container);
	margin: 0 auto;
	padding: 0 var(--ml-gutter) clamp(2.5rem, 1.5rem + 3vw, 4rem);
}

/* ------------------------------------------------------------------ Phones */

@media (max-width: 600px) {
	.ml-cartpage table.shop_table.cart tr.cart_item {
		grid-template-areas:
			"thumb name     remove"
			"thumb price    price"
			"qty   qty      subtotal";
		grid-template-columns: 76px minmax(0, 1fr) auto;
		padding: .9rem;
	}

	.ml-cartpage td.product-thumbnail img {
		width: 76px;
		height: 76px;
	}

	.ml-cartpage td.product-quantity {
		padding-top: .5rem;
	}

	.ml-shop-toolbar {
		justify-content: center;
	}

	.ml-shop-cats ul {
		justify-content: flex-start;
	}
}
